/* Layout only; panels, controls and typography reuse the shared visual system. */
body.login-page { background:var(--background); }
body.login-page .page-content { min-height:100vh; min-height:100dvh; }
.login-page main { display:flex; flex-direction:column; justify-content:center; padding:48px 24px; max-width:none; }
.login-entry { width:100%; max-width:440px; margin:auto; }
.login-logo { display:block; width:300px; max-width:85%; height:auto; margin:0 auto 28px; }
.login-page .login { max-width:none; margin:0; padding:32px; border-top-width:1px; }
.login-page h1 { margin:0 0 8px; font-size:var(--ui-section); font-weight:700; line-height:1.3; letter-spacing:-.3px; }
.login-page .login > p { color:var(--muted); font-size:15px; }
.login-page .login .error { color:var(--error); }
.login-page .login label { display:block; margin-top:20px; margin-bottom:6px; }
.login-page .login > p:last-child { margin-bottom:0; }
.login-footer { margin:22px 0 0; text-align:center; color:var(--muted); font-size:13px; }
@media(max-width:480px) {
 .login-page main { padding:28px 18px; }
 .login-logo { width:260px; margin-bottom:24px; }
 .login-page .login { padding:26px 22px; }
}
