.auth-shell{--auth-ink:#1d1d1f;--auth-muted:#6e6e73;--auth-accent:#0d9f6e;min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) 16px max(24px, env(safe-area-inset-bottom));color:var(--auth-ink);background:#f4f5f7;place-items:center;display:grid}.auth-card{background:#fff;border-radius:24px;width:min(100%,400px);padding:40px 32px 28px;box-shadow:0 12px 40px #0f172a0f}.auth-card-wide{width:min(100%,460px);padding:36px 32px 28px}.auth-brand{justify-content:center;width:fit-content;margin:0 auto 22px;display:flex}.auth-brand-wordmark{color:var(--auth-ink);letter-spacing:-.04em;font-size:22px;font-weight:800}.auth-heading{text-align:center;letter-spacing:-.03em;font-size:22px;font-weight:750;line-height:1.2}.auth-intro{color:var(--auth-muted);text-align:center;margin-top:6px;font-size:13px;line-height:1.5}.auth-form{gap:14px;margin-top:24px;display:grid}.auth-form-grid{gap:14px;display:grid}.auth-field{gap:6px;min-width:0;display:grid}.auth-label{color:#3d3d40;font-size:12px;font-weight:620}.auth-input-wrap{position:relative}.auth-input{width:100%;min-height:44px;color:var(--auth-ink);caret-color:var(--auth-accent);font:inherit;background:#f3f4f6;border:1px solid #0000;border-radius:12px;outline:none;padding:0 14px;font-size:15px;transition:border-color .16s,box-shadow .16s,background .16s}.auth-input::placeholder{color:#9aa0a6}.auth-input:hover{background:#eef0f3}.auth-input:focus{border-color:var(--auth-accent);background:#fff;box-shadow:0 0 0 3px #0d9f6e1f}.auth-input-wrap:has(.auth-password-toggle) .auth-input{padding-right:46px}.auth-password-toggle{cursor:pointer;color:#8a8f96;background:0 0;border:0;border-radius:12px;place-items:center;width:42px;height:44px;display:grid;position:absolute;top:0;right:2px}.auth-password-toggle:hover{color:#3d3d40}.auth-password-toggle svg{stroke-width:1.8px;width:18px;height:18px}.auth-password-toggle:focus-visible{outline:2px solid var(--auth-accent);outline-offset:1px}.auth-error{color:#a61b3c;background:#fbecef;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.45}.auth-submit{cursor:pointer;background:var(--auth-accent);color:#fff;width:100%;min-height:46px;font:inherit;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;margin-top:4px;font-size:15px;font-weight:680;transition:background .16s,transform .16s,opacity .16s;display:inline-flex}.auth-submit:hover:not(:disabled){background:#0b8a5f}.auth-submit:active:not(:disabled){transform:scale(.98)}.auth-submit:disabled{cursor:wait;opacity:.65}.auth-submit:focus-visible{outline-offset:3px;outline:2px solid #0b8a5f}.auth-spinner{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite auth-spin}.auth-switch{color:var(--auth-muted);text-align:center;margin-top:18px;font-size:13px}.auth-switch a,.auth-legal a{color:var(--auth-accent);font-weight:650;text-decoration:none}.auth-switch a:hover,.auth-legal a:hover{text-underline-offset:3px;text-decoration:underline}.auth-legal{color:#8a8f96;justify-content:center;gap:10px;margin-top:16px;font-size:12px;display:flex}.auth-legal a{color:inherit;font-weight:520}.auth-helper{color:#8a8f96;font-size:12px;line-height:1.5}.auth-checks{background:#fafbfc;border:1px solid #eceff2;border-radius:14px;gap:10px;padding:12px 14px;display:grid}.auth-check{color:#4b5563;grid-template-columns:18px 1fr;align-items:start;gap:10px;font-size:12px;line-height:1.45;display:grid}.auth-check input{width:16px;height:16px;accent-color:var(--auth-accent);margin-top:1px}.auth-check a{color:var(--auth-accent);font-weight:620;text-decoration:none}.auth-check a:hover{text-underline-offset:2px;text-decoration:underline}.auth-note{color:#8a8f96;text-align:center;margin-top:8px;font-size:12px}@keyframes auth-spin{to{transform:rotate(360deg)}}@media (max-width:640px){.auth-card,.auth-card-wide{width:min(100%,420px);padding:32px 22px 24px}.auth-heading{font-size:20px}}@media (max-width:360px){.auth-card,.auth-card-wide{padding:28px 16px 20px}}@media (prefers-reduced-motion:reduce){.auth-spinner{animation:none}.auth-input,.auth-submit{transition:none}}
