:root{color-scheme:light;--bg:#EEF0F3;--surface:#fff;--ink:#141422;--muted:#6b6f80;--border:rgba(20,20,34,.12);--accent:#2a78d6;--accent-deep:#1f5fae;--danger:#d03b3b;--ok:#0ca30c;--rail:#17151D}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font:15px/1.5 "IBM Plex Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;display:flex;align-items:center;justify-content:center;padding:24px}
.card{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 22px 44px -14px rgba(20,20,34,.3);width:100%;max-width:420px;padding:32px 30px}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}
.brand .logo{width:40px;height:40px;border-radius:12px;background:var(--rail);color:#fff;display:grid;place-items:center;font:800 18px "Big Shoulders Display",system-ui,sans-serif;letter-spacing:.5px}
.brand h1{margin:0;font:700 22px/1.1 "Big Shoulders Display",system-ui,sans-serif;letter-spacing:.3px}
.brand small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
label{display:block;font-size:12.5px;font-weight:600;color:var(--muted);margin:14px 0 6px}
input{width:100%;font:inherit;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fbfbfc;color:var(--ink)}
input:focus{outline:2px solid rgba(42,120,214,.35);border-color:var(--accent)}
button.primary{width:100%;margin-top:20px;font:600 15px inherit;font-family:inherit;padding:11px 14px;border:0;border-radius:10px;background:var(--accent);color:#fff;cursor:pointer}
button.primary:hover{background:var(--accent-deep)}
button.primary[disabled]{opacity:.6;cursor:wait}
.msg{margin-top:14px;padding:10px 12px;border-radius:10px;font-size:13.5px;display:none}
.msg.err{display:block;background:#fbe9e9;color:#8f1d1d;border:1px solid #f0c4c4}
.msg.ok{display:block;background:#e8f7e8;color:#1c6b1c;border:1px solid #bfe5bf}
.links{margin-top:18px;font-size:13px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.links a{color:var(--accent);text-decoration:none}
.links a:hover{text-decoration:underline}
.hint{font-size:12.5px;color:var(--muted);margin-top:6px}
