@font-face{font-family:"Unbounded";src:url(/f/Unbounded.ttf) format("truetype");font-weight:200 900;font-display:swap}
@font-face{font-family:"Manrope";src:url(/f/Manrope.ttf) format("truetype");font-weight:200 800;font-display:swap}
:root{
  --bg:#EEF2F7;--surface:#fff;--surface-2:#F5F7FB;--ink:#0A1628;--ink-2:#47546B;--ink-3:#5A677D;--line:#DEE4ED;
  --accent:#2B59FF;--accent-d:#1B41D6;--accent-t:#E8EEFF;--on-accent:#fff;
  --ok-dot:#12B886;--warn-dot:#E8A317;--bad:#B42318;--bad-t:#FCE9E6;--tick-off:#D3DAE6;--shadow:0 10px 30px -12px rgba(10,22,40,.25);
  --display:"Unbounded",system-ui,sans-serif;--body:"Manrope",system-ui,sans-serif;--ease:cubic-bezier(.2,.8,.2,1)}
.dark{--bg:#0B1220;--surface:#131C2E;--surface-2:#182338;--ink:#F1F5FB;--ink-2:#C2CCDD;--ink-3:#9AA7BD;--line:#25314A;
  --accent:#5B80FF;--accent-d:#7B98FF;--accent-t:#1B2A55;--bad:#FF8A80;--bad-t:#3A1A1A;--tick-off:#2A3652;--shadow:0 10px 30px -12px rgba(0,0,0,.6)}
*,*::before,*::after{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--ink);font:500 15px/1.45 var(--body);-webkit-font-smoothing:antialiased;
  padding-bottom:calc(84px + env(safe-area-inset-bottom));overscroll-behavior:none}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;padding:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:8px}
svg.i{width:22px;height:22px;flex:none}
#root{padding:12px 20px 16px;max-width:560px;margin:0 auto}
.screen{animation:in .28s var(--ease)}
@keyframes in{from{opacity:0;transform:translateY(8px)}}
h1{font:500 22px/1.2 var(--display);letter-spacing:-.025em;margin:6px 0 4px}
.sub{color:var(--ink-2)}.center{text-align:center}.t1{font-weight:700}.t2{font-size:13px;color:var(--ink-3)}
.dial{position:relative;width:216px;height:216px;margin:10px auto 6px}
.dial svg{width:100%;height:100%}
.dial .c{position:absolute;inset:0;display:grid;place-content:center;text-align:center}
.dial .n{font:500 52px/1 var(--display);letter-spacing:-.04em}
.dial .u{font-size:13px;color:var(--ink-3);margin-top:8px;font-weight:600}
.chip{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:99px;background:var(--surface);
  border:1px solid var(--line);font-size:13px;font-weight:700;color:var(--ink-2)}
.chip i{width:8px;height:8px;border-radius:50%;background:var(--ok-dot)}
.chip.warn i{background:var(--warn-dot)}.chip.off i{background:var(--ink-3)}
.btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:54px;border-radius:16px;font-weight:800;
  font-size:16px;background:var(--accent);color:var(--on-accent);box-shadow:0 6px 14px -8px rgba(10,22,40,.45);
  transition:transform .12s var(--ease),filter .15s}
.btn:active{transform:scale(.97)}
.btn.sec{background:var(--surface);color:var(--ink);box-shadow:none;border:1px solid var(--line)}
.btn.ghost{background:transparent;color:var(--accent-d);box-shadow:none;height:44px}
.btn.bad{background:var(--bad-t);color:var(--bad);box-shadow:none}
.btn[disabled]{opacity:.6;pointer-events:none}
.stack{display:grid;gap:10px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px}
.row{display:flex;align-items:center;gap:12px;padding:14px 16px;width:100%;text-align:left}
.row+.row{border-top:1px solid var(--line)}
.ico{width:42px;height:42px;border-radius:12px;background:var(--accent-t);color:var(--accent);display:grid;place-items:center;flex:none}
.ico.mut{background:var(--surface-2);color:var(--ink-3)}
.grow{flex:1;min-width:0}
.sect{font:700 13px var(--body);color:var(--ink-3);margin:22px 4px 8px}
.slot{border:1.5px dashed var(--line);background:transparent;color:var(--ink-3)}
.tabs{position:fixed;left:0;right:0;bottom:0;padding:8px 14px calc(14px + env(safe-area-inset-bottom));
  background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(3,1fr);z-index:3}
