:root{--bg:#0a0a10;--surface:#ffffff0d;--surface-raised:#ffffff1c;--line:#ffffff17;--text:#f2f3f7;--text-dim:#9aa0b2;--brand:#ff3d8d;--brand-glow:#ff3d8d80;--accent:#4d9fff;--accent-ink:#071324;--accent-soft:#4d9fff1f;--accent-border:#4d9fff8c;--accent-glow:#4d9fff66;--queued:#e0a63f;--error:#e5544b;--tap:88px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}html,body{background:var(--bg);height:100%;color:var(--text);font-family:Segoe UI Variable Display,Segoe UI,system-ui,-apple-system,BlinkMacSystemFont,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;overflow:hidden}#app{-webkit-overflow-scrolling:touch;height:100%;overflow:hidden auto}body:before{content:"";pointer-events:none;background:radial-gradient(42vw 42vw at 12% -8%, #8b5cf61f, transparent 65%), radial-gradient(50vw 50vw at 95% 108%, var(--accent-soft), transparent 65%);position:fixed;top:0;bottom:0;left:0;right:0}.screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:max(10px,min(2.6vh,24px));min-height:100%;padding:max(64px,min(10vh,84px)) max(12px,min(3vw,32px)) max(20px,min(4vh,36px));display:flex;position:relative}.screen .info,.screen .pad{flex-direction:column;justify-content:center;align-items:center;gap:max(10px,min(2.6vh,24px));display:flex}.clock{letter-spacing:.08em;font-variant-numeric:tabular-nums;color:var(--text);font-size:max(2.2rem,min(8vw,4.6rem));font-weight:200;line-height:1}.prompt{text-transform:uppercase;letter-spacing:.14em;font-size:max(1.3rem,min(4vw,2rem));font-weight:800}.sub{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:max(1rem,min(3vw,1.3rem))}.entry{letter-spacing:.35em;font-variant-numeric:tabular-nums;min-height:1.4em;font-size:max(2rem,min(8vw,4rem));font-weight:300}.entry.placeholder{color:var(--text-dim);opacity:.35}.pin-dots{align-items:center;gap:max(12px,min(3vw,22px));min-height:28px;display:flex}.pin-dots .dot{border:2px solid var(--line);border-radius:50%;width:max(16px,min(4vw,22px));height:max(16px,min(4vw,22px));transition:background-color 40ms ease-out,border-color 40ms ease-out}.pin-dots .dot.filled{background:var(--accent);border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}.keypad{grid-template-columns:repeat(3, minmax(var(--tap), 1fr));gap:max(8px,min(1.6vh,14px));width:min(92vw,460px);display:grid}button{min-height:var(--tap);min-width:var(--tap);color:var(--text);background:var(--surface);border:1px solid var(--line);cursor:pointer;font-variant-numeric:tabular-nums;border-radius:18px;font-size:max(1.5rem,min(4vw,2.2rem));font-weight:500;transition:transform 40ms ease-out,background-color 40ms ease-out}button:active{background:var(--surface-raised);transform:scale(.94)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 24px var(--accent-glow);font-weight:800}button.ghost{color:var(--text-dim);background:0 0;border-color:#0000;font-size:max(1rem,min(3vw,1.3rem));font-weight:500}button.back-btn{min-height:var(--tap);min-width:var(--tap);background:var(--surface);border:1px solid var(--line);color:var(--text-dim);z-index:4;border-radius:999px;align-items:center;gap:8px;padding:0 24px;font-size:max(1rem,min(2.8vw,1.2rem));font-weight:600;transition:transform .12s,background-color .12s,border-color .12s,color .12s,box-shadow .12s;display:inline-flex;position:absolute;top:max(56px,min(9vh,78px));left:max(10px,min(3vw,24px))}button.back-btn:before{content:"←";font-size:1.15em;line-height:1;transition:transform .16s}@media (hover:hover){button.back-btn:hover{background:var(--accent-soft);border-color:var(--accent-border);color:var(--accent);box-shadow:0 4px 18px -6px var(--accent-glow)}button.back-btn:hover:before{transform:translate(-3px)}}button.back-btn:active{background:var(--surface-raised);transform:scale(.95)}@media (max-height:760px){button.back-btn{min-height:56px;top:50px}}button.wide{grid-column:span 3}.actions{flex-direction:column;gap:14px;width:min(92vw,460px);display:flex}.actions button{width:100%}.quickpicks{grid-template-columns:repeat(4,1fr);gap:12px;width:min(92vw,460px);display:grid}.quickpicks button{font-size:max(1.1rem,min(3.4vw,1.5rem));line-height:1.15}.quickpicks .unit{color:var(--text-dim);font-size:.72em;font-weight:400;display:block}.choices{grid-template-columns:1fr 1fr;gap:max(14px,min(2.5vw,22px));width:min(92vw,660px);display:grid}@media (max-width:560px){.choices{grid-template-columns:1fr}}button.choice-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;flex-direction:column;justify-content:center;align-items:center;gap:12px;min-height:200px;padding:28px 20px;display:flex}button.choice-card .ring{border:2px solid var(--accent);width:68px;height:68px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex}button.choice-card .label{text-transform:uppercase;letter-spacing:.09em;font-size:max(1.3rem,min(3.6vw,1.6rem));font-weight:800}button.choice-card .caption{color:var(--text-dim);font-size:max(.9rem,min(2.4vw,1.05rem));font-weight:400}button.choice-card.suggested{background:linear-gradient(165deg, var(--accent-soft), #4d9fff0a);border-color:var(--accent-border)}button.choice-card.suggested .ring{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 30px var(--accent-glow)}button.choice-card:not(.suggested) .label{color:var(--text-dim)}button.choice-card:active{transform:scale(.97)}.confirm-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:30;background:#05050ab8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.confirm-card{text-align:center;border:1px solid var(--line);background:#14161e;border-radius:26px;flex-direction:column;align-items:center;gap:18px;width:min(94vw,540px);padding:34px 30px;display:flex;box-shadow:0 12px 60px #0000008c}.confirm-card .headline{text-transform:uppercase;letter-spacing:.1em;font-size:max(1.4rem,min(4.4vw,1.9rem));font-weight:800}.confirm-card .body{color:var(--text-dim);max-width:34ch;font-size:max(1.05rem,min(3.2vw,1.3rem))}.confirm-actions{gap:14px;width:100%;display:flex}.confirm-actions button{flex:1;font-size:max(1.1rem,min(3.2vw,1.4rem));font-weight:700}.confirm-actions .confirm-go{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.result{z-index:10;text-align:center;background:var(--bg);flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0;right:0;overflow-y:auto}.result .icon{border:3px solid;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:max(6rem,min(20vw,9rem));height:max(6rem,min(20vw,9rem));font-size:max(3rem,min(10vw,5rem));display:flex;box-shadow:0 0 48px -6px}.result .headline{text-transform:uppercase;letter-spacing:.05em;font-size:max(1.9rem,min(6.5vw,3.2rem));font-weight:800}.result .detail{color:var(--text);opacity:.92;max-width:34ch;font-size:max(1.2rem,min(4vw,1.7rem))}.result.in,.result.out{background:radial-gradient(80vw 80vw at 50% 30%, #101f38, var(--bg) 80%);color:var(--accent)}.result.queued{background:radial-gradient(80vw 80vw at 50% 30%, #2b2312, var(--bg) 80%);color:var(--queued)}.result.denied{background:radial-gradient(80vw 80vw at 50% 30%, #2e1513, var(--bg) 80%);color:var(--error)}.topbar{z-index:5;background:linear-gradient(var(--bg), transparent);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;display:flex;position:fixed;top:0;left:0;right:0}.brand{align-items:baseline;gap:10px;display:flex}.brand .mark{letter-spacing:.02em;color:var(--brand);text-shadow:0 0 14px var(--brand-glow);font-size:1.05rem;font-weight:900}.brand .name{letter-spacing:.32em;text-transform:uppercase;color:var(--text-dim);font-size:.8rem;font-weight:700}.pills{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.pill{border:1px solid var(--line);background:var(--surface);color:var(--text-dim);border-radius:999px;align-items:center;gap:7px;padding:6px 12px;font-size:.9rem;display:inline-flex}.pill.queued{color:var(--queued);border-color:#e0a63f66}.pill.danger{color:var(--error);border-color:#e5544b66}.badge{align-items:center;gap:6px;display:inline-flex}.badge.queued{color:var(--queued)}.badge.danger{color:var(--error)}.state-pill{border:1px solid var(--accent-border);background:var(--accent-soft);color:var(--accent);border-radius:999px;align-items:center;gap:10px;padding:12px 22px;font-size:max(1.1rem,min(3.4vw,1.5rem));font-weight:600;display:inline-flex}.state-pill.dim{border-color:var(--line);background:var(--surface);color:var(--text-dim)}.banner{background:var(--error);color:#fff;text-align:center;z-index:20;padding:14px 18px;font-size:1.05rem;font-weight:600;position:fixed;bottom:0;left:0;right:0}input[type=text]{min-height:var(--tap);background:var(--surface);color:var(--text);border:1px solid var(--line);text-align:center;border-radius:18px;width:min(92vw,460px);padding:0 18px;font-size:1.4rem}input[type=text]::placeholder{color:var(--text-dim)}input[type=text]:focus{outline:2px solid var(--accent);outline-offset:2px}@media (orientation:landscape) and (max-height:860px){.screen.split{flex-direction:row;justify-content:center;align-items:center;gap:max(28px,min(7vw,110px));padding-top:max(48px,min(8vh,64px))}.screen.split .info{max-width:min(42vw,480px)}.screen.split .keypad{width:min(44vw,440px)}.screen.split .quickpicks{grid-template-columns:repeat(2,1fr);width:100%}.screen.split .clock{font-size:max(2rem,min(7vh,3.4rem))}.screen.split .entry{min-height:1.2em;font-size:max(1.8rem,min(7vh,3rem))}}@media (pointer:fine){:root{--tap:clamp(54px, 9.5vh, 88px)}.keypad{gap:max(6px,min(1.4vh,14px))}.keypad button{font-size:max(1.2rem,min(4.2vh,2.2rem))}}@media (orientation:portrait) and (max-height:760px){.screen{gap:max(8px,min(1.6vh,14px));padding-top:58px}.screen .info,.screen .pad{gap:max(8px,min(1.6vh,14px))}.clock{font-size:max(1.6rem,min(5vh,2.6rem))}.entry{min-height:1.2em;font-size:max(1.6rem,min(6vh,2.6rem))}.keypad{gap:8px}}@media (max-height:760px){button.choice-card{min-height:150px;padding:18px 16px}}
