/* Login layout; recovery pages keep their existing stylesheet. */
body.auth-page-login { margin:0; color:#172033; background:#f5f7fb; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif; line-height:1.5; color-scheme:light; }
.auth-page-login *, .auth-page-login *::before, .auth-page-login *::after { box-sizing:border-box; }
.auth-page-login [hidden] { display:none !important; }
.auth-shell-login {
    min-height:100vh; min-height:100svh; display:grid; place-items:center;
    padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
}
.login-form { width:100%; max-width:520px; min-width:0; margin:0; padding:28px 32px 32px; background:#fff; border:1px solid #e4e9f0; border-radius:24px; box-shadow:0 12px 40px rgba(24,39,75,.05); }
.auth-page-login a { color:#2456cc; text-decoration:none; }
.auth-page-login a:hover { text-decoration:underline; }
.auth-page-login a:focus-visible, .auth-page-login button:focus-visible { outline:3px solid #93b4fc; outline-offset:3px; border-radius:6px; }
.login-back-link { display:inline-flex; align-items:center; gap:8px; min-height:44px; font-size:14px; }
.auth-page-login .login-back-link { color:#566378; }
.login-header { text-align:center; margin:8px 0 28px; }
.login-logo-link { display:inline-flex; max-width:100%; align-items:center; justify-content:center; }
.login-logo-link picture { display:block; max-width:100%; }
.login-logo { display:block; width:auto; max-width:min(240px,100%); height:72px; object-fit:contain; }
.login-header h1 { margin:18px 0 0; font-size:24px; font-weight:650; letter-spacing:-.5px; line-height:1.3; }
.login-field { margin-bottom:20px; min-width:0; }
.login-label { display:block; margin-bottom:8px; font-size:14px; font-weight:600; }
.login-field-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0 12px; margin-top:-8px; }
.login-field-heading .login-label { margin:0; }
.login-field-heading a { display:inline-flex; align-items:center; min-height:44px; font-size:14px; }
.login-field input { display:block; width:100%; min-width:0; min-height:52px; margin:0; padding:12px 14px; border:1px solid #cdd5e0; border-radius:10px; background:#fff; color:#172033; font:inherit; font-size:16px; transition:border-color .15s,box-shadow .15s; }
.login-field input::placeholder { color:#778395; opacity:1; }
.login-field input:focus { outline:none; border-color:#2563eb; box-shadow:0 0 0 3px #e7efff; }
.login-field input[aria-invalid="true"] { border-color:#bc3030; }
.login-password-wrap { position:relative; }
.login-password-wrap input { padding-right:56px; }
.password-toggle { position:absolute; top:4px; right:4px; display:grid; place-items:center; width:44px; height:44px; padding:0; border:0; border-radius:8px; color:#566378; background:transparent; cursor:pointer; font-size:16px; }
.password-toggle:hover { color:#2456cc; background:#f3f6fc; }
.login-submit { display:flex; align-items:center; justify-content:center; gap:12px; width:100%; min-height:52px; margin:4px 0 24px; padding:12px 16px; border:0; border-radius:10px; background:#2563eb; color:#fff; font:inherit; font-weight:600; cursor:pointer; }
.login-submit:hover:not(:disabled) { background:#1d4ed8; }
.login-submit:disabled { opacity:.7; cursor:wait; }
.login-trust-device { display:flex; align-items:center; gap:10px; min-height:44px; cursor:pointer; font-size:14px; }
.login-trust-device input { width:18px; height:18px; margin:0; accent-color:#2563eb; flex-shrink:0; }
.login-trust-help { margin:0 0 18px 28px; color:#566378; font-size:12px; }
.login-footer { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0 8px; padding-top:16px; border-top:1px solid #edf0f5; color:#566378; font-size:14px; }
.login-create-account { display:inline-flex; align-items:center; min-height:44px; font-weight:600; }
#msg { display:flex; align-items:flex-start; gap:10px; margin:0 0 24px; padding:12px 14px; border:1px solid; border-radius:10px; font-size:14px; overflow-wrap:anywhere; }
#msg i { margin-top:3px; }
#msg.alert-error { color:#942525; background:#fff4f4; border-color:#f3cccc; }
#msg.alert-success { color:#166534; background:#f0fdf4; border-color:#bbdfc7; }
@media (max-width:480px) {
    .login-form { padding:20px; border-radius:18px; }
    .login-header { margin:8px 0 24px; }
    .login-logo { height:64px; max-width:220px; }
    .login-header h1 { font-size:22px; }
}
@media (max-width:360px) {
    .login-form { padding:16px; }
    .login-header h1 { font-size:21px; }
}
@media (max-height:600px) { .auth-shell-login { align-items:start; } }
@media (prefers-reduced-motion:reduce) { .login-field input { transition:none; } }
