/* Login / register pages — shares tokens with style.css */
.auth{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:calc(24px + var(--safe-t)) 16px calc(24px + var(--safe-b));gap:22px}
.brand{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.brand img{width:72px;height:72px;border-radius:20px}
.brand h1{font-family:var(--display);font-weight:600;font-size:2rem;margin:0;letter-spacing:-.01em}
.brand p{margin:0;color:var(--muted);max-width:32ch}
.card{width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:22px 20px;display:flex;flex-direction:column;gap:14px}
.card h2{font-family:var(--display);font-size:1.3rem;margin:0}
.f{display:flex;flex-direction:column;gap:6px}
.f span{font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.f input{font:inherit;font-size:1rem;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;width:100%}
.f input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-2)}
.f small{color:var(--muted);font-size:.8rem}
.pw{position:relative}
.pw input{padding-right:52px}
.pw button{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;color:var(--muted);padding:8px;cursor:pointer;font-size:.8rem}
.primary{font:inherit;font-weight:600;font-size:1rem;background:var(--accent);color:var(--accent-fg);border:0;border-radius:12px;padding:13px;cursor:pointer}
.primary:disabled{opacity:.55;cursor:wait}
.msg-err{color:var(--danger);font-size:.9rem;min-height:1.2em;margin:0}
.msg-info{background:var(--accent-2);border-radius:12px;padding:10px 12px;font-size:.92rem;margin:0}
.foot{color:var(--muted);font-size:.85rem;text-align:center;max-width:34ch}
.foot a{color:var(--accent)}
