:root{--bg:#061643;--card:#12307a;--ink:#ffffff;--ink-2:#cdd7f3;--muted:#8fa1d2;--line:#1f3d8c;--line-2:#2c4ea3;--accent:#4da3ff;--link:#a9d2ff;--cta:#ffffff;--cta-ink:#0a1f5c;--crit-ink:#ff8a8a;--crit-soft:#3a3470;--good-ink:#4ade80;--good-soft:#154876;color-scheme:dark}*{box-sizing:border-box}body,html{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 Geist,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}.auth{min-height:100%;display:grid;place-items:center;padding:32px 16px}.auth-card{width:min(400px,100%);background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px;display:flex;flex-direction:column;gap:18px}.auth-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.02em}.auth-mark{width:30px;height:30px;border-radius:9px;background:#ffffff;color:#0d2580;display:grid;place-items:center}.auth h1{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em}.auth p{margin:0;color:var(--ink-2)}.auth form{gap:14px}.auth form,.auth label{display:flex;flex-direction:column}.auth label{gap:6px;font-size:13px;font-weight:500;color:var(--ink-2)}.auth input{font:inherit;color:var(--ink);background:#0d276b;border:1px solid var(--line-2);border-radius:10px;padding:10px 12px;font-size:15px}.auth a:focus-visible,.auth button:focus-visible,.auth input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.auth button{font:inherit;font-weight:600;border:0;border-radius:10px;padding:11px 14px;background:var(--cta);color:var(--cta-ink);cursor:pointer;font-size:15px}.auth button:disabled{opacity:.6;cursor:default}.auth a{color:var(--link);text-decoration:none;font-weight:500}.auth a:hover{text-decoration:underline}.auth .row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:13px}.msg{border-radius:10px;padding:10px 12px;font-size:13.5px}.msg.err{background:var(--crit-soft);color:var(--crit-ink)}.msg.ok{background:var(--good-soft);color:var(--good-ink)}.foot{color:var(--muted);font-size:12.5px;text-align:center}