/* Scoped auth presentation; the shared header/menu remains unchanged. */
.select-signin-body { color-scheme: light; margin:0; min-height:100vh; min-height:100svh; display:flex; flex-direction:column; color:#252631; background:radial-gradient(ellipse at 20% 15%,#faf9fd,transparent 65%),#eeebf5; font-family:Arial,Helvetica,sans-serif; }
.select-auth { width:100%; box-sizing:border-box; flex:1; display:flex; align-items:center; justify-content:center; padding:36px 16px; }
.select-auth *, .select-auth *::before, .select-auth *::after { box-sizing:border-box; }
.select-auth [hidden] { display:none!important; }
.auth-card { width:100%; max-width:420px; min-width:0; padding:28px; border:1px solid #fff; border-radius:24px; background:rgba(253,252,255,.94); box-shadow:0 14px 38px rgba(61,47,94,.08); }
.auth-card h1 { font-size:26px; font-weight:700; line-height:1.2; letter-spacing:-.6px; margin:24px 0; color:#242332; }
.auth-modes { display:flex; padding:4px; gap:4px; border-radius:12px; background:#efedf4; }
.auth-modes button { flex:1; border:0; background:transparent; padding:11px 8px; border-radius:9px; color:#666372; font:inherit; cursor:pointer; }
.auth-modes button[aria-pressed="true"] { color:#292634; background:#fff; box-shadow:0 2px 5px #3025400d; font-weight:600; }
.auth-card label { display:block; font-size:14px; font-weight:600; margin:18px 0 8px; }
.auth-card input { width:100%; min-width:0; height:48px; border:1px solid #c9c5d3; border-radius:10px; padding:12px; font:16px/1.4 Arial,Helvetica,sans-serif; color:#252631; background:#fff; }
.auth-card input[aria-invalid="true"] { border-color:#994144; }
.password-field { display:flex; align-items:center; position:relative; }
.password-field input { padding-right:64px; }
.password-field button { position:absolute; right:3px; min-height:44px; padding:0 10px; border:0; border-radius:8px; color:#554875; background:transparent; font:14px Arial,Helvetica,sans-serif; cursor:pointer; }
.auth-card .auth-primary { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:48px; margin:24px 0 0; padding:12px; border:0; border-radius:11px; background:#63517d; color:#fff; font:600 15px/1.4 Arial,Helvetica,sans-serif; cursor:pointer; }
.auth-card button:disabled { cursor:default; opacity:.55; }
.auth-card .auth-primary:disabled { background:#ded9e6; color:#686271; opacity:1; }
.auth-links { display:flex; flex-direction:column; align-items:center; gap:2px; margin-top:12px; }
.auth-links button,.text-action { border:0; background:transparent; color:#554875; font:14px/1.5 Arial,Helvetica,sans-serif; min-height:44px; padding:10px 4px; cursor:pointer; }
.auth-back { display:block; margin:10px auto 0; }
.field-help,.field-feedback,.auth-status { font-size:13px; line-height:1.5; color:#64606e; margin:8px 0 0; overflow-wrap:anywhere; }
.field-feedback { color:#923c40; }
.field-feedback:empty,.auth-status:empty { display:none; }
.auth-status { margin-top:18px; }
#securityCheck { margin-top:18px; width:100%; }
#phoneBot { margin-top:8px; min-width:0; }
#phoneBot iframe { max-width:100%; }
.code-input { letter-spacing:.3em; }
.guest-context { margin-top:20px; padding-top:16px; border-top:1px solid #e7e3ec; text-align:center; font-size:13px; line-height:1.5; color:#64606e; }
.guest-context p { margin:0 0 6px; }
.auth-card a { color:#554875; text-underline-offset:3px; }
.auth-footer { display:flex; gap:10px; justify-content:center; align-items:center; padding:16px 12px 22px; color:#6c6677; font-size:12px; }
.auth-footer a { color:inherit; text-decoration:none; padding:8px 2px; }
.select-auth :is(a,button,input):focus-visible,.auth-footer a:focus-visible { outline:2px solid #7862a7; outline-offset:3px; }
@media(hover:hover) { .auth-primary:not(:disabled):hover { background:#54436d; } .auth-links button:hover,.text-action:hover,.auth-footer a:hover { text-decoration:underline; } }
@media(max-width:420px) { .select-auth { padding:24px 8px; } .auth-card { padding:20px 16px; border-radius:20px; } }
/* Flexible Turnstile has a 300px minimum: give it a deliberate full-width row at 320px. */
@media(max-width:350px) { #phoneBot { margin-left:-16px; margin-right:-16px; width:calc(100% + 32px); } }
@media(prefers-reduced-motion:reduce) { .select-auth * { animation:none!important; transition:none!important; } }

/* One auth device: reserve ordinary-state space, let enlarged text/errors grow. */
.auth-card { min-height:720px; display:flex; flex-direction:column; }
.auth-modes { flex-shrink:0; }
.auth-content { flex:1; display:flex; flex-direction:column; justify-content:center; }
.auth-content > * { flex-shrink:0; }
#forgotPassword { text-decoration:underline; text-underline-offset:3px; }
#forgotPassword:hover { text-decoration-thickness:2px; }
.guest-context { flex-shrink:0; border:0; padding-top:0; margin-top:12px; }

#codeActions { flex-direction:row; justify-content:space-between; gap:12px; }
