/* KASER-BRAND-20260929-1. UI only; original PNG, no timers or API changes. */
body { --kb-ink:#202733; --kb-muted:#667085; --kb-surface:#fff; --kb-line:#e4e7ec; --kb-canvas:#f4f5f7; --kb-red:#e31e25; --kb-halo:rgba(227,30,37,.10); --kb-shadow:0 20px 64px rgba(20,30,45,.12),0 2px 8px rgba(20,30,45,.05); }
body[data-theme="dark"] { --kb-ink:#f1f5f9; --kb-muted:#a3adbd; --kb-surface:#1b2230; --kb-line:#343d4c; --kb-canvas:#10151e; --kb-halo:rgba(227,30,37,.16); --kb-shadow:0 20px 64px rgba(0,0,0,.38),0 2px 8px rgba(0,0,0,.16); }
/* Reserve the native mark ratio: no square stretch, no white backplate. */
body #login-screen .brand-logo-login-vps,
body #app-aside .brand-logo-sidebar-vps,
body #loader .brand-logo-loader { object-fit:contain!important; filter:none!important; border:0!important; background:transparent!important; border-radius:0!important; padding:0!important; box-shadow:none!important; transform:none!important; }
body #login-screen { background:var(--kb-canvas)!important; overflow:auto!important; overscroll-behavior:contain; align-items:flex-start!important; padding:24px!important; padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))!important; }
body #login-screen .login-box { position:relative; flex:0 0 auto; width:408px; max-width:100%; min-width:0; margin:auto; padding:36px 32px 26px!important; background:var(--kb-surface)!important; color:var(--kb-ink)!important; border:1px solid var(--kb-line)!important; border-radius:22px!important; box-shadow:var(--kb-shadow)!important; }
body #login-screen .login-logo { margin:8px 0 20px!important; }
body #login-screen .brand-logo-login-vps { width:88px!important; height:auto!important; max-width:88px!important; max-height:none!important; display:block!important; margin:0 auto!important; }
body #login-screen .kaser-login-name { margin:0 0 18px!important; font-family:Manrope,Arial,sans-serif; line-height:1.2; color:var(--kb-ink)!important; }
body #login-screen .kaser-login-name b { display:block; font-size:31px; font-weight:850; letter-spacing:.16em; padding-left:.16em; }
body #login-screen .kaser-login-name small { display:block; margin-top:6px; font-size:10px; font-weight:750; letter-spacing:.21em; padding-left:.21em; color:var(--kb-muted); }
body #login-screen .login-box>p { color:var(--kb-muted)!important; font-size:12px; line-height:1.65; font-weight:500!important; margin:0 0 22px!important; }
body #login-screen .kaser-login-theme { position:absolute; top:12px; right:12px; display:grid; place-items:center; width:40px; height:40px; min-height:40px; padding:9px; border:1px solid transparent; border-radius:12px; background:transparent; color:var(--kb-muted); cursor:pointer; }
body #login-screen .kaser-login-theme:hover { background:var(--kb-canvas); color:var(--kb-ink); border-color:var(--kb-line); }
body #login-screen .kaser-login-theme:focus-visible { outline:2px solid var(--kb-red); outline-offset:2px; }
body #login-screen .kaser-login-theme span { display:grid; place-items:center; }
body #login-screen .kaser-login-theme svg { width:21px; height:21px; }
body #login-screen .kaser-login-theme .kaser-theme-sun,body[data-theme="dark"] #login-screen .kaser-login-theme .kaser-theme-moon { display:none; }
body[data-theme="dark"] #login-screen .kaser-login-theme .kaser-theme-sun { display:grid; }
/* Dedicated name lines prevent truncation by the inherited collapsed-sidebar rules. */
body.werger-ui:not([class*="printing-"]) #app-aside .logo-area { height:72px!important; min-height:72px!important; flex-direction:row!important; gap:12px!important; padding:0 18px!important; margin:0!important; }
body.werger-ui:not([class*="printing-"]) #app-aside .brand-logo-sidebar-vps { display:block!important; width:36px!important; min-width:36px!important; max-width:36px!important; height:auto!important; min-height:0!important; max-height:none!important; flex:0 0 36px!important; margin:0!important; }
body.werger-ui:not([class*="printing-"]) #app-aside:not(.sidebar-collapsed) .brand-name { display:block!important; min-width:0!important; width:auto!important; max-width:none!important; height:auto!important; flex:1 1 auto!important; text-align:left!important; white-space:normal!important; overflow:visible!important; color:var(--kb-ink)!important; line-height:1.2!important; }
body.werger-ui:not([class*="printing-"]) #app-aside .brand-name b { display:block; font-size:17px; font-weight:850; letter-spacing:.12em; color:var(--kb-ink); }
body.werger-ui:not([class*="printing-"]) #app-aside .brand-name small { display:block; margin-top:4px; font-size:8px; line-height:1.25; letter-spacing:.10em; font-weight:650; color:var(--kb-muted); white-space:nowrap; }
body.werger-ui:not([class*="printing-"]) #app-aside.sidebar-collapsed .logo-area { height:64px!important; min-height:64px!important; padding:0!important; justify-content:center!important; gap:0!important; }
body.werger-ui:not([class*="printing-"]) #app-aside.sidebar-collapsed .brand-name { display:none!important; }
/* Keep the existing showLoader() lifecycle and non-blocking pointer behavior. */
body #loader.kaser-brand-loader { background:transparent!important; backdrop-filter:none!important; pointer-events:none!important; padding:16px; }
body #loader .kaser-loader-panel { width:184px; max-width:calc(100vw - 32px); flex:0 0 auto; padding:24px 20px 18px; display:flex; flex-direction:column; align-items:center; gap:0; background:var(--kb-surface); color:var(--kb-ink); border:1px solid var(--kb-line); border-radius:22px; box-shadow:var(--kb-shadow); opacity:0; animation:kaser-panel-in .18s ease-out .14s both; }
body #loader .kaser-loader-mark { position:relative; width:72px; height:68px; margin-bottom:15px; display:grid; place-items:center; isolation:isolate; }
body #loader .kaser-loader-mark::before { content:""; position:absolute; z-index:-1; inset:-18px; border-radius:50%; background:radial-gradient(ellipse at center,var(--kb-halo) 0%,transparent 70%); animation:kaser-halo 2.6s ease-in-out infinite; }
body #loader .brand-logo-loader { display:block; width:72px!important; height:auto!important; max-width:72px!important; max-height:none!important; }
body #loader .kaser-loader-name { font-family:Manrope,Arial,sans-serif; color:var(--kb-ink); font-size:13px; letter-spacing:.2em; padding-left:.2em; line-height:1.3; font-weight:800; }
body #loader .kaser-loader-bars { display:flex; gap:5px; height:4px; margin-top:16px; }
body #loader .kaser-loader-bars i { display:block; width:20px; height:3px; border-radius:2px; background:var(--kb-red); opacity:.22; transform:skewX(-25deg); animation:kaser-bar 1.5s ease-in-out infinite; }
body #loader .kaser-loader-bars i:nth-child(2) { animation-delay:.18s; }
body #loader .kaser-loader-bars i:nth-child(3) { animation-delay:.36s; }
body #loader .kaser-loader-caption { margin-top:12px; color:var(--kb-muted); font-size:11px; font-weight:500; line-height:1.4; }
@keyframes kaser-panel-in { from{opacity:0} to{opacity:1} }
@keyframes kaser-halo { 0%,100%{opacity:.35} 50%{opacity:1} }
@keyframes kaser-bar { 0%,70%,100%{opacity:.22} 35%{opacity:1} }
@media(max-width:480px) {
 body #login-screen { padding:18px 14px!important; padding:max(18px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left))!important; }
 body #login-screen .login-box { padding:30px 22px 20px!important; border-radius:20px!important; }
 body #login-screen .brand-logo-login-vps { width:76px!important; max-width:76px!important; }
 body #login-screen .kaser-login-name b { font-size:28px; }
 body #login-screen .kaser-login-name small { font-size:9px; }
 body #login-screen #login-input,body #login-screen #password-input { font-size:16px!important; }
 body #loader .kaser-loader-panel { width:164px; padding:20px 16px 16px; border-radius:18px; }
 body #loader .kaser-loader-mark { width:60px; height:57px; margin-bottom:13px; }
 body #loader .brand-logo-loader { width:60px!important; max-width:60px!important; }
}
@media(max-height:520px) {
 body #login-screen .login-box { padding-top:20px!important; padding-bottom:16px!important; }
 body #login-screen .login-logo { margin:0 0 10px!important; }
 body #login-screen .brand-logo-login-vps { width:46px!important; max-width:46px!important; }
 body #login-screen .kaser-login-name { margin-bottom:10px!important; }
 body #login-screen .kaser-login-name b { font-size:24px; }
 body #login-screen .login-box>p { margin-bottom:12px!important; }
}
@media(prefers-reduced-motion:reduce) {
 body #loader .kaser-loader-panel { animation:none!important; opacity:1!important; }
 body #loader .kaser-loader-mark::before,body #loader .kaser-loader-bars i { animation:none!important; }
 body #loader .kaser-loader-bars i { opacity:.65!important; }
}
@media print { #loader.kaser-brand-loader,.kaser-login-theme { display:none!important; } }

/* Login essentials do not rely on an external icon font. Handler stays unchanged. */
body #login-screen .password-toggle .material-icons-round {display:none!important;}
body #login-screen .password-toggle svg,body #login-screen .kaser-enter-icon {width:20px;height:20px;flex:0 0 20px;}
body #login-screen .kaser-eye-slash {display:none;}
body #login-screen .password-field input[type="text"]~button .kaser-eye-slash {display:block;}
