.particle-canvas[data-v-5306ac35]{z-index:0;pointer-events:none;display:block;position:absolute;inset:0}.sidebar[data-v-35f3da64]{background:radial-gradient(ellipse at 50% 18%, oklch(24% .055 255) 0%, var(--color-sidebar-bg) 58%);width:210px;min-width:210px;color:var(--color-sidebar-text);z-index:var(--z-sidebar);transition:width var(--duration-slow) var(--ease-out-expo), min-width var(--duration-slow) var(--ease-out-expo);isolation:isolate;border-right:1px solid #ffffff0a;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0;overflow:hidden}.sidebar.collapsed[data-v-35f3da64]{width:68px;min-width:68px}.sidebar-particles[data-v-35f3da64]{opacity:.72}.sidebar-brand[data-v-35f3da64],.sidebar-nav[data-v-35f3da64],.sidebar-footer[data-v-35f3da64]{z-index:1;position:relative}.sidebar-brand[data-v-35f3da64]{text-align:center;border-bottom:1px solid #ffffff0d;padding:1.25rem 1rem}.sidebar-logo[data-v-35f3da64]{filter:brightness(0)invert();width:48px;height:auto;margin:0 auto .5rem}.collapsed .sidebar-logo[data-v-35f3da64]{width:34px;margin-bottom:0}.sidebar-brand strong[data-v-35f3da64]{font-size:var(--text-sm);color:#fff;font-weight:700;display:block}.sidebar-brand small[data-v-35f3da64]{font-size:var(--text-xs);color:var(--color-text-3);letter-spacing:.05em}.collapsed .sidebar-brand strong[data-v-35f3da64],.collapsed .sidebar-brand small[data-v-35f3da64]{display:none}.sidebar-nav[data-v-35f3da64]{flex:1;padding:.5rem 0;overflow-y:auto}.sidebar-nav a[data-v-35f3da64]{color:var(--color-sidebar-text);cursor:pointer;font-size:var(--text-sm);transition:all var(--duration-fast);white-space:nowrap;align-items:center;gap:12px;padding:.6rem 1.1rem;font-weight:500;text-decoration:none;display:flex;position:relative}.sidebar-nav a[data-v-35f3da64]:hover{background:var(--color-sidebar-hover);color:#fff}.sidebar-nav a.active[data-v-35f3da64]{background:var(--color-sidebar-active);color:var(--color-accent);font-weight:700}.sidebar-nav a.active[data-v-35f3da64]:before{content:"";background:var(--color-accent);border-radius:0 4px 4px 0;width:3px;position:absolute;top:6px;bottom:6px;left:0}.collapsed .sidebar-nav a[data-v-35f3da64]{justify-content:center;padding:.6rem}.nav-icon[data-v-35f3da64]{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.nav-icon svg[data-v-35f3da64]{width:20px;height:20px}.collapsed .nav-label[data-v-35f3da64]{display:none}.sidebar-footer[data-v-35f3da64]{border-top:1px solid #ffffff0d;justify-content:center;padding:.75rem 1rem;display:flex}.collapsed .sidebar-footer[data-v-35f3da64]{padding:.5rem}.sidebar-toggle[data-v-35f3da64]{color:var(--color-sidebar-text);border-radius:var(--radius-md);cursor:pointer;width:30px;height:30px;transition:all var(--duration-fast);background:#ffffff0f;border:none;justify-content:center;align-items:center;display:flex}.sidebar-toggle[data-v-35f3da64]:hover{color:#fff;background:#ffffff1f}@media (width<=760px){.sidebar[data-v-35f3da64]{transform:none}.sidebar.collapsed[data-v-35f3da64]{transform:translate(-100%)}}.topbar[data-v-997c6686]{background:var(--color-surface);border-bottom:1px solid var(--color-border);z-index:var(--z-topbar);align-items:center;gap:1rem;min-height:52px;padding:.55rem 1.5rem;display:flex;position:sticky;top:0}body.theme-dark .topbar[data-v-997c6686]{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#111827d9}.topbar-title[data-v-997c6686]{font-size:var(--text-md);color:var(--color-text);white-space:nowrap;font-weight:700}.topbar-spacer[data-v-997c6686]{flex:1}.theme-toggle[data-v-997c6686]:hover{color:var(--color-accent)}.topbar-clock[data-v-997c6686]{font-variant-numeric:tabular-nums;font-size:var(--text-sm);color:var(--color-text-2);font-weight:600}.topbar-user[data-v-997c6686]{position:relative}.topbar-user-trigger[data-v-997c6686]{cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;display:block}.topbar-user-trigger[data-v-997c6686]:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}.topbar-menu-trigger[data-v-997c6686]{display:none}.topbar-avatar[data-v-997c6686]{background:linear-gradient(135deg, var(--color-accent), var(--color-accent-2));color:#fff;width:32px;height:32px;font-weight:700;font-size:var(--text-sm);transition:transform var(--duration-fast);border-radius:50%;justify-content:center;align-items:center;display:flex}.topbar-user-trigger:hover .topbar-avatar[data-v-997c6686]{transform:scale(1.08)}.topbar-menu-drop[data-v-997c6686]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);width:190px;box-shadow:var(--shadow-lg);z-index:60;flex-direction:column;padding:4px;animation:.15s fade-in-997c6686;display:flex;position:absolute;top:calc(100% + 8px);right:0}@keyframes fade-in-997c6686{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.topbar-menu-drop button[data-v-997c6686]{width:100%;color:var(--color-text);font-size:var(--text-sm);cursor:pointer;text-align:left;border-radius:var(--radius-sm);transition:background var(--duration-fast);background:0 0;border:none;padding:.55rem .75rem}.topbar-menu-drop button[data-v-997c6686]:hover{background:var(--color-surface-2)}@media (width<=760px){.topbar-menu-trigger[data-v-997c6686]{display:inline-flex}.topbar[data-v-997c6686]{gap:.6rem;padding-inline:.75rem}.topbar-clock[data-v-997c6686]{display:none}}.login-shell[data-v-8b5319b8]{min-height:100dvh;font-family:"Plus Jakarta Sans", var(--font-sans);background:radial-gradient(120% 80% at 50% 12%,#15406e 0%,#0d2a4d 45%,#071a30 78%,#04101f 100%);flex-direction:column;justify-content:center;align-items:center;padding:32px 16px 72px;display:flex;position:relative;overflow:hidden}.login-canvas[data-v-8b5319b8]{z-index:1;pointer-events:none;position:absolute;inset:0}.login-card[data-v-8b5319b8]{z-index:2;text-align:center;-webkit-backdrop-filter:blur(20px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:20px;width:100%;max-width:440px;padding:40px;animation:.8s cubic-bezier(.16,1,.3,1) login-rise-8b5319b8;position:relative}@keyframes login-rise-8b5319b8{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-logo-row[data-v-8b5319b8]{justify-content:center;align-items:center;gap:20px;margin:0 auto 20px;animation:4s ease-in-out infinite login-float-8b5319b8;display:flex}.login-logo[data-v-8b5319b8]{filter:drop-shadow(0 4px 16px #0000004d);width:auto;height:60px;display:block}@keyframes login-float-8b5319b8{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.login-title[data-v-8b5319b8]{letter-spacing:-.02em;color:#fff;font-size:clamp(22px,3.6vw,28px);font-weight:800;line-height:1.1}.login-tagline[data-v-8b5319b8]{color:#ffffffc7;margin-top:5.6px;font-size:15.2px}.login-byline[data-v-8b5319b8]{letter-spacing:.09em;color:#ffffff80;margin-top:8px;font-size:11.2px;font-weight:600}.login-mode[data-v-8b5319b8]{color:#fff;text-align:left;border-top:1px solid #ffffff1a;margin-top:28px;padding-top:24px;font-size:16.8px;font-weight:700}.login-hint[data-v-8b5319b8]{color:#fff9;text-align:left;margin-top:3.2px;margin-bottom:20px;font-size:12.8px}.login-form[data-v-8b5319b8]{text-align:left;flex-direction:column;gap:14.4px;display:flex}.login-field[data-v-8b5319b8]{flex-direction:column;display:flex}.field-label[data-v-8b5319b8]{letter-spacing:.01em;color:#ffffffb8;margin-bottom:5.6px;font-size:12.48px;font-weight:600;display:block}.field-box[data-v-8b5319b8]{align-items:center;display:flex;position:relative}.field-icon[data-v-8b5319b8]{z-index:3;color:#fff6;pointer-events:none;align-items:center;transition:color .2s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;left:13px}.field-input[data-v-8b5319b8]{color:#fff;background:#ffffff12;border:1px solid #ffffff24;border-radius:10px;outline:none;width:100%;min-height:44px;padding:11.2px 16px 11.2px 40px;font-family:inherit;font-size:14.72px;transition:border-color .2s cubic-bezier(.16,1,.3,1),background-color .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1)}.field-input.has-suffix[data-v-8b5319b8]{padding-right:44px}.field-input[data-v-8b5319b8]::placeholder{color:#ffffff59}.field-box:focus-within .field-icon[data-v-8b5319b8]{color:#f5a83c}.field-input[data-v-8b5319b8]:focus{background:#ffffff1c;border-color:#f3920099;box-shadow:0 0 0 4px #f3920021}.field-input[data-v-8b5319b8]:-webkit-autofill{-webkit-text-fill-color:#fff;caret-color:#fff;-webkit-box-shadow:inset 0 0 0 1000px #1c4470}.field-input[data-v-8b5319b8]:-webkit-autofill:hover{-webkit-text-fill-color:#fff;caret-color:#fff;-webkit-box-shadow:inset 0 0 0 1000px #1c4470}.field-input[data-v-8b5319b8]:-webkit-autofill:focus{-webkit-text-fill-color:#fff;caret-color:#fff;-webkit-box-shadow:inset 0 0 0 1000px #1c4470}.field-suffix[data-v-8b5319b8]{z-index:3;color:#ffffff73;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;min-width:32px;min-height:32px;transition:color .2s,background-color .2s;display:inline-flex;position:absolute;right:8px}.field-suffix[data-v-8b5319b8]:hover{color:#ffffffd9;background:#ffffff14}.field-suffix[data-v-8b5319b8]:focus-visible{outline-offset:1px;outline:2px solid #f39200}.login-error[data-v-8b5319b8]{color:#ffc9c4;background:#dc262629;border:1px solid #ff948a59;border-radius:8px;align-items:flex-start;gap:6.4px;padding:9.6px 12px;font-size:12.8px;font-weight:500;animation:.2s login-fade-8b5319b8;display:flex}@keyframes login-fade-8b5319b8{0%{opacity:0}to{opacity:1}}.login-submit[data-v-8b5319b8]{letter-spacing:.01em;color:#fff;cursor:pointer;background:linear-gradient(135deg,#f39200 0%,#dc7a00 100%);border:none;border-radius:10px;width:100%;min-height:46px;margin-top:5.6px;padding:12.8px 16px;font-family:inherit;font-size:15.2px;font-weight:700;transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1);position:relative;overflow:hidden}.login-submit[data-v-8b5319b8]:after{content:"";background:linear-gradient(105deg,#0000 30%,#ffffff29 45%,#ffffff42 50%,#ffffff29 55%,#0000 70%);animation:2.8s infinite login-shimmer-8b5319b8;position:absolute;inset:0;transform:translate(-100%)}@keyframes login-shimmer-8b5319b8{to{transform:translate(100%)}}.login-submit[data-v-8b5319b8]:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 12px 28px -8px #f3920080}.login-submit[data-v-8b5319b8]:active:not(:disabled){transform:translateY(0);box-shadow:0 4px 12px -4px #dc7a0066}.login-submit[data-v-8b5319b8]:focus-visible{outline-offset:2px;outline:2px solid #fff}.login-submit[data-v-8b5319b8]:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.login-submit[data-v-8b5319b8]:disabled:after{opacity:0;animation:none}.login-submit-label[data-v-8b5319b8]{z-index:1;justify-content:center;align-items:center;gap:8px;display:inline-flex;position:relative}.login-submit-spinner[data-v-8b5319b8]{border:2px solid #fff;border-top-color:#0000;border-radius:50%;width:15px;height:15px;animation:.8s linear infinite login-spin-8b5319b8;display:inline-block}@keyframes login-spin-8b5319b8{to{transform:rotate(360deg)}}.login-foot[data-v-8b5319b8]{color:#ffffff73;margin-top:24px;font-size:11.52px}.login-clock[data-v-8b5319b8]{z-index:2;pointer-events:none;flex-direction:column;align-items:flex-end;gap:2px;display:flex;position:absolute;bottom:32px;right:40px}.login-clock-date[data-v-8b5319b8]{color:#fff6;font-size:11.52px}.login-clock-time[data-v-8b5319b8]{color:#fff9;font-variant-numeric:tabular-nums;font-size:18.4px;font-weight:700}.login-copy[data-v-8b5319b8]{z-index:2;text-align:center;color:#ffffff59;font-size:11.2px;position:absolute;bottom:24px;left:0;right:0}.login-sign[data-v-8b5319b8]{letter-spacing:.14em;color:#ffffff17;margin-top:5.6px;font-size:9.92px;transition:color .4s;display:block}.login-sign[data-v-8b5319b8]:hover{color:#ffffff6b}@media (prefers-contrast:more){.login-sign[data-v-8b5319b8]{color:#ffffff73}}.slide-fade-enter-active[data-v-8b5319b8]{transition:all .2s cubic-bezier(.16,1,.3,1)}.slide-fade-leave-active[data-v-8b5319b8]{transition:all .15s cubic-bezier(.16,1,.3,1)}.slide-fade-enter-from[data-v-8b5319b8]{opacity:0;transform:translateY(8px)}.slide-fade-leave-to[data-v-8b5319b8]{opacity:0;transform:translateY(-4px)}@media (width<=767px){.login-card[data-v-8b5319b8]{padding:28px 24px}.login-logo-row[data-v-8b5319b8]{gap:13.6px}.login-logo[data-v-8b5319b8]{height:44px}.login-clock[data-v-8b5319b8]{align-items:center;margin-top:24px;position:static}.login-copy[data-v-8b5319b8]{margin-top:12px;position:static}.login-shell[data-v-8b5319b8]{padding-bottom:32px}}@media (prefers-reduced-motion:reduce){.login-card[data-v-8b5319b8],.login-logo-row[data-v-8b5319b8],.login-submit[data-v-8b5319b8]:after{animation:none}.login-submit[data-v-8b5319b8]:after{opacity:0}}:root{--color-bps-navy:oklch(28% .06 255);--color-bps-blue:oklch(45% .14 250);--color-bps-orange:oklch(62% .18 55);--color-bps-copper:oklch(48% .14 45);--color-bps-gold:oklch(70% .15 80);--color-paper:oklch(97% .01 85);--color-paper-warm:oklch(96% .02 80);--color-paper-cool:oklch(97% .005 240);--color-ink:oklch(15% .02 260);--color-ink-soft:oklch(28% .02 255);--color-ink-muted:oklch(45% .02 255);--color-ink-faint:oklch(68% .01 250);--color-ink-line:oklch(85% .01 250);--color-success:oklch(52% .16 155);--color-success-soft:oklch(95% .04 150);--color-warning:oklch(62% .17 75);--color-warning-soft:oklch(96% .05 80);--color-danger:oklch(50% .19 25);--color-danger-soft:oklch(95% .04 20);--color-info:oklch(50% .12 240);--surface-base:oklch(98% .005 90);--surface-elevated:oklch(100% 0 0);--surface-overlay:oklch(100% 0 0/.92);--surface-navy:oklch(22% .05 255);--surface-navy-light:oklch(32% .05 255);--font-display:"Playfair Display", "Georgia", "Times New Roman", serif;--font-body:"DM Sans", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", "Consolas", monospace;--font-tabular:"DM Sans", "Segoe UI", system-ui, sans-serif;--text-2xs:clamp(.625rem, .6rem + .12vw, .6875rem);--text-xs:clamp(.6875rem, .66rem + .13vw, .75rem);--text-sm:clamp(.75rem, .72rem + .15vw, .875rem);--text-base:clamp(.875rem, .84rem + .18vw, 1rem);--text-md:clamp(1rem, .95rem + .22vw, 1.125rem);--text-lg:clamp(1.125rem, 1.06rem + .28vw, 1.375rem);--text-xl:clamp(1.375rem, 1.28rem + .38vw, 1.75rem);--text-2xl:clamp(1.75rem, 1.6rem + .55vw, 2.25rem);--text-3xl:clamp(2.25rem, 2rem + .9vw, 3.25rem);--text-4xl:clamp(3rem, 2.5rem + 1.5vw, 5rem);--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.6;--leading-relaxed:1.75;--tracking-tight:-.02em;--tracking-normal:0;--tracking-wide:.04em;--tracking-wider:.08em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--space-10:4rem;--space-12:6rem;--space-16:8rem;--radius-none:0;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:20px;--radius-2xl:28px;--radius-full:999px;--shadow-none:none;--shadow-sm:0 1px 2px oklch(0% 0 0/.04);--shadow-md:0 1px 3px oklch(0% 0 0/.06), 0 4px 12px oklch(0% 0 0/.04);--shadow-lg:0 2px 4px oklch(0% 0 0/.04), 0 8px 24px oklch(0% 0 0/.06);--shadow-xl:0 4px 8px oklch(0% 0 0/.04), 0 16px 48px oklch(0% 0 0/.08);--shadow-glow-navy:0 0 30px oklch(28% .06 255/.15);--shadow-glow-orange:0 0 20px oklch(62% .18 55/.12);--ease-out-quint:cubic-bezier(.22, 1, .36, 1);--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-in-out-quint:cubic-bezier(.83, 0, .17, 1);--duration-fast:.12s;--duration-normal:.25s;--duration-slow:.4s;--duration-glacial:.7s;--duration-reveal:.9s;--z-base:0;--z-dropdown:100;--z-sticky:200;--z-sidebar:300;--z-overlay:400;--z-modal:500;--z-toast:600;--z-tooltip:700;--sidebar-width:240px;--sidebar-collapsed:72px;--topbar-height:56px;--content-max:1440px;--locale-id:"id-ID"}input[type=date]{position:relative}.date-id{font-family:var(--font-body)}body.theme-dark,.theme-dark{--color-paper:oklch(14% .02 255);--color-paper-warm:oklch(17% .02 80);--color-paper-cool:oklch(14% .015 240);--color-ink:oklch(92% .01 90);--color-ink-soft:oklch(78% .02 255);--color-ink-muted:oklch(58% .02 255);--color-ink-faint:oklch(35% .01 250);--color-ink-line:oklch(25% .01 250);--surface-base:oklch(16% .02 255);--surface-elevated:oklch(18% .02 255);--surface-overlay:oklch(18% .02 255/.92);--surface-navy:oklch(12% .03 255);--surface-navy-light:oklch(22% .05 255);--color-success-soft:oklch(22% .06 150);--color-warning-soft:oklch(22% .06 80);--color-danger-soft:oklch(22% .06 20);--shadow-sm:0 1px 2px oklch(0% 0 0/.2);--shadow-md:0 1px 3px oklch(0% 0 0/.3), 0 4px 12px oklch(0% 0 0/.2);--shadow-lg:0 2px 4px oklch(0% 0 0/.3), 0 8px 24px oklch(0% 0 0/.25)}:root{--color-bg:#f1f5f9;--color-surface:#fff;--color-surface-2:#f8fafc;--color-surface-3:#eef2f7;--color-border:#00000014;--color-border-light:#0000001f;--color-text:#1e293b;--color-text-2:#64748b;--color-text-3:#94a3b8;--color-accent:#e8751a;--color-accent-2:#f08c3e;--color-accent-soft:#e8751a14;--color-accent-glow:#e8751a33;--color-success:#16a34a;--color-success-soft:#16a34a1a;--color-warning:#d97706;--color-warning-soft:#d977061a;--color-danger:#dc2626;--color-danger-soft:#dc262614;--color-info:#2563eb;--color-sidebar-bg:#0f172a;--color-sidebar-text:#94a3b8;--color-sidebar-active:#e8751a33;--color-sidebar-hover:#ffffff0f;--color-chart-bar:#f08c3e;--color-chart-bar-over:#e8751a;--color-chart-complete:#22c55e;--color-chart-target:#eab308;--color-chart-grid:#00000014;--font-sans:"DM Sans", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;--font-mono:ui-monospace, "Cascadia Mono", "Consolas", "SF Mono", monospace;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 12px #00000014;--shadow-lg:0 8px 32px #0000001f;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--duration-fast:.12s;--duration-normal:.2s;--duration-slow:.35s;--z-sidebar:100;--z-topbar:90;--z-modal:200;--z-toast:500;--z-overlay:300;--text-xs:.7rem;--text-sm:.8rem;--text-base:.875rem;--text-md:.95rem;--text-lg:1.1rem;--text-xl:1.3rem;--text-2xl:1.6rem;--text-3xl:2rem;--text-4xl:2.4rem}body.theme-dark{--color-bg:#0a0e17;--color-surface:#111827;--color-surface-2:#161c28;--color-surface-3:#1c2333;--color-border:#ffffff0f;--color-border-light:#ffffff1a;--color-text:#e8eaed;--color-text-2:#8b92a3;--color-text-3:#5f6779;--color-chart-grid:#ffffff0f;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.5}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;overflow-x:hidden}a{color:var(--color-accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}strong{font-weight:700}small{font-size:var(--text-sm)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#8080804d}::-webkit-scrollbar-thumb:hover{background:#80808080}.hidden,.role-hidden{display:none!important}.text-muted{color:var(--color-text-2)}.text-center{text-align:center}.text-sm{font-size:var(--text-sm)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.font-bold,.font-extrabold{font-weight:700}.tabular-nums{font-variant-numeric:tabular-nums}button{font-family:inherit}.btn-primary{background:linear-gradient(135deg, var(--color-accent), var(--color-accent-2));color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-expo), box-shadow var(--duration-fast) var(--ease-out-expo), background-color var(--duration-fast), border-color var(--duration-fast);border:none;align-items:center;gap:6px;padding:.55rem 1.2rem;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #e8751a40}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #e8751a59}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{background:var(--color-surface-2);color:var(--color-text);border:1px solid var(--color-border-light);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast);align-items:center;gap:5px;padding:.45rem .9rem;font-weight:600;display:inline-flex}.btn-secondary:hover{background:var(--color-surface-3);border-color:#80808040}.btn-ghost{color:var(--color-text-2);border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:color var(--duration-fast), background-color var(--duration-fast), border-color var(--duration-fast);background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:.4rem .7rem;display:inline-flex}.btn-ghost:hover{color:var(--color-text);background:var(--color-surface-2)}.btn-danger{background:var(--color-danger);color:#fff;border-radius:var(--radius-md);font-size:var(--text-sm);cursor:pointer;transition:filter var(--duration-fast);border:none;align-items:center;gap:5px;padding:.45rem .9rem;font-weight:600;display:inline-flex}.btn-danger:hover{filter:brightness(1.15)}.btn-danger:disabled{opacity:.5;cursor:not-allowed;filter:none}.btn-icon{cursor:pointer;color:var(--color-text-2);border-radius:var(--radius-md);font-size:var(--text-lg);transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:none;align-items:center;padding:6px;display:flex}.btn-icon:hover{color:var(--color-text);background:var(--color-surface-2)}.btn-sm{font-size:var(--text-xs);padding:.3rem .6rem}.btn-xs{font-size:var(--text-xs);padding:.15rem .4rem}.btn-busy{pointer-events:none;opacity:.7;position:relative}.btn-busy:after{content:"";border:2px solid #0000;border-top-color:currentColor;border-radius:50%;width:12px;height:12px;margin-left:6px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}input:where(:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]):not([type=submit]):not([type=reset]):not([type=button])),select,textarea{background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-md);color:var(--color-text);font-size:var(--text-base);transition:border-color var(--duration-fast), box-shadow var(--duration-fast);outline:none;padding:.5rem .65rem;font-family:inherit}input:focus,select:focus,textarea:focus{border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}input::placeholder,textarea::placeholder{color:var(--color-text-3)}input:read-only{background:var(--color-surface-2);color:var(--color-text-2)}textarea{resize:vertical;min-height:80px}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right .6rem center;background-repeat:no-repeat;padding-right:2rem}.app-shell{background:var(--color-bg);min-height:100vh;display:flex}.main-content{min-width:0;transition:margin-left var(--duration-slow) var(--ease-out-expo);flex-direction:column;flex:1;margin-left:210px;display:flex}.sidebar-collapsed .main-content{margin-left:68px}.content-viewport{padding:var(--space-6);flex:1;width:100%;max-width:1500px;margin:0 auto}.update-banner{background:var(--color-surface);border:1px solid var(--color-border);padding:10px var(--space-4);margin-bottom:var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-2);align-items:center;gap:8px;font-weight:600;display:flex}.update-banner:before{content:"●";color:var(--color-accent);font-size:8px}.kpi-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(4,1fr);display:grid}.kpi-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:transform var(--duration-normal) var(--ease-out-expo), border-color var(--duration-normal), box-shadow var(--duration-normal);cursor:default;position:relative;overflow:hidden}button.kpi-card{font:inherit;color:inherit;text-align:left;appearance:none;width:100%}.kpi-card.kpi-clickable{cursor:pointer}.kpi-card.kpi-clickable:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-card .kpi-label{font-size:var(--text-xs);color:var(--color-text-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2);font-weight:600}.kpi-card .kpi-value{font-size:var(--text-3xl);color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:700;line-height:1.2}.kpi-card .kpi-change{font-size:var(--text-xs);margin-top:var(--space-1);font-weight:600}.kpi-change.up{color:var(--color-success)}.kpi-change.down{color:var(--color-danger)}.kpi-change.neutral{color:var(--color-text-2)}@media (width<=1020px){.kpi-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.kpi-grid{grid-template-columns:1fr}}.data-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-5)}.section-head{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.section-head h2{font-size:var(--text-lg);font-weight:700}.section-head h3{font-size:var(--text-md);font-weight:700}.section-head p{color:var(--color-text-2);font-size:var(--text-sm)}.page-intro{margin-bottom:var(--space-5)}.page-intro h2{font-size:var(--text-xl);color:var(--color-text);letter-spacing:-.01em;font-weight:700}.page-intro p{color:var(--color-text-2);font-size:var(--text-sm);margin-top:var(--space-1)}.toolbar{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.summary-list{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.target-summary-card{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4);transition:border-color var(--duration-fast) var(--ease-out-expo), background-color var(--duration-fast) var(--ease-out-expo)}.target-summary-card:hover{border-color:var(--color-border-light)}.target-card-head{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.target-card-head strong{font-size:var(--text-sm);font-weight:700}.target-badge{border-radius:var(--radius-full);font-size:var(--text-xs);background:var(--color-success-soft);color:var(--color-success);white-space:nowrap;padding:3px 10px;font-weight:700;display:inline-block}.target-summary-card-not-target{opacity:.55}.target-summary-card-not-target .target-badge{color:var(--color-text-3);background:#0000000f}.target-metric-row{font-size:var(--text-xs);justify-content:space-between;align-items:center;margin-bottom:3px;display:flex}.target-metric-row span:not(.bar){color:var(--color-text-2)}.target-metric-row b{font-variant-numeric:tabular-nums}.bar{background:var(--color-border);border-radius:var(--radius-full);width:100%;height:6px;margin-bottom:8px;display:block;overflow:hidden}.bar span{border-radius:var(--radius-full);height:100%;transition:width .6s var(--ease-out-expo);display:block}.bar-made span{background:linear-gradient(90deg, var(--color-chart-bar), var(--color-chart-bar-over))}.bar-complete span{background:linear-gradient(90deg, var(--color-chart-complete), #15803d)}.matrix-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.matrix-wrap table{border-collapse:collapse;font-size:var(--text-sm);background:var(--color-surface);min-width:100%}.matrix-wrap thead th{background:var(--color-surface-3);color:var(--color-text);text-align:center;z-index:2;font-weight:700;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.03em;border-bottom:2px solid var(--color-border);white-space:normal;word-break:break-word;vertical-align:middle;min-width:64px;padding:8px 6px;line-height:1.2;position:sticky;top:0}.matrix-wrap thead th:first-child{z-index:3;text-align:left;white-space:nowrap;background:var(--color-surface-3);width:auto;min-width:180px;position:sticky;left:0}.matrix-wrap tbody td{text-align:center;border-bottom:1px solid var(--color-border);font-variant-numeric:tabular-nums;font-size:var(--text-xs);padding:8px 6px}.matrix-wrap tbody td:first-child{text-align:left;white-space:nowrap;background:var(--color-surface);z-index:2;font-weight:700;position:sticky;left:0}.matrix-wrap tbody tr:hover td,.matrix-wrap tbody tr:hover td:first-child{background:var(--color-surface-2)}.matrix-wrap tbody tr[data-matrix-satker]{cursor:pointer}.matrix-note{font-size:var(--text-xs);color:var(--color-text-2);margin-top:var(--space-2);font-style:italic}.status-pill{border-radius:var(--radius-full);min-height:22px;font-size:var(--text-xs);white-space:nowrap;align-items:center;padding:3px 10px;font-weight:700;display:inline-flex}.status-ok,.cell-ok{background:var(--color-success-soft);color:var(--color-success)}.status-warn,.cell-partial{background:var(--color-warning-soft);color:var(--color-warning)}.status-empty,.cell-empty{background:var(--color-danger-soft);color:var(--color-danger)}.slicer-panel{margin-top:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-2)}.slicer-head{justify-content:space-between;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap;display:flex}.slicer-options{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.slicer-options label{font-size:var(--text-sm);cursor:pointer;color:var(--color-text-2);align-items:center;gap:6px;display:flex}.slicer-options label:hover{color:var(--color-text)}@media (width<=1020px){.slicer-options{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.slicer-options{grid-template-columns:1fr}}.section-toggle{width:100%;padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-base);color:var(--color-text);transition:color var(--duration-fast), background-color var(--duration-fast), border-color var(--duration-fast);justify-content:space-between;align-items:center;font-weight:700;display:flex}.section-toggle:hover{background:var(--color-surface-3)}.section-toggle small{font-size:var(--text-xs);color:var(--color-text-2)}.empty-state{padding:var(--space-10) var(--space-4);text-align:center;color:var(--color-text-2);flex-direction:column;align-items:center;display:flex}.empty-state svg{width:100px;height:100px;margin-bottom:var(--space-4);opacity:.4}.empty-state strong{font-size:var(--text-md);color:var(--color-text);margin-bottom:4px;display:block}.empty-state span{font-size:var(--text-sm)}.loading-cat{padding:var(--space-8);color:var(--color-text-2);flex-direction:column;align-items:center;display:flex}.loading-cat svg{width:70px;height:70px;animation:catBounce 1.6s var(--ease-out-expo) infinite}.loading-cat p{margin-top:var(--space-3);font-size:var(--text-sm)}@keyframes catBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-height:65vh;overflow:auto}.table-wrap table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.table-wrap thead th{background:var(--color-surface-3);color:var(--color-text);text-align:left;z-index:2;white-space:nowrap;font-weight:700;font-size:var(--text-xs);border-bottom:1px solid var(--color-border);padding:.55rem .65rem;position:sticky;top:0}.table-wrap thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.table-wrap thead th.sortable:hover{color:var(--color-accent)}.table-wrap tbody td{border-bottom:1px solid var(--color-border);font-size:var(--text-sm);padding:.45rem .65rem}.table-wrap tbody tr:hover{background:var(--color-surface-2)}.pagination{gap:var(--space-2);margin-top:var(--space-4);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.pagination button{padding:var(--space-1) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:var(--text-xs);color:var(--color-text-2);transition:color var(--duration-fast), background-color var(--duration-fast), border-color var(--duration-fast)}.pagination button:hover:not(:disabled){background:var(--color-surface-2);color:var(--color-text)}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination button.active{background:var(--color-accent);color:#fff;border-color:var(--color-accent)}.page-shortcuts{gap:3px;display:flex}.page-info{font-size:var(--text-xs);color:var(--color-text-2)}.filter-grid{gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.filter-grid input,.filter-grid select{font-size:var(--text-sm);min-width:120px;padding:.45rem .6rem}.filter-grid input{flex:1;min-width:160px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal);background:#0006;justify-content:center;align-items:center;animation:.2s fadeOverlay;display:flex;position:fixed;inset:0}@keyframes fadeOverlay{0%{opacity:0}to{opacity:1}}.modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:640px;max-width:92vw;max-height:85vh;animation:slideUp .25s var(--ease-out-expo);flex-direction:column;display:flex;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-head{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-head h2{font-size:var(--text-lg);font-weight:700}.modal-content{padding:var(--space-5);flex:1;overflow-y:auto}.modal-actions{gap:var(--space-2);padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border);justify-content:flex-end;display:flex}.detail-content{flex-direction:column;gap:1px;display:flex}.detail-row{border-bottom:1px solid var(--color-border);font-size:var(--text-sm);padding:8px 0;display:flex}.detail-row strong{width:200px;color:var(--color-text-2);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;display:inline-block}.detail-row span{word-break:break-word;flex:1}.detail-row-missing{border-left:3px solid var(--color-warning);padding-left:var(--space-2)}.detail-row-missing strong{color:var(--color-warning)}.detail-row strong .req{color:var(--color-danger);margin-left:2px}.missing-value{color:var(--color-warning);font-style:italic;font-weight:700}.missing-summary{width:100%;color:var(--color-warning);font-size:var(--text-xs);margin-top:4px;font-weight:600;display:block}.chart-box{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-3);min-height:280px;position:relative}.overlay-chart-box{min-height:480px;position:relative;overflow:visible}.chart-grid-charts{gap:var(--space-3);grid-template-columns:repeat(2,1fr);display:grid}@media (width<=760px){.chart-grid-charts{grid-template-columns:1fr}}.chart-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-top:var(--space-3);overflow-x:auto}.chart-satker-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.chart-satker-table th,.chart-satker-table td{border:1px solid var(--color-border);text-align:center;padding:6px 8px}.chart-satker-table th:first-child{text-align:left;width:190px}.chart-satker-table thead th{background:var(--color-surface-3);color:var(--color-text);font-weight:700;font-size:var(--text-xs)}.chart-update-text{text-align:center;color:var(--color-text-2);font-size:var(--text-sm);margin-top:var(--space-2);font-weight:600}.form-grid{gap:var(--space-3);flex-direction:column;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field label{font-weight:700;font-size:var(--text-sm);color:var(--color-text-2);text-transform:uppercase;letter-spacing:.04em}.field label .req{color:var(--color-danger)}.entry-action-row{gap:var(--space-2);margin-top:var(--space-4);align-items:center;display:flex}.message{font-size:var(--text-sm);min-height:20px;margin-top:4px}.msg-ok{color:var(--color-success);font-weight:700}.msg-err{color:var(--color-danger);font-weight:700}.import-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-overlay);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.import-overlay-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-8);text-align:center;width:90vw;max-width:420px}.import-overlay-content p{font-weight:700;font-size:var(--text-lg);margin-top:var(--space-4)}.upload-area{border:2px dashed var(--color-border-light);border-radius:var(--radius-lg);padding:var(--space-8);text-align:center;cursor:pointer;transition:color var(--duration-fast), background-color var(--duration-fast), border-color var(--duration-fast);margin-bottom:var(--space-4)}.upload-area:hover,.upload-area.dragover{border-color:var(--color-accent);background:var(--color-accent-soft)}.upload-area p{color:var(--color-text-2);margin-bottom:4px}.upload-area p:first-child{font-size:var(--text-lg);color:var(--color-text);font-weight:600}.file-list{margin-bottom:var(--space-4);flex-direction:column;gap:6px;display:flex}.file-item{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.file-item .file-remove{cursor:pointer;color:var(--color-danger);font-size:var(--text-md);padding:var(--space-2);border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;min-width:32px;min-height:32px;display:inline-flex}.file-item .file-remove:hover{background:var(--color-danger-soft)}.file-status.active{color:var(--color-warning)}.file-status.done{color:var(--color-success)}.file-status.fail{color:var(--color-danger)}.settings-tabs{margin-bottom:var(--space-5);border-bottom:2px solid var(--color-border);flex-wrap:wrap;gap:0;display:flex}.settings-tab{cursor:pointer;font-size:var(--text-sm);color:var(--color-text-2);white-space:nowrap;transition:color var(--duration-fast), border-color var(--duration-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:.5rem 1rem;font-weight:600}.settings-tab:hover{color:var(--color-text)}.settings-tab.active{color:var(--color-accent);border-bottom-color:var(--color-accent);font-weight:700}.tab-panel{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-5);border:1px solid var(--color-border)}.target-grid{gap:var(--space-3);margin-top:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.target-row{align-items:center;gap:var(--space-2);border-bottom:1px solid var(--color-border);padding:8px 0;display:flex}.target-row strong{font-size:var(--text-sm);flex:1}.target-row input{text-align:center;width:70px;padding:.35rem}.user-form{gap:var(--space-2);margin-bottom:var(--space-5);flex-wrap:wrap;align-items:flex-end;display:flex}.user-form input,.user-form select{padding:.45rem .65rem}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-sm)}.data-table th{background:var(--color-surface-3);color:var(--color-text);text-align:left;font-size:var(--text-xs);padding:.5rem .6rem;font-weight:700}.data-table td{border-bottom:1px solid var(--color-border);padding:.4rem .6rem}.data-table tr:hover{background:var(--color-surface-2)}.toggle-switch{width:44px;height:22px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:var(--color-border-light);border-radius:var(--radius-full);transition:background var(--duration-normal);position:absolute;inset:0}.toggle-slider:before{content:"";width:16px;height:16px;transition:transform var(--duration-normal);background-color:#fff;border-radius:50%;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background-color:var(--color-success)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(22px)}.fab-new{bottom:var(--space-5);right:var(--space-5);z-index:80;background:linear-gradient(135deg, var(--color-accent), var(--color-accent-2));color:#fff;cursor:pointer;width:54px;height:54px;transition:transform var(--duration-fast) var(--ease-out-expo), box-shadow var(--duration-fast);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex;position:fixed;box-shadow:0 4px 20px #e8751a4d}.fab-new:hover{transform:scale(1.08);box-shadow:0 6px 28px #e8751a66}.fab-new:active{transform:scale(.94)}.toast-container{bottom:var(--space-6);z-index:var(--z-toast);pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{border-radius:var(--radius-full);font-size:var(--text-sm);pointer-events:all;white-space:nowrap;padding:10px 20px;font-weight:700;animation:.3s toastIn,.3s 3.5s forwards toastOut;box-shadow:0 4px 16px #0003}.toast-success{background:var(--color-success);color:#fff}.toast-error{background:var(--color-danger);color:#fff}.toast-info{background:var(--color-accent);color:#fff}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes toastOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}.sidebar-backdrop{z-index:calc(var(--z-sidebar) - 1);background:#0000008c;animation:.2s fadeIn;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.inline-error{text-align:center;padding:var(--space-8);color:var(--color-danger);font-style:italic;font-size:var(--text-md)}@media (width<=760px){.main-content{margin-left:0!important}.content-viewport{padding:var(--space-3)}.fab-new{bottom:var(--space-3);right:var(--space-3);width:46px;height:46px;font-size:1.3rem}.section-head{flex-direction:column;align-items:flex-start}.filter-grid{flex-direction:column}.filter-grid input{width:100%}.table-wrap{max-height:50vh}}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}.dashboard-controls{justify-content:space-between;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.dashboard-controls .update-banner{flex:1;min-width:min(100%,280px);margin-bottom:0}.dashboard-filter{gap:var(--space-1);flex-direction:column;min-width:min(100%,220px);display:flex}.dashboard-filter label{font-size:var(--text-xs);color:var(--color-text-2);font-weight:700}.dashboard-filter select{width:100%}.dashboard .kpi-card,.dashboard .target-summary-card{color:inherit;text-decoration:none}.dashboard .kpi-card{flex-direction:column;display:flex}.dashboard .target-summary-card{display:block}.dashboard .kpi-clickable:focus-visible,.dashboard .target-summary-card:focus-visible{border-color:var(--color-accent)}.dashboard-skeleton-card{min-height:112px}.dashboard-skeleton{background:var(--color-border-light);border-radius:var(--radius-sm);animation:1.5s ease-in-out infinite skeletonPulse;display:block}.dashboard-skeleton-label{width:60%;height:12px;margin-bottom:var(--space-2)}.dashboard-skeleton-value{width:30%;height:28px}@keyframes skeletonPulse{0%,to{opacity:.45}50%{opacity:.9}}.dashboard .inline-error{justify-items:center;gap:var(--space-3);display:grid}.dashboard .slicer-panel{min-width:0}.dashboard .slicer-panel legend{padding:0 var(--space-1);font-weight:700;font-size:var(--text-sm)}.dashboard-matrix-wrap{margin-top:var(--space-3)}.weekly-matrix-wrap{max-height:500px;overflow-y:auto}.matrix-wrap caption{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.matrix-wrap tbody th{text-align:left;border-bottom:1px solid var(--color-border);z-index:2;background:var(--color-surface);padding:0;position:sticky;left:0}.matrix-wrap tbody tr:hover th{background:var(--color-surface-2)}.matrix-row-button{width:100%;color:var(--color-text);font:inherit;text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:8px 6px;font-weight:700}.dashboard-na{font-size:var(--text-xs)}.empty-reports-panel{margin-top:var(--space-3)}.empty-report-list{list-style:none}.empty-report-list li{justify-content:space-between;gap:var(--space-3);padding:var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--text-sm);display:flex}.attention-groups{gap:var(--space-4);flex-direction:column;display:flex}.attention-satker{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-2);margin-bottom:var(--space-1);font-weight:700}.attention-list{list-style:none}.attention-link{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2);border-bottom:1px solid var(--color-border);font-size:var(--text-sm);color:var(--color-text);border-radius:var(--radius-sm);text-decoration:none;display:flex}.attention-link:hover{background:var(--color-surface-2)}.attention-link:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.attention-name{font-weight:600}.empty-modal-lead{font-size:var(--text-sm);color:var(--color-text-2);margin-bottom:var(--space-2)}.attention-inline{color:var(--color-warning);font-size:var(--text-xs);text-underline-offset:2px;font-weight:700;text-decoration:underline}.attention-inline:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.detail-row>span{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.modal-overlay{padding:var(--space-4)}.modal{width:min(640px,100%);max-width:100%}.modal-head h2{overflow-wrap:anywhere}@media (width<=600px){.dashboard-controls{align-items:stretch}.dashboard-controls .update-banner,.dashboard-filter{width:100%}.dashboard .data-panel{padding:var(--space-3)}.dashboard .summary-list{grid-template-columns:1fr}.dashboard .target-card-head{align-items:flex-start}.empty-report-list li{flex-direction:column;gap:2px}.attention-link{flex-direction:column;align-items:flex-start;gap:4px}.modal-overlay{align-items:flex-end;padding:0}.modal{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-height:92dvh}.modal-head,.modal-content,.modal-actions{padding-left:var(--space-4);padding-right:var(--space-4)}.detail-row{gap:var(--space-1);flex-direction:column}.detail-row strong{width:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{.sidebar,.topbar,.fab-new,.pagination,.modal-overlay,.toast-container,.filter-grid,.table-actions,.section-toggle,.btn-icon{display:none!important}.main-content{margin-left:0!important}.content-viewport{padding:0}body{color:#000;background:#fff}}
