:root{--bg:#eef3f3;--card:#fff;--fg:#14292d;--muted:#5b6f73;--line:#cdd9da;--accent:#0b6e75;--err:#b3261e}
@media(prefers-color-scheme:dark){:root{--bg:#0d1a1c;--card:#142528;--fg:#e4eeef;--muted:#93a9ac;--line:#28403f;--accent:#4fc1c8;--err:#ff8a80}}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:grid;place-items:center;background:var(--bg);color:var(--fg);font:15px/1.45 "IBM Plex Sans",system-ui,sans-serif;padding:16px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:28px;width:min(380px,100%);display:flex;flex-direction:column;gap:14px}
h1{margin:0;font-size:22px}p{margin:0;color:var(--muted)}
label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}
input{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--fg)}
input:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button{font:inherit;font-weight:600;padding:11px;border:0;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer}
@media(prefers-color-scheme:dark){button{color:#08181a}}
.err{color:var(--err);min-height:1.4em;font-size:14px}
[hidden]{display:none!important}
