:root{--bg:#f3f5f7;--surface:#fff;--surface-2:#eaeef2;--line:#d5dce3;--fg:#16212c;--muted:#5b6b7a;--accent:#0d5c7a;--accent-fg:#fff;--crit:#b42318;--crit-bg:#fde7e4;--ok:#1f7a4a;--ok-bg:#e1f3e8;
  --font:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace}
@media (prefers-color-scheme:dark){:root{--bg:#0f161d;--surface:#17212b;--surface-2:#1f2b37;--line:#2c3a48;--fg:#e5ebf0;--muted:#94a5b5;--accent:#4fb3d9;--accent-fg:#06202b;--crit:#ff8a7a;--crit-bg:#3d1c19;--ok:#6fd39c;--ok-bg:#163626;color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-feature-settings:"locl" 0}
body{background:var(--bg);color:var(--fg);font:15px/1.5 var(--font);display:grid;place-items:center;min-height:100vh;padding:24px 16px}
.card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:28px 26px;display:flex;flex-direction:column;gap:16px;box-shadow:0 12px 40px rgba(16,30,45,.08)}
.brand{display:flex;align-items:center;gap:12px}
.mark{width:40px;height:40px;border-radius:10px;background:var(--accent);color:var(--accent-fg);display:grid;place-items:center;font:600 13px var(--mono);letter-spacing:.02em}
h1{margin:0;font-size:20px;line-height:1.2}
.sub{color:var(--muted);font-size:13px}
form{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
input{font:inherit;font-size:15px;color:var(--fg);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%}
input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{font:inherit;font-weight:600;cursor:pointer;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-fg);padding:11px 14px}
button:hover{filter:brightness(1.08)}
.err{background:var(--crit-bg);color:var(--crit);padding:10px 12px;border-radius:8px;font-size:14px}
.ok{background:var(--ok-bg);color:var(--ok);padding:10px 12px;border-radius:8px;font-size:14px}
.foot{font-size:12.5px;color:var(--muted);text-align:center}
a{color:var(--accent)}
.pw{position:relative}
.pw input{padding-right:70px}
.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);padding:4px 8px;font-size:12px;background:transparent;color:var(--muted);border:0}
