/* Auth screens only. Scoped to body.auth so the portal, onboarding,
   and marketing site keep their own styles. */
body.auth{margin:0;background:#F7F5F0;color:#111110;font-family:"Schibsted Grotesk",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
body.auth *{box-sizing:border-box}
body.auth a{color:#2340E8;text-decoration:none}
body.auth a:hover{color:#1A30C4}
body.auth button,body.auth input{font-family:inherit}
body.auth input::placeholder{color:#A09C92}
body.auth .auth-page{min-height:100vh;display:flex;flex-direction:column}
body.auth .auth-header,body.auth .auth-footer{max-width:1240px;width:100%;margin:0 auto;padding:0 clamp(16px,3vw,32px)}
body.auth .auth-header{display:flex;align-items:center;gap:16px;min-height:72px}
body.auth .auth-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:-.02em;color:#111110}
body.auth .auth-mark{width:22px;height:22px;border-radius:6px;background:#2340E8;display:grid;place-items:center}
body.auth .auth-mark i{width:8px;height:8px;border-radius:50%;background:#fff;display:block}
body.auth .auth-switch{margin-left:auto;font-size:14px;color:#4A4843;display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
body.auth .auth-switch a{font-weight:600}
body.auth .auth-main{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:clamp(24px,7vh,80px) clamp(16px,3vw,32px) 64px}
body.auth .auth-card{width:100%;max-width:420px}
body.auth .auth-kicker{font-family:"Geist Mono",monospace;font-size:12px;letter-spacing:.04em;color:#2340E8}
body.auth h1{margin:12px 0 0;font-size:clamp(30px,4vw,40px);line-height:1.05;letter-spacing:-.04em;font-weight:700;text-wrap:pretty}
body.auth .auth-back + h1{margin-top:20px}
body.auth .auth-sub{margin:12px 0 0;font-size:16px;line-height:1.5;color:#4A4843;text-wrap:pretty}
body.auth .auth-form{margin-top:22px;display:flex;flex-direction:column;gap:16px}
body.auth .auth-form.loose{margin-top:28px}
body.auth label{display:flex;flex-direction:column;gap:6px}
body.auth .auth-label{font-size:14px;font-weight:600;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
body.auth .auth-label a{font-size:13px;font-weight:500}
body.auth input[type=email],body.auth input[type=text],body.auth input[type=password]{width:100%;background:#fff;border:1px solid #D9D5CB;border-radius:10px;padding:13px 14px;font-size:16px;color:#111110;outline:none}
body.auth input:focus{border-color:#2340E8;box-shadow:0 0 0 3px #DDE3FC}
body.auth input.is-bad{border-color:#D92D20}
body.auth .auth-pw{position:relative;display:flex}
body.auth .auth-pw input{flex:1;min-width:0;padding-right:84px}
body.auth .auth-reveal{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:0;background:none;color:#4A4843;font-size:13px;font-weight:600;padding:8px 10px;border-radius:6px;cursor:pointer}
body.auth .auth-reveal:hover{background:#F4F2EC}
body.auth .auth-field-err{font-size:13px;color:#B42318}
body.auth .auth-banner{background:#FEF3F2;border:1px solid #FAD1CD;color:#912018;border-radius:10px;padding:12px 14px;font-size:14px;line-height:1.45}
body.auth .auth-submit{margin-top:6px;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#2340E8;color:#fff;border:0;border-radius:10px;padding:14px 22px;font-size:16px;font-weight:600;cursor:pointer}
body.auth .auth-submit:hover{background:#1A30C4}
body.auth .auth-submit:disabled{opacity:.75;cursor:progress}
body.auth .auth-submit:focus-visible,body.auth .auth-reveal:focus-visible,body.auth .auth-back:focus-visible{outline:2px solid #2340E8;outline-offset:3px}
body.auth .auth-spin{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;animation:auth-spin .7s linear infinite;display:none}
body.auth .auth-submit.is-loading .auth-spin{display:inline-block}
@keyframes auth-spin{to{transform:rotate(360deg)}}
body.auth .auth-note{margin:20px 0 0;font-size:13px;line-height:1.5;color:#6B6860;text-wrap:pretty}
body.auth .auth-back{border:0;background:none;padding:0;color:#4A4843;font-size:14px;font-weight:500;cursor:pointer}
body.auth a.auth-back:hover,body.auth .auth-back:hover{color:#111110}
body.auth .auth-strength{display:flex;align-items:center;gap:10px;margin-top:2px}
body.auth .auth-strength[hidden]{display:none}
body.auth .auth-bars{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:4px}
body.auth .auth-bars i{height:4px;border-radius:2px;background:#E9E6DF;display:block}
body.auth .auth-strength b{font-family:"Geist Mono",monospace;font-size:11px;letter-spacing:.04em;font-weight:500;color:#8A867C;min-width:5.5em;text-align:right}
body.auth .auth-sent-mark{width:44px;height:44px;border-radius:12px;background:#DDE3FC;display:grid;place-items:center}
body.auth .auth-sent-mark i{width:14px;height:14px;border-radius:50%;background:#2340E8;display:block}
body.auth .auth-resend{margin-top:28px;background:#fff;border:1px solid #E6E2D9;border-radius:14px;padding:16px 18px;font-size:14px;line-height:1.5;color:#4A4843}
body.auth .auth-resend button{border:0;background:none;padding:0;color:#2340E8;font-size:14px;font-weight:600;cursor:pointer}
body.auth .auth-resend button:hover{color:#1A30C4}
body.auth .auth-footer{padding:20px clamp(16px,3vw,32px) 28px;display:flex;flex-wrap:wrap;gap:8px 20px;font-size:13px;color:#8A867C}
@media (max-width:390px){
  body.auth h1{font-size:30px}
  body.auth .auth-switch{font-size:13px}
}
