/* Private access screens. All selectors are scoped to the authentication shell. */
.login-overlay { background: #eeeee7; padding: 24px; overflow-y: auto; background-image: radial-gradient(ellipse at 15% 10%, #d8e5db 0, transparent 48%), radial-gradient(ellipse at 90% 95%, #e4e0d3 0, transparent 45%); }
.login-card { width: 100%; max-width: 480px; padding: 38px 40px 26px; background: #fffefa; border: 1px solid #ffffff; border-radius: 24px; color: #18332e; box-shadow: 0 24px 80px #203b2d12, 0 2px 8px #203b2d06; max-height: calc(100dvh - 48px); }
.login-card [hidden] { display: none !important; }
.login-header { text-align: left; margin-bottom: 26px; }
.auth-brand { display:flex; align-items:center; gap:12px; font-size:21px; font-weight:650; letter-spacing:-.5px; margin-bottom:32px; }
.auth-mark { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:#214e42; color:#f4f5db; font-family:Georgia,serif; font-size:31px; padding-bottom:5px; }
.auth-brand-caption { display:block; font-size:9px; letter-spacing:1.8px; color:#73827a; font-weight:600; margin-top:2px; }
.auth-progress { display:flex; gap:22px; margin-bottom:24px; font-size:11px; font-weight:600; color:#8d9993; }
.auth-progress span { padding-bottom:8px; border-bottom:2px solid transparent; }
.auth-progress .active { color:#285b4c; border-color:#285b4c; }
.login-header h2 { font-family:Georgia,'Times New Roman',serif; font-size:34px; font-weight:400; line-height:1.15; letter-spacing:-1.2px; margin:0 0 10px; color:#1f3b32; }
.login-header .subtitle { font-size:13px; line-height:1.65; color:#6d7b72; max-width:350px; }
.login-card .form-group { margin-bottom:20px; }
.login-card label { color:#365347; font-size:12px; font-weight:600; margin-bottom:8px; }
.login-card input { width:100%; border:1px solid #dce3da; border-radius:10px; padding:13px 14px; background:#fff; color:#18392f; font-size:14px; min-height:48px; box-shadow:none; }
.login-card input:focus { outline:2px solid #719d80; outline-offset:2px; border-color:#719d80; }
.login-card .btn-primary { background:#245342; color:#fffef4; border:1px solid #245342; border-radius:10px; padding:14px; min-height:48px; font-size:13px; font-weight:600; box-shadow:0 4px 12px #234c3a14; }
.login-card .btn-primary:hover { background:#173e30; }
.login-card .btn-outline { border:1px solid #d3dfd4; border-radius:10px; padding:12px; margin:0 0 10px; color:#29513f; background:transparent; }
.auth-footer { border-top:1px solid #e7ebe3; padding-top:20px; margin-top:26px; text-align:center; font-size:10px; color:#7d8c81; line-height:1.6; }
.auth-footer span { margin-right:4px; color:#507c61; }
.auth-qr-frame { background:white; border:1px solid #e1e8dc; border-radius:16px; padding:8px; width:242px; margin:0 auto 14px; box-shadow:0 3px 12px #203b2d06; }
#mfa-qr { display:block; width:224px; height:224px; }
.auth-scan-help { font-size:12px; color:#6d7b72; text-align:center; line-height:1.7; margin:0 0 12px; }
#mfa-manual { margin:14px 0 22px; font-size:12px; color:#58715f; }
#mfa-manual summary { cursor:pointer; text-align:center; padding:6px; text-decoration:underline; text-underline-offset:3px; }
#mfa-manual[open] summary { margin-bottom:12px; }
#mfa-manual p { margin-top:8px; font-size:11px; line-height:1.6; }
#mfa-secret { font-family:monospace; font-size:12px; letter-spacing:0; }
#mfa-code { text-align:center; font-family:ui-monospace,monospace; font-size:24px; letter-spacing:6px; min-height:56px; }
#mfa-code.recovery-input { font-size:13px; letter-spacing:0; }
.auth-text-button { display:block; margin:14px auto 0; padding:4px; background:none; border:0; color:#5d7767; font-size:12px; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
.auth-text-button:focus-visible { outline:2px solid #719d80; outline-offset:3px; }
#mfa-recovery-codes { background:#f1f5ed; color:#2f503e; border:1px solid #e0e8d8; border-radius:12px; padding:16px; text-align:center; font-size:12px; line-height:2; margin:18px 0; overflow-x:auto; }
.login-card .error-msg { background:#fff0e9; color:#984b31; border:1px solid #f1d6c7; border-radius:10px; padding:12px; font-size:12px; line-height:1.5; }
.login-card[data-stage="setup"] .auth-brand { margin-bottom:20px; }
.login-card[data-stage="setup"] .login-header { margin-bottom:20px; }
@media (max-width:540px) { .login-overlay { padding:12px; } .login-card { padding:26px 24px 22px; margin:0; border-radius:20px; max-height:calc(100dvh - 24px); } .login-header h2 { font-size:31px; } .auth-brand { margin-bottom:26px; } }
