* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; min-height: 100svh; display: grid; place-items: center; background: var(--ground); color: var(--ink); font: 14px/1.5 var(--font); }
.login-shell { width: min(100%, 476px); padding: 40px 24px; }
.identity { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 30px; color: var(--ink); text-decoration: none; font-size: 20px; font-weight: 700; letter-spacing: .02em; }
.brand-mark { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid var(--accent); border-radius: var(--radius); color: var(--accent); font-size: 23px; }
.project { display: block; color: var(--muted); font-size: 10px; font-weight: 500; letter-spacing: .08em; }
.login-card { padding: 36px; border: 1px solid var(--border); border-top: 3px solid var(--accent); border-radius: var(--radius); background: var(--panel); }
.eyebrow { margin: 0 0 12px; color: var(--accent); font-size: 10px; font-weight: 650; letter-spacing: .15em; }
h1 { margin: 0 0 6px; font-size: 28px; font-weight: 650; letter-spacing: -.025em; }
.intro { color: var(--muted); margin: 0 0 28px; }
.field { margin-bottom: 20px; }
label { display: block; margin-bottom: 7px; font-size: 12px; font-weight: 600; }
input, button { font: inherit; }
input { width: 100%; height: 46px; padding: 10px 12px; background: var(--ground); border: 1px solid var(--border); border-radius: 6px; color: var(--ink); }
input:focus-visible, button:focus-visible, a:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
input[aria-invalid="true"] { border-color: var(--bad); }
.password-field { position: relative; }
.password-field input { padding-right: 70px; }
.reveal { position: absolute; right: 4px; top: 4px; height: 38px; min-width: 58px; padding: 0 9px; border: 0; border-radius: 4px; color: var(--muted); background: transparent; font-size: 12px; cursor: pointer; }
.reveal:hover { color: var(--ink); background: var(--raised); }
.submit { display: flex; justify-content: space-between; align-items: center; width: 100%; min-height: 46px; padding: 10px 15px; border: 1px solid var(--accent); border-radius: 6px; background: var(--accent); color: var(--ground); font-weight: 650; cursor: pointer; transition: filter .15s; }
.submit:hover { filter: brightness(1.08); }
.submit:disabled { opacity: .65; cursor: wait; }
.error { margin: 0 0 20px; color: var(--bad); font-size: 12px; }
.project-note { display: flex; align-items: center; gap: 8px; margin-top: 28px; padding-top: 20px; border-top: 1px solid var(--border); color: var(--muted); font-size: 11px; }
.project-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); flex-shrink: 0; }
.note-divider { padding: 0 5px; }
.footer { margin: 24px 0 0; text-align: center; color: var(--muted); font-size: 11px; }
@media (max-width: 420px) { .login-shell { padding: 28px 16px; } .login-card { padding: 28px 24px; } }
