:root{--bg:#0f0f0f;--card:#1c1c1c;--line:#2c2c2c;--text:#fff;--muted:#9a9a9a;--accent:#d32f2f;--go:#22a06b;color:var(--text);background:var(--bg);font-synthesis:none;font-family:Lexend,Arial,Helvetica,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background:var(--bg);min-height:100vh;margin:0}button,input{font:inherit}.screen{width:100%;max-width:460px;min-height:100vh;padding:calc(18px + env(safe-area-inset-top)) 18px calc(24px + env(safe-area-inset-bottom));margin:0 auto}@media (width>=520px){body{background:#050505;padding:20px 0}.screen{background:var(--bg);border-radius:26px;min-height:calc(100vh - 40px);box-shadow:0 24px 70px #0009}}.screenCentre{place-items:center;display:grid}.topBar{align-items:center;gap:12px;margin-bottom:18px;display:flex}.topBar>div{flex:1;min-width:0}.topBar h1{overflow-wrap:anywhere;margin:2px 0 0;font-size:20px}.eyebrow{color:var(--muted);letter-spacing:2px;margin:0;font-size:10px;font-weight:800}.back{width:40px;height:40px;color:var(--text);background:var(--card);cursor:pointer;border:none;border-radius:12px;flex:none;place-items:center;font-size:26px;line-height:1;display:grid}.dutyCard{width:100%;color:var(--text);background:var(--card);border:1.5px solid var(--line);text-align:left;cursor:pointer;border-radius:18px;align-items:center;gap:14px;margin-bottom:14px;padding:16px;transition:border-color .16s,background .16s;display:flex}.dutyOn{border-color:var(--go);background:#12281f}.dutyDot{background:#555;border-radius:50%;flex:none;width:12px;height:12px}.dutyOn .dutyDot{background:var(--go);box-shadow:0 0 0 5px #22a06b38}.dutyText{flex:1;min-width:0;line-height:1.35}.dutyText strong{font-size:16px;display:block}.dutyText span{color:var(--muted);font-size:12px}.dutySwitch{background:#3a3a3a;border-radius:50px;flex:none;width:46px;height:28px;padding:3px;transition:background .16s;display:block}.dutySwitch span{background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .16s;display:block}.dutyOn .dutySwitch{background:var(--go)}.dutyOn .dutySwitch span{transform:translate(18px)}.warn{color:#ffd7a1;background:#2a2113;border:1px solid #4a3a1c;border-radius:14px;margin-bottom:12px;padding:12px 14px;font-size:12px;line-height:1.5}.warnAction{align-items:center;gap:12px;display:flex}.warnAction span{flex:1;min-width:0}.error{color:#ffb4ac;background:#2b1614;border:1px solid #5a2320;border-radius:14px;margin-bottom:12px;padding:12px 14px;font-size:13px;line-height:1.45}.alertCard{color:var(--text);border:1.5px solid var(--accent);background:#2b1614;border-radius:18px;margin-bottom:12px;padding:16px;text-decoration:none;display:block}.alertActive{border-color:var(--go);background:#12281f}.alertCard strong{font-size:15px;display:block}.alertCard span{color:var(--muted);font-size:12px}.statRow{grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 14px;display:grid}.stat{background:var(--card);text-align:center;border-radius:16px;padding:14px 10px}.stat span{color:var(--muted);letter-spacing:.5px;text-transform:uppercase;font-size:10px;font-weight:800;display:block}.stat strong{font-variant-numeric:tabular-nums;margin:6px 0 2px;font-size:17px;display:block}.stat small{color:var(--muted);font-size:11px}.rowLink{color:var(--text);background:var(--card);border-radius:16px;justify-content:space-between;align-items:center;padding:16px;font-size:14px;font-weight:700;text-decoration:none;display:flex}.primary{color:#fff;background:var(--accent);cursor:pointer;border:none;border-radius:50px;width:100%;min-height:52px;padding:12px 18px;font-size:16px;font-weight:800}.primary:disabled{color:#8a8a8a;cursor:not-allowed;background:#4a4a4a}.ghost{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:13px;font-weight:700}.ghostWide{min-height:52px;color:var(--text);border:1.5px solid var(--line);cursor:pointer;background:0 0;border-radius:50px;flex:1;font-size:15px;font-weight:700}.small{color:#1a1a1a;cursor:pointer;background:#ffd7a1;border:none;border-radius:50px;flex:none;padding:8px 14px;font-size:12px;font-weight:800}.loginCard{background:var(--card);border-radius:22px;width:min(100%,360px);padding:26px 22px}.loginCard h1{margin:6px 0;font-size:22px}.loginHint{color:var(--muted);margin:0 0 18px;font-size:13px;line-height:1.5}.field{width:100%;min-height:52px;color:var(--text);border:1px solid var(--line);background:#262626;border-radius:12px;margin-bottom:10px;padding:12px 15px;font-size:16px}.field:focus{border-color:#6a6a6a;outline:none}.fieldPin{letter-spacing:8px;text-align:center;font-size:20px}.offerScreen{flex-direction:column;gap:12px;display:flex}.countdown{border:1.5px solid var(--accent);text-align:center;background:#2b1614;border-radius:18px;padding:16px}.countdown strong{font-variant-numeric:tabular-nums;font-size:40px;line-height:1;display:block}.countdown span{color:var(--muted);font-size:12px}.countdownBar{background:#4a2a28;border-radius:50px;height:4px;margin-top:10px;overflow:hidden}.countdownBar span{background:var(--accent);height:100%;transition:width .25s linear;display:block}.offerPay{background:var(--card);text-align:center;border-radius:18px;padding:18px}.offerPay span{color:var(--muted);letter-spacing:1px;text-transform:uppercase;font-size:11px;font-weight:800}.offerPay strong{color:var(--go);font-variant-numeric:tabular-nums;margin:4px 0 2px;font-size:34px;line-height:1.1;display:block}.offerPay small{color:var(--muted);font-size:12px}.leg{background:var(--card);border-radius:18px;gap:12px;padding:16px;display:flex}.leg>div{flex:1;min-width:0;line-height:1.4}.legDot{border-radius:50%;flex:none;width:12px;height:12px;margin-top:5px}.legFrom{background:#fff}.legTo{background:var(--accent)}.leg small{color:var(--muted);letter-spacing:1px;font-size:10px;font-weight:800;display:block}.leg strong{overflow-wrap:anywhere;margin:2px 0;font-size:15px;display:block}.leg span{color:var(--muted);overflow-wrap:anywhere;font-size:12px;display:block}.callLink,.mapLink{color:#7fc7ff;margin-top:8px;margin-right:12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-block}.offerMeta{color:var(--muted);justify-content:space-between;gap:12px;font-size:12px;display:flex}.offerNote{color:#dcdcdc;background:var(--card);border-radius:14px;margin:0;padding:12px 14px;font-size:13px;line-height:1.5}.offerActions{gap:10px;margin-top:auto;padding-top:12px;display:flex}.offerActions .primary{flex:2}.panel{background:var(--card);border-radius:18px;margin-bottom:12px;padding:16px}.panel h2{color:var(--muted);letter-spacing:1px;text-transform:uppercase;margin:0 0 10px;font-size:11px;font-weight:800}.itemRow{gap:10px;padding:6px 0;font-size:14px;display:flex}.itemRow span{color:var(--muted);font-weight:800}.payRow{justify-content:space-between;align-items:center;gap:12px;padding:4px 0;font-size:14px;display:flex}.payRowMuted{color:var(--muted);font-size:13px}.payRowMuted strong{color:var(--go)}.dock{padding:12px 0 calc(4px + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 70%, transparent);position:sticky;bottom:0}.confirmRow{gap:10px;display:flex}.confirmRow .primary{flex:2}.historyList{flex-direction:column;gap:8px;display:flex}.historyRow{background:var(--card);border-radius:16px;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.historyRow strong{font-size:14px;display:block}.historyRow span{color:var(--muted);font-size:11px}.historyPay{color:var(--go);font-variant-numeric:tabular-nums;flex:none;font-size:15px}.emptyState{text-align:center;padding:30px 20px}.emptyState h2{margin:0 0 8px;font-size:18px}.emptyState p{color:var(--muted);margin:0 0 20px;font-size:14px;line-height:1.5}.spinner{border:4px solid #333;border-top-color:#fff;border-radius:50%;width:38px;height:38px;margin:40px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.gate{background:var(--card);text-align:center;border-radius:22px;width:min(100%,380px);padding:30px 24px}.gateIcon{border-radius:20px;width:76px;height:76px;margin-bottom:16px}.gate h1{margin:6px 0 10px;font-size:22px}.gateWhy{color:var(--muted);margin:0 0 22px;font-size:14px;line-height:1.55}.gateSteps{text-align:left;background:#262626;border-radius:16px;padding:16px}.gateSteps strong{margin-bottom:8px;font-size:14px;display:block}.gateSteps p,.gateSteps ol{color:var(--muted);margin:0;font-size:13px;line-height:1.6}.gateSteps ol{padding-left:18px}.gateSteps b{color:var(--text)}.gateFoot{color:#6a6a6a;margin:18px 0 0;font-size:12px;line-height:1.5}.gate .primary+.gateSteps{margin-top:16px}
