:root{
  --bg:#0b0b12; --panel:#0f1022; --ink:#e9ecf1; --muted:#9aa4b2;
  --brand:#7c3aed; --brand2:#06b6d4; --glass:rgba(255,255,255,.04);
  --ok:#22c55e; --err:#ef4444;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Inter,system-ui,Arial,sans-serif;color:var(--ink);background:radial-gradient(1000px 600px at 10% 10%,#1a1442 0%, transparent 60%), linear-gradient(180deg,#07070c, #0b0b12)}
.login-bg{display:grid;place-items:center;padding:24px}
.glass{width:min(440px,92vw);background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid #22253d;border-radius:16px;padding:28px;backdrop-filter:blur(6px);box-shadow:0 10px 50px rgba(0,0,0,.4)}
.brand{display:flex;gap:10px;align-items:center;margin-bottom:8px}
.logo{font-weight:800;letter-spacing:.5px;background:linear-gradient(90deg,var(--brand),var(--brand2));-webkit-background-clip:text;color:transparent;font-size:22px}
h1{margin:6px 0 4px 0;font-size:28px}
.muted{color:var(--muted);margin-bottom:18px}
.card{display:grid;gap:12px;background:var(--glass);border:1px solid #1f2140;border-radius:12px;padding:16px}
label{display:grid;gap:6px;font-size:14px}
input{background:#0e0f1f;border:1px solid #252858;border-radius:10px;color:var(--ink);padding:12px 14px;outline:none}
input:focus{border-color:#5b6cff;box-shadow:0 0 0 3px rgba(91,108,255,.2)}
.primary{margin-top:8px;background:linear-gradient(90deg,#6d28d9,#7c3aed,#06b6d4);border:none;color:white;padding:12px 14px;border-radius:10px;font-weight:700;cursor:pointer}
.primary:active{transform:translateY(1px)}
.msg{min-height:18px;font-size:13px}
.msg.ok{color:var(--ok)} .msg.err{color:var(--err)}
footer{margin-top:16px;color:var(--muted);text-align:center;font-size:12px}