:root{--bg:#f6f5fb;--card:#ffffffd9;--tx:#14132a;--mu:#6b6a85;--ln:#e0dff0;--ac:#6d4aff;--ac2:#2f8cff;--ok:#12805c;--bad:#c92a4b;--sh:0 10px 40px #4b3aa51f;color-scheme:light}
[data-theme=dark]{--bg:#07061a;--card:#14122ed9;--tx:#f1f0ff;--mu:#9b99c4;--ln:#2a2750;--ac:#8d73ff;--ac2:#4aa3ff;--ok:#4fd1a0;--bad:#ff6b8a;--sh:0 10px 50px #0009;color-scheme:dark}
*{box-sizing:border-box}html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--tx);font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.stars{position:fixed;inset:0;z-index:-1;background:radial-gradient(60vw 50vh at 80% -10%,#6d4aff33,transparent),radial-gradient(50vw 45vh at 0 100%,#2f8cff26,transparent)}
[data-theme=dark] .stars{background-image:radial-gradient(1px 1px at 20% 30%,#fffa,transparent),radial-gradient(1px 1px at 70% 60%,#fff9,transparent),radial-gradient(1.5px 1.5px at 40% 80%,#fff8,transparent),radial-gradient(1px 1px at 85% 20%,#fffa,transparent),radial-gradient(60vw 50vh at 80% -10%,#6d4aff44,transparent),radial-gradient(50vw 45vh at 0 100%,#2f8cff33,transparent)}
a{color:var(--ac);text-decoration:none}a:hover{text-decoration:underline}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:6px}main{outline:0}
#hdr{display:flex;justify-content:space-between;align-items:center;padding:16px max(20px,4vw)}
.brand{display:flex;align-items:center;gap:10px;font-weight:650;letter-spacing:-.01em;color:var(--tx)}.brand:hover{text-decoration:none}
.brand i{width:22px;height:22px;border-radius:50%;background:conic-gradient(from 200deg,var(--ac),var(--ac2),var(--ac));box-shadow:0 0 18px var(--ac)}
.hr{display:flex;gap:8px;align-items:center}
.btn{font:inherit;font-weight:600;border:1px solid var(--ln);background:var(--card);color:var(--tx);padding:10px 18px;border-radius:12px;cursor:pointer;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s,box-shadow .15s}
.btn:hover{text-decoration:none;transform:translateY(-1px)}.btn.pri{background:linear-gradient(135deg,var(--ac),var(--ac2));color:#fff;border:0;box-shadow:0 6px 22px #6d4aff55}
.btn.bad{color:#fff;background:var(--bad);border:0}.btn.sm{min-height:36px;padding:6px 12px}.btn:disabled{opacity:.6;cursor:wait}
.btn.load::after{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sp .7s linear infinite}@keyframes sp{to{rotate:1turn}}
#app{padding:0 max(20px,4vw) 60px;max-width:1100px;margin:0 auto}#app>*{animation:up .45s cubic-bezier(.2,.7,.2,1)}@keyframes up{from{opacity:0;transform:translateY(12px)}}
.hero{text-align:center;padding:9vh 0 4vh}.eyebrow{color:var(--mu);letter-spacing:.14em;text-transform:uppercase;font-size:.8rem}
h1{font-size:clamp(2.4rem,7vw,4.6rem);line-height:1.05;letter-spacing:-.035em;margin:.3em 0}h2{margin:0 0 .3em;letter-spacing:-.02em}
.grad{background:linear-gradient(120deg,var(--ac),var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:var(--mu);max-width:34rem;margin:0 auto 1.6rem}.cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.card{background:var(--card);border:1px solid var(--ln);border-radius:20px;padding:28px;box-shadow:var(--sh);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.narrow{max-width:440px;margin:4vh auto}.sub{color:var(--mu);margin:.2em 0 1.2em}
.fld{margin-bottom:14px}.fld label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
input,select{font:inherit;width:100%;min-height:46px;padding:10px 14px;border-radius:12px;border:1px solid var(--ln);background:var(--bg);color:var(--tx)}input[type=checkbox]{width:20px;min-height:20px;accent-color:var(--ac)}
input[readonly]{opacity:.75}small.h{color:var(--mu);font-size:.78rem}
.meter{display:flex;gap:4px;margin-top:8px}.meter b{height:4px;flex:1;border-radius:4px;background:var(--ln)}.meter[data-s="1"] b:nth-child(-n+1){background:var(--bad)}.meter[data-s="2"] b:nth-child(-n+2){background:#e6a23c}.meter[data-s="3"] b:nth-child(-n+3){background:var(--ac2)}.meter[data-s="4"] b{background:var(--ok)}
.msg{min-height:1.4em;margin:6px 0 12px;font-size:.9rem}.msg.bad{color:var(--bad)}.msg.ok{color:var(--ok)}
.acct{display:grid;grid-template-columns:200px 1fr;gap:24px;padding-top:8px}.side{display:flex;flex-direction:column;gap:4px;position:sticky;top:12px;align-self:start}
.side a{padding:10px 14px;border-radius:12px;color:var(--mu);font-weight:550}.side a:hover{background:var(--card);text-decoration:none}.side a[aria-current]{background:var(--card);color:var(--tx);box-shadow:inset 3px 0 var(--ac)}
.main>*+*{margin-top:18px}.who{display:flex;align-items:center;gap:16px}.av{width:64px;height:64px;border-radius:50%;object-fit:cover;flex:none}.av.ph{display:grid;place-items:center;font-weight:700;font-size:1.5rem;color:#fff;background:linear-gradient(135deg,var(--ac),var(--ac2))}
.gid{font:600 1.05rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;display:inline-flex;gap:10px;align-items:center;background:var(--bg);border:1px solid var(--ln);padding:6px 6px 6px 14px;border-radius:12px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.grid a.card{color:var(--tx);padding:20px}.grid a.card:hover{text-decoration:none;border-color:var(--ac)}.grid p{margin:.2em 0 0;color:var(--mu);font-size:.9rem}
.pill{display:inline-block;padding:2px 10px;border-radius:99px;font-size:.78rem;font-weight:650;background:#e6a23c33;color:#b9770e}.pill.ok{background:#12805c26;color:var(--ok)}
.banner{border:1px solid #e6a23c88;background:#e6a23c1f;padding:14px 18px;border-radius:14px;display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.empty{color:var(--mu);text-align:center;padding:24px}dl{display:grid;grid-template-columns:max-content 1fr;gap:8px 20px;margin:0}dt{color:var(--mu)}dd{margin:0;overflow-wrap:anywhere}
#toasts{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));display:grid;gap:8px;z-index:9}.toast{background:var(--tx);color:var(--bg);padding:12px 16px;border-radius:12px;animation:up .3s}.toast.bad{background:var(--bad);color:#fff}
@media(max-width:760px){.acct{grid-template-columns:1fr}.side{flex-direction:row;overflow-x:auto;position:static;padding-bottom:4px}.side a{white-space:nowrap}.row2{grid-template-columns:1fr}.card{padding:20px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
