:root{--bg:#0b0b14;--card:#14141f;--border:#2a2a3d;--text:#e8e8f2;--muted:#8c8ca5;--accent:#a3182f;--accent2:#6b0f22;--err:#f87171;--ok:#4ade80}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;display:grid;place-items:center;padding:16px;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
.bg{position:fixed;inset:0;z-index:-1;background:radial-gradient(600px 400px at 20% 10%,#7a122655,transparent),radial-gradient(500px 400px at 85% 90%,#4a0b1844,transparent)}
.card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--border);border-radius:16px;padding:32px 28px;box-shadow:0 20px 60px #0008;text-align:center}
.logo{width:64px;height:64px;margin:0 auto 8px;color:var(--accent)}
h1{margin:0;font-size:2rem;letter-spacing:.35em;padding-left:.35em}
.sub{margin:6px 0 24px;color:var(--muted);font-size:.9rem}
form{text-align:left}
label{display:block;margin:14px 0 6px;font-size:.85rem;color:var(--muted)}
input{width:100%;padding:11px 12px;background:#0d0d17;border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:1rem}
input:focus{outline:2px solid var(--accent);border-color:transparent}
.pw{position:relative}
.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;font-size:1.1rem;opacity:.7}
.btn{width:100%;margin-top:20px;padding:12px;border:0;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:1rem;font-weight:600;cursor:pointer}
.btn:disabled{opacity:.6;cursor:wait}
.link{display:block;margin:14px auto 0;background:none;border:0;color:var(--muted);font-size:.85rem;cursor:pointer;text-decoration:underline}
.msg{margin:14px 0 0;font-size:.85rem;color:var(--err)}
.msg.ok{color:var(--ok)}
.foot{margin:22px 0 0;color:var(--muted);font-size:.78rem}
