:root{--paper:#F5F6FA;--surface:#FFFFFF;--ink:#1A2140;--muted:#5B6382;--line:#DDE1EC;--lane:#3554D1;--lane-soft:#E6EBFD;--good:#1A8A5E;--good-soft:#E2F5EC;--late:#C73A35;--late-soft:#FBE7E6;--pace-soft:#FDF1DE;color-scheme:light}
@media (prefers-color-scheme:dark){:root{--paper:#12162A;--surface:#1B2038;--ink:#ECEEF7;--muted:#9AA1BF;--line:#2C3352;--lane:#8197FF;--lane-soft:#262F5C;--good:#43C690;--good-soft:#18352B;--late:#FF7A72;--late-soft:#3E2124;--pace-soft:#3A3020;color-scheme:dark}}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.55 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}
h1,h2,h3{font-family:Poppins,Inter,system-ui,sans-serif;margin:0;line-height:1.2}
button,input,select{font:inherit;color:inherit}
a{color:var(--lane)}
:focus-visible{outline:2px solid var(--lane);outline-offset:2px;border-radius:6px}
.muted{color:var(--muted)}
.btn{border:0;border-radius:10px;padding:11px 18px;font-weight:600;cursor:pointer;background:var(--lane);color:#fff;text-decoration:none;display:inline-block}
.btn.ghost{background:none;color:var(--ink);border:1px solid var(--line)}
.btn.small{padding:7px 12px;font-size:13px;border-radius:8px}
.btn.danger{background:none;color:var(--late);border:1px solid var(--late)}
.btn:disabled{opacity:.5;cursor:not-allowed}
label.f{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted);font-weight:500}
label.f input,label.f select{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--paper);color:var(--ink);font-size:15px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:28px}
.center{min-height:100vh;display:grid;place-items:center;padding:24px}
.authbox{width:100%;max-width:400px;display:flex;flex-direction:column;gap:16px}
.brand{display:flex;align-items:center;gap:10px;font-family:Poppins,sans-serif;font-weight:600}
.brand i{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,#3554D1,#8E6CF7);display:grid;place-items:center;color:#fff;font-style:normal}
.err{background:var(--late-soft);color:var(--late);border-radius:10px;padding:10px 12px;font-size:14px;font-weight:500}
.ok{background:var(--good-soft);color:var(--good);border-radius:10px;padding:10px 12px;font-size:14px;font-weight:500}
[hidden]{display:none!important}