.tab{display:grid;justify-items:center;gap:3px;font-size:11px;font-weight:700;color:var(--ink-3);padding:6px 0;border-radius:12px}
.tab[aria-current=page]{color:var(--accent)}
.scrim{position:fixed;inset:0;background:rgba(5,10,20,.5);opacity:0;pointer-events:none;transition:opacity .25s;z-index:10}
.scrim.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;left:0;right:0;bottom:0;max-width:560px;margin:0 auto;background:var(--surface);border-radius:26px 26px 0 0;
  padding:10px 20px calc(24px + env(safe-area-inset-bottom));transform:translateY(105%);transition:transform .32s var(--ease);
  max-height:90vh;overflow:auto;box-shadow:var(--shadow);z-index:11}
.sheet.on{transform:none}
.grab{width:40px;height:4px;border-radius:2px;background:var(--line);margin:0 auto 14px}
.sheet h2{font:500 19px/1.25 var(--display);letter-spacing:-.02em;margin:0 0 4px}
.plan{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:16px;border:1.5px solid var(--line);width:100%;text-align:left;
  transition:border-color .15s,background .15s}
.plan[aria-checked=true]{border-color:var(--accent);background:var(--accent-t)}
.radio{width:20px;height:20px;border-radius:50%;border:2px solid var(--ink-3);flex:none;display:grid;place-items:center}
.plan[aria-checked=true] .radio{border-color:var(--accent)}
.plan[aria-checked=true] .radio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--accent)}
.badge{font-size:11px;font-weight:800;color:var(--on-accent);background:var(--accent);border-radius:99px;padding:2px 8px;margin-left:8px}
.step{display:flex;align-items:center;justify-content:space-between;padding:6px 6px 6px 16px;border-radius:16px;background:var(--surface-2)}
.step .ctl{display:flex;align-items:center;gap:6px}
.step button{width:40px;height:40px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:20px;font-weight:700}
.step output{min-width:28px;text-align:center;font:500 18px var(--display)}
.promo{display:flex;gap:8px}
.promo input{flex:1;min-width:0;height:46px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);
  padding:0 14px;font:600 15px var(--body);text-transform:uppercase}
.sum{display:flex;justify-content:space-between;align-items:baseline;margin:6px 4px 12px}
.sum b{font:500 22px var(--display);letter-spacing:-.02em}
.toast{position:fixed;left:20px;right:20px;top:14px;max-width:520px;margin:0 auto;background:var(--ink);color:var(--bg);padding:12px 16px;
  border-radius:14px;font-weight:700;font-size:14px;opacity:0;visibility:hidden;transform:translateY(-12px);pointer-events:none;
  transition:opacity .2s,transform .3s var(--ease),visibility 0s .3s;z-index:20;display:flex;gap:10px;align-items:center}
.toast.on{opacity:1;visibility:visible;transform:none;transition:opacity .2s,transform .3s var(--ease)}
.spin{width:20px;height:20px;border-radius:50%;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;animation:sp .7s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.done{width:84px;height:84px;border-radius:50%;background:var(--accent-t);color:var(--accent);display:grid;place-items:center;margin:10px auto 14px;
  animation:pop .4s var(--ease)}
.done svg{width:42px;height:42px}
@keyframes pop{from{transform:scale(.6);opacity:0}}
.seg{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.seg button{padding:10px 4px;border-radius:12px;border:1.5px solid var(--line);font-weight:700;font-size:13px;text-align:center}
.seg button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-t);color:var(--accent-d)}
.qr{width:176px;height:176px;margin:8px auto;border-radius:16px;background:#fff;padding:10px}
.qr img{width:100%;height:100%;image-rendering:pixelated}
.sw{width:50px;height:30px;border-radius:99px;background:var(--tick-off);position:relative;transition:background .2s;flex:none}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:transform .2s var(--ease)}
.sw[aria-checked=true]{background:var(--accent)}.sw[aria-checked=true]::after{transform:translateX(20px)}
.skel{height:14px;border-radius:7px;background:linear-gradient(90deg,var(--line),var(--surface-2),var(--line));background-size:200% 100%;
  animation:sk 1.2s linear infinite}
@keyframes sk{to{background-position:-200% 0}}
.err{padding:28px 8px;text-align:center}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
