:root{--bg:#f6f5fb;--card:#fff;--ink:#17142e;--mut:#6b6885;--pri:#5b2eff;--pri2:#2f6bff;--ok:#12a150;--warn:#f08a00;--err:#e03131;--line:#e7e5f2;--r:18px;color-scheme:light}
[data-t=dark]{--bg:#0f0d1f;--card:#1a1731;--ink:#f1effc;--mut:#a29fc0;--line:#2c2850;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Figtree,system-ui,sans-serif;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
h1,h2,h3{font-family:'Bricolage Grotesque',sans-serif;line-height:1.15;margin:0 0 .5em}h1{font-size:clamp(2.2rem,7vw,4rem);font-weight:800}
.wrap{max-width:1040px;margin:0 auto;padding:16px 16px 96px}.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px}.big{font:800 1.7rem 'Bricolage Grotesque'}.mut{color:var(--mut);font-size:.9rem}
.btn{border:0;border-radius:14px;padding:12px 18px;font:700 1rem Figtree;cursor:pointer;background:linear-gradient(135deg,var(--pri),var(--pri2));color:#fff;transition:transform .15s}.btn:active{transform:scale(.97)}.btn.ghost{background:transparent;color:var(--pri);border:1.5px solid var(--pri)}.btn.sm{padding:8px 12px;font-size:.9rem}
input,select,textarea{width:100%;padding:12px;border-radius:12px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:inherit;margin:4px 0 12px}label{font-weight:700;font-size:.9rem}
:focus-visible{outline:3px solid var(--pri2);outline-offset:2px}
.bar{height:10px;background:var(--line);border-radius:9px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--pri),var(--pri2));transition:width .8s}
.badge{padding:3px 10px;border-radius:99px;font-size:.78rem;font-weight:700;background:#ece8ff;color:var(--pri)}.badge.ok{background:#dcf7e6;color:var(--ok)}.badge.w{background:#fff0d6;color:var(--warn)}.badge.e{background:#fde2e2;color:var(--err)}
.top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;position:sticky;top:0;background:var(--bg);z-index:5}.logo{font:800 1.4rem 'Bricolage Grotesque';color:var(--pri)}
nav.bn{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--card);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:9}nav.bn a{flex:1;text-align:center;padding:8px 2px;color:var(--mut);font-size:.78rem;font-weight:700;cursor:pointer}nav.bn a.on{color:var(--pri)}nav.bn b{display:block;font-size:1.2rem}
.hero{padding:48px 0;display:grid;gap:24px}.phone{width:200px;aspect-ratio:9/16;border-radius:28px;border:6px solid var(--ink);background:linear-gradient(160deg,var(--pri),#ff5fa2);color:#fff;padding:14px;display:flex;flex-direction:column;justify-content:space-between;margin:auto}
.sheet{position:fixed;inset:auto 0 0;background:var(--card);border-radius:24px 24px 0 0;padding:20px;z-index:20;box-shadow:0 -10px 40px #0004;animation:up .25s}.scrim{position:fixed;inset:0;background:#0006;z-index:19}@keyframes up{from{transform:translateY(100%)}}
#toasts{position:fixed;top:12px;left:12px;right:12px;z-index:30;display:grid;gap:8px;pointer-events:none}.toast{background:var(--ink);color:var(--bg);padding:12px 16px;border-radius:14px;font-weight:600;max-width:420px;margin:auto}.toast.err{background:var(--err);color:#fff}
.sk{height:80px;border-radius:var(--r);background:linear-gradient(90deg,var(--line),var(--card),var(--line));background-size:200%;animation:sh 1.2s infinite}@keyframes sh{to{background-position:-200%}}
.empty{text-align:center;padding:40px 16px;color:var(--mut)}.row{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
@media(min-width:800px){.hero{grid-template-columns:1.2fr 1fr;align-items:center}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
