.k-login-body { position:relative; isolation:isolate; display:flex; flex-direction:column; min-height:100dvh; }
.k-login-background { position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.k-login-background canvas { display:block; }
.k-login-header { display:flex; align-items:center; justify-content:space-between; gap:8px; height:52px; min-height:52px; padding:4px 24px; box-sizing:border-box; border-bottom:1px solid var(--surface-border); background:var(--surface-bg); }
.k-login-brand { display:inline-flex; align-items:center; gap:10px; min-height:44px; white-space:nowrap; }
.k-login-brand__icon { display:block; width:38px; height:38px; flex-shrink:0; }
.k-login-brand__icon img { display:block; width:100%; height:100%; }
.k-login-brand__icon .k-login-logo-dark { display:none; }
.dark .k-login-brand__icon .k-login-logo-light { display:none; }
.dark .k-login-brand__icon .k-login-logo-dark { display:block; }
.k-login-wordmark { font:800 1.25rem/1 var(--font-display); letter-spacing:-.03em; }
.k-login-header__actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.k-login-theme { display:inline-flex; gap:2px; }
.k-login-theme button { display:grid; place-items:center; width:44px; height:44px; padding:10px; border:0; border-radius:var(--radius-sm); color:var(--text-secondary); background:transparent; cursor:pointer; }
.k-login-theme button:hover { color:var(--text-primary); background:var(--surface-raised); }
.k-login-theme button[aria-pressed="true"] { background:var(--color-volt); color:#0a0a0a; }
.k-login-theme svg, .k-login-help svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.k-login-main { flex:1; display:grid; place-items:center; padding:24px 16px; }
.k-login-stage { width:min(100%,28rem); }
.k-login-panel { padding:28px; gap:20px; }
.k-login-title { margin:0; font:700 1.5rem/1.3 var(--font-ui); }
.k-login-title__brand { display:inline-flex; align-items:center; gap:10px; font-family:var(--font-display); font-weight:800; letter-spacing:-.03em; }
.k-login-grid { gap:16px; }
.k-login-grid .validation-summary-valid { display:none; }
.k-login-grid .k-input { min-height:46px; font-size:1rem; background:var(--surface-bg); }
.k-login-grid .validation-message:empty { display:none; }
.k-login-remember { display:flex; align-items:center; gap:10px; min-height:44px; font-size:.9375rem; cursor:pointer; }
.k-login-remember input { width:20px; height:20px; margin:0; accent-color:var(--color-volt); }
.k-login-actions { margin:0; }
.k-login-support { display:flex; align-items:center; justify-content:center; min-height:44px; color:var(--text-secondary); text-underline-offset:4px; }
.k-login-support:hover { color:var(--text-primary); }
.k-login-help { width:min(38rem,calc(100vw - 24px)); max-height:85dvh; padding:20px; overflow:auto; }
.k-login-help header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.k-login-help h2 { margin:0; font-size:1.125rem; }
.k-login-help p { margin:16px 0 0; font-size:1rem; line-height:1.6; }
.k-login-body :focus-visible { outline:2px solid var(--text-primary); outline-offset:2px; }
@media(max-width:640px) { .k-login-header { padding-inline:12px; } .k-login-wordmark { display:none; } .k-login-panel { padding:24px; } .k-login-main { place-items:start center; } }
@media(max-height:600px) { .k-login-main { place-items:start center; padding-block:16px; } }
@media(prefers-reduced-motion:reduce) { .k-login-background { display:none; } }
