/* Login only: reuse the approved wolves, palette and glass; no animation or polling. */
html:root .login-page { min-height:100vh; min-height:100dvh; }
html:root .login-page .login-topbar { min-height:64px; padding:10px max(20px,env(safe-area-inset-right)) 10px max(20px,env(safe-area-inset-left)); gap:12px; justify-content:space-between; }
html:root .login-page .login-topbar .btn { min-height:44px; font-size:.8125rem; }
html:root .login-page > main { width:100%; max-width:1160px; margin-inline:auto; padding:clamp(18px,4vh,40px) max(24px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-bottom)); }
html:root .login-page .login-layout { width:100%; max-width:none; grid-template-columns:minmax(0,1.15fr) minmax(320px,1fr); gap:clamp(24px,4vw,56px); align-items:stretch; }
html:root .login-page .login-identity { position:relative; display:flex; flex-direction:column; justify-content:center; padding:32px; min-width:0; }
html:root .login-page #login-mark { position:static; margin:0 0 20px; }
html:root .login-page #login-mark .brand-mark { width:54px; height:60px; }
html:root .login-page .login-identity .brand-name { font-size:clamp(1.5rem,2.7vw,2.1rem); letter-spacing:-.03em; padding:0; }
html:root .login-page .brand-subtitle { margin-top:8px; font-size:.7rem; letter-spacing:.16em; }
html:root .login-page .login-rule { display:block; width:48px; margin:26px 0 20px; }
html:root .login-page .login-identity .login-headline { display:block; margin:0; font-size:clamp(1.9rem,3.6vw,2.7rem); line-height:1.12; letter-spacing:-.04em; font-weight:600; color:var(--text-primary); }
html:root .login-page .login-identity .login-description { display:block; max-width:30ch; margin:16px 0 24px; font-size:.9375rem; line-height:1.6; color:var(--text-secondary); }
html:root .login-page .login-features { display:flex; flex-wrap:wrap; gap:8px 18px; margin:0; padding:0; list-style:none; font-size:.75rem; color:var(--text-secondary); }
html:root .login-page .login-features li { display:flex; align-items:center; gap:7px; }
html:root .login-page .login-features svg { width:17px; height:17px; color:var(--accent-primary); }
html:root .login-page .login-form { align-self:center; width:100%; padding:clamp(24px,3vw,40px); }
html:root .login-page .login-form h1 { margin:0; font-size:1.6rem; line-height:1.2; letter-spacing:-.025em; }
html:root .login-page .login-form > p { margin:10px 0 24px; line-height:1.5; }
html:root .login-page #loginForm { display:grid; gap:16px; }
html:root .login-page #loginForm .field { margin:0; display:grid; gap:7px; }
html:root .login-page #loginForm label { font-size:.8125rem; }
html:root .login-page #loginForm input:not([type=checkbox]) { width:100%; min-width:0; min-height:48px; font-size:1rem; }
html:root .login-page #loginForm .login-remember { display:flex; align-items:center; gap:10px; min-height:36px; margin:-4px 0; cursor:pointer; color:var(--text-secondary); }
html:root .login-page #remember-user { appearance:auto; width:18px; height:18px; min-height:18px; padding:0; margin:0; flex:none; accent-color:var(--accent-primary); }
html:root .login-page #submit { min-height:48px; width:100%; }
html:root .login-page .login-form > button.btn { width:100%; min-height:44px; margin-top:8px; }
html:root .login-page .login-error:empty { display:none; }
html:root .login-page .login-footnote { margin:22px 0 0; font-size:.7rem; }
html:root .login-page .dialog-body ol { padding-left:24px; line-height:1.6; }
html:root .login-page .dialog-body li + li { margin-top:12px; }
@media (max-width:767px) and (orientation:portrait) {
 html:root .login-page .login-topbar { min-height:60px; padding:8px 16px; gap:6px; }
 html:root .login-page .login-topbar .btn { padding:8px 10px; font-size:.75rem; }
 html:root .login-page > main { justify-content:flex-start; padding:8px 16px max(16px,env(safe-area-inset-bottom)); }
 html:root .login-page .login-layout { display:flex; flex-direction:column; gap:16px; max-width:440px; }
 html:root .login-page .login-identity { padding:20px; }
 html:root .login-page #login-mark { position:absolute; right:20px; top:20px; margin:0; }
 html:root .login-page #login-mark .brand-mark { width:30px; height:34px; }
 html:root .login-page .login-identity .brand-name { font-size:1.5rem; padding-right:40px; }
 html:root .login-page .brand-subtitle { font-size:.625rem; margin-top:6px; }
 html:root .login-page .login-rule,html:root .login-page .login-identity .login-description,html:root .login-page .login-features { display:none; }
 html:root .login-page .login-identity .login-headline { font-size:1.25rem; line-height:1.3; margin-top:20px; }
 html:root .login-page .login-form { padding:24px; }
 html:root .login-page .login-form h1 { font-size:1.4rem; }
 html:root .login-page .login-form > p { margin:8px 0 20px; font-size:.8125rem; }
 html:root .login-page .login-footnote { margin-top:16px; }
}
@media (orientation:landscape) and (max-height:650px) {
 html:root .login-page .login-topbar { min-height:48px; padding:2px max(16px,env(safe-area-inset-right)) 2px max(16px,env(safe-area-inset-left)); }
 html:root .login-page > main { justify-content:flex-start; padding:4px max(16px,env(safe-area-inset-left)) max(8px,env(safe-area-inset-bottom)); max-width:1100px; }
 html:root .login-page .login-layout { display:grid; grid-template-columns:minmax(180px,.9fr) minmax(300px,1.1fr); gap:16px; }
 html:root .login-page .login-identity { padding:20px; }
 html:root .login-page #login-mark { position:static; margin-bottom:12px; }
 html:root .login-page #login-mark .brand-mark { width:30px; height:34px; }
 html:root .login-page .login-identity .brand-name { font-size:1.6rem; padding:0; }
 html:root .login-page .brand-subtitle { margin-top:6px; font-size:.625rem; }
 html:root .login-page .login-rule { display:block; margin:18px 0 14px; }
 html:root .login-page .login-identity .login-headline { display:block; font-size:1.7rem; line-height:1.15; }
 html:root .login-page .login-identity .login-description,html:root .login-page .login-features,html:root .login-page .login-footnote { display:none; }
 html:root .login-page .login-form { padding:12px 20px 4px; }
 html:root .login-page .login-form h1 { font-size:1.25rem; margin-bottom:8px; }
 html:root .login-page .login-form > p { display:none; }
 html:root .login-page #loginForm { gap:8px; }
 html:root .login-page #loginForm .field { gap:4px; }
 html:root .login-page #loginForm .field label { line-height:16px; }
 html:root .login-page #loginForm input:not([type=checkbox]),html:root .login-page #submit { min-height:44px; height:44px; }
 html:root .login-page #loginForm .login-remember { min-height:32px; margin:0; font-size:.75rem; }
 html:root .login-page .login-form > button.btn { min-height:44px; margin:0; }
}
@media (max-width:600px) and (orientation:landscape) {
 html:root .login-page .login-layout { grid-template-columns:minmax(120px,.65fr) minmax(260px,1.35fr); gap:10px; }
 html:root .login-page .login-identity { padding:12px; }
 html:root .login-page .login-identity .brand-name { font-size:1.15rem; }
 html:root .login-page .login-identity .login-headline { font-size:1.3rem; }
}
@media (orientation:portrait) and (max-height:700px) {
 html:root .login-page > main { padding-top:4px; }
 html:root .login-page .login-layout { gap:12px; }
 html:root .login-page .login-identity { padding:16px; }
 html:root .login-page .login-identity .brand-name { font-size:1.25rem; }
 html:root .login-page #login-mark { top:16px; right:16px; }
 html:root .login-page .login-identity .login-headline,html:root .login-page .login-footnote { display:none; }
 html:root .login-page .login-form { padding:18px; }
 html:root .login-page .login-form h1 { font-size:1.25rem; }
 html:root .login-page .login-form > p { margin:8px 0 12px; }
 html:root .login-page #loginForm { gap:10px; }
 html:root .login-page #loginForm input:not([type=checkbox]),html:root .login-page #submit { min-height:44px; height:44px; }
 html:root .login-page #loginForm .login-remember { font-size:.75rem; }
}
