.seatmap{display:flex;flex-direction:column;gap:16px}.seatmap-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;position:sticky;top:0;z-index:10;background:var(--color-surface, #fff);padding:4px 0}@media (max-width: 768px){.seatmap-body{min-height:calc(100vh - 180px);height:calc(100vh - 180px)}.seatmap-popup{width:calc(100vw - 32px);max-width:340px}.seatmap-tool-btn,.seatmap-popup-timeline-btn,.seatmap-popup-reserve-btn{min-height:44px;min-width:44px;padding:10px 14px}}.seatmap-store{display:flex;align-items:center;gap:8px}.seatmap-actions{display:flex;align-items:center;gap:10px}.seatmap-toggle{display:flex;align-items:center;gap:6px;font-size:12px;color:#374151}.seatmap-refresh{padding:6px 12px;border-radius:6px;border:1px solid #d1d5db;background:#fff;cursor:pointer}.seatmap-toolbar-sep{color:#9ca3af;margin:0 4px}.seatmap-tool-hint{font-size:11px;color:#6b7280;margin-left:4px;white-space:nowrap}.seatmap-tool-btn{padding:4px 10px;border-radius:4px;border:1px solid #d1d5db;background:#fff;font-size:12px;cursor:pointer}.seatmap-tool-btn:hover{background:#f3f4f6}.seatmap-tool-btn.active{background:#2563eb;color:#fff;border-color:#2563eb}.seatmap-tool-btn.delete{color:#dc2626;border-color:#fca5a5}.seatmap-tool-btn.delete:hover{background:#fef2f2}.seatmap-bg-swatch{width:22px;height:22px;padding:0;border:2px solid #d1d5db;border-radius:4px;cursor:pointer}.seatmap-bg-swatch.active{border-color:#2563eb;box-shadow:0 0 0 1px #2563eb}.seatmap-color-picker{display:flex;align-items:center;gap:4px}.seatmap-color-picker input[type=color]{width:28px;height:22px;padding:2px;border:1px solid #d1d5db;border-radius:4px;cursor:pointer;background:#fff}.seatmap-decoration{position:relative;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;cursor:pointer;z-index:1;pointer-events:auto}.resize-handle{position:absolute;width:8px;height:8px;background:#60a5fa;border:1px solid #fff;z-index:10;pointer-events:auto}.resize-handle.se{bottom:-4px;right:-4px;cursor:nwse-resize}.resize-handle.sw{bottom:-4px;left:-4px;cursor:nesw-resize}.resize-handle.ne{top:-4px;right:-4px;cursor:nesw-resize}.resize-handle.nw{top:-4px;left:-4px;cursor:nwse-resize}.seatmap-decoration.selected{outline:2px solid var(--selection-outline, #60a5fa);outline-offset:2px;z-index:1000}.seatmap-decoration.decoration-reception{background:var(--decoration-reception-bg, rgba(251, 191, 36, .35));border:1px dashed var(--decoration-reception-border, #d97706);color:var(--decoration-reception-color, #b45309)}.seatmap-decoration.decoration-aisle{background:var(--decoration-aisle-bg, rgba(255, 255, 255, .06));background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,var(--decoration-aisle-stripe, rgba(255, 255, 255, .04)) 4px,var(--decoration-aisle-stripe, rgba(255, 255, 255, .04)) 8px);color:var(--decoration-aisle-color, #9ca3af)}.seatmap-decoration.decoration-exit{background:var(--decoration-exit-bg, rgba(34, 197, 94, .25));border:1px solid var(--decoration-exit-border, #22c55e);color:var(--decoration-exit-color, #16a34a)}.seatmap-decoration.decoration-pillar{background:var(--decoration-pillar-bg, #4b5563);color:var(--decoration-pillar-color, #9ca3af)}.seatmap-decoration.decoration-restroom{background:var(--decoration-restroom-bg, rgba(59, 130, 246, .25));border:1px solid var(--decoration-restroom-border, #3b82f6);color:var(--decoration-restroom-color, #2563eb)}.seatmap-body{display:block;position:relative;min-height:calc(100vh - 140px);height:calc(100vh - 140px);overflow:auto;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:auto;touch-action:pan-x pan-y}.seatmap-grid{display:grid;background:var(--seatmap-bg, #111827);padding:16px;border-radius:8px;position:relative;overflow:visible;width:max-content;min-width:max-content;height:max-content;min-height:max-content;box-sizing:border-box}.seatmap-grid.with-grid{background-image:linear-gradient(var(--grid-line-color, rgba(255, 255, 255, .08)) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line-color, rgba(255, 255, 255, .08)) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size)}.seatmap-group{border:2px solid var(--group-border, #d9b35f);border-radius:6px;margin:-5px;position:relative;z-index:1;cursor:pointer}.seatmap-group.selected{z-index:1000}.seatmap-group-single{border-color:var(--group-border-single, #facc15)}.seatmap-group-badge{position:absolute;top:-14px;right:-14px;width:20px;height:20px;border-radius:50%;background:var(--group-badge-bg, #d9b35f);color:var(--group-badge-color, #111827);font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;z-index:2}.seatmap-group-label{position:absolute;top:-12px;left:8px;background:var(--seatmap-bg, #111827);color:var(--group-label-color, #d9b35f);font-size:11px;padding:0 4px;border:none}.seatmap-group-label.seatmap-group-label-bao{left:0}.seatmap-seat{border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;cursor:pointer;z-index:2;position:relative;overflow:visible}.seatmap-seat-number{color:inherit;font-weight:600}.seatmap-seat-hours{font-size:11px;font-weight:500;color:inherit;opacity:.95;margin-top:2px}.seatmap-seat.selected{outline:2px solid var(--selection-outline, #60a5fa);outline-offset:2px;z-index:1000}.status-locked{background:var(--seat-bg-locked, #9ca3af);color:var(--seat-color-locked, #111827)}.status-broken{background:var(--seat-bg-broken, #111827);color:var(--seat-color-broken, #f9fafb)}.status-occupied{background:var(--seat-bg-occupied, #ef4444);color:var(--seat-color-occupied, #fff)}.status-upcoming_0_3{background:var(--seat-bg-upcoming_0_3, #f97316);color:var(--seat-color-upcoming_0_3, #111827)}.status-upcoming_3_5{background:var(--seat-bg-upcoming_3_5, #fef08a);color:var(--seat-color-upcoming_3_5, #111827)}.status-available{background:var(--seat-bg-available, #ffffff);color:var(--seat-color-available, #111827)}.seatmap-popup{position:absolute;left:100%;top:0;margin-left:8px;width:300px;height:auto;max-height:90vh;overflow-y:auto;overflow-x:hidden;border:1px solid #e5e7eb;border-radius:10px;padding:16px;background:#fff;color:#111827;box-shadow:0 10px 30px #00000026;z-index:9999;font-size:15px}.seatmap-popup.popup-on-left{left:auto;right:100%;margin-left:0;margin-right:8px}.seatmap-popup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.seatmap-popup-header h3{font-size:18px;margin:0}.seatmap-popup-timeline-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:32px;padding:0 10px;background:transparent;border:1px solid #d1d5db;border-radius:6px;color:#6b7280;cursor:pointer;font-size:13px;white-space:nowrap;transition:color .2s,background .2s,border-color .2s}.seatmap-popup-timeline-btn:hover{color:#2563eb;background:#eff6ff;border-color:#93c5fd}.seatmap-popup-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f3f4f6}.seatmap-popup-reservations-list{margin-top:12px}.seatmap-popup-reservations-title{font-weight:600;margin-bottom:8px;font-size:15px}.seatmap-popup-reservations-loading,.seatmap-popup-reservations-empty{padding:12px;color:#6b7280;font-size:14px}.seatmap-popup-reservation-item{margin-bottom:12px;padding:10px;border:1px solid #e5e7eb;border-radius:6px;background:#fafafa}.seatmap-popup-reservation-label-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.seatmap-popup-reservation-label-row .seatmap-popup-reservation-label{flex:1;min-width:0}.seatmap-popup-reservation-label-row .seatmap-popup-reservation-actions{flex-shrink:0;display:flex;gap:4px;margin-top:0;padding-top:0;border-top:none}.seatmap-popup-reservation{margin-top:12px;padding:10px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb;font-size:15px}.seatmap-popup-reservation-title{font-weight:600;margin-bottom:6px;font-size:16px}.seatmap-popup-reservation-time-row{margin-top:4px}.seatmap-popup-reservation-time-row strong{margin-right:4px}.seatmap-popup-reservation-actions{display:flex;gap:12px;justify-content:flex-end;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid #e5e7eb}.seatmap-popup-reservation-edit,.seatmap-popup-reservation-delete{padding:4px 8px;background:none;border:none;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center}.seatmap-popup-reservation-edit{color:#2563eb}.seatmap-popup-reservation-edit:hover{color:#1d4ed8}.seatmap-popup-reservation-delete{color:#dc2626}.seatmap-popup-reservation-delete:hover{color:#b91c1c}.seatmap-popup-add-after{margin-top:10px;padding-top:10px;border-top:1px solid #e5e7eb}.seatmap-popup-add-after-btn{width:100%;padding:8px 12px;background:#059669;color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer}.seatmap-popup-add-after-btn:hover{background:#047857}.seatmap-reserve-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.seatmap-reserve-modal{background:#fff;border-radius:10px;padding:24px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.seatmap-popup-reserve{margin-top:12px}.seatmap-popup-reserve-btn{width:100%;padding:10px 16px;background:#2563eb;color:#fff;border:none;border-radius:6px;font-size:15px;font-weight:500;cursor:pointer}.seatmap-popup-reserve-btn:hover{background:#1d4ed8}.seatmap-popup-unavailable{margin-top:12px;padding:10px 12px;background:#fee2e2;color:#991b1b;border-radius:6px;font-size:13px;text-align:center}.seatmap-popup-override{margin-top:12px}.seatmap-popup-override input{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px}.seatmap-popup-override-actions{display:flex;gap:8px;margin-top:8px}.seatmap-popup-override-actions button{flex:1;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;background:#fff;cursor:pointer}.seatmap-loading{padding:24px;text-align:center}.seatmap-marquee{position:relative;background:#60a5fa40;border:2px solid #60a5fa;border-radius:4px;pointer-events:none;z-index:100}.seatmap.seatmap--customer .seatmap-header{background:var(--cus-surface, #f8fafc);padding:2px 0}.seatmap.seatmap--customer .seatmap-actions{gap:6px}.seatmap.seatmap--customer .seatmap-refresh,.seatmap.seatmap--customer .seatmap-tool-btn{padding:.3rem .55rem;font-size:.8rem;font-weight:500;color:var(--cus-text-secondary, #64748b);background:var(--cus-surface, #f8fafc);border:1px solid var(--cus-border, #e2e8f0);border-radius:var(--cus-radius, 8px);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:1.75rem;box-sizing:border-box}.seatmap.seatmap--customer .seatmap-tool-btn{min-width:1.75rem;aspect-ratio:1;padding:.3rem}.seatmap.seatmap--customer .seatmap-theme-btn{min-width:1.6rem;min-height:1.6rem;padding:.3rem;aspect-ratio:1}.seatmap.seatmap--customer .seatmap-theme-toggle{display:flex;align-items:center;gap:2px}.seatmap.seatmap--customer .seatmap-tool-btn .svg-inline--fa,.seatmap.seatmap--customer .seatmap-tool-btn svg{width:.75em;height:.75em;flex-shrink:0}.seatmap.seatmap--customer .seatmap-refresh:hover,.seatmap.seatmap--customer .seatmap-tool-btn:hover:not(:disabled){color:var(--cus-text, #1e293b);background:var(--cus-surface-hover, #f1f5f9);border-color:var(--cus-accent, #84cc16)}.seatmap.seatmap--customer .seatmap-tool-btn.active{color:var(--cus-accent-fg, #fff);background:var(--cus-accent, #84cc16);border-color:var(--cus-accent, #84cc16)}.seatmap.seatmap--customer .seatmap-toggle{color:var(--cus-text-secondary, #64748b)}.seatmap.seatmap--customer .seatmap-toolbar-sep,.seatmap.seatmap--customer .seatmap-tool-hint{color:var(--cus-text-secondary, #64748b);font-size:.75rem}@media (max-width: 768px){.seatmap.seatmap--customer .seatmap-refresh,.seatmap.seatmap--customer .seatmap-tool-btn{min-height:2rem;min-width:2rem;padding:.35rem;aspect-ratio:1}.seatmap.seatmap--customer .seatmap-refresh{min-width:auto;padding:.35rem .6rem;aspect-ratio:auto}}.seatmap.seatmap--customer .seatmap-popup-reserve-btn{background:var(--cus-accent, #84cc16);color:var(--cus-accent-fg, #fff)}.seatmap.seatmap--customer .seatmap-popup-reserve-btn:hover{background:var(--cus-accent-hover, #65a30d)}.seatmap.seatmap--customer .seatmap-seat.status-occupied,.seatmap.seatmap--customer .seatmap-seat.status-upcoming_0_3,.seatmap.seatmap--customer .seatmap-seat.status-upcoming_3_5{background:var(--seat-bg-occupied, #dc2626)!important;color:var(--seat-color-occupied, #fff)!important}.seatmap.seatmap--customer .seatmap-popup{width:240px;max-width:240px;padding:12px;border-radius:var(--cus-radius, 8px)}.seatmap.seatmap--customer .seatmap-popup-header h3{font-size:16px}.seatmap.seatmap--customer .seatmap-popup--light{background:var(--cus-surface, #f8fafc);color:var(--cus-text, #1e293b);border:1px solid var(--cus-border, #e2e8f0);box-shadow:0 4px 12px #00000014}.seatmap.seatmap--customer .seatmap-popup--light .seatmap-popup-row{border-bottom-color:var(--cus-border, #e2e8f0)}.seatmap.seatmap--customer .seatmap-popup--dark{background:var(--cus-surface-dark, #1e293b);color:var(--cus-text-inverse, #f1f5f9);border:1px solid var(--cus-border-dark, #334155);box-shadow:0 4px 12px #0000004d}.seatmap.seatmap--customer .seatmap-popup--dark .seatmap-popup-row{border-bottom-color:var(--cus-border-dark, #334155)}.seatmap.seatmap--customer .seatmap-booking-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.seatmap.seatmap--customer .seatmap-booking-modal{width:90%;max-width:360px;padding:20px;border-radius:var(--cus-radius, 8px);box-shadow:0 8px 24px #00000026}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--light{background:var(--cus-surface, #f8fafc);color:var(--cus-text, #1e293b);border:1px solid var(--cus-border, #e2e8f0)}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--dark{background:var(--cus-surface-dark, #1e293b);color:var(--cus-text-inverse, #f1f5f9);border:1px solid var(--cus-border-dark, #334155)}.seatmap.seatmap--customer .seatmap-booking-modal-title{margin:0 0 16px;font-size:18px}.seatmap.seatmap--customer .seatmap-booking-modal-row{margin-bottom:12px}.seatmap.seatmap--customer .seatmap-booking-modal-label{display:block;font-size:12px;opacity:.85;margin-bottom:4px}.seatmap.seatmap--customer .seatmap-booking-modal-field{margin-bottom:16px}.seatmap.seatmap--customer .seatmap-booking-modal-btns{display:flex;flex-wrap:wrap;gap:8px}.seatmap.seatmap--customer .seatmap-booking-modal-btn{padding:8px 12px;border-radius:6px;border:1px solid var(--cus-border, #e2e8f0);background:transparent;cursor:pointer;font-size:14px;transition:background .15s,border-color .15s}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--light .seatmap-booking-modal-btn{border-color:var(--cus-border, #e2e8f0);color:var(--cus-text, #1e293b)}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--light .seatmap-booking-modal-btn:hover{background:var(--cus-border, #e2e8f0)}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--light .seatmap-booking-modal-btn.active{background:var(--cus-accent, #84cc16);border-color:var(--cus-accent, #84cc16);color:var(--cus-accent-fg, #fff)}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--dark .seatmap-booking-modal-btn{border-color:var(--cus-border-dark, #334155);color:var(--cus-text-inverse, #f1f5f9)}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--dark .seatmap-booking-modal-btn:hover{background:var(--cus-border-dark, #334155)}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--dark .seatmap-booking-modal-btn.active{background:var(--cus-accent, #84cc16);border-color:var(--cus-accent, #84cc16);color:var(--cus-accent-fg, #fff)}.seatmap.seatmap--customer .seatmap-booking-modal-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--cus-border, #e2e8f0)}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--dark .seatmap-booking-modal-footer{border-top-color:var(--cus-border-dark, #334155)}.seatmap.seatmap--customer .seatmap-booking-modal-cancel{padding:8px 16px;border-radius:6px;border:1px solid var(--cus-border, #e2e8f0);background:transparent;cursor:pointer;font-size:14px}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--light .seatmap-booking-modal-cancel{color:var(--cus-text, #1e293b);border-color:var(--cus-border, #e2e8f0)}.seatmap.seatmap--customer .seatmap-booking-modal.seatmap-popup--dark .seatmap-booking-modal-cancel{color:var(--cus-text-inverse, #f1f5f9);border-color:var(--cus-border-dark, #334155)}.seatmap.seatmap--customer .seatmap-booking-modal-confirm{padding:8px 16px;border-radius:6px;border:none;background:var(--cus-accent, #84cc16);color:var(--cus-accent-fg, #fff);cursor:pointer;font-size:14px}.seatmap.seatmap--customer .seatmap-booking-modal-confirm:hover{background:var(--cus-accent-hover, #65a30d)}.seatmap-page{display:flex;flex-direction:column;gap:var(--cus-spacing-md, 1rem);min-height:0}.seatmap-page-store-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.seatmap-page-store-btn{padding:.5rem 1rem;font-size:.95rem;font-weight:500;color:var(--cus-text-secondary, #64748b);background:var(--cus-surface, #f8fafc);border:1px solid var(--cus-border, #e2e8f0);border-radius:var(--cus-radius, 8px);cursor:pointer}.seatmap-page-store-btn:hover{color:var(--cus-text, #1e293b);background:var(--cus-surface-hover, #f1f5f9);border-color:var(--cus-accent, #84cc16)}.seatmap-page-store-btn.active{color:var(--cus-accent-fg, #fff);background:var(--cus-accent, #84cc16);border-color:var(--cus-accent, #84cc16)}.seatmap-page-map{flex:1;min-height:400px;display:flex;flex-direction:column}.seatmap-page-loading,.seatmap-page-empty{padding:2rem;text-align:center;color:var(--cus-text-secondary, #64748b)}.customer-layout{min-height:100vh;display:flex;position:relative;background:var(--cus-bg)}.customer-nav{position:absolute;top:calc(100% + 6px);right:0;width:260px;max-height:min(80vh,400px);z-index:100;background:var(--cus-surface);padding:var(--cus-spacing);box-shadow:var(--cus-shadow);display:flex;flex-direction:column;gap:var(--cus-spacing-sm);overflow-y:auto;border:1px solid var(--cus-border);border-radius:var(--cus-radius-lg);transform-origin:top right;transform:scale(0);opacity:0;visibility:hidden;transition:transform .2s ease,opacity .2s ease,visibility .2s ease}.customer-nav.mobile-open{transform:scale(1);opacity:1;visibility:visible}.customer-hamburger-wrapper{position:relative}.customer-nav-link{display:flex;align-items:center;gap:var(--cus-spacing-md);padding:var(--cus-spacing-md) var(--cus-spacing);background:none;border:none;text-align:left;cursor:pointer;border-radius:var(--cus-radius);color:var(--cus-text-secondary);transition:all .2s ease;font-size:1rem;font-weight:500;text-decoration:none}.customer-nav-link:hover{background:var(--cus-bg);color:var(--cus-text)}.customer-nav-link.active{background:var(--cus-accent);color:var(--cus-accent-fg)}.customer-nav-icon{font-size:1.1rem;flex-shrink:0;width:22px;display:flex;align-items:center;justify-content:center}.customer-nav-link.active .customer-nav-icon{color:var(--cus-accent-fg)}.customer-nav-label{flex:1;white-space:nowrap}.customer-nav-footer{margin-top:auto;padding-top:var(--cus-spacing-md);border-top:1px solid var(--cus-border);display:flex;flex-direction:column;gap:var(--cus-spacing-sm)}.customer-nav-user{display:flex;align-items:center;gap:var(--cus-spacing-sm)}.customer-nav-avatar{font-size:1.25rem;color:var(--cus-accent)}.customer-nav-username{font-weight:600;color:var(--cus-text);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-nav-logout{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;background:var(--cus-error);color:#fff;border:none;border-radius:var(--cus-radius);cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s ease;width:100%}.customer-nav-logout:hover{filter:brightness(1.1)}.customer-main-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--cus-spacing-lg, 1.5rem);gap:var(--cus-spacing-md);max-width:480px;margin-left:auto;margin-right:auto;width:100%}.customer-main-title{font-size:1.5rem;color:var(--cus-text);margin:0;font-weight:600}.customer-hamburger{flex-shrink:0;width:44px;height:44px;margin-right:1rem;padding:0;background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);box-shadow:var(--cus-shadow);color:var(--cus-text);font-size:1.25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.customer-hamburger:hover{background:var(--cus-bg)}.customer-nav-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:98;cursor:pointer}.customer-main{flex:1;padding:var(--cus-spacing-md, 1rem) var(--cus-spacing-lg);padding-top:var(--cus-spacing-md, 1rem);overflow-y:auto;background:var(--cus-bg);min-height:100vh}.customer-main-content{max-width:480px;margin-left:auto;margin-right:auto;width:100%}@media (max-width: 768px){.customer-main{padding:var(--cus-spacing);padding-top:var(--cus-spacing)}}@media (max-width: 480px){.customer-nav{max-height:min(85vh,360px)}}.cus-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--cus-spacing);background:var(--cus-bg)}.cus-login-box{width:100%;max-width:380px;background:var(--cus-surface);border-radius:var(--cus-radius-lg);padding:var(--cus-spacing-xl);box-shadow:var(--cus-shadow);border:1px solid var(--cus-border)}.cus-login-brand{text-align:center;margin-bottom:var(--cus-spacing-xl)}.cus-login-brand h1{font-size:1.5rem;color:var(--cus-text);margin:0 0 .25rem}.cus-login-subtitle{font-size:.9rem;color:var(--cus-text-secondary);margin:0}.cus-login-form{display:flex;flex-direction:column;gap:var(--cus-spacing-md)}.cus-form-group{display:flex;flex-direction:column;gap:.35rem}.cus-form-group label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--cus-text)}.cus-input-icon{color:var(--cus-text-secondary);font-size:1rem}.cus-form-group input{padding:.6rem .75rem;border:1px solid var(--cus-border);border-radius:var(--cus-radius);background:var(--cus-bg);color:var(--cus-text);font-size:1rem}.cus-form-group input:focus{outline:none;border-color:var(--cus-accent)}.cus-form-group input::placeholder{color:var(--cus-text-secondary)}.cus-error-message{display:flex;align-items:center;gap:.5rem;padding:.5rem;background:#ef444426;border-radius:var(--cus-radius);color:var(--cus-error);font-size:.9rem}.cus-error-icon{flex-shrink:0}.cus-login-button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:var(--cus-accent);color:var(--cus-accent-fg);border:none;border-radius:var(--cus-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.25rem}.cus-login-button:hover:not(:disabled){filter:brightness(1.1)}.cus-login-button:disabled{opacity:.8;cursor:not-allowed}.cus-spinner{animation:cus-spin .8s linear infinite}@keyframes cus-spin{to{transform:rotate(360deg)}}.cus-login-footer{margin-top:var(--cus-spacing-lg);display:flex;flex-direction:column;gap:.5rem;text-align:center}.cus-login-footer a{color:var(--cus-accent);text-decoration:none;font-size:.9rem}.cus-login-footer a:hover{text-decoration:underline}.cus-landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:var(--cus-spacing-xl);padding-bottom:var(--cus-spacing-lg);background:var(--cus-bg);text-align:center}.cus-landing-hero{margin-bottom:var(--cus-spacing-xl);max-width:480px}.cus-landing-title{font-size:1.75rem;color:var(--cus-text);margin:0 0 .5rem;font-weight:700}.cus-landing-tagline{font-size:1rem;color:var(--cus-text-secondary);margin:0 0 var(--cus-spacing-lg) 0}.cus-landing-actions{display:flex;flex-direction:column;gap:var(--cus-spacing-md);max-width:280px;width:100%;margin:0 auto}.cus-landing-btn{display:block;padding:.85rem 1.25rem;border-radius:var(--cus-radius);font-size:1rem;font-weight:600;text-decoration:none;transition:all .2s ease;text-align:center}.cus-landing-btn-sm{padding:.6rem 1rem;font-size:.9rem;display:inline-block}.cus-landing-btn-primary{background:var(--cus-accent);color:var(--cus-accent-fg);border:none}.cus-landing-btn-primary:hover{filter:brightness(1.1)}.cus-landing-btn-secondary{background:transparent;color:var(--cus-accent);border:2px solid var(--cus-accent)}.cus-landing-btn-secondary:hover{background:var(--cus-accent);color:var(--cus-accent-fg)}.cus-landing-logout-link{margin-top:var(--cus-spacing-sm);padding:0;background:none;border:none;font-size:.85rem;color:var(--cus-text-secondary);text-decoration:underline;cursor:pointer}.cus-landing-logout-link:hover{color:var(--cus-text)}.cus-landing-section{width:100%;max-width:640px;margin-bottom:var(--cus-spacing-xl)}.cus-landing-section-title{font-size:1.25rem;color:var(--cus-text);margin:0 0 var(--cus-spacing-sm) 0;font-weight:600}.cus-landing-section-sub{font-size:.9rem;color:var(--cus-text-secondary);margin:0 0 var(--cus-spacing-lg) 0}.cus-landing-section.cus-landing-dashboard{max-width:400px}.cus-landing-dashboard{background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius-lg);padding:var(--cus-spacing-lg)}.cus-landing-dashboard-loading{font-size:.9rem;color:var(--cus-text-secondary);margin:0 0 var(--cus-spacing-md) 0}.cus-landing-next-booking,.cus-landing-no-booking{margin-bottom:var(--cus-spacing-md)}.cus-landing-next-booking-label{font-size:.75rem;color:var(--cus-accent);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .25rem}.cus-landing-next-booking-store{font-size:1.1rem;font-weight:600;color:var(--cus-text);margin:0 0 .25rem}.cus-landing-next-booking-time,.cus-landing-no-booking p{font-size:.9rem;color:var(--cus-text-secondary);margin:0 0 var(--cus-spacing-md) 0}.cus-landing-footer{margin-top:auto;padding-top:var(--cus-spacing-xl)}.cus-landing-footer p{font-size:.85rem;color:var(--cus-text-secondary);margin:0}.cus-book{max-width:448px}.cus-book-title{font-size:1.5rem;color:var(--cus-text);margin:0 0 var(--cus-spacing-lg) 0}.cus-book-store-box,.cus-book-seat-pref-box,.cus-book-duration-box{padding:var(--cus-spacing-sm) var(--cus-spacing-md);border:1px solid var(--cus-border);border-radius:var(--cus-radius);margin-bottom:var(--cus-spacing-lg);background:var(--cus-surface)}.cus-book-field{display:flex;flex-direction:column;gap:.35rem}.cus-book-field label{font-size:1.1rem;font-weight:700;color:var(--cus-text)}.cus-book-store-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.cus-book-store-btn{padding:.5rem 1rem;border:1px solid var(--cus-border);border-radius:var(--cus-radius);background:var(--cus-surface);color:var(--cus-text);font-size:.95rem;cursor:pointer;transition:border-color .15s,background .15s}.cus-book-store-btn:hover{border-color:var(--cus-accent)}.cus-book-store-btn--selected{border-color:var(--cus-accent);background:var(--cus-accent);color:#fff}.cus-book-hint-inline{font-size:.8rem;color:var(--cus-text-secondary);margin:.25rem 0 0}.cus-book-start-time-box{padding:var(--cus-spacing-sm) var(--cus-spacing-md);border:1px solid var(--cus-border);border-radius:var(--cus-radius);margin-bottom:var(--cus-spacing-lg);background:var(--cus-surface)}.cus-book-start-time{margin-bottom:0}.cus-book-start-time-label{display:block;font-size:1.1rem;font-weight:700;color:var(--cus-text);margin-bottom:.35rem}.cus-book-start-time-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.cus-book-start-time-btn{padding:.5rem 1rem;border:1px solid var(--cus-border);border-radius:var(--cus-radius);background:var(--cus-surface);color:var(--cus-text);font-size:.95rem;cursor:pointer;transition:border-color .15s,background .15s}.cus-book-start-time-btn:hover{border-color:var(--cus-accent)}.cus-book-start-time-btn--selected{border-color:var(--cus-accent);background:var(--cus-accent);color:#fff}.cus-book-section-title{font-size:1.1rem;color:var(--cus-text);margin:0 0 var(--cus-spacing-md) 0}.cus-book-select,.cus-book-input{padding:.6rem .75rem;border:1px solid var(--cus-border);border-radius:var(--cus-radius);background:var(--cus-surface);color:var(--cus-text);font-size:1rem;min-width:160px}.cus-book-select:focus,.cus-book-input:focus{outline:none;border-color:var(--cus-accent)}.cus-book-slots{margin-bottom:var(--cus-spacing-lg)}.cus-book-slots h2{font-size:1.1rem;color:var(--cus-text);margin:0 0 var(--cus-spacing-md) 0}.cus-book-slot-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.cus-book-slot-item{padding:.5rem .75rem;background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);color:var(--cus-text);font-size:.95rem}.cus-book-message,.cus-book-error{margin:.5rem 0;font-size:.95rem}.cus-book-error{color:var(--cus-error)}.cus-book-hint{font-size:.85rem;color:var(--cus-text-secondary);margin:0}.cus-book-view-seats-btn{display:block;width:100%;margin-top:var(--cus-spacing-lg);padding:.75rem 1rem;font-size:1rem;font-weight:600;color:var(--cus-accent-fg, #fff);background:var(--cus-accent);border:none;border-radius:var(--cus-radius);cursor:pointer;transition:filter .2s ease}.cus-book-view-seats-btn:hover{filter:brightness(1.1)}.cus-bookable-seats{max-width:448px;display:flex;flex-direction:column;gap:var(--cus-spacing-lg)}.cus-bookable-seats-meta-block{display:flex;flex-wrap:wrap;gap:var(--cus-spacing-sm) var(--cus-spacing-md);padding:var(--cus-spacing-md);background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);font-size:.9rem;color:var(--cus-text-secondary)}.cus-bookable-seats-meta-block span:not(:last-child):after{content:" · ";margin-left:.25rem;color:var(--cus-text-secondary)}.cus-bookable-seats-empty{margin:0;padding:var(--cus-spacing-md);font-size:1rem;font-weight:600;color:var(--cus-text);line-height:1.5}.cus-bookable-seats-alternatives{display:flex;flex-direction:column;gap:var(--cus-spacing-md)}.cus-bookable-seats-alt-card{padding:var(--cus-spacing-md);background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);display:flex;flex-direction:column;gap:var(--cus-spacing-md)}.cus-bookable-seats-alt-card-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.cus-bookable-seats-alt-after-btn{font-size:.9rem;color:var(--cus-text-secondary);margin-left:.35rem}.cus-bookable-seats-alt-label{font-size:.9rem;color:var(--cus-text-secondary);margin-right:.25rem}.cus-bookable-seats-alt-heading{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:var(--cus-text);line-height:1.4}.cus-bookable-seats-alt-btn{padding:.5rem 1rem;font-size:.95rem;color:var(--cus-text);background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);cursor:pointer;transition:border-color .15s,background .15s}.cus-bookable-seats-alt-btn:hover{border-color:var(--cus-accent)}.cus-bookable-seats-alt-btn--selected{border-color:var(--cus-accent);background:var(--cus-accent);color:#fff}.cus-bookable-seats-alt-card-footer{display:flex;justify-content:flex-end}.cus-bookable-seats-view-seats-btn{padding:.5rem 1rem;font-size:.9rem;font-weight:500;color:var(--cus-accent-fg);background:var(--cus-accent);border:none;border-radius:var(--cus-radius);cursor:pointer}.cus-bookable-seats-view-seats-btn:hover:not(:disabled){filter:brightness(1.1)}.cus-bookable-seats-view-seats-btn:disabled{opacity:.5;cursor:not-allowed}.cus-bookable-seats-sections{display:flex;flex-direction:column;gap:1.5rem}.cus-bookable-seats-section{display:flex;flex-direction:column;gap:.75rem}.cus-bookable-seats-section-header{margin:0;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem;font-size:1.125rem;font-weight:600;color:var(--cus-text)}.cus-bookable-seats-count{font-weight:500;font-size:.9rem;color:var(--cus-text-secondary)}.cus-bookable-seat-list{display:flex;flex-direction:column;gap:var(--cus-spacing-md)}.cus-bookable-seat-card{padding:var(--cus-spacing-md);border:2px solid var(--cus-border);border-radius:var(--cus-radius);background:var(--cus-surface);cursor:pointer;text-align:left;transition:border-color .2s,background .2s}.cus-bookable-seat-card:hover{border-color:var(--cus-accent);background:#84cc1614}.cus-bookable-seat-card--selected{border-color:var(--cus-accent);background:#84cc161f}.cus-bookable-seat-card-title{margin:0 0 .35rem;font-size:1rem;font-weight:600;color:var(--cus-text)}.cus-bookable-seat-card-nums,.cus-bookable-seat-card-time{margin:.25rem 0 0;font-size:.9rem;color:var(--cus-text-secondary)}.cus-bookable-seats-more{align-self:flex-start;padding:.35rem .75rem;font-size:.9rem;color:var(--cus-accent);background:transparent;border:none;cursor:pointer;text-decoration:underline}.cus-bookable-seats-more:hover{color:var(--cus-text)}.cus-bookable-seats-footer{display:flex;gap:var(--cus-spacing-md);margin-top:var(--cus-spacing);padding-top:var(--cus-spacing);border-top:1px solid var(--cus-border)}.cus-bookable-seats-back{padding:.6rem 1.2rem;font-size:.95rem;color:var(--cus-accent);background:transparent;border:1px solid var(--cus-accent);border-radius:var(--cus-radius);cursor:pointer}.cus-bookable-seats-back:hover{background:var(--cus-accent);color:var(--cus-accent-fg)}.cus-bookable-seats-next{flex:1;padding:.6rem 1.2rem;font-size:.95rem;font-weight:600;color:var(--cus-accent-fg);background:var(--cus-accent);border:none;border-radius:var(--cus-radius);cursor:pointer}.cus-bookable-seats-next:hover:not(:disabled){filter:brightness(1.1)}.cus-bookable-seats-next:disabled{opacity:.5;cursor:not-allowed}.cus-bookable-seats-message,.cus-bookable-seats-error{margin:.5rem 0;font-size:.95rem}.cus-bookable-seats-error{color:var(--cus-error)}.cus-book-confirm{max-width:448px;display:flex;flex-direction:column;gap:var(--cus-spacing-lg)}.cus-book-confirm-hint{margin:0 0 .35rem;font-size:1.125rem;font-weight:500;color:var(--cus-text)}.cus-book-confirm-message{margin:.5rem 0;font-size:.95rem;color:var(--cus-text-secondary)}.cus-book-confirm-card{padding:var(--cus-spacing-md);background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);display:flex;flex-direction:column;gap:.75rem}.cus-book-confirm-card-heading{margin:.5rem 0 .25rem;font-size:1.125rem;font-weight:700;color:var(--cus-text)}.cus-book-confirm-card-heading:first-child{margin-top:0}.cus-book-confirm-row{margin:0;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.25rem 1rem;font-size:.95rem}.cus-book-confirm-label{color:var(--cus-text-secondary);font-weight:500}.cus-book-confirm-notice{padding:var(--cus-spacing-md);background:#84cc1614;border:1px solid var(--cus-accent);border-radius:var(--cus-radius);font-size:.9rem;color:var(--cus-text-secondary);line-height:1.5}.cus-book-confirm-notice p{margin:0}.cus-book-confirm-error{margin:0;padding:var(--cus-spacing-sm) var(--cus-spacing-md);font-size:.95rem;color:var(--cus-error);background:#dc262614;border-radius:var(--cus-radius)}.cus-book-confirm-footer{display:flex;gap:var(--cus-spacing-md);margin-top:var(--cus-spacing);padding-top:var(--cus-spacing);border-top:1px solid var(--cus-border)}.cus-book-confirm-back{padding:.6rem 1.2rem;font-size:.95rem;color:var(--cus-accent);background:transparent;border:1px solid var(--cus-accent);border-radius:var(--cus-radius);cursor:pointer}.cus-book-confirm-back:hover:not(:disabled){background:var(--cus-accent);color:var(--cus-accent-fg)}.cus-book-confirm-back:disabled{opacity:.6;cursor:not-allowed}.cus-book-confirm-submit{flex:1;padding:.6rem 1.2rem;font-size:.95rem;font-weight:600;color:var(--cus-accent-fg);background:var(--cus-accent);border:none;border-radius:var(--cus-radius);cursor:pointer}.cus-book-confirm-submit:hover:not(:disabled){filter:brightness(1.1)}.cus-book-confirm-submit:disabled{opacity:.7;cursor:not-allowed}.cus-book-confirm-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.cus-book-confirm-modal{max-width:90%;width:360px;padding:var(--cus-spacing-lg);background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);box-shadow:0 4px 20px #00000026}.cus-book-confirm-modal-message{margin:0 0 var(--cus-spacing-md);font-size:1rem;line-height:1.5;color:var(--cus-text)}.cus-book-confirm-modal-btn{display:block;width:100%;padding:.6rem 1.2rem;font-size:.95rem;font-weight:600;color:var(--cus-accent-fg);background:var(--cus-accent);border:none;border-radius:var(--cus-radius);cursor:pointer}.cus-book-confirm-modal-btn:hover{filter:brightness(1.1)}.cus-mybookings{max-width:560px}.cus-mybookings-tabs{display:flex;gap:.25rem;margin-bottom:var(--cus-spacing-lg);border-bottom:1px solid var(--cus-border)}.cus-mybookings-tab{padding:.5rem 1rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;color:var(--cus-text-secondary);font-size:.95rem;cursor:pointer}.cus-mybookings-tab:hover{color:var(--cus-text)}.cus-mybookings-tab.active{color:var(--cus-primary, #2563eb);border-bottom-color:var(--cus-primary, #2563eb);font-weight:600}.cus-mybookings-item{display:flex;align-items:center;gap:.5rem}.cus-mybookings-item-link{flex:1;text-decoration:none;color:inherit;min-width:0}.cus-mybookings-cancel{flex-shrink:0;width:3rem;height:3rem;padding:.25rem;background:transparent;border:1px solid var(--cus-border);border-radius:var(--cus-radius);color:var(--cus-text-secondary);cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;line-height:1.2;text-align:center}.cus-mybookings-cancel-text{display:block}.cus-mybookings-cancel:hover:not(:disabled){color:var(--cus-error, #dc2626);border-color:var(--cus-error, #dc2626)}.cus-mybookings-cancel:disabled{opacity:.6;cursor:not-allowed}.cus-mybookings-title{font-size:1.5rem;color:var(--cus-text);margin:0 0 var(--cus-spacing-lg) 0}.cus-mybookings-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--cus-spacing-md)}.cus-mybookings-item{padding:var(--cus-spacing-md);background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius)}.cus-mybookings-row{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.35rem;gap:.5rem}.cus-mybookings-fields{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem}.cus-mybookings-fields--aligned{display:grid;grid-template-columns:minmax(4.5em,auto) minmax(7em,auto) minmax(4em,auto) 1fr;grid-template-rows:auto auto auto;gap:.4rem .75rem;align-items:baseline}.cus-mybookings-field-row{display:grid;grid-template-columns:minmax(4.5em,auto) 1fr auto;align-items:baseline;gap:0 .75rem}.cus-mybookings-field-row--two-col{grid-template-columns:minmax(4.5em,auto) 1fr}.cus-mybookings-field-row .cus-mybookings-status{font-size:.85rem;color:var(--cus-text-secondary);grid-column:3}.cus-mybookings-item-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.cus-mybookings-status-wrap{display:inline-flex;align-items:center;gap:.35rem;font-size:.9rem;font-weight:500}.cus-mybookings-status-wrap--active{color:var(--cus-success, #16a34a)}.cus-mybookings-status-wrap--cancelled{color:var(--cus-error, #dc2626)}.cus-mybookings-status-wrap--completed{color:var(--cus-success, #16a34a)}.cus-mybookings-status-wrap--noshow{color:#ea580c}.cus-mybookings-status-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.cus-mybookings-status-wrap--active .cus-mybookings-status-dot{background:var(--cus-success, #16a34a)}.cus-mybookings-status-wrap--cancelled .cus-mybookings-status-dot{background:var(--cus-error, #dc2626)}.cus-mybookings-status-wrap--completed .cus-mybookings-status-dot{background:var(--cus-success, #16a34a)}.cus-mybookings-status-wrap--noshow .cus-mybookings-status-dot{background:#ea580c}.cus-mybookings-two-col{display:grid;grid-template-columns:minmax(4.5em,auto) minmax(7em,auto) minmax(4em,auto) 1fr;align-items:baseline;gap:0 .75rem}.cus-mybookings-label{color:var(--cus-text-secondary);font-size:1rem;font-weight:600}.cus-mybookings-value{color:var(--cus-text)}.cus-mybookings-status{font-size:.85rem;color:var(--cus-text-secondary);flex-shrink:0}.cus-mybookings-message,.cus-mybookings-error{margin:.5rem 0;font-size:.95rem}.cus-mybookings-error{color:var(--cus-error)}@media (max-width: 480px){.cus-mybookings-fields--aligned{grid-template-columns:minmax(5.5em,auto) 1fr;grid-template-rows:repeat(6,auto);gap:.35rem .75rem;align-items:baseline}.cus-mybookings-value{min-width:0;overflow-wrap:break-word;word-break:normal}.cus-mybookings-item{gap:.5rem;align-items:flex-start}.cus-mybookings-item-right{flex-shrink:0;gap:.5rem}}.cus-mybookings-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.cus-mybookings-modal{max-width:90%;width:360px;padding:var(--cus-spacing-lg);background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);box-shadow:0 4px 20px #00000026}.cus-mybookings-modal-message{margin:0 0 var(--cus-spacing-md);font-size:1rem;line-height:1.5;color:var(--cus-text)}.cus-mybookings-modal-footer{display:flex;gap:.75rem;justify-content:flex-end}.cus-mybookings-modal-btn{padding:.6rem 1.2rem;font-size:.95rem;font-weight:600;border-radius:var(--cus-radius);cursor:pointer}.cus-mybookings-modal-btn--secondary{color:var(--cus-text-secondary);background:transparent;border:1px solid var(--cus-border)}.cus-mybookings-modal-btn--secondary:hover{color:var(--cus-text);border-color:var(--cus-text-secondary)}.cus-mybookings-modal-btn--primary{color:var(--cus-accent-fg);background:var(--cus-accent);border:none}.cus-mybookings-modal-btn--primary:hover:not(:disabled){filter:brightness(1.1)}.cus-mybookings-modal-btn--primary:disabled{opacity:.7;cursor:not-allowed}.cus-booking-detail{max-width:560px}.cus-booking-detail-header{margin-bottom:var(--cus-spacing-lg)}.cus-booking-detail-back{display:inline-block;color:var(--cus-primary, #2563eb);text-decoration:none;font-size:.95rem;margin-bottom:.5rem}.cus-booking-detail-back:hover{text-decoration:underline}.cus-booking-detail-uid{font-size:.85rem;color:var(--cus-text-secondary)}.cus-booking-detail-section{margin-bottom:var(--cus-spacing-xl)}.cus-booking-detail-section-title{font-size:1.1rem;font-weight:600;color:var(--cus-text);margin:0 0 var(--cus-spacing-md) 0;padding-bottom:.35rem;border-bottom:1px solid var(--cus-border)}.cus-booking-detail-dl{display:grid;grid-template-columns:auto 1fr;gap:.35rem 1.5rem;margin:0}.cus-booking-detail-dl dt{color:var(--cus-text-secondary);font-size:.9rem}.cus-booking-detail-dl dd{margin:0;font-size:.95rem}.cus-booking-detail-changes{list-style:none;padding:0;margin:0}.cus-booking-detail-change{padding:var(--cus-spacing-md);background:var(--cus-surface);border:1px solid var(--cus-border);border-radius:var(--cus-radius);margin-bottom:.5rem}.cus-booking-detail-change-meta{font-size:.8rem;color:var(--cus-text-secondary);margin-bottom:.25rem}.cus-booking-detail-change-summary{font-size:.95rem;color:var(--cus-text)}.cus-booking-detail-message,.cus-booking-detail-error{margin:.5rem 0;font-size:.95rem}.cus-booking-detail-error{color:var(--cus-error)}.cus-account{max-width:400px}.cus-account-title{font-size:1.5rem;color:var(--cus-text);margin:0 0 var(--cus-spacing-lg) 0}.cus-account-info{margin-bottom:var(--cus-spacing-xl);padding:var(--cus-spacing-md);background:var(--cus-surface);border-radius:var(--cus-radius);border:1px solid var(--cus-border)}.cus-account-info p{margin:.35rem 0;font-size:.95rem;color:var(--cus-text)}.cus-account-info strong{margin-right:.5rem;color:var(--cus-text-secondary)}.cus-account-preferred{margin-bottom:var(--cus-spacing-xl)}.cus-account-preferred h2{font-size:1.1rem;color:var(--cus-text);margin:0 0 var(--cus-spacing-sm) 0}.cus-account-preferred-desc{font-size:.9rem;color:var(--cus-text-secondary);margin:0 0 var(--cus-spacing-md) 0}.cus-account-store-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--cus-spacing-md)}.cus-account-store-btn{padding:.5rem 1rem;border:1px solid var(--cus-border);border-radius:var(--cus-radius);background:var(--cus-surface);color:var(--cus-text);font-size:.95rem;cursor:pointer;transition:border-color .15s,background .15s}.cus-account-store-btn:hover{border-color:var(--cus-accent)}.cus-account-store-btn--selected{border-color:var(--cus-accent);background:var(--cus-accent);color:#fff}.cus-account-password h2{font-size:1.1rem;color:var(--cus-text);margin:0 0 var(--cus-spacing-md) 0}.cus-account-form .cus-form-group{margin-bottom:var(--cus-spacing-md)}.cus-account-form .cus-form-group label{display:block;font-size:.9rem;font-weight:500;color:var(--cus-text);margin-bottom:.35rem}.cus-account-form .cus-form-group input{width:100%;padding:.6rem .75rem;border:1px solid var(--cus-border);border-radius:var(--cus-radius);background:var(--cus-bg);color:var(--cus-text);font-size:1rem}.cus-account-form .cus-form-group input:focus{outline:none;border-color:var(--cus-accent)}.cus-account-error{color:var(--cus-error);font-size:.9rem;margin-bottom:var(--cus-spacing-sm)}.cus-account-success{color:var(--cus-accent);font-size:.9rem;margin-bottom:var(--cus-spacing-sm)}.cus-account-submit{padding:.65rem 1rem;background:var(--cus-accent);color:var(--cus-accent-fg);border:none;border-radius:var(--cus-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.25rem}.cus-account-submit:hover:not(:disabled){filter:brightness(1.1)}.cus-account-submit:disabled{opacity:.8;cursor:not-allowed}.cus-register-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--cus-spacing);background:var(--cus-bg)}.cus-register-box{width:100%;max-width:400px;background:var(--cus-surface);border-radius:var(--cus-radius-lg);padding:var(--cus-spacing-xl);box-shadow:var(--cus-shadow);border:1px solid var(--cus-border)}.cus-register-brand{text-align:center;margin-bottom:var(--cus-spacing-xl)}.cus-register-brand h1{font-size:1.5rem;color:var(--cus-text);margin:0 0 .25rem}.cus-register-subtitle{font-size:.9rem;color:var(--cus-text-secondary);margin:0}.cus-register-form,.cus-register-form-section{display:flex;flex-direction:column;gap:var(--cus-spacing-md)}.cus-register-form-divider{height:0;border:none;border-top:1px solid var(--cus-border);margin:.25rem 0;flex-shrink:0}.cus-register-form-section-optional{padding-top:0}.cus-register-optional-title{font-size:.85rem;color:var(--cus-text-secondary);margin:0 0 .25rem;font-weight:500}.cus-register-form-section-optional .cus-form-group label{font-size:.85rem;font-weight:400;color:var(--cus-text-secondary)}.cus-register-form-section-optional .cus-form-group input{font-size:.95rem;padding:.5rem .75rem}.cus-register-form .cus-form-group label{color:var(--cus-text);font-size:.9rem;font-weight:500}.cus-register-form .cus-form-group input{padding:.6rem .75rem;border:1px solid var(--cus-border);border-radius:var(--cus-radius);background:var(--cus-bg);color:var(--cus-text);font-size:1rem}.cus-register-form .cus-form-group input:focus{outline:none;border-color:var(--cus-accent)}.cus-register-button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;background:var(--cus-accent);color:var(--cus-accent-fg);border:none;border-radius:var(--cus-radius);font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-top:.25rem}.cus-register-button:hover:not(:disabled){filter:brightness(1.1)}.cus-register-button:disabled{opacity:.8;cursor:not-allowed}.cus-register-footer{margin-top:var(--cus-spacing-lg);display:flex;flex-direction:column;gap:.5rem;text-align:center}.cus-register-footer a{color:var(--cus-accent);text-decoration:none;font-size:.9rem}.cus-register-footer a:hover{text-decoration:underline}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--cus-bg);color:var(--cus-text-secondary);font-size:1rem}:root{--cus-bg: #0f1419;--cus-surface: #1a2332;--cus-border: #2d3a4d;--cus-text: #e6edf3;--cus-text-secondary: #8b9cb3;--cus-accent: #84cc16;--cus-accent-fg: #0f1419;--cus-error: #f87171;--cus-shadow: 0 4px 12px rgba(0, 0, 0, .3);--cus-radius: 8px;--cus-radius-lg: 12px;--cus-spacing: 1rem;--cus-spacing-sm: .5rem;--cus-spacing-md: .75rem;--cus-spacing-lg: 1.5rem;--cus-spacing-xl: 2rem}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--cus-bg);color:var(--cus-text)}#root{min-height:100vh}a{color:inherit}button,input,select,textarea{font-family:inherit}
