@font-face{font-family:Suisse;src:url('/assets/fonts/suisse-intl-regular.woff2');font-weight:400;font-display:swap}
@font-face{font-family:Suisse;src:url('/assets/fonts/suisse-intl-medium.woff2');font-weight:500;font-display:swap}
:root{color-scheme:light;--bg:#f5f5f5;--panel:#fff;--ink:#161616;--muted:#707070;--line:#e3e3e3;--field:#f5f5f5;--button:#161616;--button-text:#fff;--error:#b42332}
:root[data-theme=dark]{color-scheme:dark;--bg:#18181b;--panel:#27272a;--ink:#e4e4e7;--muted:#a1a1aa;--line:#3f3f46;--field:#18181b;--button:#f4f4f5;--button-text:#18181b;--error:#fda4af}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#18181b;--panel:#27272a;--ink:#e4e4e7;--muted:#a1a1aa;--line:#3f3f46;--field:#18181b;--button:#f4f4f5;--button-text:#18181b;--error:#fda4af}}
*{box-sizing:border-box}
body{margin:0;min-height:100svh;background:var(--bg);color:var(--ink);font:16px/1.5 Suisse,Arial,sans-serif;display:grid;place-items:center;padding:48px 24px}
.auth-layout{width:min(100%,448px)}
.auth-card{width:100%;padding:32px;border:1px solid var(--line);border-radius:16px;background:var(--panel)}
.auth-heading{text-align:center}
.auth-brand{width:56px;height:56px;margin:0 auto 20px;display:grid;place-items:center;border-radius:50%;background:#09090b}
.auth-brand img{display:block;width:36px;height:36px;object-fit:contain;filter:brightness(0) invert(1)}
h1{font-size:24px;font-weight:500;letter-spacing:-.3px;line-height:1.3;margin:0 0 10px}
.auth-intro{color:var(--muted);font-size:16px;line-height:1.5;margin:0 0 32px;overflow-wrap:anywhere}
label{display:block;font-size:14px;margin-bottom:8px}
input{width:100%;min-width:0;height:44px;background:var(--field);border:1px solid var(--line);border-radius:7px;padding:0 13px;font:inherit;font-size:16px;color:inherit;transition:border-color .16s,box-shadow .16s}
input::placeholder{color:var(--muted)}
input:focus{outline:2px solid var(--ink);outline-offset:2px}
input[aria-invalid=true]{border-color:var(--error)}
button{font:inherit;cursor:pointer;touch-action:manipulation}
button:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
.auth-primary{width:100%;display:flex;justify-content:center;align-items:center;margin-top:20px;min-height:44px;padding:11px 16px;border:1px solid var(--button);border-radius:7px;background:var(--button);color:var(--button-text);font-size:14px;font-weight:500;transition:filter .16s}
.auth-primary:hover:not(:disabled){filter:brightness(.9)}
button:disabled{opacity:.5;cursor:default}
form[aria-busy=true] button:disabled{cursor:wait}
.auth-code{text-align:center;letter-spacing:8px;font-size:22px;font-variant-numeric:tabular-nums;padding-left:21px}
.auth-code-hint{font-size:12px;line-height:1.5;color:var(--muted);margin:10px 0 0}
.auth-options{display:flex;justify-content:space-between;gap:12px;margin-top:12px}
.auth-options button{border:0;background:none;color:var(--muted);padding:10px 0;min-height:44px;font-size:12px}
.auth-options button:hover:not(:disabled){color:var(--ink)}
.auth-status{font-size:13px;line-height:1.5;color:var(--muted);text-align:center;margin:16px 0 0;overflow-wrap:anywhere}
.auth-status:empty{display:none}
.auth-status.error{color:var(--error)}
.auth-note{font-size:13px;line-height:1.5;color:var(--muted);text-align:center;margin:28px 0 0}
footer{text-align:center;font-size:12px;line-height:1.5;color:var(--muted);margin-top:32px}
[hidden]{display:none!important}
form{animation:appear .2s ease-out}
@keyframes appear{from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}
@media(max-width:480px){body{padding:32px 16px}.auth-card{padding:28px 24px}.auth-intro{font-size:15px}footer{font-size:11px;margin-top:24px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
