body { min-height:100dvh; background:linear-gradient(145deg,var(--paper),var(--bg)); }
.login-shell { min-height:100dvh; display:grid; place-items:center; padding:24px; }
.login-card { width:min(100%,410px); padding:38px; background:var(--panel); border:1px solid var(--line); border-radius:var(--radius-lg); box-shadow:var(--shadow-md); }
.brand-mark { display:grid; place-items:center; width:46px; height:46px; border-radius:var(--radius); background:var(--ink); color:var(--paper); font:700 20px var(--serif); }
.eyebrow { margin:28px 0 8px; color:var(--muted); font-size:10px; letter-spacing:.16em; font-weight:600; }
h1 { margin:0; font:600 38px/1.1 var(--serif); }
.intro { margin:10px 0 26px; color:var(--muted); line-height:1.6; }
form { display:grid; gap:16px; }
label { display:grid; gap:7px; color:var(--ink-2); font-size:13px; }
input { width:100%; min-height:var(--h-touch)!important; }
input:focus { box-shadow:0 0 0 3px var(--accent-soft); }
button[type="submit"] { min-height:var(--h-touch); margin-top:4px; border:1px solid var(--accent); border-radius:var(--radius); padding:0 18px; background:var(--accent); color:var(--on-accent); font-weight:600; cursor:pointer; }
button[type="submit"]:disabled { opacity:.55; cursor:wait; }
.status { min-height:20px; margin:16px 0 0; color:var(--error); font-size:13px; }
@media (max-width:480px) { .login-card { padding:28px 24px; } }
