*{box-sizing:border-box}body{margin:0;background:var(--bg-subtle);min-height:100vh;font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased}
.auth{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 16px;gap:20px}
.brand strong{font-size:17px;font-weight:600;letter-spacing:-.02em}
.card{width:min(360px,100%);background:var(--bg);border-radius:var(--r-lg);box-shadow:0 0 0 1px var(--line),0 8px 28px rgba(31,30,28,.05);padding:28px}
h1{font-size:18px;font-weight:600;margin:0 0 6px;letter-spacing:-.01em}.lead{margin:0 0 20px;font-size:13px;color:var(--text-2);line-height:1.55}
label{display:block;font-size:12px;color:var(--text-2);margin:0 0 6px}
input{width:100%;height:38px;border:0;border-radius:var(--r-sm);box-shadow:inset 0 0 0 1px var(--line-strong);padding:0 12px;font:inherit;font-size:14px;margin-bottom:14px;background:var(--bg);color:var(--text)}
input:focus{outline:0;box-shadow:inset 0 0 0 1px var(--accent),0 0 0 3px var(--accent-soft)}input[readonly]{background:var(--fill-1);color:var(--text-2)}
.hint{font-size:12px;color:var(--text-3);margin:-8px 0 14px}
.primary{width:100%;height:38px;border:0;border-radius:var(--r-sm);background:var(--ink);color:#fff;font:inherit;font-size:14px;font-weight:500;cursor:pointer;margin-top:4px}.primary:hover{background:#3a3835}.primary:disabled{opacity:.6;cursor:default}
.error{color:var(--neg);font-size:13px;margin:0 0 12px;line-height:1.5}.foot{font-size:12px;color:var(--text-3);margin:0}