:root{color-scheme:dark;--bg:#0b1020;--panel:#141c30;--border:#2a3551;--text:#e8edf7;--muted:#a7b2cd;--accent:#7aa2ff}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:grid;place-items:center;padding:32px 18px;background:radial-gradient(900px 600px at 20% 0%,#1d2c50,transparent 65%),radial-gradient(700px 500px at 100% 100%,#241b43,transparent 70%),var(--bg);font:15px/1.65 "Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:var(--text)}
.auth-wrap{width:100%;max-width:450px}
.brand{margin-bottom:22px;text-align:center;letter-spacing:.16em;font-weight:700;color:var(--accent)}
.auth-card{padding:30px;border:1px solid var(--border);border-radius:18px;background:linear-gradient(160deg,var(--panel),#10172a);box-shadow:0 22px 70px #0005}
h1{font-size:25px;line-height:1.35;margin:0 0 12px;letter-spacing:.01em}
.intro{color:var(--muted);margin:0 0 25px;font-size:14px}
label{display:block;font-weight:600;margin-bottom:8px}
input{display:block;width:100%;font:16px/1.5 Consolas,monospace;padding:12px 14px;border:1px solid #34415e;border-radius:10px;background:#0a1122;color:var(--text);margin-bottom:20px}
input::placeholder{color:#7887a8}
input:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.captcha{min-height:65px;margin:0 0 8px}
.captcha-status{font-size:12px;color:var(--muted);min-height:20px;margin:0 0 16px}
button{display:block;width:100%;border:0;border-radius:10px;padding:13px 18px;font:inherit;font-weight:600;background:linear-gradient(#7198ff,#527cf0);color:white;cursor:pointer}
button:hover:enabled{filter:brightness(1.1)}
button:disabled{opacity:.5;cursor:not-allowed}
.error{padding:11px 13px;border:1px solid #9b4d5f;border-radius:9px;background:#482334;color:#ffced6;font-size:13px;margin:0 0 18px;overflow-wrap:anywhere}
.footnote{font-size:12px;color:var(--muted);margin:18px 0 0}
.footer{text-align:center;color:#7f8eaf;font-size:12px;margin-top:20px}
[hidden]{display:none!important}
@media(max-width:380px){body{padding:20px 12px}.auth-card{padding:23px 18px}h1{font-size:22px}}
