:root{--border-width-thick:2px;--border-width-thin:1px;--breakpoint-lg:1024px;--breakpoint-md:768px;--breakpoint-sm:640px;--breakpoint-xl:1280px;--color-accent:#4f46e5;--color-bg-base:#f9faff;--color-bg-card:#fff;--color-bg-code:#f1f3fc;--color-bg-hover:#e2e4ed;--color-bg-sidebar:#f1f3fc;--color-border-base:#cfd0d9;--color-border-input:#8e9098;--color-border-strong:#a2a4ac;--color-border-subtle:#e2e4ed;--color-danger:#e11d48;--color-dataviz-categorical-1:#0072b2;--color-dataviz-categorical-2:#c68800;--color-dataviz-categorical-3:#009e73;--color-dataviz-categorical-4:#d55e00;--color-dataviz-categorical-5:#3c9cd0;--color-dataviz-categorical-6:#cc79a7;--color-dataviz-categorical-7:#7a8b2e;--color-dataviz-categorical-8:#ad1a72;--color-dataviz-diverging-1:#a1002d;--color-dataviz-diverging-2:#ff5066;--color-dataviz-diverging-3:#e2e4ed;--color-dataviz-diverging-4:#5f94ff;--color-dataviz-diverging-5:#0543ca;--color-dataviz-sequential-1:#cdd5ff;--color-dataviz-sequential-2:#96a2ff;--color-dataviz-sequential-3:#6667ff;--color-dataviz-sequential-4:#4637d7;--color-dataviz-sequential-5:#2c00a0;--color-disabled-bg:#e2e4ed;--color-disabled-border:#e2e4ed;--color-disabled-fg:#787a82;--color-info:#2563eb;--color-link-default:#4f46e5;--color-link-hover:#3e27c9;--color-link-visited:#9e16b1;--color-neutral-50:#f9faff;--color-neutral-100:#f1f3fc;--color-neutral-200:#e2e4ed;--color-neutral-300:#cfd0d9;--color-neutral-400:#a2a4ac;--color-neutral-500:#787a82;--color-neutral-600:#5c5d65;--color-neutral-700:#46474e;--color-neutral-800:#2f3037;--color-neutral-900:#191a20;--color-on-primary:#fff;--color-on-secondary:#000;--color-overlay-scrim:#191a2099;--color-primary-50:#f4f6ff;--color-primary-100:#ced5ff;--color-primary-200:#a9b4ff;--color-primary-300:#8691ff;--color-primary-400:#6769ff;--color-primary-500:#4f46e5;--color-primary-600:#4031c8;--color-primary-700:#3124a1;--color-primary-800:#231f72;--color-primary-900:#181b3d;--color-secondary-50:#f4f6ff;--color-secondary-100:#dce1ff;--color-secondary-200:#c4cdff;--color-secondary-300:#acb7ff;--color-secondary-400:#95a1ff;--color-secondary-500:#818cf8;--color-secondary-600:#636bce;--color-secondary-700:#484d9f;--color-secondary-800:#2f346a;--color-secondary-900:#1a1d34;--color-state-hover:#4f46e514;--color-state-pressed:#4f46e529;--color-state-selected:#4f46e51f;--color-status-danger-bg:#ffebeb;--color-status-danger-border:#f7b3b4;--color-status-danger-fg:#d80841;--color-status-danger-on:#fff;--color-status-danger-solid:#e11d48;--color-status-info-bg:#e9f1ff;--color-status-info-border:#acc8fc;--color-status-info-fg:#2563eb;--color-status-info-on:#fff;--color-status-info-solid:#2563eb;--color-status-success-bg:#def8e2;--color-status-success-border:#a2d7ac;--color-status-success-fg:#127e3c;--color-status-success-on:#fff;--color-status-success-solid:#15803d;--color-status-warning-bg:#ffedd5;--color-status-warning-border:#e6c18d;--color-status-warning-fg:#926300;--color-status-warning-on:#fff;--color-status-warning-solid:#a06c00;--color-success:#15803d;--color-surface-inverse:#191a20;--color-surface-overlay:#fff;--color-surface-raised:#fff;--color-surface-sunken:#f1f3fc;--color-text-disabled:#a2a4ac;--color-text-inverse:#f9faff;--color-text-muted:#5c5d65;--color-text-primary:#191a20;--color-text-secondary:#2f3037;--color-warning:#ca8a04;--elevation-1:0px 1px 2px 0px #0000001a;--elevation-2:0px 3px 9px 0px #0000001f;--elevation-3:0px 9px 24px 0px #00000026;--elevation-4:0px 15px 36px 0px #0000002e;--focus-ring-color:#4f46e5;--focus-ring-offset:2px;--focus-ring-width:2px;--font-family-body:"Inter", sans-serif;--font-family-mono:"JetBrains Mono", monospace;--font-line-2xl:28px;--font-line-3xl:33px;--font-line-4xl:45px;--font-line-lg:24px;--font-line-md:20px;--font-line-sm:17px;--font-line-xl:26px;--font-size-2xl:20px;--font-size-3xl:26px;--font-size-4xl:37px;--font-size-lg:17px;--font-size-md:14px;--font-size-sm:13px;--font-size-xl:19px;--font-size-xs:11px;--font-tracking-normal:0px;--font-tracking-tight:-.2px;--font-tracking-wide:.4px;--font-weight-bold:700;--font-weight-medium:500;--font-weight-regular:400;--font-weight-semibold:600;--motion-duration-fast:80ms;--motion-duration-normal:.14s;--motion-duration-slow:.22s;--motion-easing-emphasized:cubic-bezier(.3, 0, 0, 1);--motion-easing-standard:cubic-bezier(.2, 0, 0, 1);--opacity-disabled:.5;--opacity-hover:.08;--opacity-muted:.7;--opacity-pressed:.12;--radius-2xl:13px;--radius-3xl:14px;--radius-lg:10px;--radius-md:8px;--radius-pill:999px;--radius-sm:6px;--radius-xl:11px;--radius-xs:5px;--shadow-lg:0px 9px 24px 0px #00000026;--shadow-md:0px 3px 9px 0px #0000001f;--shadow-sm:0px 1px 2px 0px #0000001a;--shadow-xl:0px 15px 36px 0px #0000002e;--size-control-lg:40px;--size-control-md:32px;--size-control-sm:28px;--size-icon-lg:24px;--size-icon-md:20px;--size-icon-sm:16px;--size-touch-min:40px;--space-1:3px;--space-2:6px;--space-3:9px;--space-4:12px;--space-5:15px;--space-6:18px;--space-8:24px;--space-10:30px;--space-12:36px;--typography-body-lg-font-family:"Inter", sans-serif;--typography-body-lg-font-size:14px;--typography-body-lg-font-weight:400;--typography-body-lg-line-height:24px;--typography-body-md-font-family:"Inter", sans-serif;--typography-body-md-font-size:13px;--typography-body-md-font-weight:400;--typography-body-md-line-height:20px;--typography-display-lg-font-family:"Inter", sans-serif;--typography-display-lg-font-size:37px;--typography-display-lg-font-weight:700;--typography-display-lg-line-height:45px;--typography-heading-lg-font-family:"Inter", sans-serif;--typography-heading-lg-font-size:26px;--typography-heading-lg-font-weight:700;--typography-heading-lg-line-height:33px;--typography-heading-md-font-family:"Inter", sans-serif;--typography-heading-md-font-size:20px;--typography-heading-md-font-weight:600;--typography-heading-md-line-height:28px;--typography-label-sm-font-family:"Inter", sans-serif;--typography-label-sm-font-size:11px;--typography-label-sm-font-weight:500;--typography-label-sm-line-height:17px;--typography-mono-sm-font-family:"JetBrains Mono", monospace;--typography-mono-sm-font-size:11px;--typography-mono-sm-font-weight:400;--typography-mono-sm-line-height:17px;--typography-title-sm-font-family:"Inter", sans-serif;--typography-title-sm-font-size:17px;--typography-title-sm-font-weight:600;--typography-title-sm-line-height:24px;--z-dropdown:100;--z-modal:400;--z-overlay:300;--z-sticky:200;--z-toast:500;--z-tooltip:600}[data-theme=dark]{--color-accent:#6668ff;--color-bg-base:#1f2027;--color-bg-card:#25262d;--color-bg-code:#13141b;--color-bg-hover:#2c2d35;--color-bg-sidebar:#181920;--color-border-base:#46474e;--color-border-input:#6e6f78;--color-border-strong:#191a20;--color-border-subtle:#46474e;--color-danger:#ff4c64;--color-dataviz-categorical-1:#0875b5;--color-dataviz-categorical-2:#e69f00;--color-dataviz-categorical-5:#56b4e9;--color-dataviz-categorical-8:#c43585;--color-dataviz-diverging-1:#ff6f7b;--color-dataviz-diverging-2:#ba0036;--color-dataviz-diverging-3:#46474e;--color-dataviz-diverging-4:#1754db;--color-dataviz-diverging-5:#73a2ff;--color-dataviz-sequential-1:#3005ab;--color-dataviz-sequential-2:#4d46db;--color-dataviz-sequential-3:#7279ff;--color-dataviz-sequential-4:#a1adff;--color-dataviz-sequential-5:#d5dcff;--color-disabled-bg:#2c2d35;--color-disabled-border:#46474e;--color-disabled-fg:#676870;--color-info:#4883ff;--color-link-default:#7881ff;--color-link-hover:#95a1ff;--color-link-visited:#c767d6;--color-on-primary:#000;--color-overlay-scrim:#000000a6;--color-primary-50:#181b3c;--color-primary-100:#25256b;--color-primary-200:#333097;--color-primary-300:#433fbf;--color-primary-400:#5452e2;--color-primary-500:#6668ff;--color-primary-600:#8590ff;--color-primary-700:#a8b4ff;--color-primary-800:#ced5ff;--color-primary-900:#f4f6ff;--color-secondary-50:#1b1e2f;--color-secondary-100:#31365a;--color-secondary-200:#4a5086;--color-secondary-300:#656db0;--color-secondary-400:#828cd9;--color-secondary-500:#a1adff;--color-secondary-600:#b5c0ff;--color-secondary-700:#cad2ff;--color-secondary-800:#dfe4ff;--color-secondary-900:#f4f6ff;--color-state-hover:#6668ff1f;--color-state-pressed:#6668ff33;--color-state-selected:#6668ff29;--color-status-danger-bg:#462527;--color-status-danger-border:#7c4245;--color-status-danger-fg:#ff5d6e;--color-status-danger-on:#000;--color-status-danger-solid:#ff4c64;--color-status-info-bg:#23304a;--color-status-info-border:#3d5482;--color-status-info-fg:#6296ff;--color-status-info-on:#000;--color-status-info-solid:#4883ff;--color-status-success-bg:#1c3723;--color-status-success-border:#31623d;--color-status-success-fg:#4bac66;--color-status-success-on:#000;--color-status-success-solid:#3a9c57;--color-status-warning-bg:#3f2d10;--color-status-warning-border:#6f4e1a;--color-status-warning-fg:#e8a639;--color-status-warning-on:#000;--color-status-warning-solid:#e8a639;--color-success:#3a9c57;--color-surface-inverse:#e5e7f0;--color-surface-overlay:#25262d;--color-surface-raised:#2c2d35;--color-surface-sunken:#13141b;--color-text-disabled:#676870;--color-text-inverse:#13141b;--color-text-muted:#afb0b9;--color-text-primary:#e5e7f0;--color-text-secondary:#c8cad3;--color-warning:#e8a639;--elevation-1:0px 1px 2px 0px #00000080;--elevation-2:0px 3px 9px 0px #00000080;--elevation-3:0px 9px 24px 0px #00000080;--elevation-4:0px 15px 36px 0px #00000080;--focus-ring-color:#6668ff;--shadow-lg:0px 9px 24px 0px #00000080;--shadow-md:0px 3px 9px 0px #00000080;--shadow-sm:0px 1px 2px 0px #00000080;--shadow-xl:0px 15px 36px 0px #00000080}*,:after,:before{box-sizing:border-box}body{background:var(--color-bg-base);color:var(--color-text-primary);font-family:var(--font-family-body);font-size:var(--font-size-md);line-height:var(--font-line-md);margin:0}code{font-family:var(--font-family-mono);background:var(--color-bg-code);padding:0 .25em}a{color:var(--color-accent)}.card{background:var(--color-bg-card);border-radius:8px;padding:1rem 1.25rem}.badge,.card{border:1px solid var(--color-border-base)}.badge{font-size:var(--font-size-sm);border-radius:999px;padding:0 .5em;display:inline-block}.badge.ok{background:var(--color-status-success-bg)}.badge.err{background:var(--color-status-danger-bg)}.sim-banner{background:var(--color-status-warning-bg);color:var(--color-status-warning-fg);border-bottom:1px solid var(--color-status-warning-border);text-align:center;font-size:var(--font-size-sm);padding:.35rem 1rem}.muted{color:var(--color-text-muted)}.num{text-align:right;font-variant-numeric:tabular-nums}.t-pos{color:var(--color-status-success-fg)}.t-neg{color:var(--color-status-danger-fg)}.shell{flex-direction:column;min-height:100vh;display:flex}.statusbar{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);background:var(--color-bg-card);border-bottom:1px solid var(--color-border-base);z-index:5;flex-wrap:wrap;display:flex;position:sticky;top:0}.brand{font-weight:var(--font-weight-bold);margin-right:var(--space-4);text-decoration:none}.body{flex:1;display:flex}.sidebar{background:var(--color-bg-sidebar);border-right:1px solid var(--color-border-subtle);width:220px;padding:var(--space-4);flex:none}.nav-title{font-size:var(--font-size-xs);text-transform:uppercase;color:var(--color-text-muted);margin:var(--space-4) 0 var(--space-2)}.nav-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-primary);min-height:var(--size-touch-min);line-height:calc(var(--size-touch-min) - 2 * var(--space-2));text-decoration:none;display:block}.nav-item.router-link-active{background:var(--color-state-selected);font-weight:var(--font-weight-semibold)}.nav-item.disabled{color:var(--color-disabled-fg)}.content{min-width:0;padding:var(--space-6) var(--space-8);flex:1;max-width:1200px}.more-btn{margin-left:auto;display:none}.chip{align-items:center;gap:var(--space-1);padding:0 var(--space-3);border-radius:var(--radius-pill);font-size:var(--font-size-sm);border:1px solid var(--color-border-base);background:var(--color-bg-card);white-space:nowrap;display:inline-flex}.chip.tone-success{background:var(--color-status-success-bg);color:var(--color-status-success-fg);border-color:var(--color-status-success-border)}.chip.tone-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger-fg);border-color:var(--color-status-danger-border)}.chip.tone-warning{background:var(--color-status-warning-bg);color:var(--color-status-warning-fg);border-color:var(--color-status-warning-border)}.chip.tone-info{background:var(--color-status-info-bg);color:var(--color-status-info-fg);border-color:var(--color-status-info-border)}.btn{min-height:var(--size-touch-min);padding:0 var(--space-4);border-radius:var(--radius-sm);border:1px solid var(--color-border-input);background:var(--color-bg-card);color:var(--color-text-primary);cursor:pointer;font:inherit}.btn:focus-visible,.icon-btn:focus-visible,a:focus-visible,select:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.icon-btn{cursor:pointer;background:0 0;border:0;min-width:28px}.page-head{align-items:baseline;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.page-head h1{font-size:var(--font-size-2xl);margin:0}.kpi-row{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.kpi{background:var(--color-bg-card);border:1px solid var(--color-border-base);border-radius:var(--radius-md);padding:var(--space-4)}.kpi.primary{border-color:var(--color-accent);border-width:var(--border-width-thick)}.kpi-label{font-size:var(--font-size-sm)}.kpi-value{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums}.kpi-delta,.tbl th{font-size:var(--font-size-sm)}.tbl{border-collapse:collapse;background:var(--color-bg-card);width:100%}.tbl td,.tbl th{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border-subtle);text-align:left;vertical-align:top}.tbl th{color:var(--color-text-muted);font-weight:var(--font-weight-semibold)}.tbl td.num,.tbl th.num{text-align:right}.tbl tr.dim td{color:var(--color-text-muted)}.filters{gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.filters input,.filters select{min-height:var(--size-touch-min);padding:0 var(--space-3);border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-bg-card);color:var(--color-text-primary);font:inherit}.skeleton{padding:var(--space-6);background:var(--color-surface-sunken);border-radius:var(--radius-md);color:var(--color-text-muted);animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:var(--opacity-muted)}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.err-box{padding:var(--space-4);background:var(--color-status-danger-bg);color:var(--color-status-danger-fg);border:1px solid var(--color-status-danger-border);gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.card-item,.chart svg,.dlg,.empty,.err-box,.todo-strip{border-radius:var(--radius-md)}.empty{padding:var(--space-6);background:var(--color-surface-sunken)}.todo-strip{gap:var(--space-4);padding:var(--space-4);border:1px solid var(--color-border-base);margin-bottom:var(--space-6);flex-wrap:wrap;display:flex}.chart svg,.todo-strip{background:var(--color-bg-card)}.chart svg{border:1px solid var(--color-border-subtle);width:100%;height:160px}.tabs{gap:var(--space-2);border-bottom:1px solid var(--color-border-base);margin-bottom:var(--space-4);display:flex;overflow-x:auto}.tab{min-height:var(--size-touch-min);padding:0 var(--space-4);cursor:pointer;font:inherit;color:var(--color-text-primary);white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000}.tab[aria-selected=true]{border-bottom-color:var(--color-accent);font-weight:var(--font-weight-semibold)}.untrusted{background:var(--color-surface-sunken);border-left:3px solid var(--color-border-strong);padding:var(--space-3) var(--space-4);white-space:pre-wrap;overflow-wrap:anywhere}.cards{display:none}.card-item{background:var(--color-bg-card);border:1px solid var(--color-border-base);padding:var(--space-4);margin-bottom:var(--space-3)}.id{align-items:center;gap:var(--space-1);display:inline-flex}.section{margin-bottom:var(--space-8)}.section h2{font-size:var(--font-size-xl);margin:0 0 var(--space-3)}@media (width<=767px){.kpi-row{grid-template-columns:repeat(2,1fr)}.more-btn{display:inline-block}.sidebar{z-index:6;width:auto;display:none;position:absolute;top:100%;left:0;right:0}.sidebar.open{display:block}.content{padding:var(--space-4)}.tbl-wrap{display:none}.cards{display:block}}.dlg-backdrop{background:var(--color-overlay-scrim);z-index:var(--z-modal);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dlg{background:var(--color-bg-card);box-shadow:var(--shadow-xl);padding:var(--space-6);width:min(560px,100%);max-height:90vh;overflow:auto}.dlg h2{margin-top:0}.dlg-field{margin:var(--space-3) 0;display:block}.dlg-field input,.dlg-field select,.dlg-field textarea,.form-row input,.form-row select{width:100%;min-height:var(--size-touch-min);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-input);border-radius:var(--radius-sm);background:var(--color-bg-card);color:var(--color-text-primary);font:inherit;display:block}.dlg-actions{justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-4);display:flex}.btn-ok{background:var(--color-status-success-solid);color:var(--color-status-success-on);border-color:var(--color-status-success-solid)}.btn-danger{background:var(--color-status-danger-solid);color:var(--color-status-danger-on);border-color:var(--color-status-danger-solid)}.btn:disabled{background:var(--color-disabled-bg);color:var(--color-disabled-fg);border-color:var(--color-disabled-border);cursor:not-allowed}.toasts{right:var(--space-4);bottom:var(--space-4);z-index:var(--z-toast);gap:var(--space-2);flex-direction:column;max-width:calc(min(420px,100vw - 2rem));display:flex;position:fixed}.toast{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--color-border-base);background:var(--color-bg-card);box-shadow:var(--shadow-md);display:flex}.toast.tone-success{background:var(--color-status-success-bg);color:var(--color-status-success-fg)}.toast.tone-danger{background:var(--color-status-danger-bg);color:var(--color-status-danger-fg)}.banner{padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);border:1px solid var(--color-border-base)}.banner.tone-danger{background:var(--color-status-danger-solid);color:var(--color-status-danger-on)}.banner.tone-warning{background:var(--color-status-warning-bg);color:var(--color-status-warning-fg);border-color:var(--color-status-warning-border)}.banner.tone-success{background:var(--color-status-success-bg);color:var(--color-status-success-fg);border-color:var(--color-status-success-border)}.banner dl{gap:var(--space-1) var(--space-4);margin:var(--space-2) 0 0;grid-template-columns:max-content 1fr;display:grid}.banner dt{font-weight:var(--font-weight-semibold)}.banner dd{margin:0}.appr{background:var(--color-bg-card);border:1px solid var(--color-border-base);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3)}.appr.urgent{background:var(--color-status-danger-bg);border-color:var(--color-status-danger-border)}.appr h3{margin:0 0 var(--space-2);font-size:var(--font-size-lg)}.appr .change{font-size:var(--font-size-xl);font-variant-numeric:tabular-nums}.appr-actions{gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.appr-actions .btn{min-width:44px;min-height:44px}.bar{background:var(--color-surface-sunken);border-radius:var(--radius-pill);height:10px;position:relative;overflow:hidden}.bar>span{background:var(--color-accent);position:absolute;inset:0 auto 0 0}.bar.warn>span{background:var(--color-status-warning-solid)}.bar.danger>span{background:var(--color-status-danger-solid)}.locked{color:var(--color-disabled-fg)}.form-row{margin:var(--space-3) 0}.grid2{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.ci{background:var(--color-surface-sunken);border-radius:var(--radius-sm);min-width:160px;height:14px;position:relative}.ci .zero{background:var(--color-border-strong);width:2px;top:0;bottom:0}.ci .range,.ci .thr,.ci .zero{position:absolute}.ci .range{background:var(--color-dataviz-diverging-4);height:6px;top:4px}.ci .thr{background:var(--color-status-success-solid);width:2px;top:-2px;bottom:-2px}.danger-zone{border:2px solid var(--color-status-danger-border);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-8)}@media (width<=767px){.grid2{grid-template-columns:1fr}.appr-actions .btn{flex:1}.dlg{border-radius:0;width:100%;height:100%;max-height:100vh}.dlg-actions{flex-direction:column-reverse}}details.more{display:inline-block}details.more>summary{list-style:none}details.more[open]{gap:var(--space-2);flex-wrap:wrap;display:flex}
