*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1e293b;background:#f8fafc;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}a{color:#2563eb;text-decoration:none}a:hover{text-decoration:underline}.auth-container{background:#f1f5f9;justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:#fff;border-radius:12px;width:100%;max-width:380px;padding:32px;box-shadow:0 4px 24px #00000014}.auth-card h2{text-align:center;color:#1e293b;margin:0 0 24px;font-size:24px;font-weight:700}.auth-tabs{border-bottom:1px solid #e2e8f0;margin-bottom:20px;display:flex}.tab{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:10px;font-size:14px;font-weight:500;transition:all .15s}.tab.active{color:#2563eb;border-bottom-color:#2563eb}.auth-card form{flex-direction:column;gap:12px;display:flex}.auth-card input{border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:12px;font-size:14px;transition:border-color .15s}.auth-card input:focus{border-color:#2563eb}.auth-error{color:#dc2626;background:#fef2f2;border-radius:8px;padding:10px;font-size:13px}.seat-map{--sm-panel:#fff;--sm-ink:#29241c;--sm-muted:#7c7263;--sm-line:#dcd3c3;--sm-bg:#f2eee6;--sm-deck:#fde4c6;--sm-deck-edge:#ebc89c;--sm-water:#74bfe3;--sm-water-deep:#57a9d2;--sm-green:#aecba0;--sm-roof:#4c4741;--sm-roof-glass:#b9c6cc;--sm-road:#cfc8bc;--sm-seat-free-fill:#fff;--sm-seat-free-stroke:#93876f;--sm-booked:#dfa23c;--sm-visit:#3e86c7;--sm-abono:#9c6fb8;--sm-selected:#1e293b;--sm-umbrella:#d6b68a8c;max-width:860px;margin:0 auto}.seat-map-legend{flex-wrap:wrap;justify-content:center;gap:8px 16px;margin-bottom:12px;display:flex}.seat-map-legend-row{align-items:center;gap:8px;font-size:13px;display:flex}.seat-map-legend-lbl{color:var(--sm-ink)}.seat-map-legend-cnt{color:var(--sm-muted);font-variant-numeric:tabular-nums}.seat-map-chip{border:1.5px solid var(--sm-seat-free-stroke);background:var(--sm-seat-free-fill);border-radius:3px;flex:none;width:22px;height:12px}.seat-map-chip.booked{background:var(--sm-booked);border-color:var(--sm-booked)}.seat-map-chip.visit{background:var(--sm-visit);border-color:var(--sm-visit)}.seat-map-chip.abono{background:var(--sm-abono);border-color:var(--sm-abono)}.seat-map-chip.until{background:repeating-linear-gradient(-45deg, var(--sm-seat-free-fill) 0 3px, var(--sm-booked) 3px 5px);border-color:var(--sm-booked)}.seat-map-card{background:var(--sm-panel);border:1px solid var(--sm-line);border-radius:10px;padding:10px;position:relative}.seat-map-scroll{-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom;overflow:auto}.seat-map-svg{width:100%;min-width:560px;height:auto;display:block}.seat-cell{--cell-fill:var(--sm-seat-free-fill);--cell-stroke:var(--sm-seat-free-stroke)}.seat-cell.until{--cell-stroke:var(--sm-booked)}.seat-cell.booked{--cell-fill:var(--sm-booked);--cell-stroke:var(--sm-booked)}.seat-cell.visit{--cell-fill:var(--sm-visit);--cell-stroke:var(--sm-visit)}.seat-cell.abono{--cell-fill:var(--sm-abono);--cell-stroke:var(--sm-abono)}.seat-cell rect{fill:var(--cell-fill);stroke:var(--cell-stroke);stroke-width:1.5px;transition:stroke-width 80ms}.seat-cell.until rect{stroke-dasharray:3 2.5}.seat-cell line{stroke:var(--cell-stroke);stroke-width:1px}.seat-cell.selected rect{stroke:var(--sm-selected);stroke-width:2.5px}.seat-cell.clickable{cursor:pointer}.seat-cell.clickable:hover rect{stroke-width:2.5px}@media (prefers-reduced-motion:reduce){.seat-cell rect{transition:none}}.seat-map-zone-key{fill:var(--sm-muted);pointer-events:none;font-size:13px;font-weight:650}.seat-map-tip{pointer-events:none;background:var(--sm-ink);color:var(--sm-bg);white-space:nowrap;opacity:0;z-index:3;border-radius:6px;padding:5px 9px;font-size:12.5px;line-height:1.35;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.seat-map-tip.on{opacity:1}.seat-map-fallback{color:var(--sm-muted);flex-direction:column;gap:4px;margin-top:12px;font-size:13px;display:flex}.seat-map-fallback-title{color:var(--sm-ink);font-weight:600}.seat-map-full{text-align:center;background:#fefce8;border:1px solid #fde68a;border-radius:8px;margin-top:16px;padding:20px}.seat-map-full p{color:#854d0e;margin:0 0 12px;font-weight:500}.seat-map-status{text-align:center;color:var(--sm-muted,#94a3b8);padding:48px;font-size:16px}.slot-picker{flex-wrap:wrap;align-items:flex-end;gap:20px;padding:16px 0;display:flex}.picker-group{flex-direction:column;gap:6px;display:flex}.picker-group label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.picker-group input[type=date]{border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:10px 12px;font-size:14px}.picker-group input[type=date]:focus{border-color:#2563eb}.slot-buttons{gap:8px;display:flex}.slot-btn{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;transition:all .15s;display:flex}.slot-btn:hover{border-color:#2563eb}.slot-btn.active{color:#2563eb;background:#eff6ff;border-color:#2563eb}.slot-name{font-size:13px;font-weight:600}.slot-time{color:#94a3b8;font-size:11px}.slot-btn.active .slot-time{color:#60a5fa}.picker-hint{color:#94a3b8;margin:0;font-size:13px}.booking-panel{z-index:100;background:#fff;flex-direction:column;gap:20px;width:340px;padding:24px;animation:.2s slideIn;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 24px #0000001a}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.booking-panel-header{justify-content:space-between;align-items:center;display:flex}.booking-panel-header h3{margin:0;font-size:20px;font-weight:700}.close-btn{cursor:pointer;color:#94a3b8;background:0 0;border:none;padding:4px 8px;font-size:24px}.close-btn:hover{color:#1e293b}.booking-info{flex-direction:column;gap:12px;display:flex}.info-row{color:#64748b;justify-content:space-between;font-size:14px;display:flex}.info-value{color:#1e293b;font-weight:600}.info-value.price{color:#059669;font-size:16px}.booking-error{color:#dc2626;background:#fef2f2;border-radius:8px;padding:12px;font-size:13px}.booking-actions{flex-direction:column;gap:12px;display:flex}.booking-status{color:#854d0e;text-align:center;background:#fefce8;border-radius:8px;padding:12px;font-size:13px;font-weight:500}.booking-status.confirmed{color:#166534;background:#f0fdf4}.btn{cursor:pointer;text-align:center;border:none;border-radius:8px;padding:12px 16px;font-size:14px;font-weight:600;text-decoration:none;transition:all .15s}.btn-danger{color:#dc2626;background:#fff;border:1px solid #fecaca}.btn-danger:hover:not(:disabled){background:#fef2f2}.home-page{background:#f8fafc;min-height:100vh}.app-header{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.app-header h1{color:#1e293b;margin:0;font-size:20px;font-weight:700}.logout-btn{cursor:pointer;color:#64748b;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:8px 16px;font-size:13px;transition:all .15s}.logout-btn:hover{color:#1e293b;background:#f1f5f9}.app-main{max-width:900px;margin:0 auto;padding:24px}.admin-page{background:#f8fafc;min-height:100vh}.admin-header{background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:16px;padding:16px 24px;display:flex}.admin-header h1{margin:0;font-size:20px}.back-btn{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:6px 12px;font-size:13px}.back-btn:hover{background:#f1f5f9}.admin-tabs{background:#fff;border-bottom:1px solid #e2e8f0;gap:0;padding:0 24px;display:flex}.admin-tabs button{cursor:pointer;color:#94a3b8;background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 20px;font-size:14px;font-weight:500}.admin-tabs button.active{color:#2563eb;border-bottom-color:#2563eb}.admin-content{max-width:1000px;margin:0 auto;padding:24px}.panel-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.panel-card h3{border-bottom:1px solid #e2e8f0;margin:0;padding:16px;font-size:16px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid #f1f5f9;padding:10px 16px}th{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.status-badge{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.status-reserved{color:#854d0e;background:#fefce8}.status-confirmed{color:#166534;background:#f0fdf4}.status-completed{color:#1e40af;background:#eff6ff}.status-expired{color:#64748b;background:#f1f5f9}.status-cancelled{color:#dc2626;background:#fef2f2}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;padding:16px;display:grid}.stat-card{border:1px solid #e2e8f0;border-radius:8px;padding:16px}.stat-card .value{color:#1e293b;font-size:28px;font-weight:700}.stat-card .label{color:#64748b;margin-top:4px;font-size:12px}.event-list{flex-direction:column;gap:8px;padding:16px;display:flex}.event-item{align-items:center;gap:12px;font-size:13px;display:flex}.event-type{min-width:100px;font-weight:600}.event-time{color:#94a3b8;font-size:12px}.filters{flex-wrap:wrap;gap:12px;padding:16px;display:flex}.filters input,.filters select{border:1px solid #e2e8f0;border-radius:6px;padding:8px 12px;font-size:13px}.bar-chart{align-items:flex-end;gap:3px;height:180px;padding:16px;display:flex}.bar-col{flex-direction:column;flex:1;align-items:center;min-width:0;height:100%;display:flex}.bar-value{color:#64748b;height:14px;font-size:10px;line-height:14px}.bar-track{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.bar-fill{background:#3b82f6;border-radius:3px 3px 0 0;width:70%;min-height:0;transition:height .2s}.bar-label{color:#94a3b8;margin-top:4px;font-size:10px}.occ-summary{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;padding:0 16px 16px;display:grid}.occ-summary>div{flex-direction:column;gap:2px;display:flex}.occ-k{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:11px}.occ-v{color:#1e293b;font-size:15px;font-weight:600}.pay-methods{flex-wrap:wrap;gap:8px;padding:12px 16px 4px;display:flex}.method-chip{border:1px solid #e2e8f0;border-radius:999px;padding:4px 10px;font-size:12px}.method-chip.reg{color:#166534;background:#f0fdf4;border-color:#bbf7d0}.method-chip.noreg{color:#64748b;background:#f8fafc}.debt-lines{flex-direction:column;gap:4px;padding:8px 16px 16px;font-size:13px;display:flex}.cashier-page{background:#f8fafc;min-height:100vh}.cashier-header{color:#fff;background:#1e293b;align-items:center;gap:16px;padding:16px 24px;display:flex}.cashier-header h1{margin:0;font-size:20px}.cashier-header .back-btn{color:#fff;border-color:#475569}.cashier-header .back-btn:hover{background:#334155}.cashier-layout{grid-template-columns:1fr 340px;gap:0;min-height:calc(100vh - 56px);display:grid}.cashier-matrix{padding:24px;overflow:auto}.cashier-panel{background:#fff;border-left:1px solid #e2e8f0;flex-direction:column;gap:16px;padding:24px;display:flex}.cashier-panel h3{margin:0;font-size:20px;font-weight:700}.cashier-empty{color:#94a3b8;justify-content:center;align-items:center;height:100%;font-size:16px;display:flex}.cashier-info{flex-direction:column;gap:10px;display:flex}.cashier-info .info-row{color:#64748b;justify-content:space-between;font-size:14px;display:flex}.cashier-info .info-row span:last-child{color:#1e293b;font-weight:600}.cashier-info .price{color:#059669!important;font-size:18px!important}.cashier-form{flex-direction:column;gap:10px;display:flex}.cashier-form label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.cashier-form input[type=text],.cashier-form input[type=tel]{border:1px solid #e2e8f0;border-radius:8px;outline:none;padding:10px 12px;font-size:14px}.cashier-form input:focus{border-color:#2563eb}.payment-options{gap:8px;display:flex}.radio-option{text-align:center;cursor:pointer;border:1px solid #e2e8f0;border-radius:8px;flex:1;padding:10px;font-size:14px;font-weight:500;transition:all .15s}.radio-option.active{color:#2563eb;background:#eff6ff;border-color:#2563eb}.radio-option input{display:none}.cashier-error{color:#dc2626;background:#fef2f2;border-radius:8px;padding:10px;font-size:13px}.cashier-success{text-align:center;padding:32px 0}.cashier-success h3{color:#166534}.print-only{display:none}@media print{.no-print,.cashier-header,.cashier-matrix{display:none!important}.print-only{text-align:center;padding:24px;display:block!important}.print-only img{margin:16px auto;display:block}.cashier-panel{box-shadow:none!important;border:none!important}}.entry-page{background:#f8fafc;min-height:100vh}.entry-header{color:#fff;background:#1e293b;align-items:center;gap:16px;padding:16px 24px;display:flex}.entry-header h1{flex:1;margin:0;font-size:20px}.entry-header .back-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #475569;border-radius:6px;padding:6px 12px;font-size:13px}.entry-header .back-btn:hover{background:#334155}.entry-steps{justify-content:center;gap:8px;padding:20px 16px 4px;display:flex}.entry-steps-dot{background:#e2e8f0;border-radius:3px;width:28px;height:6px;transition:background .2s}.entry-steps-dot.active{background:#2563eb}.entry-steps-dot.done{background:#22c55e}.entry-body{justify-content:center;padding:24px 16px 48px;display:flex}.entry-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;gap:10px;width:100%;max-width:420px;padding:24px;display:flex;box-shadow:0 1px 3px #0f172a0f}.entry-step-title{color:#1e293b;margin:0 0 4px;font-size:20px;font-weight:700}.entry-sub{color:#64748b;margin:0 0 8px;font-size:14px}.entry-label{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:12px;font-weight:600}.entry-input{border:1px solid #e2e8f0;border-radius:8px;outline:none;width:100%;padding:12px;font-size:16px}.entry-input:focus{border-color:#2563eb}.entry-input:disabled{color:#94a3b8;background:#f8fafc}.entry-hint{color:#854d0e;background:#fefce8;border:1px solid #fde68a;border-radius:8px;padding:10px 12px;font-size:13px}.entry-error{color:#dc2626;background:#fef2f2;border-radius:8px;padding:10px 12px;font-size:13px}.entry-submit{margin-top:8px}.entry-link{color:#64748b;cursor:pointer;text-align:center;background:0 0;border:none;padding:6px;font-size:13px}.entry-link:hover:not(:disabled){color:#1e293b}.entry-link:disabled{opacity:.5;cursor:not-allowed}.entry-options{gap:8px;display:flex}.entry-options-wrap{flex-wrap:wrap}.entry-option{text-align:center;cursor:pointer;border:1px solid #e2e8f0;border-radius:8px;flex:1;min-width:80px;padding:10px;font-size:14px;font-weight:500;transition:all .15s}.entry-option.active{color:#2563eb;background:#eff6ff;border-color:#2563eb}.entry-option input{display:none}.entry-debt-amount{color:#991b1b;text-align:center;background:#fef2f2;border-color:#fecaca;font-size:15px}.entry-consent{color:#475569;cursor:pointer;align-items:flex-start;gap:10px;margin-top:8px;font-size:13px;display:flex}.entry-consent input{flex-shrink:0;width:18px;height:18px;margin-top:2px}.entry-method-tabs{flex-direction:column;gap:8px;display:flex}.entry-method-tab{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;transition:all .15s;display:flex}.entry-method-tab.active{background:#eff6ff;border-color:#2563eb}.entry-method-label{color:#1e293b;font-size:15px;font-weight:600}.entry-method-desc{color:#64748b;font-size:12px}.entry-candidates{flex-direction:column;gap:8px;display:flex}.entry-candidate{text-align:left;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;align-items:flex-start;gap:3px;padding:12px 14px;transition:all .15s;display:flex}.entry-candidate.active{background:#eff6ff;border-color:#2563eb}.entry-candidate-title{color:#1e293b;font-size:15px;font-weight:600}.entry-candidate-sub{color:#64748b;font-size:12px}.entry-empty{text-align:center;color:#64748b;border:1px dashed #cbd5e1;border-radius:10px;padding:16px;font-size:14px}.entry-nfc-btn{color:#2563eb;cursor:pointer;background:#eff6ff;border:2px dashed #2563eb;border-radius:12px;justify-content:center;align-items:center;gap:10px;padding:20px;font-size:16px;font-weight:600;transition:all .15s;display:flex}.entry-nfc-btn:hover:not(:disabled){background:#dbeafe}.entry-nfc-btn.scanning{animation:1.2s ease-in-out infinite entry-pulse}.entry-nfc-icon{font-size:24px}@keyframes entry-pulse{0%,to{opacity:1}50%{opacity:.55}}.entry-success{text-align:center;align-items:center}.entry-success-icon{color:#fff;background:#22c55e;border-radius:50%;width:56px;height:56px;margin:0 auto 4px;font-size:28px;line-height:56px}.entry-success-title{color:#166534;margin:0;font-size:22px}.entry-visit-info{flex-direction:column;gap:10px;width:100%;margin:8px 0;display:flex}.entry-info-row{color:#64748b;justify-content:space-between;font-size:14px;display:flex}.entry-info-row span:last-child{color:#1e293b;font-weight:600}.entry-price{color:#059669!important;font-size:16px!important}.entry-visit-id{color:#94a3b8;margin:4px 0 0;font-family:monospace;font-size:12px}.btn{cursor:pointer;text-align:center;border:none;border-radius:8px;padding:12px 16px;font-size:14px;font-weight:600;transition:all .15s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;background:#2563eb}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{color:#2563eb;background:#fff;border:1px solid #2563eb}.btn-secondary:hover:not(:disabled){background:#eff6ff}.pos-body{padding:20px 16px 48px}.pos-workspace{flex-direction:column;gap:16px;max-width:640px;margin:0 auto;display:flex}.pos-visit-header{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:20px;box-shadow:0 1px 3px #0f172a0f}.pos-visit-top{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.pos-visit-band{color:#1e293b;font-size:22px;font-weight:700}.pos-status{border-radius:999px;margin-top:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-block}.pos-status-open{color:#166534;background:#dcfce7}.pos-status-settling{color:#854d0e;background:#fef9c3}.pos-status-closed,.pos-status-abandoned{color:#991b1b;background:#fee2e2}.pos-newscan-btn{color:#334155;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.pos-newscan-btn:hover{background:#f1f5f9}.pos-visit-grid{grid-template-columns:1fr 1fr;gap:14px;margin-top:16px;display:grid}.pos-visit-cell{flex-direction:column;gap:2px;display:flex}.pos-cell-label{color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.pos-cell-value{color:#1e293b;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.pos-opentotal{color:#059669}.pos-overtime{color:#dc2626}.pos-overtime-tag{color:#dc2626;text-transform:uppercase;background:#fee2e2;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:700}.pos-panel{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:20px;box-shadow:0 1px 3px #0f172a0f}.pos-panel-title{color:#1e293b;margin:0 0 14px;font-size:16px;font-weight:700}.pos-catalog{flex-direction:column;gap:16px;display:flex}.pos-cat-name{color:#64748b;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:12px;font-weight:700}.pos-product-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;display:grid}.pos-product{cursor:pointer;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:10px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px;transition:all .15s;display:flex}.pos-product:hover:not(:disabled){background:#eff6ff;border-color:#2563eb}.pos-product:disabled{opacity:.5;cursor:not-allowed}.pos-product-name{color:#1e293b;font-size:14px;font-weight:600}.pos-product-price{color:#059669;font-size:13px;font-weight:600}.pos-cart{border-top:1px dashed #e2e8f0;flex-direction:column;gap:10px;margin-top:16px;padding-top:16px;display:flex}.pos-cart-title{color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:700}.pos-cart-row{align-items:center;gap:12px;display:flex}.pos-cart-name{color:#1e293b;flex:1;font-size:14px}.pos-qty{align-items:center;gap:8px;display:flex}.pos-qty-btn{cursor:pointer;color:#334155;background:#fff;border:1px solid #cbd5e1;border-radius:6px;width:28px;height:28px;font-size:16px;line-height:1}.pos-qty-btn:hover{background:#f1f5f9}.pos-qty-val{text-align:center;min-width:20px;font-size:14px;font-weight:600}.pos-cart-sum{text-align:right;color:#1e293b;min-width:72px;font-size:14px;font-weight:600}.pos-charge-btn{margin-top:6px}.pos-notice{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:8px;margin-top:12px;padding:10px 12px;font-size:13px}.pos-bill-lines{flex-direction:column;gap:8px;display:flex}.pos-bill-line{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px}.pos-bill-line-voided{background:#f8fafc;border-color:#e2e8f0}.pos-bill-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.pos-bill-main{flex-direction:column;gap:2px;min-width:0;display:flex}.pos-bill-desc{color:#1e293b;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.pos-bill-line-voided .pos-bill-desc{color:#94a3b8;text-decoration:line-through}.pos-bill-meta{color:#94a3b8;font-size:12px}.pos-bill-right{white-space:nowrap;align-items:center;gap:10px;display:flex}.pos-bill-total{color:#1e293b;font-size:15px;font-weight:700}.pos-bill-total-voided{color:#94a3b8;font-weight:600;text-decoration:line-through}.pos-void-tag{color:#dc2626;text-transform:uppercase;background:#fee2e2;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:700}.pos-void-btn{color:#dc2626;cursor:pointer;background:#fff;border:1px solid #fca5a5;border-radius:8px;padding:5px 10px;font-size:12px;font-weight:600}.pos-void-btn:hover{background:#fef2f2}.pos-void-form{flex-direction:column;gap:8px;margin-top:10px;display:flex}.pos-void-actions{justify-content:flex-end;gap:8px;display:flex}.pos-void-confirm{background:#dc2626;padding:8px 14px}.pos-void-confirm:hover:not(:disabled){background:#b91c1c}.pos-assigned{background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.pos-assigned-info{flex-direction:column;gap:2px;display:flex}.pos-assigned-num{color:#0c4a6e;font-size:16px;font-weight:700}.pos-assigned-sub{color:#64748b;font-size:12px}.pos-secondary-btn{color:#334155;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600}.pos-secondary-btn:hover:not(:disabled){background:#f1f5f9}.pos-secondary-btn:disabled{opacity:.5;cursor:not-allowed}.pos-locker-code{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;flex-direction:column;align-items:center;gap:4px;margin-top:10px;padding:14px 16px;display:flex}.pos-locker-code-label{color:#92400e;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:600}.pos-locker-code-value{letter-spacing:.18em;color:#b45309;font-variant-numeric:tabular-nums;font-size:40px;font-weight:800}.pos-assign-row{gap:8px;display:flex}.pos-select{flex:1}.pos-slot-row{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.pos-slot-btn{color:#475569;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500}.pos-slot-btn.active{color:#2563eb;background:#eff6ff;border-color:#2563eb}.seat .pos-seat-until{opacity:.85;font-size:8px;font-weight:500;display:block}@media (width<=640px){.pos-visit-grid{grid-template-columns:1fr}}.checkout-bill{flex-direction:column;gap:16px;max-width:640px;margin:0 auto;display:flex}.checkout-lines{flex-direction:column;gap:8px;display:flex}.checkout-line{background:#fff;border:1px solid #e2e8f0;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.checkout-line-overstay{background:#fef2f2;border-color:#fca5a5}.checkout-line-voided{background:#f8fafc}.checkout-line-voided .checkout-line-desc{color:#94a3b8;text-decoration:line-through}.checkout-line-voided .checkout-line-total{color:#94a3b8;font-weight:600;text-decoration:line-through}.checkout-void-tag{color:#dc2626;text-transform:uppercase;background:#fee2e2;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:700}.checkout-line-main{flex-direction:column;gap:2px;min-width:0;display:flex}.checkout-line-desc{color:#1e293b;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.checkout-overstay-tag{color:#dc2626;text-transform:uppercase;background:#fee2e2;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:700}.checkout-line-meta{color:#94a3b8;font-size:12px}.checkout-line-total{color:#1e293b;white-space:nowrap;font-size:15px;font-weight:700}.checkout-line-overstay .checkout-line-total{color:#dc2626}.checkout-totals{border-top:1px dashed #e2e8f0;flex-direction:column;gap:8px;margin-top:16px;padding-top:14px;display:flex}.checkout-total-row{color:#64748b;justify-content:space-between;align-items:baseline;font-size:14px;display:flex}.checkout-total-due{color:#1e293b;font-size:20px;font-weight:800}.checkout-total-due span:last-child{color:#059669}.checkout-secondary-actions{gap:8px;margin-top:16px;display:flex}.checkout-secondary-actions .pos-secondary-btn{flex:1}.checkout-split-toggle{color:#334155;cursor:pointer;align-items:center;gap:8px;margin-top:12px;font-size:14px;font-weight:600;display:flex}.checkout-split{flex-direction:column;gap:10px;margin-top:12px;display:flex}.checkout-split-field{color:#334155;align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.checkout-split-field span:first-child{flex:0 0 90px}.checkout-split-field input{color:#1e293b;text-align:right;border:1px solid #cbd5e1;border-radius:10px;flex:1;padding:10px 12px;font-size:15px;font-weight:700}.checkout-split-field input:focus{border-color:#2563eb;outline:none}.checkout-split-cur{color:#64748b}.checkout-split-hint{color:#b45309;font-size:13px;font-weight:600}.checkout-qr-panel{text-align:center;flex-direction:column;gap:12px;width:100%;max-width:460px;margin:0 auto;display:flex}.checkout-qr-box{background:#f8fafc;border:1px dashed #94a3b8;border-radius:12px;flex-direction:column;gap:8px;padding:14px;display:flex}.checkout-qr-hint{color:#64748b;font-size:13px}.checkout-qr-link{color:#2563eb;word-break:break-all;font-family:monospace;font-size:12px}.checkout-poll-status{min-height:20px;font-size:13px}.checkout-poll-live{color:#64748b;align-items:center;gap:8px;display:inline-flex}.checkout-poll-timeout{color:#b45309;font-weight:600}.checkout-spinner{border:2px solid #cbd5e1;border-top-color:#2563eb;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite checkout-spin;display:inline-block}@keyframes checkout-spin{to{transform:rotate(360deg)}}.checkout-fullbtn{width:100%}.checkout-devbtn{background:#7c3aed}.checkout-devbtn:hover:not(:disabled){background:#6d28d9}.checkout-return-band{background:#eff6ff;border:2px dashed #2563eb;border-radius:12px;flex-direction:column;align-items:center;gap:4px;width:100%;margin:8px 0;padding:16px;display:flex}.checkout-return-label{color:#2563eb;text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.checkout-return-num{color:#1e293b;font-size:28px;font-weight:800}.checkout-code-rotated{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:8px 0 0;padding:10px 14px;font-size:13px;font-weight:600}.checkout-refund-entry{margin:16px auto 0;display:block}.refund-line{cursor:pointer}.refund-line-selected{background:#eff6ff;border-color:#2563eb}.refund-check{cursor:pointer;flex:none;width:18px;height:18px}.refund-line.checkout-line-voided{cursor:default}.refund-reason{resize:vertical;font-family:inherit}.checkout-msg-icon{margin:0 auto 4px;font-size:40px}.checkout-msg-title{color:#1e293b;margin:0;font-size:22px}.queue-page{background:#f8fafc;justify-content:center;align-items:center;min-height:100vh;display:flex}.queue-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:400px;padding:48px;position:relative;box-shadow:0 4px 24px #00000014}.queue-card.offer{border:2px solid #22c55e;animation:1.5s ease-in-out infinite pulse-border}@keyframes pulse-border{0%,to{border-color:#22c55e}50%{border-color:#86efac}}.queue-label{color:#64748b;text-transform:uppercase;letter-spacing:2px;margin-bottom:8px;font-size:14px;font-weight:600}.queue-position{color:#1e293b;margin-bottom:8px;font-size:96px;font-weight:700;line-height:1}.queue-ahead{color:#94a3b8;margin-bottom:24px;font-size:16px}.queue-hint{color:#cbd5e1;margin-bottom:32px;font-size:13px;line-height:1.5}.queue-pulse{background:#22c55e;border-radius:50%;width:12px;height:12px;margin:0 auto 24px;animation:2s ease-in-out infinite blink}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.offer-icon{margin-bottom:16px;font-size:48px}.queue-card.offer h2{color:#166534;margin:0 0 12px;font-size:24px}.queue-card.offer p{color:#64748b;margin-bottom:24px}.btn-large{padding:16px 32px;font-size:18px}.queue-seat{color:#94a3b8;margin-bottom:16px;font-size:14px}.queue-total{color:#cbd5e1}.timer{color:#1e293b;font-variant-numeric:tabular-nums;margin:16px 0;font-size:36px;font-weight:700}.timer.urgent{color:#dc2626;animation:1s ease-in-out infinite pulse-text}@keyframes pulse-text{0%,to{opacity:1}50%{opacity:.5}}.queue-loading,.queue-done,.queue-error{color:#94a3b8;padding:24px;font-size:16px}.queue-error{color:#dc2626}.confirmation-page{color:#1e293b;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;background:#f8fafc!important}.confirmation-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:440px;padding:48px 32px;box-shadow:0 4px 24px #00000014}.confirmation-card.success{color:#1e293b;background:#fff;border:2px solid #22c55e}.confirmation-card.timeout{color:#1e293b;background:#fff;border:2px solid #f59e0b}.confirmation-card h2{color:#1e293b;margin:0 0 16px;font-size:22px}.confirmation-card p{color:#475569;margin:8px 0}.success-icon{color:#fff;background:#22c55e;border-radius:50%;width:56px;height:56px;margin:0 auto 16px;font-size:28px;line-height:56px}.qr-section{flex-direction:column;align-items:center;gap:12px;margin:24px 0;display:flex}.qr-image{border:1px solid #e2e8f0;border-radius:12px}.details{text-align:left;background:#f8fafc;border-radius:8px;margin:16px 0;padding:16px}.detail-row{justify-content:space-between;padding:6px 0;font-size:14px;display:flex}.detail-row span{color:#64748b!important}.detail-row strong{color:#1e293b!important}.qr-hint{color:#94a3b8;margin:16px 0;font-size:13px}.actions{justify-content:center;gap:12px;margin-top:16px;display:flex}.btn-outline{color:#1e293b;cursor:pointer;text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:10px 20px;font-size:14px;font-weight:600;text-decoration:none}.btn-outline:hover{background:#f1f5f9}.booking-id{color:#64748b;font-family:monospace;font-size:14px}.spinner{border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:40px;height:40px;margin:0 auto 16px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.my-page{background:#f8fafc;min-height:100vh}.my-header{background:#fff;border-bottom:1px solid #e2e8f0;align-items:center;gap:16px;padding:16px 24px;display:flex}.my-header h1{margin:0;font-size:20px}.my-section{max-width:600px;margin:0 auto;padding:24px}.my-section h2{color:#64748b;text-transform:uppercase;letter-spacing:1px;margin:0 0 12px;font-size:16px}.cards{flex-direction:column;gap:12px;display:flex}.booking-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:16px;transition:box-shadow .15s}.booking-card:hover{box-shadow:0 2px 8px #0000000f}.booking-card.past{opacity:.6}.card-top{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.card-seat{font-size:16px;font-weight:700}.status-pill{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:600}.status-pill.reserved{color:#854d0e;background:#fefce8}.status-pill.confirmed{color:#166534;background:#f0fdf4}.status-pill.completed{color:#1e40af;background:#eff6ff}.status-pill.expired{color:#64748b;background:#f1f5f9}.status-pill.cancelled{color:#dc2626;background:#fef2f2}.queue-pos{color:#2563eb;font-size:20px;font-weight:700}.card-info{color:#64748b;margin-bottom:4px;font-size:14px}.card-price{color:#059669;margin-bottom:12px;font-size:14px;font-weight:600}.card-actions{gap:8px;display:flex}.btn-sm{padding:6px 12px;font-size:12px}.waitlist-card{border-left:3px solid #2563eb}.my-empty{text-align:center;color:#94a3b8;padding:64px 24px}.my-empty p{margin-bottom:16px;font-size:16px}.my-loading{text-align:center;color:#94a3b8;padding:64px}.modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{text-align:center;background:#fff;border-radius:16px;width:90%;max-width:380px;padding:32px;position:relative}.modal-close{cursor:pointer;color:#94a3b8;background:0 0;border:none;font-size:24px;position:absolute;top:12px;right:16px}.modal-content h3{margin:0 0 16px}.modal-content .qr-image{border:1px solid #e2e8f0;border-radius:12px}.modal-content .qr-hint{color:#94a3b8;margin-top:12px;font-size:13px}
