.auth-v2{--v2-bg:#ffffff;--v2-fg:#171717;--v2-fg-2:#4d4d4d;--v2-muted:#666666;--v2-border:rgba(0,0,0,0.12);--v2-border-strong:rgba(0,0,0,0.24);--v2-accent:#0070f3;--v2-accent-text:#0068d6;--v2-danger:#c92a2a;--v2-danger-bg:#fef2f2;--v2-info-bg:#f4f4f5;--v2-font-display:"Geist","Geist Sans",-apple-system,"Segoe UI",Arial,sans-serif;--v2-font-body:"Geist","Geist Sans",-apple-system,"Segoe UI",Arial,sans-serif;--v2-focus-ring:0 0 0 2px var(--v2-accent);min-height:100vh;font-family:var(--v2-font-body);font-size:14px;line-height:1.5;color:var(--v2-fg);background:var(--v2-bg);-webkit-font-smoothing:antialiased}.auth-v2 svg{display:block}.auth-v2 .auth{min-height:100vh;display:flex;flex-direction:column}.auth-v2 .auth-form-col{flex:1 1;display:flex;flex-direction:column;padding:24px 40px}.auth-v2 .auth-loading{margin:auto;color:var(--v2-muted)}.auth-v2 .brandbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.auth-v2 .wordmark{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-family:var(--v2-font-display);font-size:20px;font-weight:600;letter-spacing:-.04em;color:var(--v2-fg);text-decoration:none}.auth-v2 .wordmark .glyph{position:relative;width:22px;height:22px;background:var(--v2-fg)}.auth-v2 .wordmark .glyph:after,.auth-v2 .wordmark .glyph:before{content:"";position:absolute;background:var(--v2-bg)}.auth-v2 .wordmark .glyph:before{left:50%;top:0;bottom:0;width:1px}.auth-v2 .wordmark .glyph:after{top:50%;left:0;right:0;height:1px}.auth-v2 .brandbar .switch{font-size:14px;color:var(--v2-muted);margin:0}.auth-v2 .brandbar .switch a{color:var(--v2-fg);font-weight:500;text-decoration:underline;text-decoration-color:var(--v2-border-strong);text-underline-offset:3px}.auth-v2 .form-wrap{flex:1 1;display:grid;place-items:center;padding:48px 0 96px}.auth-v2 .card{width:100%;max-width:360px}.auth-v2 .card h1{font-family:var(--v2-font-display);font-size:28px;font-weight:600;line-height:1.15;letter-spacing:-.03em;margin:0}.auth-v2 .card .sub{margin-top:8px;font-size:14px;color:var(--v2-fg-2)}.auth-v2 .card .sub+.auth-banner,.auth-v2 .card .sub+.fineprint,.auth-v2 .card .sub+.oauth,.auth-v2 .card .sub+form,.auth-v2 .card h1+.auth-banner,.auth-v2 .card h1+.oauth{margin-top:28px}.auth-v2 .card .sub+.auth-banner{margin-top:24px}.auth-v2 .auth-banner{margin-bottom:16px;padding:10px 12px;font-size:13px;line-height:1.45}.auth-v2 .auth-banner a{color:inherit;text-decoration:underline;text-underline-offset:2px}.auth-v2 .auth-banner--error{background:var(--v2-danger-bg);color:var(--v2-danger);box-shadow:0 0 0 1px color-mix(in srgb,var(--v2-danger) 25%,transparent)}.auth-v2 .auth-banner--info{background:var(--v2-info-bg);color:var(--v2-fg-2);box-shadow:0 0 0 1px var(--v2-border)}.auth-v2 .oauth{display:grid}.auth-v2 .btn{appearance:none;font-family:var(--v2-font-body);font-size:14px;font-weight:500;border:0;border-radius:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:44px;padding:0 14px;transition:background-color .15s ease-out,box-shadow .15s ease-out,transform .1s ease-out}.auth-v2 .btn:active:not(:disabled){transform:scale(.98)}.auth-v2 .btn:focus-visible{outline:none;box-shadow:var(--v2-focus-ring)}.auth-v2 .btn:disabled{opacity:.72;cursor:wait}.auth-v2 .btn-ghost{background:#fff;color:var(--v2-fg);box-shadow:0 0 0 1px var(--v2-border)}.auth-v2 .btn-primary{background:var(--v2-fg);color:#fff;width:100%}.auth-v2 .btn .ico{width:16px;height:16px;flex-shrink:0}.auth-v2 .divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--v2-muted);font-size:13px}.auth-v2 .divider:after,.auth-v2 .divider:before{content:"";flex:1 1;height:1px;background:var(--v2-border)}.auth-v2 .field{margin-bottom:16px}.auth-v2 .field .row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.auth-v2 .field label{font-size:14px;font-weight:500;color:var(--v2-fg)}.auth-v2 .forgot{appearance:none;border:0;background:none;padding:0;font:inherit;font-size:13px;color:var(--v2-accent-text);text-decoration:none;cursor:pointer}.auth-v2 .input-wrap{position:relative}.auth-v2 .field input{width:100%;height:44px;padding:0 14px;font-family:var(--v2-font-body);font-size:16px;color:var(--v2-fg);background:#fff;border:0;border-radius:0;box-shadow:0 0 0 1px var(--v2-border);transition:box-shadow .15s ease-out}.auth-v2 .field .input-wrap:has(.pw-toggle) input,.auth-v2 .field input[type=password]{padding-right:64px}.auth-v2 .field input:focus{outline:none;box-shadow:var(--v2-focus-ring)}.auth-v2 .field input[aria-invalid=true]{box-shadow:0 0 0 1px var(--v2-danger)}.auth-v2 .field input[aria-invalid=true]:focus{box-shadow:0 0 0 2px var(--v2-danger)}.auth-v2 .field .pw-toggle{position:absolute;right:4px;top:50%;transform:translateY(-50%);min-width:52px;height:36px;padding:0 10px;border:0;background:transparent;font:500 13px var(--v2-font-body);color:var(--v2-muted);cursor:pointer;border-radius:0;transition:color .15s ease-out,background-color .15s ease-out}.auth-v2 .field .pw-toggle:focus-visible{outline:none;box-shadow:var(--v2-focus-ring)}.auth-v2 .field .err,.auth-v2 .field .hint{margin-top:6px;font-size:13px}.auth-v2 .field .err{color:var(--v2-danger)}.auth-v2 .field .hint{color:var(--v2-muted)}.auth-v2 .form-actions{margin-top:24px}.auth-v2 .fineprint{margin-top:20px;font-size:13px;line-height:1.55;color:var(--v2-muted)}.auth-v2 .fineprint .forgot,.auth-v2 .fineprint a{color:var(--v2-fg);font-size:13px;text-decoration:underline;text-decoration-color:var(--v2-border-strong);text-underline-offset:3px}.auth-v2 .forgot:focus-visible,.auth-v2 a:focus-visible{outline:2px solid var(--v2-accent);outline-offset:2px}@media (hover:hover) and (pointer:fine){.auth-v2 .btn-ghost:hover:not(:disabled){background:#fafafa;box-shadow:0 0 0 1px var(--v2-border-strong)}.auth-v2 .btn-primary:hover:not(:disabled){background:#000}.auth-v2 .field input:hover:not(:focus){box-shadow:0 0 0 1px var(--v2-border-strong)}.auth-v2 .field input[aria-invalid=true]:hover:not(:focus){box-shadow:0 0 0 1px var(--v2-danger)}.auth-v2 .field .pw-toggle:hover{color:var(--v2-fg);background:#f4f4f4}.auth-v2 .brandbar .switch a:hover,.auth-v2 .fineprint a:hover,.auth-v2 .forgot:hover{text-decoration:underline;text-decoration-color:currentColor}}@media (prefers-reduced-motion:reduce){.auth-v2 .btn:active:not(:disabled){transform:none}}@media (max-width:640px){.auth-v2 .auth-form-col{padding:16px 20px}.auth-v2 .form-wrap{place-items:start center;padding:40px 0 48px}.auth-v2 .brandbar .switch{font-size:13px;text-align:right}}