body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;color:#333;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}.availability-grid-container{background-color:#f8f9fa;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:0 auto;max-width:1200px;padding:20px}.availability-grid-container h2{color:#333;font-size:1.8rem;margin-bottom:16px;text-align:center}.grid-header-with-toggle{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:center;margin-bottom:20px}.grid-header-with-toggle h2{margin-bottom:0}.date-toggle-buttons{display:flex;gap:8px}.date-toggle-btn{background:#f8f9fa;border:2px solid #dee2e6;border-radius:8px;color:#666;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;padding:8px 16px;transition:all .3s ease}.date-toggle-btn:hover{background:#e9ecef;border-color:#adb5bd}.date-toggle-btn.active{background:#007bff;border-color:#0056b3;color:#fff}.date-toggle-btn.active:hover{background:#0056b3;border-color:#004085}.time-navigation{background:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:16px}.time-nav-buttons{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:12px}.time-nav-btn{align-items:center;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border:2px solid #dee2e6;border-radius:12px;cursor:pointer;display:flex;flex-direction:column;font-family:inherit;min-width:80px;overflow:hidden;padding:12px 16px;position:relative;transition:all .3s ease}.time-nav-btn:hover{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border-color:#2196f3;box-shadow:0 4px 12px #2196f333;transform:translateY(-2px)}.time-nav-btn.active{background:linear-gradient(135deg,#2196f3,#1976d2);border-color:#1565c0;box-shadow:0 4px 16px #2196f366;color:#fff}.time-nav-btn.current-time-btn{background:linear-gradient(135deg,#ff9800,#f57c00);border-color:#ef6c00;color:#fff}.time-nav-btn.current-time-btn:hover{background:linear-gradient(135deg,#ffb74d,#ff9800);border-color:#e65100}.time-nav-btn.current-time-btn.active{animation:pulse-current-nav 2s infinite}@keyframes pulse-current-nav{0%,to{transform:translateY(-2px) scale(1)}50%{transform:translateY(-2px) scale(1.05)}}.nav-icon{font-size:1.2rem;margin-bottom:4px}.nav-label{font-size:.9rem;font-weight:600;margin-bottom:2px}.nav-time{font-size:.7rem;font-weight:500;opacity:.8}.time-range-info{background:linear-gradient(135deg,#f1f8e9,#e8f5e9);border:1px solid #c8e6c9;border-radius:8px;padding:8px;text-align:center}.current-time-display{color:#2e7d32;font-size:.9rem;font-weight:600}.grid-wrapper{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;display:flex;overflow:hidden}.facility-labels{background-color:#f5f5f5;border-right:2px solid #e0e0e0;flex-shrink:0;min-width:200px}.time-label-placeholder{background-color:#ececec;border-bottom:2px solid #e0e0e0;height:40px}.facility-label{align-items:center;border-bottom:1px solid #e0e0e0;color:#333;display:flex;font-size:.9rem;font-weight:500;height:48px;padding:12px 16px;transition:background-color .2s}.facility-label:hover{background-color:#e8e8e8}.facility-icon{font-size:1.2rem;margin-right:8px;min-width:24px;text-align:center}.facility-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-scroll-container{flex:1 1;overflow-x:auto;overflow-y:hidden;position:relative}.time-header{background-color:#f5f5f5;border-bottom:2px solid #e0e0e0;display:flex;height:40px;position:-webkit-sticky;position:sticky;top:0;z-index:10}.time-slot-header{align-items:center;border-right:1px solid #e0e0e0;color:#666;display:flex;font-size:.75rem;font-weight:500;justify-content:center;min-width:40px;padding:8px 4px;text-align:center}.availability-grid{background-color:#fff;position:relative}.facility-row{border-bottom:1px solid #e0e0e0;height:48px}.facility-row,.time-slot{display:flex;position:relative}.time-slot{border-right:1px solid #e0e0e0;cursor:pointer;font-size:.9rem;min-width:40px;overflow:hidden;transition:all .3s ease}.slot-content,.time-slot{align-items:center;justify-content:center}.slot-content{display:flex;height:100%;position:relative;width:100%;z-index:1}.availability-progress{background-color:#0000001a;bottom:0;height:3px;left:0;position:absolute;right:0;z-index:0}.progress-bar{background:linear-gradient(90deg,#4caf50,#81c784);height:100%;position:relative;transition:width .3s ease}.progress-bar:after{animation:progress-shine 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}@keyframes progress-shine{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}.time-slot:hover{border-radius:4px;box-shadow:0 2px 8px #00000026;transform:scale(1.1);z-index:5}.time-slot:focus{outline:2px solid #4285f4;outline-offset:-2px;z-index:5}.slot-indicator{font-weight:700}.slot-available{background:linear-gradient(135deg,#e8f5e9,#f1f8e9);border:1px solid #c8e6c9;box-shadow:0 1px 3px #2e7d321a;color:#2e7d32}.slot-available:hover{background:linear-gradient(135deg,#c8e6c9,#dcedc8);border-color:#a5d6a7;box-shadow:0 2px 6px #2e7d3233}.slot-past-available{background:linear-gradient(135deg,#f1f8f1,#f8fdf8);border:1px solid #e0e0e0;box-shadow:0 1px 2px #81c7841a;color:#81c784;opacity:.7}.slot-past-available:hover{background:linear-gradient(135deg,#e8f5e9,#f1f8f1);border-color:#c8e6c9;box-shadow:0 2px 4px #81c78426;opacity:.85}.slot-booked{background:linear-gradient(135deg,#ffebee,#fce4ec);border:1px solid #ffcdd2;box-shadow:0 1px 3px #c628281a;color:#c62828}.slot-booked:hover{background:linear-gradient(135deg,#ffcdd2,#f8bbd9);border-color:#f48fb1;box-shadow:0 2px 6px #c6282833}.slot-closed,.slot-past{background:linear-gradient(135deg,#f5f5f5,#fafafa);border:1px solid #e0e0e0;box-shadow:0 1px 2px #9e9e9e1a;color:#9e9e9e}.slot-past-deadline{background:linear-gradient(135deg,#fff3e0,#fff8e1);border:1px solid #ffcc02;box-shadow:0 1px 3px #ff98001a;color:#ff9800;position:relative}.slot-past-deadline:before{animation:pulse-deadline 2s infinite;background-color:#ff9800;border-radius:50%;content:"";height:4px;position:absolute;right:2px;top:2px;width:4px}@keyframes pulse-deadline{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.2)}}.slot-closed:hover,.slot-past:hover{background:linear-gradient(135deg,#eee,#f5f5f5);box-shadow:0 2px 4px #9e9e9e26}.slot-past-deadline:hover{background:linear-gradient(135deg,#ffe0b2,#ffecb3);border-color:#ffb74d;box-shadow:0 2px 6px #ff980033}.slot-unknown{background:linear-gradient(135deg,#fff3e0,#fff8e1);border:1px solid #ffcc02;box-shadow:0 1px 3px #ef6c001a;color:#ef6c00;position:relative}.slot-unknown:after{animation:blink 1.5s infinite;background-color:#ef6c00;border-radius:50%;content:"";height:6px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:6px}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:.3}}.guest-room-slot{overflow:visible;position:relative}.guest-room-slot.check-in-available{background:linear-gradient(135deg,#4caf50,#66bb6a);border:1px solid #2e7d32;box-shadow:0 1px 3px #4caf5033;color:#fff;font-weight:700}.guest-room-slot.check-in-booked{background:linear-gradient(135deg,#f44336,#ef5350);border:1px solid #c62828;box-shadow:0 1px 3px #f4433633;color:#fff;font-weight:700}.guest-room-slot.cleaning{background:linear-gradient(135deg,#f5f5f5,#fafafa);border:1px solid #e0e0e0;box-shadow:0 1px 2px #9e9e9e1a;color:#999}.guest-room-slot.check-in-available:hover{background:linear-gradient(135deg,#66bb6a,#4caf50);border-color:#2e7d32;box-shadow:0 2px 6px #4caf504d}.guest-room-slot.check-in-booked:hover{background:linear-gradient(135deg,#ef5350,#f44336);border-color:#c62828;box-shadow:0 2px 6px #f443364d}.guest-room-slot.cleaning:hover{background:linear-gradient(135deg,#eee,#f5f5f5);box-shadow:0 2px 4px #9e9e9e26}.current-time-indicator{animation:pulse-current-time 2s infinite;background:linear-gradient(180deg,#ff5722 0,#ff7043);bottom:0;box-shadow:0 0 12px #ff572299,0 0 20px #ff57224d;pointer-events:none;position:absolute;top:0;width:3px;z-index:20}.current-time-indicator:before{animation:pulse-indicator 2s infinite;background:radial-gradient(circle,#ff5722 0,#ff7043 70%,#0000 100%);border-radius:50%;box-shadow:0 0 12px #ff5722cc;content:"";height:15px;left:-6px;position:absolute;top:-6px;width:15px}.current-time-indicator:after{background:#ff5722f2;border-radius:4px;box-shadow:0 2px 6px #ff57224d;color:#fff;content:attr(data-current-time);font-size:.7rem;font-weight:600;left:50%;padding:4px 8px;position:absolute;top:-30px;transform:translateX(-50%);white-space:nowrap}@keyframes pulse-current-time{0%,to{opacity:1;transform:scaleX(1)}50%{opacity:.9;transform:scaleX(1.2)}}@keyframes pulse-indicator{0%,to{opacity:1;transform:translate(-6px,-6px) scale(1)}50%{opacity:.7;transform:translate(-6px,-6px) scale(1.3)}}.grid-legend{background-color:#fff;border-radius:8px;display:flex;flex-wrap:wrap;gap:24px;justify-content:center;margin-top:20px;padding:16px}.legend-item{color:#666;font-size:.9rem}.legend-indicator{align-items:center;border:1px solid #e0e0e0;border-radius:4px;display:flex;font-weight:700;height:24px;justify-content:center;width:24px}.legend-indicator.available{background-color:#e8f5e9;color:#2e7d32}.legend-indicator.booked{background-color:#ffebee;color:#c62828}.legend-indicator.closed{background-color:#f5f5f5;color:#9e9e9e}.legend-indicator.past-deadline{background-color:#fff3e0;color:#ff9800}.legend-indicator.check-in{background-color:#4caf50;border:2px solid #2e7d32;color:#fff;font-size:.7rem;font-weight:700}.current-time-indicator-sample{align-items:center;display:flex;height:24px;justify-content:center;position:relative;width:24px}.current-time-indicator-sample:after{background-color:#ff5722;content:"";height:20px;position:absolute;width:2px}.refresh-button{background-color:#4285f4;border:none;border-radius:24px;box-shadow:0 2px 4px #0000001a;color:#fff;display:block;font-size:.9rem;font-weight:500;margin:20px auto 0;padding:10px 24px;transition:all .3s}.refresh-button:hover{background-color:#3367d6;box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.refresh-button:active{box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.error-message,.loading-message{color:#666;font-size:1.1rem;padding:40px;text-align:center}.error-message{color:#f44336}.slot-tooltip{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(135deg,#212121f2,#424242f2);border:1px solid #ffffff1a;border-radius:12px;bottom:100%;box-shadow:0 8px 24px #0006,0 4px 12px #0003;color:#fff;left:50%;max-width:320px;min-width:220px;opacity:0;pointer-events:none;position:absolute;transform:translateX(-50%) translateY(-8px);transition:opacity .3s ease,visibility .3s ease,transform .3s ease;transition-delay:.2s;visibility:hidden;white-space:nowrap;z-index:1000}.enhanced-tooltip{background:linear-gradient(135deg,#212121fa,#424242fa);padding:0;white-space:normal}.slot-hovered .slot-tooltip{opacity:1;transform:translateX(-50%) translateY(-16px);visibility:visible}.slot-tooltip:after{border:10px solid #0000;border-top-color:#212121fa;content:"";filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));left:50%;position:absolute;top:100%;transform:translateX(-50%)}.tooltip-header{background:linear-gradient(135deg,#ffffff0d,#0000);border-bottom:1px solid #ffffff26;border-radius:12px 12px 0 0;padding:12px 16px 8px}.tooltip-body{padding:8px 16px 12px}.tooltip-facility{color:#fff;font-size:1rem;font-weight:700;margin-bottom:4px;text-shadow:0 1px 2px #0000004d}.tooltip-time{background:#2196f333;border-radius:6px;color:#81d4fa;display:inline-block;font-size:.85rem;font-weight:600;padding:2px 8px}.tooltip-status{color:#f5f5f5;font-size:.9rem;line-height:1.5;margin:8px 0;white-space:pre-wrap}.tooltip-hours{background:#4caf5026;border-left:3px solid #4caf50;border-radius:6px;color:#a5d6a7;font-size:.8rem;margin-top:8px;padding:6px 8px}.tooltip-actions{border-top:1px solid #ffffff1a;margin-top:8px;padding-top:8px}.tooltip-hint{color:#bdbdbd;display:block;font-size:.75rem;font-style:italic;text-align:center}.facility-hours-info{background-color:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-top:24px;padding:20px}.facility-hours-info h3{color:#333;font-size:1.1rem;font-weight:600;margin-bottom:16px;text-align:center}.hours-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.facility-hours-item{align-items:center;background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;display:flex;padding:8px 12px;transition:all .2s}.facility-hours-item:hover{background-color:#e8f5e9;border-color:#4caf50}.facility-hours-icon{font-size:1.1rem;margin-right:8px;min-width:24px;text-align:center}.facility-hours-name{color:#333;font-size:.9rem;font-weight:500;margin-right:auto}.facility-hours-time{color:#666;font-size:.85rem;font-weight:500}.time-slot.slot-hovered{border-radius:8px;box-shadow:0 6px 20px #00000040,0 2px 8px #00000026;filter:brightness(1.1);transform:scale(1.15);z-index:10}.time-slot:hover:not(.slot-hovered){transform:scale(1.05);transition:all .2s ease;z-index:5}@media (max-width:768px){.availability-grid-container{border-radius:8px;padding:12px}.grid-header-with-toggle{gap:12px}.availability-grid-container h2{font-size:1.4rem;margin-bottom:12px}.time-navigation{margin-bottom:16px;padding:12px}.time-nav-buttons{gap:6px}.time-nav-btn{min-width:70px;padding:8px 12px}.nav-icon{font-size:1rem}.nav-label{font-size:.8rem}.nav-time{font-size:.65rem}.current-time-display{font-size:.8rem}.facility-labels{min-width:140px}.facility-label{font-size:.8rem;padding:10px 12px}.facility-icon{font-size:1rem;margin-right:6px}.time-slot,.time-slot-header{font-size:.7rem;min-width:35px}.guest-room-slot.check-in-available,.guest-room-slot.check-in-booked{border-width:1px}.grid-legend{gap:16px;padding:12px}.legend-item{font-size:.8rem}.refresh-button{font-size:.85rem;padding:8px 20px}.slot-tooltip{max-width:280px;min-width:200px}.enhanced-tooltip .tooltip-header{padding:10px 12px 6px}.enhanced-tooltip .tooltip-body{padding:6px 12px 10px}.tooltip-facility{font-size:.9rem}.tooltip-time{font-size:.75rem}.tooltip-status{font-size:.8rem}.tooltip-hint,.tooltip-hours{font-size:.7rem}.availability-progress{height:2px}.facility-hours-info{padding:16px}.facility-hours-info h3{font-size:1rem;margin-bottom:12px}.hours-grid{gap:8px;grid-template-columns:1fr}.facility-hours-item{padding:6px 10px}.facility-hours-icon{font-size:1rem}.facility-hours-name,.facility-hours-time{font-size:.85rem}}@media (max-width:480px){.grid-header-with-toggle h2{font-size:1.2rem}.date-toggle-btn{font-size:13px;padding:6px 12px}.facility-labels{min-width:100px}.facility-name{font-size:.75rem}.time-nav-buttons{flex-direction:row;flex-wrap:wrap;gap:4px}.time-nav-btn{flex:1 1;min-width:60px;padding:6px 8px}.nav-label{font-size:.75rem}.nav-time{font-size:.6rem}.grid-legend{gap:12px}.legend-item{font-size:.75rem;gap:4px}.legend-indicator{font-size:.75rem;height:20px;width:20px}.slot-tooltip{font-size:.75rem;min-width:160px;padding:8px 12px}.facility-hours-info{padding:12px}.facility-hours-info h3{font-size:.9rem}.facility-hours-item{padding:5px 8px}.facility-hours-icon{font-size:.9rem;margin-right:6px}.facility-hours-name,.facility-hours-time{font-size:.75rem}}.bar-availability-container{background:#f8f9fa;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:20px 0;padding:20px}.bar-availability-title{align-items:center;color:#2c3e50;display:flex;font-size:1.3rem;gap:8px;margin:0 0 16px}.bar-availability-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:12px}.bar-availability-day{background:#fff;border:2px solid #e0e0e0;border-radius:8px;padding:12px;text-align:center;transition:all .2s ease}.bar-availability-day.is-today{border-color:#007bff;box-shadow:0 0 0 1px #007bff}.bar-availability-date{color:#666;font-size:.9rem;margin-bottom:4px}.bar-availability-dayname{color:#333;font-weight:600;margin-bottom:12px}.bar-availability-dayname.is-today{color:#007bff}.bar-availability-icon{font-size:2.5rem;margin:8px 0}.bar-availability-status{font-size:.85rem;font-weight:500;margin-top:4px}.bar-availability-status.available{color:#28a745}.bar-availability-status.unavailable{color:#dc3545}.bar-availability-timeslots{color:#666;font-size:.75rem;margin-top:8px}.bar-availability-error,.bar-availability-loading{padding:20px;text-align:center}.bar-availability-loading{color:#666}.bar-availability-error{color:#dc3545}.bar-availability-legend{border-top:1px solid #e0e0e0;color:#666;display:flex;flex-wrap:wrap;font-size:.85rem;gap:20px;justify-content:center;margin-top:16px;padding-top:16px}.bar-availability-legend-item{align-items:center;display:flex;gap:6px}.bar-availability-expand-button{background:#f8f9fa;border:1px solid #dee2e6;border-radius:20px;color:#495057;cursor:pointer;display:block;font-size:.875rem;font-weight:500;margin:16px auto;padding:8px 20px;transition:all .2s ease}.bar-availability-expand-button:hover{background:#e9ecef;border-color:#adb5bd}.bar-availability-expand-button:focus{box-shadow:0 0 0 2px #007bff40;outline:none}@media (max-width:768px){.bar-availability-grid{gap:8px;grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}.bar-availability-day{padding:10px}.bar-availability-icon{font-size:2rem}.bar-availability-legend{font-size:.8rem;gap:12px}}.cocktail-detail-container{margin:0 auto;max-width:800px;padding:20px}.back-button{align-items:center;animation:slideInFromLeft .6s ease-out;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:25px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;display:inline-flex;font-size:1.1em;font-weight:600;gap:8px;letter-spacing:.5px;margin-bottom:30px;overflow:hidden;padding:12px 24px;position:relative;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1)}.back-button:before{content:"←";font-size:1.3em;font-weight:700;transition:transform .3s ease}.back-button:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 6px 20px #667eea66;transform:translateY(-2px) translateX(-3px)}.back-button:hover:before{transform:translateX(-3px) scale(1.1)}.back-button:active{box-shadow:0 2px 10px #667eea4d;transform:translateY(0) translateX(0)}@keyframes slideInFromLeft{0%{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:translateX(0)}}.cocktail-detail-content{text-align:center}.cocktail-name{color:#333;font-size:2.5rem;margin-bottom:10px}.cocktail-price{color:#666;font-size:1.5rem;margin-bottom:40px}.cocktail-visualization{align-items:center;display:flex;gap:60px;justify-content:center;margin-top:40px}.glass-container{flex:0 0 auto}.glass-svg{animation:fadeInScale .8s ease-out;filter:drop-shadow(0 4px 6px rgba(0,0,0,.1))}@keyframes fadeInScale{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.glass-layer{animation:fillUp .8s ease-out forwards;opacity:0}.glass-layer:first-child{animation-delay:.2s}.glass-layer:nth-child(2){animation-delay:.4s}.glass-layer:nth-child(3){animation-delay:.6s}.glass-layer:nth-child(4){animation-delay:.8s}.glass-layer:nth-child(5){animation-delay:1s}.glass-layer:nth-child(6){animation-delay:1.2s}.glass-layer:nth-child(7){animation-delay:1.4s}.glass-layer:nth-child(8){animation-delay:1.6s}@keyframes fillUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.ingredients-detail{flex:1 1;max-width:300px;text-align:left}.ingredients-detail h3{color:#333;font-size:1.5rem;margin-bottom:20px}.ingredients-list{display:flex;flex-direction:column;gap:15px}.ingredient-item{align-items:center;animation:slideInRight .5s ease-out forwards;background-color:#f5f5f5;border-radius:8px;display:flex;gap:12px;opacity:0;padding:10px;transform:translateX(-20px);transition:all .3s cubic-bezier(.4,0,.2,1)}.ingredient-item:first-child{animation-delay:1s}.ingredient-item:nth-child(2){animation-delay:1.1s}.ingredient-item:nth-child(3){animation-delay:1.2s}.ingredient-item:nth-child(4){animation-delay:1.3s}.ingredient-item:nth-child(5){animation-delay:1.4s}.ingredient-item:nth-child(6){animation-delay:1.5s}.ingredient-item:nth-child(7){animation-delay:1.6s}.ingredient-item:nth-child(8){animation-delay:1.7s}@keyframes slideInRight{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.ingredient-item:hover{background-color:#e8f4f8;box-shadow:0 4px 12px #007bff26;transform:translateX(8px) scale(1.02)}.ingredient-line{border-radius:2px;flex-shrink:0;height:30px;transition:transform .2s ease;width:4px}.ingredient-item:hover .ingredient-line{transform:scaleY(1.1)}.ingredient-icon{flex-shrink:0;font-size:1.5rem}.ingredient-item:hover .ingredient-icon{transform:scale(1.15) rotate(5deg)}.ingredient-name{color:#333;flex:1 1;font-weight:500}.ingredient-proportion{color:#666;font-size:.9rem;font-weight:600}@media (max-width:768px){.cocktail-visualization{flex-direction:column;gap:40px}.cocktail-name{font-size:2rem}.ingredients-detail{text-align:center}.ingredients-list{align-items:center}.ingredient-item{max-width:300px;width:100%}}.facility-filters{margin-bottom:24px;width:100%}.filter-toggle-mobile{align-items:center;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;color:#333;cursor:pointer;display:none;font-size:16px;font-weight:500;gap:8px;justify-content:space-between;padding:12px 16px;transition:all .2s ease;width:100%}.filter-toggle-mobile:hover{background-color:#e9ecef;border-color:#ced4da}.filter-icon{font-size:18px}.active-indicator{background-color:#007bff;border-radius:50%;height:8px;margin-left:auto;width:8px}.toggle-arrow{font-size:12px;transition:transform .2s ease}.filter-panel{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:12px;padding:24px;transition:all .3s ease}.filter-section{margin-bottom:24px}.filter-section:last-child{margin-bottom:0}.filter-title{color:#495057;font-size:14px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.search-section{margin-bottom:28px}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-input{background-color:#fff;border:1px solid #ced4da;border-radius:8px;font-size:16px;padding:10px 40px 10px 16px;transition:all .2s ease;width:100%}.search-input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.clear-search{align-items:center;background-color:initial;border:none;border-radius:50%;color:#6c757d;cursor:pointer;display:flex;font-size:20px;height:28px;justify-content:center;padding:0;position:absolute;right:8px;transition:all .2s ease;width:28px}.clear-search:hover{background-color:#e9ecef;color:#495057}.filter-buttons{display:flex;flex-wrap:wrap;gap:8px}.filter-button{align-items:center;background-color:#fff;border:1px solid #dee2e6;border-radius:20px;color:#495057;cursor:pointer;display:inline-flex;font-size:14px;font-weight:500;gap:6px;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.filter-button:hover{background-color:#f8f9fa;border-color:#adb5bd}.filter-button.active{background-color:#007bff;border-color:#007bff;color:#fff}.button-icon{font-size:16px;line-height:1}.button-label{font-weight:500}.button-count{font-size:12px;opacity:.8}.time-button{align-items:center;flex-direction:column;min-width:100px;padding:12px 16px}.button-time{color:#6c757d;font-size:12px;margin-top:2px}.time-button.active .button-time{color:#ffffffe6}.filter-option{align-items:center;cursor:pointer;display:flex;gap:8px;-webkit-user-select:none;user-select:none}.filter-option input[type=checkbox]{cursor:pointer;height:18px;width:18px}.option-label{color:#495057;font-size:15px}.filter-actions{align-items:center;border-top:1px solid #dee2e6;display:flex;justify-content:space-between;margin-top:24px;padding-top:24px}.clear-filters-button{background-color:#fff;border:1px solid #dc3545;border-radius:6px;color:#dc3545;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s ease}.clear-filters-button:hover:not(:disabled){background-color:#dc3545;color:#fff}.clear-filters-button:disabled{cursor:not-allowed;opacity:.5}.filter-summary{color:#6c757d;font-size:14px}.result-count{font-weight:500}@media (max-width:768px){.filter-toggle-mobile{display:flex}.filter-panel{display:none;margin-top:12px}.filter-panel.expanded{animation:slideDown .3s ease;display:block}.filter-section{margin-bottom:20px}.filter-buttons{gap:6px}.filter-button{font-size:13px;padding:6px 12px}.time-button{min-width:90px;padding:10px 12px}.filter-actions{align-items:stretch;flex-direction:column;gap:12px}.clear-filters-button{width:100%}.filter-summary{text-align:center}}@media (max-width:480px){.filter-panel{padding:16px}.filter-title{font-size:13px}.search-input{font-size:15px;padding:8px 36px 8px 12px}.filter-button{font-size:12px;padding:6px 10px}.button-icon{font-size:14px}.time-button{min-width:80px;padding:8px 10px}.button-time{font-size:11px}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.clear-filters-button:focus,.clear-search:focus,.filter-button:focus,.filter-toggle-mobile:focus{outline:2px solid #007bff;outline-offset:2px}@media (prefers-color-scheme:dark){.filter-panel{background-color:#212529;border-color:#495057}.filter-title{color:#adb5bd}.filter-button,.search-input{background-color:#343a40;border-color:#495057;color:#f8f9fa}.filter-button:hover{background-color:#495057}.filter-button.active{background-color:#0d6efd;border-color:#0d6efd}.filter-summary,.option-label{color:#adb5bd}}.monthly-calendar-view{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin:0 auto;max-width:800px;padding:20px}.view-mode-toggle{background-color:#f8f9fa;border-radius:8px;display:flex;gap:10px;justify-content:center;margin-bottom:20px;padding:10px}.mode-button{background-color:#fff;border:1px solid #dee2e6;border-radius:6px;color:#495057;cursor:pointer;font-size:14px;font-weight:500;padding:8px 20px;transition:all .2s}.mode-button:hover{background-color:#e9ecef;border-color:#adb5bd}.mode-button.active{background-color:#007bff;border-color:#007bff;color:#fff}.mode-button.active:hover{background-color:#0056b3;border-color:#0056b3}.calendar-header{flex-wrap:wrap;gap:15px}.facility-selector{align-items:center;display:flex;gap:10px}.facility-selector label{color:#333;font-size:14px;font-weight:600}.facility-dropdown{background-color:#fff;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:14px;padding:8px 12px;transition:border-color .2s}.facility-dropdown:hover{border-color:#007bff}.facility-dropdown:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff1a;outline:none}.month-navigation{gap:10px}.nav-button{background-color:#fff;border-radius:6px;font-size:20px;height:36px;width:36px}.nav-button:hover{background-color:#f0f0f0;border-color:#007bff}.month-year{color:#333;font-size:18px;font-weight:600;margin:0 10px;min-width:120px;text-align:center}.today-button{background-color:#007bff;border:1px solid #007bff;border-radius:6px;color:#fff}.today-button:hover{background-color:#0056b3;border-color:#0056b3}.error-state,.loading-state{padding:40px;text-align:center}.loading-spinner{color:#666;font-size:16px}.error-state p{color:#dc3545;margin-bottom:15px}.retry-button{background-color:#dc3545;border:1px solid #dc3545;padding:8px 16px;transition:all .2s}.retry-button:hover{background-color:#c82333;border-color:#c82333}.calendar-grid{margin-bottom:20px}.weekday-headers{margin-bottom:5px}.weekday-header{padding:10px 0}.weekday-header:first-child{color:#dc3545}.weekday-header:last-child{color:#007bff}.calendar-days{grid-gap:2px;background-color:#f0f0f0;border-radius:8px;gap:2px;padding:2px}.calendar-day{background-color:#fff;border-radius:6px;overflow:hidden}.calendar-day:hover:not(.empty):not(.past){box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.calendar-day.empty{background-color:initial}.calendar-day.past{background-color:#f8f9fa;color:#adb5bd}.calendar-day.past-clickable{background-color:#f0f8ff;border:1px solid #d0e2ff;color:#495057;cursor:pointer}.calendar-day.past-clickable:hover{background-color:#e0f2ff;box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.historical-indicator{font-size:16px;margin-top:2px;opacity:.8}.historical-status{color:#495057;font-size:14px;font-weight:600;margin-top:6px}.calendar-day.selected .historical-status{color:#fff}.calendar-day.today{border:2px solid #007bff}.calendar-day.selected{background-color:#007bff;color:#fff}.calendar-day.selected .day-status{background-color:#ffffffe6}.calendar-day.available{background-color:#d4edda}.calendar-day.unavailable{background-color:#f8d7da}.calendar-day.unknown{background-color:#e9ecef}.day-number{font-size:16px;margin-bottom:2px}.day-status{bottom:4px;font-size:14px;position:absolute;right:4px}.calendar-legend{background-color:#f8f9fa;flex-wrap:wrap;justify-content:center;padding:15px}.legend-item{gap:8px}.legend-color{background-color:#fff;height:20px;position:relative;width:40px}.legend-color.booked{background-image:repeating-linear-gradient(90deg,#0000,#0000 3px,#00000040 0,#00000040 4px),repeating-linear-gradient(0deg,#0000,#0000 3px,#0000001a 0,#0000001a 4px)}.legend-color.partial{background-image:repeating-linear-gradient(90deg,#0000,#0000 3px,#00000040 0,#00000040 4px);background-position:50%;background-repeat:no-repeat;background-size:100% 50%}.legend-color.unavailable{background-image:repeating-linear-gradient(90deg,#0000,#0000 3px,#00000040 0,#00000040 4px),repeating-linear-gradient(0deg,#0000,#0000 3px,#0000001a 0,#0000001a 4px)}.legend-color.unknown{background-color:#e9ecef}.day-details-modal{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.day-details-content{background-color:#fff;border-radius:12px;max-height:80vh;max-width:400px;overflow-y:auto;padding:24px;position:relative;width:100%}.close-button{align-items:center;background-color:#f0f0f0;border:none;border-radius:50%;cursor:pointer;display:flex;font-size:20px;height:32px;justify-content:center;position:absolute;right:12px;top:12px;transition:all .2s;width:32px}.close-button:hover{background-color:#e0e0e0}.day-details-content h3{color:#333;font-size:20px;margin:0 0 15px}.detail-date{color:#666;font-size:16px;margin-bottom:20px}.detail-status{margin-bottom:15px}.detail-status strong{color:#333;display:inline-block;margin-right:10px}.status-badge{border-radius:20px;display:inline-block;font-size:14px;font-weight:500;padding:4px 12px}.status-badge.available{background-color:#d4edda;color:#155724}.status-badge.partially_available{background-color:#fff3cd;color:#856404}.status-badge.unavailable{background-color:#f8d7da;color:#721c24}.status-badge.unknown{background-color:#e9ecef;color:#6c757d}.detail-times{margin-top:20px}.detail-times strong{color:#333;display:block;margin-bottom:8px}.detail-times p{color:#666;line-height:1.6;margin:0}.detail-note{border-top:1px solid #eee;color:#666;font-size:14px;margin-top:20px;padding-top:15px}@media (max-width:768px){.monthly-calendar-view{padding:15px}.calendar-header{align-items:stretch;flex-direction:column}.facility-selector{margin-bottom:10px}.facility-selector,.month-navigation{justify-content:center}.month-year{font-size:16px}.calendar-days{gap:1px;padding:1px}.calendar-day{min-height:50px}.day-number{font-size:14px}.day-status{bottom:2px;font-size:12px;right:2px}.weekday-header{font-size:12px;padding:8px 0}.legend-item{font-size:12px}.legend-color{height:16px;width:16px}.day-details-content{padding:20px}.day-details-content h3{font-size:18px}}.booking-patterns{inset:0;pointer-events:none;position:absolute;z-index:1}.booking-band{background-color:#dc35454d;border-left:3px solid #dc3545cc;left:0;position:absolute;right:0;transition:all .2s ease}.calendar-day.has-patterns:hover .booking-band{background-color:#dc354566;border-left-color:#dc3545}.booking-tooltip{background-color:#333;border-radius:6px;bottom:100%;box-shadow:0 4px 8px #0000004d;color:#fff;font-size:12px;left:50%;min-width:150px;opacity:0;padding:8px 12px;pointer-events:none;position:absolute;text-align:center;transform:translateX(-50%) translateY(-8px);transition:opacity .15s ease,visibility .15s ease;transition-delay:.3s;visibility:hidden;white-space:nowrap;z-index:9999}.booking-tooltip:after{border:6px solid #0000;border-top-color:#000000e6;content:"";left:50%;position:absolute;top:100%;transform:translateX(-50%)}.calendar-day.has-patterns:hover .booking-tooltip{opacity:1;transition-delay:.3s;visibility:visible}.calendar-day.has-patterns .day-number{background-color:#ffffffe6;border-radius:4px;font-weight:600;padding:2px 6px;position:relative;z-index:2}.guest-room-calendar{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:20px}.guest-room-calendar.error,.guest-room-calendar.loading{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:400px;text-align:center}.loading-spinner{border:3px solid #f3f3f3;border-top-color:#3498db}.calendar-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.facility-name{align-items:center;display:flex;font-size:18px;gap:8px}.facility-icon{font-size:24px}.month-navigation{gap:12px}.month-navigation,.nav-button{align-items:center;display:flex}.nav-button{background:none;border:1px solid #ddd;border-radius:4px;color:#666;cursor:pointer;font-size:18px;height:32px;justify-content:center;transition:all .2s;width:32px}.nav-button:hover{background:#f5f5f5;border-color:#bbb}.current-month{font-size:16px;font-weight:500;min-width:120px;text-align:center}.today-button{background:#f0f0f0;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:6px 12px;transition:all .2s}.today-button:hover{background:#e0e0e0}.calendar-legend{background:#f9f9f9;border-radius:8px;display:flex;gap:20px;margin-bottom:16px;padding:12px}.legend-item{align-items:center;display:flex;font-size:14px;gap:6px}.legend-color{border:1px solid #ddd;border-radius:4px;height:16px;width:16px}.legend-color.available{background:#e8f5e9;border-color:#4caf50}.legend-color.unavailable{background:#ffebee;border-color:#f44336}.legend-color.past{background:#f5f5f5;border-color:#bbb}.calendar-grid{margin-top:20px}.weekday-headers{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,1fr);margin-bottom:8px}.weekday-header{color:#666;font-size:14px;font-weight:600;padding:8px 0;text-align:center}.calendar-days{grid-gap:4px;display:grid;gap:4px;grid-template-columns:repeat(7,1fr)}.calendar-day{align-items:center;aspect-ratio:1;background:#fff;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;justify-content:center;min-height:60px;position:relative;transition:all .2s}.calendar-day.empty{background:#0000;border:none;cursor:default}.calendar-day.today{border-color:#2196f3;border-width:2px;font-weight:600}.calendar-day.past{background:#f5f5f5;color:#999;cursor:default}.calendar-day.available{background:#e8f5e9;border-color:#4caf50}.calendar-day.available:hover:not(.past){background:#c8e6c9}.calendar-day.unavailable{background:#ffebee;border-color:#f44336}.calendar-day.unavailable:hover:not(.past){background:#ffcdd2}.calendar-day.no-data{background:#fafafa;border-style:dashed}.day-number{font-size:14px;font-weight:500}.availability-indicator{font-size:12px;font-weight:600;margin-top:2px}.calendar-day.available .availability-indicator{color:#4caf50}.calendar-day.unavailable .availability-indicator{color:#f44336}.calendar-footer{align-items:center;border-top:1px solid #e0e0e0;color:#666;display:flex;font-size:14px;justify-content:space-between;margin-top:20px;padding-top:16px}.check-times{margin:0}.last-updated{font-size:12px;margin:0}@media (max-width:768px){.guest-room-calendar{padding:16px}.calendar-header{align-items:flex-start;flex-direction:column;gap:12px}.month-navigation{justify-content:space-between;width:100%}.calendar-legend{flex-wrap:wrap;gap:12px}.calendar-day{min-height:50px}.day-number{font-size:12px}.calendar-footer{align-items:flex-start;flex-direction:column;gap:8px}}.facility-availability-dashboard{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0 auto;max-width:1200px;padding:20px;width:100%}.dashboard-header{margin-bottom:30px;text-align:center}.dashboard-title{color:#1a1a1a;font-size:2rem;font-weight:700;margin:0 0 8px}.dashboard-subtitle{color:#666;font-size:1rem;margin:0}.facility-tabs{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;border-radius:8px;display:flex;gap:8px;margin-bottom:24px;overflow-x:auto;padding:4px}.tab-button{background-color:initial;border-radius:6px;color:#666;flex:1 1;font-size:16px;min-width:80px;padding:10px 20px;transition:all .2s ease;white-space:nowrap}.tab-button:hover{color:#333}.tab-button.active{box-shadow:0 2px 4px #0000001a}.facility-content{animation:fadeIn .3s ease-in}.content-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.view-title{color:#333;font-size:1.25rem;font-weight:600;margin:0}.refresh-button{align-items:center;background-color:#f0f0f0;border:1px solid #ddd;border-radius:6px;color:#333;cursor:pointer;display:flex;font-size:14px;gap:4px;padding:8px 16px;transition:all .2s ease}.refresh-button:hover{background-color:#e0e0e0;border-color:#ccc}.facilities-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.facility-card{background-color:#fff;border:1px solid #e0e0e0;border-radius:12px;box-shadow:0 2px 4px #0000000d;padding:20px;transition:all .2s ease}.facility-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.facility-header{align-items:center;display:flex;gap:12px;margin-bottom:12px}.facility-icon{font-size:2rem;line-height:1}.facility-name{color:#333;flex:1 1;font-size:1.125rem;font-weight:600;margin:0}.facility-hours{color:#666;font-size:.875rem;margin-bottom:16px;padding-left:44px}.facility-status{border-top:1px solid #f0f0f0;padding-top:16px}.status-indicator{display:inline-block;height:12px;width:12px}.status-text{font-size:.875rem;font-weight:500}.status-available .status-text{color:#28a745}.status-unavailable .status-text{color:#dc3545}.status-partial .status-text{color:#856404}.status-unknown .status-indicator{background-color:#6c757d}.status-unknown .status-text{color:#6c757d}.status-error .status-indicator{background-color:#dc3545}.status-error .status-text{color:#dc3545}.status-placeholder{color:#999;font-size:.875rem;margin:0;text-align:center}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #f0f0f0;border-radius:50%;border-top-color:#007bff;height:40px;margin-bottom:16px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.error-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.error-message{color:#dc3545;font-size:1rem;margin-bottom:16px}.retry-button{background-color:#007bff;font-size:16px;transition:background-color .2s ease}.retry-button:hover{background-color:#0056b3}.category-section{margin-bottom:24px}.category-title{font-size:1.2rem;margin-bottom:12px}.facilities-summary{padding:20px 0}.summary-note{font-size:.9rem;margin-bottom:24px}.availability-bar{margin-bottom:8px}.availability-text{display:block}.facility-status{align-items:center;display:flex;font-size:.875rem;gap:8px}.status-indicator{border-radius:50%;flex-shrink:0;height:8px;width:8px}.status-available .status-indicator{background-color:#28a745}.status-partial .status-indicator{background-color:#ffc107}.status-unavailable .status-indicator{background-color:#dc3545}.status-error .status-indicator,.status-unknown .status-indicator{background-color:#6c757d}.status-text{color:#495057}.facilities-by-category{display:flex;flex-direction:column;gap:32px}.category-section{display:flex;flex-direction:column;gap:16px}.category-title{border-bottom:2px solid #f0f0f0;color:#333;font-size:1.125rem;font-weight:600;margin:0;padding-bottom:8px}.facilities-summary{display:flex;flex-direction:column;gap:20px}.summary-note{color:#666;font-size:.875rem;margin:0;text-align:center}.availability-summary{display:flex;flex-direction:column;gap:8px;padding-top:12px}.availability-bar{background-color:#e9ecef;border-radius:4px;height:8px;overflow:hidden;width:100%}.availability-fill{background-color:#28a745;height:100%;transition:width .3s ease}.availability-text{color:#666;font-size:.875rem;text-align:center}@media (max-width:768px){.facility-availability-dashboard{padding:16px}.dashboard-title{font-size:1.5rem}.dashboard-subtitle{font-size:.875rem}.facility-tabs{gap:4px;padding:3px}.tab-button{font-size:14px;min-width:70px;padding:8px 16px}.content-header{align-items:flex-start;flex-direction:column;gap:12px}.view-title{font-size:1.125rem}.refresh-button{align-self:flex-end}.facilities-grid{gap:16px;grid-template-columns:1fr}.facility-card{padding:16px}.facility-icon{font-size:1.5rem}.facility-name{font-size:1rem}.facility-hours{padding-left:36px}}@media (max-width:480px){.dashboard-header{margin-bottom:20px}.facility-tabs{margin-bottom:16px}.tab-button{flex:0 0 auto;font-size:13px;padding:8px 12px}.error-container,.loading-container{padding:40px 20px}}.guest-rooms-section{border-top:2px solid #e0e0e0;margin-top:40px;padding-top:40px}.section-title{color:#333;font-size:20px;font-weight:600;margin-bottom:20px}.guest-rooms-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:20px}.guest-room-card{background:#f8f9fa;border:1px solid #e0e0e0}.guest-rooms-calendars{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}@media (max-width:768px){.guest-rooms-calendars,.guest-rooms-grid{grid-template-columns:1fr}}.availability-dashboard-page{background-color:#fafafa;min-height:100vh;padding-bottom:40px;padding-top:20px}@media (max-width:768px){.availability-dashboard-page{padding-bottom:32px;padding-top:16px}}.cleaning-schedule{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;margin:0 auto;max-width:800px;padding:20px}.cleaning-header{align-items:center;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:30px}.cleaning-header h2{color:#333;font-size:24px;margin:0}.date-toggle{display:flex;gap:10px}.date-toggle button{background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:14px;padding:8px 20px;transition:all .2s}.date-toggle button:hover{background:#f5f5f5}.date-toggle button.active{background:#007bff;border-color:#007bff;color:#fff}.cleaning-list{display:flex;flex-direction:column;gap:30px}.facility-section{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;padding:20px}.facility-section h3{border-bottom:2px solid #e0e0e0;color:#444;font-size:18px;margin:0 0 15px;padding-bottom:10px}.cleaning-item{margin-bottom:20px}.cleaning-item:last-child{margin-bottom:0}.cleaning-time{color:#333;font-size:16px;font-weight:500;margin-bottom:8px}.no-cleaning-needed{color:#666;font-style:italic}.booking-details{list-style:none;margin:0;padding-left:30px}.booking-details li{color:#666;font-size:14px;line-height:1.6;margin-bottom:4px}.booking-details li:before{content:"• ";margin-left:-15px;margin-right:5px}.cleaning-schedule-error,.cleaning-schedule-loading{color:#666;font-size:16px;padding:40px;text-align:center}.cleaning-schedule-error{color:#d32f2f}@media (max-width:600px){.cleaning-schedule{padding:15px}.cleaning-header{align-items:flex-start;flex-direction:column}.cleaning-header h2{font-size:20px}.date-toggle{width:100%}.date-toggle button{flex:1 1}.facility-section{padding:15px}.facility-section h3{font-size:16px}.cleaning-time{font-size:14px}.booking-details{padding-left:20px}.booking-details li{font-size:13px}}.cleaning-schedule-page{background:#f5f5f5;min-height:100vh;padding-top:20px}.facility-slots-compact{background:#fff;border:1px solid #e0e0e0;border-radius:6px;margin:15px 0 20px;overflow:visible;padding:20px 12px 12px}.slots-timeline{display:flex;flex-direction:column;gap:8px}.time-labels{color:#666;display:flex;font-size:12px;font-weight:500;justify-content:space-between;padding:0 2px}.slots-bar,.slots-bar-container{position:relative}.slots-bar{background:#f5f5f5;border:1px solid #ddd;border-radius:4px;display:flex;height:24px;overflow:visible}.slot-segment{flex:1 1;min-width:0;position:relative;transition:opacity .2s}.slot-segment:hover{opacity:.8}.slot-segment:after{background:#ffffff4d;bottom:0;content:"";position:absolute;right:0;top:0;width:1px}.slot-segment:last-child:after{display:none}.transition-time{background:#fff;border:1px solid #666;border-radius:3px;box-shadow:0 1px 3px #0003;color:#333;font-size:11px;font-weight:600;padding:2px 6px;position:absolute;right:calc(-100% - 1px);top:-20px;white-space:nowrap;z-index:10}.transition-time:after{border-left:4px solid #0000;border-right:4px solid #0000;border-top:4px solid #fff;bottom:-5px}.transition-time:after,.transition-time:before{content:"";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0}.transition-time:before{border-left:5px solid #0000;border-right:5px solid #0000;border-top:5px solid #666;bottom:-6px}.slot-segment.slot-available{background:#4caf50}.slot-segment.slot-booked{background:#f44336}.slot-segment.slot-past-deadline{background:#ff9800}.slot-segment.slot-unknown{background:#bdbdbd}@media (max-width:600px){.facility-slots-compact{margin:10px 0 15px;padding:18px 10px 10px}.slots-bar{height:20px}.time-labels{font-size:11px}.transition-time{font-size:10px;padding:1px 4px;top:-18px}}.usage-analytics-dashboard{margin:0 auto;max-width:1200px;padding:20px}.analytics-header{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;box-shadow:0 4px 12px #667eea4d;color:#fff;margin-bottom:30px;padding:30px}.analytics-header h2{font-size:28px;font-weight:600;margin:0 0 20px}.analytics-controls{align-items:center;display:flex;flex-wrap:wrap;gap:20px}.control-group{align-items:center;display:flex;gap:8px}.control-group label{color:#ffffffe6;font-size:14px;font-weight:500}.facility-select,.time-range-select{background-color:#ffffff1a;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;padding:8px 12px;transition:all .2s}.facility-select:hover,.time-range-select:hover{background-color:#fff3;border-color:#ffffff80}.facility-select option,.time-range-select option{background-color:#4a5568;color:#fff}.export-button,.refresh-button{background-color:#ffffff1a;border:1px solid #ffffff4d;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .2s}.export-button:hover,.refresh-button:hover{background-color:#fff3;border-color:#ffffff80;transform:translateY(-1px)}.export-button:disabled,.refresh-button:disabled{cursor:not-allowed;opacity:.5}.error-state,.loading-state,.no-data-state{background-color:#f8f9fa;border-radius:12px;margin:20px 0;padding:60px 20px;text-align:center}.loading-spinner{color:#6c757d;font-size:18px}.error-state{background-color:#fff5f5;color:#c53030}.retry-button{background-color:#e53e3e;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;margin-top:15px;padding:10px 24px;transition:background-color .2s}.retry-button:hover{background-color:#c53030}.analytics-content{margin-top:30px}.all-facilities-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.facility-analytics-card{background-color:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;padding:24px;transition:transform .2s,box-shadow .2s}.facility-analytics-card:hover{box-shadow:0 4px 16px #0000001f;transform:translateY(-2px)}.facility-analytics-card h3{align-items:center;color:#2d3748;display:flex;font-size:20px;font-weight:600;gap:8px;margin:0 0 20px}.analytics-metrics{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:25px}.metric-card{background-color:#f7fafc;border-radius:8px;padding:15px;text-align:center}.metric-label{color:#718096;font-size:12px;font-weight:500;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.metric-value{color:#2d3748;font-size:28px;font-weight:700;margin-bottom:5px}.metric-comparison{color:#4a5568;font-size:14px}.metric-comparison div{margin:4px 0}.trend-indicator{border-radius:4px;display:inline-block;font-size:12px;font-weight:600;margin-top:5px;padding:4px 8px}.trend-indicator.trend-up{background-color:#c6f6d5;color:#22543d}.trend-indicator.trend-down{background-color:#fed7d7;color:#742a2a}.trend-indicator.trend-stable{background-color:#e2e8f0;color:#2d3748}.peak-days-section,.peak-hours-section{margin-bottom:20px}.monthly-stats-section h4,.peak-days-section h4,.peak-hours-section h4{color:#4a5568;font-size:16px;font-weight:600;margin:0 0 12px}.peak-days-list,.peak-hours-list{display:flex;flex-direction:column;gap:8px}.peak-day-item,.peak-hour-item{align-items:center;background-color:#f7fafc;border-left:3px solid #4299e1;border-radius:6px;display:flex;justify-content:space-between;padding:10px 12px}.peak-day-date,.peak-hour-time{color:#2d3748;font-weight:600}.peak-day-occupancy,.peak-hour-frequency{color:#718096;font-size:14px}.monthly-stats-section{margin-top:25px}.monthly-stats-chart{display:flex;flex-direction:column;gap:12px}.month-stat{grid-gap:15px;align-items:center;display:grid;gap:15px;grid-template-columns:100px 1fr 80px}.month-label{color:#4a5568;font-size:13px;font-weight:500;text-align:right}.month-bar-container{background-color:#edf2f7;border-radius:4px;height:24px;overflow:hidden;position:relative}.month-bar{background:linear-gradient(90deg,#4299e1,#667eea);border-radius:4px;height:100%;left:0;position:absolute;top:0;transition:width .5s ease}.month-value{color:#2d3748;font-size:12px;font-weight:600;position:absolute;right:8px;top:50%;transform:translateY(-50%)}.month-bookings{color:#718096;font-size:13px;text-align:center}@media (max-width:768px){.analytics-header{padding:20px}.analytics-header h2{font-size:22px}.analytics-controls{align-items:stretch;flex-direction:column}.control-group{justify-content:space-between}.all-facilities-grid,.analytics-metrics{grid-template-columns:1fr}.month-stat{grid-template-columns:80px 1fr}.month-bookings{display:none}}.main-nav{align-items:center;background-color:#343a40;box-shadow:0 2px 4px #0000001a;color:#fff;display:flex;justify-content:space-between;padding:12px 25px}.nav-logo{color:#fff;font-size:1.6em;font-weight:700;text-decoration:none}.nav-links a{color:#adb5bd;font-size:1.1em;margin:0 18px;text-decoration:none;transition:color .2s ease-in-out}.nav-links a.active,.nav-links a:hover{color:#fff;text-decoration:underline}.tab-navigation{background-color:#fff;border-bottom:2px solid #e9ecef;box-shadow:0 2px 4px #0000000d;margin:20px 0;position:-webkit-sticky;position:sticky;top:0;z-index:100}.tab-container{justify-content:center;margin:0 auto;max-width:800px}.tab-button,.tab-container{align-items:center;display:flex;position:relative}.tab-button{background:none;border:none;border-radius:8px 8px 0 0;color:#6c757d;cursor:pointer;flex-direction:column;font-size:.95em;font-weight:500;gap:4px;min-width:100px;padding:16px 24px;transition:all .3s cubic-bezier(.4,0,.2,1)}.tab-button:hover{background-color:#f8f9fa;color:#007bff;transform:translateY(-2px)}.tab-button.active{background-color:#fff;color:#007bff;font-weight:600}.tab-icon{font-size:1.4em;margin-bottom:2px;transition:transform .2s ease}.tab-button:hover .tab-icon{transform:scale(1.1)}.tab-button.active .tab-icon{transform:scale(1.15)}.tab-label{font-size:.85em;text-align:center;white-space:nowrap}.tab-indicator{background:linear-gradient(90deg,#007bff,#0056b3);border-radius:2px 2px 0 0;bottom:-2px;height:3px;left:0;position:absolute;transition:all .3s cubic-bezier(.4,0,.2,1);width:0}.tab-container:has(.tab-button:first-child.active) .tab-indicator{left:0;width:20%}.tab-container:has(.tab-button:nth-child(2).active) .tab-indicator{left:20%;width:20%}.tab-container:has(.tab-button:nth-child(3).active) .tab-indicator{left:40%;width:20%}.tab-container:has(.tab-button:nth-child(4).active) .tab-indicator{left:60%;width:20%}.tab-container:has(.tab-button:nth-child(5).active) .tab-indicator{left:80%;width:20%}.tab-content{animation:none;opacity:0;transform:translateY(20px);transition:all .4s cubic-bezier(.4,0,.2,1)}.tab-content.active{animation:slideInUp .5s ease-out;opacity:1;transform:translateY(0)}@keyframes slideInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.tab-button{font-size:.85em;min-width:80px;padding:12px 16px}.tab-icon{font-size:1.2em}.tab-label{font-size:.75em}}.page-container{background-color:#fff;border-radius:8px;box-shadow:0 2px 15px #00000014;margin:30px auto;max-width:900px;min-height:calc(100vh - 150px);padding:30px}.page-header{border-bottom:1px solid #e9ecef;margin-bottom:40px;padding-bottom:20px;text-align:center}.page-header h1{color:#343a40;font-size:2.2em;margin-bottom:8px}.page-header h2{color:#6c757d;font-size:1.6em;font-weight:400;margin-top:0}.section-title{animation:fadeInTitle .6s ease-out;border-bottom:2px solid #007bff30;color:#007bff;font-size:1.9em;margin-bottom:25px;margin-top:45px;padding-bottom:10px}@keyframes fadeInTitle{0%{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:translateX(0)}}.finger-food-title.section-title{background-position:right 10px center;background-repeat:no-repeat;background-size:45px;padding-right:60px}.menu-category-title{border-bottom:1px dashed #17a2b830;color:#17a2b8;font-size:1.5em;margin-bottom:18px;margin-top:35px;padding-bottom:5px}.menu-subcategory-title{color:#28a745;font-size:1.25em;font-weight:600;letter-spacing:.5px;margin-bottom:12px;margin-top:25px;text-transform:uppercase}.menu-section{margin-bottom:35px}.menu-item{align-items:flex-start;animation:slideInUp .4s ease-out forwards;border-bottom:1px dotted #ced4da;display:flex;justify-content:space-between;opacity:0;padding:12px 5px;transform:translateY(20px);transition:all .3s cubic-bezier(.4,0,.2,1)}.menu-item:first-child{animation-delay:.05s}.menu-item:nth-child(2){animation-delay:.1s}.menu-item:nth-child(3){animation-delay:.15s}.menu-item:nth-child(4){animation-delay:.2s}.menu-item:nth-child(5){animation-delay:.25s}.menu-item:nth-child(6){animation-delay:.3s}.menu-item:nth-child(7){animation-delay:.35s}.menu-item:nth-child(8){animation-delay:.4s}.menu-item:nth-child(9){animation-delay:.45s}.menu-item:nth-child(10),.menu-item:nth-child(n+11){animation-delay:.5s}.menu-item:hover{background-color:#f8f9fa;transform:translateX(3px)}.menu-item[style*="cursor: pointer"]:hover{background-color:#e8f4f8;box-shadow:0 2px 4px #0000001a}.menu-item:last-child{border-bottom:none}.item-details{flex-grow:1;margin-right:15px}.item-name{color:#495057;display:block;font-size:1.1em;margin-bottom:3px}.item-details .item-name:only-child{margin-bottom:0}.item-meta{align-items:center;display:flex;flex-shrink:0;justify-content:flex-end;min-width:130px;padding-top:2px}.item-price{color:#212529;font-size:1.1em;font-weight:600;text-align:right}.item-glass{color:#6c757d;font-size:1.6em;margin-left:10px}.ingredients{color:#6c757d;font-size:.9em;padding-left:5px}.ingredient-icon{display:inline-block;font-size:1.1em;margin-right:5px;transition:transform .2s ease}.ingredient-icon:hover{filter:brightness(1.2);transform:scale(1.2) rotate(5deg)}.shochu-type-title,.whisky-type-title{color:#55595c;font-size:1.15em;font-weight:600;margin-bottom:10px;margin-top:20px}.options-list{font-size:.95em;list-style:none;margin-top:10px;padding-left:0}.options-list li{color:#495057;display:flex;justify-content:space-between;padding:5px 0}.options-list li span:first-child{flex-grow:1}.footer{background-color:#e9ecef;border-top:1px solid #dee2e6;color:#6c757d;font-size:.9em;margin-top:40px;padding:25px 20px;text-align:center}.footer p{margin:5px 0}.homepage-content h1{color:#007bff;margin-bottom:20px;text-align:center}.homepage-content p{font-size:1.1em;line-height:1.7;margin-bottom:15px}.quick-links{background-color:#e9ecef80;border:1px solid #dee2e6;border-radius:6px;margin-top:35px;padding:25px}.quick-links h2{color:#343a40;font-size:1.4em;margin-bottom:18px;margin-top:0}.quick-links ul{list-style:none;padding-left:0}.quick-links ul li{margin-bottom:12px}.quick-links ul li a{color:#007bff;font-weight:500;text-decoration:none;transition:color .2s ease}.quick-links ul li a:hover{color:#0056b3;text-decoration:underline}.filter-section{background-color:#f9f9f9;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px;padding:15px}.filter-section .section-title{border-bottom:1px solid #eee;color:#333;font-size:1.6em;margin-bottom:15px;padding-bottom:8px}.filter-categories-container{display:flex;flex-direction:column;gap:20px}.filter-category-title{border-bottom:1px dashed #ddd;color:#555;font-size:1.2em;margin-bottom:10px;padding-bottom:5px}.filter-tags{display:flex;flex-wrap:wrap;gap:8px}.filter-tag{align-items:center;background-color:#e0e0e0;border:1px solid #ccc;border-radius:20px;cursor:pointer;display:flex;font-size:.9em;gap:5px;padding:8px 15px;transition:background-color .2s,border-color .2s,color .2s;white-space:nowrap}.filter-tag.selected{background-color:#007bff;border-color:#007bff;color:#fff}.filter-tag:hover:not(.selected){background-color:#d0d0d0}.filter-clear-button-container{margin-top:25px;text-align:center}.filter-clear-button{background-color:#dc3545;border:1px solid #dc3545;border-radius:20px;color:#fff;cursor:pointer;font-size:1em;padding:8px 20px;transition:background-color .2s}.filter-clear-button:hover{background-color:#c82333}.reset-suggestion-button{background-color:#6c757d;border:1px solid #6c757d;border-radius:6px;color:#fff;cursor:pointer;font-size:.9em;opacity:.8;padding:8px 20px;transition:background-color .2s}.reset-suggestion-button:hover{background-color:#5a6268;opacity:1}.show-filters-button-container{margin:25px 0;padding:20px 0;text-align:center}.show-filters-button{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:25px;box-shadow:0 4px 15px #667eea4d;color:#fff;cursor:pointer;display:inline-flex;font-size:1.1em;font-weight:600;gap:8px;letter-spacing:.5px;overflow:hidden;padding:12px 30px;position:relative;text-transform:uppercase;transition:all .3s cubic-bezier(.4,0,.2,1)}.show-filters-button:before{animation:pulse 2s infinite;content:"🔍";font-size:1.2em}.show-filters-button:hover{background:linear-gradient(135deg,#764ba2,#667eea);box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.show-filters-button:active{box-shadow:0 2px 10px #667eea4d;transform:translateY(0)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.no-results-message{background-color:#fff3cd;border:1px solid #ffeeba;border-radius:5px;color:#666;font-size:1.1em;font-style:italic;margin-top:30px;padding:20px;text-align:center}.feeling-lucky-section{margin:30px 0;text-align:center}.feeling-lucky-button{align-items:center;background-color:#ff8c00;border:none;border-radius:30px;box-shadow:0 4px 8px #0003;color:#fff;cursor:pointer;display:inline-flex;font-size:1.3em;font-weight:700;gap:10px;padding:15px 30px;transition:background-color .3s ease,transform .1s ease}.feeling-lucky-button:hover{background-color:#e07b00;transform:translateY(-2px)}.feeling-lucky-button:active{box-shadow:0 2px 4px #0003;transform:translateY(0)}.suggestion-modal-overlay{align-items:center;background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.suggestion-modal-content{animation:fadeIn .3s ease-out;background:#fff;border-radius:10px;box-shadow:0 5px 15px #0006;max-height:80vh;max-width:600px;overflow-y:auto;padding:30px;position:relative;width:90%}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-close-button{background:none;border:none;color:#aaa;cursor:pointer;font-size:1.8em;position:absolute;right:15px;top:15px;transition:color .2s}.modal-close-button:hover{color:#666}.modal-question-title{border-bottom:1px solid #eee;color:#333;font-size:2em;margin-bottom:25px;padding-bottom:10px;text-align:center}.modal-options{align-items:center;display:flex;flex-direction:column;gap:20px;margin-bottom:30px}.neutral-option-container{display:flex;justify-content:center;margin-bottom:10px;width:100%}.other-options-container{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;width:100%}.modal-option-button{align-items:center;background-color:#e0e0e0;border:1px solid #ccc;border-radius:20px;box-shadow:0 2px 4px #0000000d;cursor:pointer;display:flex;font-size:1em;gap:5px;padding:8px 15px;transition:background-color .2s,border-color .2s,color .2s,transform .1s;white-space:nowrap}.modal-option-button:hover{background-color:#d0d0d0;transform:translateY(-1px)}.modal-option-button.selected{background-color:#007bff;border-color:#007bff;box-shadow:0 3px 6px #007bff4d;color:#fff;transform:translateY(-2px)}.modal-option-button .option-icon{font-size:1.2em}.modal-navigation-buttons{display:flex;gap:15px;justify-content:space-between;margin-top:20px}.modal-navigation-buttons button{border:none;border-radius:8px;cursor:pointer;flex:1 1;font-size:1.1em;font-weight:700;min-width:120px;padding:12px 25px;transition:background-color .2s,opacity .2s}.modal-navigation-buttons .back-button{background-color:#6c757d;color:#fff}.modal-navigation-buttons .back-button:hover{background-color:#5a6268}.modal-navigation-buttons .next-button{background-color:#28a745;color:#fff}.modal-navigation-buttons .next-button:hover{background-color:#218838}.modal-navigation-buttons .next-button:disabled{cursor:not-allowed;opacity:.6}.suggested-cocktails-section{background-color:#e6f7ff;border-radius:10px;box-shadow:0 4px 10px #00000026;margin-bottom:30px;margin-top:40px;padding:25px}.suggested-cocktails-section .section-title{border-bottom:2px solid #a8d9ff;color:#0056b3;margin-bottom:25px}.suggested-cocktails-list{display:flex;flex-direction:column;gap:20px}.suggested-cocktails-list .menu-item{align-items:flex-start;background-color:#fff;border:1px solid #cef;border-radius:10px;box-shadow:0 2px 8px #00000014;display:flex;flex-direction:column;gap:10px;padding:20px}.suggested-cocktails-list .item-details{width:100%}.suggested-cocktails-list .item-meta{justify-content:flex-end;width:100%}@media (max-width:768px){.page-container{margin:20px auto;padding:20px}.page-header h1{font-size:2em}.page-header h2{font-size:1.4em}.section-title{font-size:1.7em}.menu-category-title{font-size:1.3em}.menu-subcategory-title{font-size:1.1em}.menu-item{align-items:flex-start;flex-direction:column}.item-meta{justify-content:flex-end;margin-top:5px;width:100%}.modal-option-button{font-size:.9em;padding:10px 18px}.modal-question-title{font-size:1.6em}}.page-loading{color:#64748b;padding:2rem;text-align:center}.custom-builder-button{align-items:center;background:#2b7a78;border-radius:999px;box-shadow:0 8px 18px #2b7a7833;color:#fff;display:inline-flex;font-weight:600;gap:.5rem;margin-top:1rem;padding:.75rem 1.6rem;text-decoration:none}.custom-builder-button:hover{background:#1f5c5a}
/*# sourceMappingURL=main.2f4179aa.css.map*/