/* Shared authentication variant: base controls and tokens remain shared with authentication pages. */
body.login-page { padding: max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)); justify-content:flex-start; }
.login-page .auth-main { width:min(1080px,100%); gap:24px; margin:auto; align-items:stretch; display:flex; flex-direction:column; }
.login-topbar { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:56px; }
.login-brand { display:flex; align-items:center; gap:12px; color:var(--text); font-size:14px; font-weight:600; }
.login-brand img { width:68px; height:64px; object-fit:contain; }
.login-page .nimbus-language-floating { position:static; flex-wrap:wrap; box-shadow:none; border:0; padding:0; background:transparent; }
.login-page .language-option { min-height:44px; }
.login-layout { display:grid; grid-template-columns:1.05fr 1fr; border:1px solid var(--outline-variant); border-radius:var(--border-radius-lg); overflow:hidden; background:var(--surface); }
.login-identity { display:flex; flex-direction:column; align-items:flex-start; padding:44px; background:var(--surface-container-low); min-width:0; position:relative; }
.login-identity::before { content:''; position:absolute; top:0; left:44px; width:64px; height:4px; background:var(--secondary); }
.login-identity-logo { width:100%; max-width:320px; height:auto; object-fit:contain; margin-bottom:30px; }
.login-identity h2 { font-size:clamp(28px,3vw,38px); overflow-wrap:normal; min-width:0; line-height:1.16; letter-spacing:-.025em; font-weight:700; max-width:17ch; margin:0 0 16px; }
.login-identity-description { margin:0; font-size:16px; line-height:1.6; color:var(--text-secondary); max-width:35ch; }
.login-geography { width:100%; max-width:330px; margin:24px auto 0; }
.login-map { width:100%; height:auto; display:block; }
.login-map-region { fill:var(--surface-container-high); stroke:var(--primary); stroke-width:2.2; stroke-linejoin:round; }
.login-page .auth-container { max-width:none; padding:44px; align-items:flex-start; grid-column:auto; grid-row:auto; width:100%; }
.login-page .auth-card { width:100%; padding:0; border:0; border-radius:0; background:transparent; }
.login-form-heading { margin-bottom:28px; }
.login-form-heading h1 { font-size:28px; line-height:1.2; margin:0 0 8px; }
.login-form-heading p { margin:0; font-size:15px; line-height:1.5; color:var(--text-secondary); }
.login-page .auth-form { gap:10px; }
.login-page .auth-form label { font-size:14px; margin-top:8px; }
.login-page .auth-form input:is(#identifier,#login,#name,#cargo,#password,#password_confirmation) { min-height:52px; border-color:var(--outline); }
.login-page .auth-form input:is(#identifier,#login,#name,#cargo,#password,#password_confirmation):focus-visible { outline:3px solid var(--focus-ring); outline-offset:2px; border-color:var(--primary); }
.login-page .auth-form button[type=submit] { min-height:52px; font-size:16px; margin-top:14px; display:flex; align-items:center; justify-content:center; gap:10px; }
.login-page .auth-form button:focus-visible, .login-page summary:focus-visible { outline:3px solid var(--focus-ring); outline-offset:3px; }
.login-page .auth-altcha { margin-top:10px; }
.login-page altcha-widget { --altcha-color-base:var(--surface); --altcha-color-text:var(--text); --altcha-color-border:var(--outline-variant); --altcha-color-border-focus:var(--primary); --altcha-color-error:var(--error); --altcha-max-width:100%; width:100%; }
.login-page .login-access-request { margin-top:28px; padding:18px 0 0; border:0; border-top:1px solid var(--outline-variant); border-radius:0; background:transparent; max-width:none; width:100%; order:initial; }
.login-page .login-access-request summary { font-size:14px; min-height:44px; color:var(--text); }
.login-page .login-access-request-content { font-size:14px; line-height:1.6; padding:8px 0 0; }
.login-page .login-footer { margin:0; padding:0; background:transparent; border:0; display:grid; grid-template-columns:1fr 1.4fr auto; align-items:center; gap:24px; width:100%; order:initial; }
.login-page .footer-main-logo { width:88px; }
.login-page .footer-brand-title { font-size:13px; }
.login-page .footer-brand-subtitle, .login-page .footer-meta, .login-page .footer-support-label { font-size:12px; line-height:1.6; }
.login-page .footer-logos img { height:72px; }
@media(max-width:760px) {
 body.login-page { padding:16px 16px max(24px,env(safe-area-inset-bottom)); }
 .login-page .auth-main { gap:20px; }
 .login-topbar { align-items:flex-start; gap:12px; }
 .login-brand { gap:8px; }
 .login-brand img { width:48px; height:44px; }
 .login-page .nimbus-language-floating { gap:4px; }
 .login-page .language-option { padding:6px 8px; font-size:12px; }
 .login-page .language-flag { width:18px; }
 .login-layout { grid-template-columns:1fr; }
 .login-identity { padding:24px; flex-direction:column; align-items:flex-start; gap:18px; }
 .login-identity::before { left:24px; width:48px; }
 .login-identity-logo { width:220px; max-width:100%; height:auto; margin:0; }
 .login-identity h2 { font-size:22px; max-width:none; margin:0 0 6px; }
 .login-identity-description { font-size:13px; line-height:1.45; }
 .login-geography { display:none; }
 .login-page .auth-container { padding:28px 24px; }
 .login-form-heading { margin-bottom:20px; }
 .login-form-heading h1 { font-size:26px; }
 .login-page .login-footer { grid-template-columns:1fr; gap:16px; }
 .login-page .footer-meta { grid-column:1/-1; grid-row:2; }
}
@media(max-width:360px) {
 .login-topbar { flex-wrap:wrap; }
 .login-page .nimbus-language-floating { width:100%; }
 .login-identity { padding:20px; gap:12px; }
 .login-identity-logo { width:200px; }
 .login-identity h2 { font-size:20px; }
 .login-page .auth-container { padding:24px 20px; }
}

/* Keep language actions on one row without competing with the mobile wordmark. */
@media (max-width:760px) {
 .login-page .nimbus-language-floating .language-option { min-width:0; padding:6px; font-size:12px; gap:5px; }
 .login-page .nimbus-language-floating .language-flag { width:18px; height:13px; }
 .login-page .login-brand img { width:42px; height:40px; }
}

.login-page .login-access-request-icon .material-symbols-rounded { font-size:20px; line-height:1; }
.login-page .login-access-request-chevron { font-size:20px; line-height:1; width:20px; height:20px; }
.login-page .auth-form button[type=submit]:hover { background:var(--primary-dark); }
/* The checkmark is decorative; clicks belong to the underlying native checkbox. */
.login-page .auth-altcha .altcha-checkbox > svg { pointer-events:none; }

/* Requested brand canvas: shared loader artwork behind solid, readable surfaces. */
body.login-page { isolation:isolate; }
.login-page .login-backdrop { z-index:-1; pointer-events:none; animation-duration:8s; }
.login-page .login-backdrop::before { animation-duration:7s; }
.login-page .login-backdrop::after { animation-duration:9s; opacity:.85; }
.login-page .login-topbar,
.login-page .login-footer { background:var(--surface); border:1px solid var(--outline-variant); border-radius:var(--border-radius-lg); padding:20px 24px; }
@media(max-width:760px) {
 .login-page .login-topbar { padding:12px; align-items:center; }
 .login-page .login-footer { padding:24px; }
}
@media(max-width:360px) {
 .login-page .login-topbar { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
 .login-page .login-backdrop,
 .login-page .login-backdrop::before,
 .login-page .login-backdrop::after { animation:none; }
}
/* Keep the same brand base below the initial viewport on long/mobile pages. */
body.login-page { background:#06142e; }
.login-page [data-nimbus-language-slot] { flex-shrink:0; }
@media(max-width:360px) {
 .login-page [data-nimbus-language-slot] { flex-basis:100%; width:100%; }
}
