:root{--bg:#0b0b0f;--surface:#17171f;--surface-2:#1f1f2a;--border:#2a2a36;--text:#f5f5f7;--muted:#a1a1aa;--green:#22c55e;--yellow:#facc15;--red:#ef4444;--accent:#a855f7;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;margin:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer;touch-action:manipulation;background:0 0;border:0}button:disabled,[aria-disabled=true]{cursor:not-allowed}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.muted{color:var(--muted);font-weight:500}.hint{color:var(--muted);font-size:14px}.error{color:var(--red);font-size:14px;font-weight:600}.saved{color:var(--green);font-size:14px;font-weight:700}.brand{letter-spacing:-.02em;font-size:20px;font-weight:800}.brand span{color:var(--accent);text-shadow:0 0 12px #a855f7b3}.brand-lg{text-align:center;font-size:40px}.btn{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;min-height:52px;padding:0 18px;font-size:17px;font-weight:700}.btn:disabled{opacity:.45}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 0 24px #a855f759}.btn-ghost{color:var(--muted);background:0 0;border-color:#0000}.btn-lg{width:100%;min-height:64px;font-size:20px}.btn-sm{min-height:40px;padding:0 12px;font-size:15px}.dot{border-radius:50%;flex:none;width:18px;height:18px;display:inline-block}.dot-green{background:var(--green);box-shadow:0 0 14px var(--green)}.dot-yellow{background:var(--yellow);box-shadow:0 0 14px var(--yellow)}.dot-red{background:var(--red);box-shadow:0 0 14px var(--red)}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:14px;font-weight:600;display:flex}.field input,.field select{background:var(--bg);border:1px solid var(--border);min-height:52px;color:var(--text);border-radius:12px;padding:0 14px;font-size:17px;font-weight:500}.field input:focus,.field select:focus{border-color:var(--accent);outline:none}.login{background:radial-gradient(ellipse at top, #a855f733, transparent 60%), var(--bg);place-items:center;min-height:100%;padding:16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:24px;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:28px 22px;display:flex}.login-card>p{text-align:center;margin-bottom:8px}.porte{height:100dvh;padding:12px 12px max(12px, env(safe-area-inset-bottom));flex-direction:column;gap:10px;display:flex}.porte-head{align-items:center;gap:12px;display:flex}.back{color:var(--muted);font-weight:600;text-decoration:none}.occ{align-items:baseline;font-weight:800;display:flex}.occ strong{font-size:56px;line-height:1}.occ span{color:var(--muted);font-size:24px}.net{text-align:right;margin-left:auto;font-size:14px;font-weight:700}.net.on{color:var(--green)}.net.off{color:var(--red)}.net em{color:var(--muted);font-style:normal}.occ.full strong,.occ.full span{color:var(--red)}.capacity-alert{background:var(--red);color:#fff;letter-spacing:.04em;text-align:center;border-radius:12px;padding:10px 14px;font-size:18px;font-weight:800;animation:1.2s ease-in-out infinite pulse}.pulse{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.55}}.age-line{color:var(--muted);grid-template-columns:1fr 1fr;gap:8px;font-size:13px;font-weight:600;display:grid}.age-line strong{color:var(--text);font-size:15px;display:block}.checkin-links{grid-template-columns:1fr 1fr;gap:10px;display:grid}.checkin-links a,.checkin-links button{color:var(--text);flex-direction:column;justify-content:center;align-items:center;text-decoration:none;display:flex}.checkin-links .btn{white-space:nowrap;font-size:15px}.card-warn{color:var(--yellow);background:#facc151f;border:1px solid #facc1580;border-radius:12px;padding:12px 14px;font-size:17px;font-weight:800}.card-refuse{background:var(--red);color:#fff;text-align:center;letter-spacing:.04em;border-radius:12px;padding:14px;font-size:22px;font-weight:900}.link-btn{justify-content:center;align-items:center;text-decoration:none;display:flex}.checkin-links small{color:var(--muted);font-size:12px;font-weight:600}.scan-warn{color:var(--yellow);font-size:15px;font-weight:700}.zones{flex:1;grid-template-rows:minmax(30vh,1fr) minmax(30vh,1fr);grid-template-columns:1fr 1fr;gap:10px;min-height:0;display:grid}.zone{border:2px solid var(--border);background:var(--surface);letter-spacing:.04em;-webkit-user-select:none;user-select:none;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:28px;font-weight:800;transition:transform 80ms;display:flex}.zone:active{transform:scale(.97)}.zone small{letter-spacing:0;color:var(--muted);font-size:16px;font-weight:600}.zone-icon{font-size:44px;line-height:1}.zone.exit{background:#ef44441a;border-color:#ef444499}.zone.exit .zone-icon{color:var(--red)}.zone.reentry{background:#22c55e1a;border-color:#22c55e99}.zone.reentry .zone-icon{color:var(--green)}.zone.sale{background:#a855f71f;border-color:#a855f7b3;grid-column:1/-1}.zone.sale .zone-icon{color:var(--accent)}.zone.sale .prices{color:var(--text);font-size:26px;font-weight:800}.zone.sale .left{color:var(--accent);font-size:17px;font-weight:700}.zone.disabled{border-color:var(--border);background:var(--surface);color:var(--muted)}.zone.disabled:active{transform:none}.porte-foot{grid-template-columns:1fr 1fr;gap:10px;display:grid}.flash{z-index:40;pointer-events:none;animation:.3s ease-out forwards flash;position:fixed;inset:0}.flash.plus{background:#22c55e59}.flash.minus{background:#ef444459}@keyframes flash{0%{opacity:1}to{opacity:0}}.sheet-backdrop{z-index:30;background:#000000a6;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:560px;padding:20px 16px max(16px, env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--border);border-radius:24px 24px 0 0;flex-direction:column;gap:12px;margin:0 auto;display:flex}.sheet h2{font-size:20px}.choices{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice{background:var(--bg);border:2px solid var(--border);border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:20px 8px;font-weight:700;display:flex}.choice strong{font-size:40px}.qty{grid-template-columns:44px 1fr 44px;align-items:center;gap:6px;width:100%;margin-top:8px;display:grid}.qty button{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;height:44px;font-size:22px;font-weight:800}.qty button:disabled{opacity:.35}.qty output{text-align:center;font-size:26px;font-weight:800}.choice.selected{border-color:var(--accent);box-shadow:0 0 20px #a855f766}.page{flex-direction:column;gap:16px;max-width:1100px;margin:0 auto;padding:12px 16px 140px;display:flex}.nav{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.nav nav{gap:4px;display:flex}.nav a{color:var(--muted);border-radius:10px;padding:8px 12px;font-weight:600;text-decoration:none}.nav a.active{color:var(--text);background:var(--surface-2)}.nav-meta{color:var(--muted);align-items:center;gap:10px;margin-left:auto;font-size:14px;display:flex}.clock{color:var(--text);font-weight:700}.badge{background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:3px 10px;font-size:13px;font-weight:600}.banners{flex-direction:column;gap:8px;display:flex}.banners:empty{display:none}.banner{border:1px solid;border-radius:12px;padding:12px 14px;font-weight:700}.banner.red{color:#fca5a5;background:#ef44441f;border-color:#ef444480}.banner.grey{background:var(--surface);border-color:var(--border)}.banner.accent{color:#d8b4fe;background:#a855f71f;border-color:#a855f780}.hero{background:var(--surface);border:2px solid var(--border);text-align:center;border-radius:24px;flex-direction:column;align-items:center;gap:8px;padding:24px;display:flex}.hero-top{color:var(--muted);letter-spacing:.08em;align-items:center;gap:10px;font-weight:800;display:flex}.hero-num{font-size:clamp(88px,22vw,180px);font-weight:900;line-height:.95}.hero-num.word{font-size:clamp(48px,12vw,96px)}.hero-green{border-color:#22c55e8c;box-shadow:inset 0 0 60px #22c55e1a}.hero-green .hero-num{color:var(--green)}.hero-yellow{border-color:#facc158c;box-shadow:inset 0 0 60px #facc1514}.hero-yellow .hero-num{color:var(--yellow)}.hero-red{border-color:#ef44448c;box-shadow:inset 0 0 60px #ef44441a}.hero-red .hero-num{color:var(--red)}.hero-room{border-color:#a855f78c;box-shadow:inset 0 0 60px #a855f71a}.hero-prices{gap:12px;margin-top:8px;display:flex}.hero-prices div{background:var(--bg);border:1px solid var(--border);border-radius:14px;flex-direction:column;align-items:center;padding:10px 20px;display:flex}.hero-prices span{color:var(--muted);font-size:13px;font-weight:600}.hero-prices strong{font-size:28px}.suggested{color:var(--muted);font-size:14px;font-weight:600}.price-notice{background:var(--accent);color:#fff;text-align:center;border-radius:12px;padding:10px 14px;font-size:18px;font-weight:800;animation:1.2s ease-in-out infinite pulse}.sound{cursor:pointer;color:var(--muted)}.sound.on{color:var(--green);border-color:#22c55e99}.page.tv{justify-content:center;max-width:none;min-height:100dvh}.page.tv .hero-num{font-size:clamp(160px,38vw,480px)}.page.tv .tile-value{font-size:56px}.tv-toggle{align-self:center}.tiles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.tile{background:var(--surface);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:6px;padding:14px;display:flex}.tile-label{color:var(--muted);font-size:13px;font-weight:600}.tile-value{font-size:30px;font-weight:800}.tile-value small{color:var(--muted);font-size:16px;font-weight:600}.tile-value.yellow{color:var(--yellow)}.tile-value.red{color:var(--red)}.bar{background:var(--bg);border-radius:3px;height:6px;overflow:hidden}.bar i{background:var(--accent);height:100%;display:block}.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:18px;flex-direction:column;gap:14px;padding:18px;display:flex}.card h2{font-size:17px}.card h3{font-size:15px}.wide{grid-column:1/-1}.card-actions{align-items:center;gap:12px;display:flex}.stepper{align-items:center;gap:10px;display:flex}.stepper button{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;width:56px;height:52px;font-size:18px;font-weight:700}.desc{color:var(--muted);margin-top:-6px;font-size:14px;line-height:1.45}.learned{background:#22c55e14;border:1px solid #22c55e66;border-radius:12px;flex-direction:column;gap:4px;padding:12px 14px;font-size:15px;display:flex}.learned span{color:var(--green);letter-spacing:.06em;text-transform:uppercase;font-size:12px;font-weight:800}td.adjusted{color:var(--green);font-weight:800}.segmented{background:var(--bg);border:1px solid var(--border);border-radius:14px;grid-template-columns:1fr 1fr;gap:6px;padding:4px;display:grid}.segmented button{min-height:48px;color:var(--muted);border-radius:10px;font-size:16px;font-weight:800}.segmented button.active.plus{color:var(--green);background:#22c55e29;box-shadow:inset 0 0 0 1px #22c55e99}.segmented button.active.accent{color:#d8b4fe;background:#a855f729;box-shadow:inset 0 0 0 1px #a855f799}.segmented button.active.minus{color:var(--red);background:#ef444429;box-shadow:inset 0 0 0 1px #ef444499}.stepper input{background:var(--bg);border:1px solid var(--border);text-align:center;border-radius:12px;place-items:center;width:100px;min-height:52px;font-size:28px;font-weight:800;display:grid}.switch-row{justify-content:space-between;align-items:center;gap:12px;font-weight:600;display:flex}.switch{appearance:none;background:var(--border);cursor:pointer;border-radius:999px;flex:none;width:52px;height:30px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:24px;height:24px;transition:transform .15s;position:absolute;top:3px;left:3px}.switch:checked{background:var(--accent)}.switch:checked:after{transform:translate(22px)}.row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.row .field{flex:1;min-width:110px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px}th,td{border-bottom:1px solid var(--border);text-align:left;padding:10px 8px}th{color:var(--muted);font-size:13px;font-weight:600}.cell-input{background:var(--bg);border:1px solid var(--border);text-align:right;border-radius:8px;width:80px;min-height:40px;padding:0 8px}.cell-action{text-align:right}tr.voided td:not(.cell-action){color:var(--muted);text-decoration:line-through}.demo{z-index:25;flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:fixed;bottom:160px;right:12px}.demo-pill{background:var(--yellow);color:#111;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:800;box-shadow:0 4px 16px #00000080}.demo-panel{border:1px solid var(--yellow);background:#111118;border-radius:16px;flex-direction:column;gap:10px;width:280px;padding:14px;display:flex;box-shadow:0 8px 32px #0009}.demo-panel .field select{min-height:44px;font-size:15px}.demo-links{grid-template-columns:1fr 1fr;gap:6px;display:grid}
