.login-page {
    min-height: 100vh;
    background: radial-gradient(circle at top left, #203852 0, #13243a 38%, #0c1726 100%);
    padding: max(24px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(24px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left));
    display: grid;
    place-items: center;
}
.login-shell { width: 100%; max-width: 460px; }
.login-card { padding: clamp(28px, 7vw, 48px); border-radius: 24px; background: #fff; box-shadow: 0 28px 80px #0006; }
.login-brand { display: grid; place-items: center; width: 64px; height: 64px; margin-bottom: 22px; border-radius: 50%; background: var(--red); color: #fff; font-weight: 900; letter-spacing: -.08em; }
.login-card h1 { margin: .25rem 0 .4rem; font: 700 clamp(2.1rem, 10vw, 3.25rem)/1 Georgia, serif; color: var(--navy); }
.login-lead { margin: 0 0 1.5rem; color: var(--muted); }
.login-error { margin-bottom: 1rem; padding: .8rem 1rem; border-left: 5px solid var(--red); background: #fff1f0; color: #7f1e1e; font-weight: 700; }
.login-form { display: grid; gap: 1rem; }
.login-form label { display: grid; gap: .4rem; color: var(--navy); font-weight: 750; }
.login-form input { width: 100%; min-height: 52px; padding: .7rem .85rem; border: 1px solid #aeb8c2; border-radius: .55rem; font-size: 16px; }
.login-form button { min-height: 54px; border: 0; border-radius: .55rem; background: var(--red); color: #fff; font-weight: 850; cursor: pointer; }
.login-form button:hover { background: var(--red-dark); }
.login-card > small { display: block; margin-top: 1.2rem; color: var(--muted); }
.logout-form { margin: 0; }
.logout-form button { padding: .45rem .65rem; border: 1px solid var(--line); border-radius: .45rem; background: #fff; color: var(--navy); font-weight: 750; cursor: pointer; }
.language-switcher { display: inline-flex; padding: 3px; border: 1px solid var(--line); border-radius: 999px; background: #fff; }
.language-switcher a { min-width: 38px; padding: .28rem .5rem; border-radius: 999px; color: var(--navy); font-size: .75rem; font-weight: 850; text-align: center; text-decoration: none; }
.language-switcher a[aria-current="true"] { background: var(--navy); color: #fff; }
.login-language { float: right; margin: 0 0 1rem 1rem; }
@media (max-width: 520px) {
    .login-card { border-radius: 18px; }
    .topbar-actions { gap: .4rem; }
    .logout-form button { padding: .35rem .45rem; font-size: .75rem; }
    .environment-badge { display: none; }
}
