/* Shared sign-in, recovery and verification presentation. */
@font-face { font-family:Inter; src:url('../fonts/inter-latin-variable.woff2') format('woff2'); font-style:normal; font-weight:100 900; font-display:swap; }
.auth-portal { --auth-bg:#f4f7fb; --auth-surface:#fff; --auth-text:#102f45; --auth-muted:#607489; --auth-line:#e3eaf1; --auth-blue:#0876d9; background:var(--auth-bg); color:var(--auth-text); font-family:Inter,system-ui,sans-serif; font-size:13px; }
.dark .auth-portal { --auth-bg:#0f1724; --auth-surface:#172235; --auth-text:#edf3fa; --auth-muted:#a6b5c8; --auth-line:#2d3b50; --auth-blue:#65b2ff; }
.auth-shell { display:flex; align-items:center; justify-content:center; min-height:100vh; min-height:100dvh; padding:32px 16px; }
.auth-frame { width:100%; max-width:420px; }
.auth-card { width:100%; padding:32px; background:var(--auth-surface); border:1px solid var(--auth-line); border-radius:20px; box-shadow:0 12px 40px #102f4508; }
.auth-brand { margin:0 0 28px; text-align:center; }
.auth-brand img { display:inline-block; width:200px; max-width:100%; height:auto; }
.dark .auth-brand img { filter:brightness(0) invert(1); }
.auth-heading { margin:0 0 24px; text-align:center; }
.auth-heading h1 { margin:0 0 8px; font-size:24px; font-weight:600; line-height:1.3; letter-spacing:-.5px; color:var(--auth-text); }
.auth-heading p { margin:0; font-size:13px; line-height:1.6; color:var(--auth-muted) !important; }
.auth-portal .form-label { margin-bottom:6px; color:var(--auth-text); font-size:12px; font-weight:500; text-transform:none; }
.auth-portal .form-control { min-height:42px; padding:9px 12px; font-size:14px; line-height:22px; border:1px solid var(--auth-line); border-radius:9px; background:var(--auth-surface); color:var(--auth-text); }
.auth-portal .form-icon-input { padding-inline-start:38px; }
.auth-portal .form-icon { inset-inline-start:13px; color:var(--auth-muted) !important; width:14px; height:14px; font-size:14px; }
.auth-portal input::placeholder { color:var(--auth-muted); opacity:.8; }
.auth-portal .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:9px 14px; border-radius:9px; font-size:13px; font-weight:500; line-height:22px; }
.auth-portal .btn-primary { background:#0876d9; border-color:#0876d9; color:#fff; }
.auth-portal .btn-primary:hover { background:#0668bf; border-color:#0668bf; }
.auth-portal a { color:var(--auth-blue); font-size:12px; }
.auth-portal .google-btn { margin-top:0 !important; margin-bottom:0 !important; color:var(--auth-text); background:var(--auth-surface); border:1px solid var(--auth-line); }
.auth-portal .google-btn:hover { background:var(--auth-bg); }
.auth-portal .google-btn img { width:18px; height:18px; }
.dark .auth-portal a.btn.google-btn { color:var(--auth-text) !important; background:var(--auth-surface) !important; border-color:var(--auth-line) !important; }
.auth-portal :is(.btn,.form-control,a):focus-visible { outline:3px solid #65b2ff; outline-offset:3px; box-shadow:none; }
.auth-portal .alert { padding:12px 14px; font-size:12px; line-height:1.6; border-radius:9px; overflow-wrap:anywhere; }
.auth-portal .alert-dismissible { padding-inline-end:42px; }
.auth-portal #code { font-variant-numeric:tabular-nums; letter-spacing:.25em; }
@media (max-width:575px) {
  .auth-shell { padding:20px 12px; }
  .auth-card { padding:26px 20px; border-radius:16px; }
  .auth-heading h1 { font-size:22px; }
  .auth-portal .form-control { min-height:44px; font-size:16px; }
  .auth-portal .btn { min-height:44px; }
  .auth-portal .auth-card a:not(.btn) { display:inline-flex; align-items:center; min-height:44px; }
}
