:root{--cm-navy-900:#00335b;--cm-navy-800:#00284a;--cm-navy-700:#0d4370;--cm-navy-600:#14507f;--cm-navy-500:#1d5c8f;--cm-navy-400:#00223d;--cm-bg:#f6f7fb;--cm-surface:#fff;--cm-surface-alt:#f4f5f8;--cm-surface-hover:#f5f6f8;--cm-border:#dfe3ea;--cm-border-subtle:#eef1f6;--cm-text:#2b2d32;--cm-text-strong:#1a1c22;--cm-text-muted:#888b94;--cm-on-navy:#9fc0dc;--cm-on-navy-hover:#d6e7f5;--cm-on-navy-active:#fff;--cm-on-navy-label:#4f7ea6;--cm-accent:#1760f0;--cm-accent-hover:#0f4fd0;--cm-accent-soft:#fff;--cm-accent-bg:#1760f0;--cm-accent-ring:#1760f059;--cm-on-accent:#fff;--cm-success:#27ae60;--cm-success-text:#1e8449;--cm-success-bg:#27ae601f;--cm-danger:#e74c3c;--cm-danger-text:#c0392b;--cm-danger-bg:#c0392b1f;--cm-warning:#e67e22;--cm-warning-text:#d35400;--cm-warning-bg:#d354001f;--cm-info:#2980b9;--cm-info-bg:#2980b91f;--cm-series-sales:#3a8fd4;--cm-series-releases:#2ecc71;--cm-series-deliveries:#e67e22;--cm-series-attainment:#9b59b6;--cm-series-stock:#f39c12;--cm-series-potential:#8e44ad;--cm-series-danger:#e74c3c;--cm-font-family:"Heebo", system-ui, -apple-system, "Segoe UI", sans-serif;--cm-fs-caption:12px;--cm-fs-sm:13px;--cm-fs-body:14px;--cm-fs-title:15px;--cm-fs-h3:18px;--cm-fs-h2:22px;--cm-fs-h1:28px;--cm-fs-kpi:36px;--cm-fw-light:300;--cm-fw-regular:400;--cm-fw-medium:500;--cm-fw-semibold:600;--cm-fw-bold:700;--cm-fw-black:800;--cm-lh-tight:1.2;--cm-lh-normal:1.5;--cm-space-1:4px;--cm-space-2:8px;--cm-space-3:12px;--cm-space-4:16px;--cm-space-5:20px;--cm-space-6:24px;--cm-space-8:32px;--cm-space-10:40px;--cm-radius-sm:6px;--cm-radius:10px;--cm-radius-lg:14px;--cm-radius-pill:999px;--cm-shadow-sm:0 1px 3px #00000014;--cm-shadow:0 2px 8px #0000001a;--cm-shadow-lg:0 8px 24px #00000029;--cm-sidebar-w:190px;--cm-topnav-h:56px;--cm-row-h:44px;--cm-transition:.15s ease}@media (width<=1700px){html{zoom:.8}}html[dir=rtl] body,body{font-family:var(--cm-font-family);color:var(--cm-text);background:var(--cm-bg)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--cm-font-family);font-size:var(--cm-fs-body);color:var(--cm-text);background:var(--cm-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}button{cursor:pointer;font-family:inherit}*{scrollbar-width:thin;scrollbar-color:#c4c6cc transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:#c4c6cc;border-radius:4px}.ltr{direction:ltr;unicode-bidi:isolate}.app{height:100%;display:flex;overflow:hidden}.sidebar{width:var(--cm-sidebar-w);background:var(--cm-navy-900);border-inline-end:1px solid var(--cm-navy-600);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.topnav{height:var(--cm-topnav-h);background:var(--cm-navy-900);border-bottom:1px solid var(--cm-navy-600);padding-inline:var(--cm-space-5);justify-content:space-between;align-items:center;gap:var(--cm-space-4);flex-shrink:0;display:flex}.content{background:var(--cm-bg);min-height:0;padding:var(--cm-space-5) var(--cm-space-6) var(--cm-space-8);flex:1;overflow-y:auto}.brand{padding:var(--cm-space-4);border-bottom:1px solid var(--cm-navy-600)}.brand-name{font-size:16px;font-weight:var(--cm-fw-bold);color:#fff;letter-spacing:.02em}.brand-sub{font-size:var(--cm-fs-caption);color:var(--cm-on-navy);margin-top:2px}.sb-section{padding:var(--cm-space-3) 0}.sb-label{font-size:11px;font-weight:var(--cm-fw-semibold);color:var(--cm-on-navy-label);text-transform:uppercase;letter-spacing:.07em;padding:var(--cm-space-2) var(--cm-space-4) var(--cm-space-1)}.sb-dd-header{padding:var(--cm-space-2) var(--cm-space-4);font-size:var(--cm-fs-sm);color:var(--cm-on-navy);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--cm-transition);justify-content:space-between;align-items:center;display:flex}.sb-dd-header:hover{background:var(--cm-navy-700);color:var(--cm-on-navy-hover)}.sb-dd-arrow{color:var(--cm-on-navy-label);font-size:10px;transition:transform .2s}.sb-dd-arrow.open{transform:rotate(180deg)}.sb-opt{align-items:center;gap:var(--cm-space-2);padding:5px var(--cm-space-4) 5px var(--cm-space-5);font-size:var(--cm-fs-sm);color:var(--cm-on-navy);cursor:pointer;transition:background .1s;display:flex}.sb-opt:hover{background:var(--cm-navy-700);color:var(--cm-on-navy-hover)}.sb-opt input{accent-color:var(--cm-accent);cursor:pointer;width:13px;height:13px}.sb-seg{background:var(--cm-navy-400);border-radius:var(--cm-radius-pill);margin:var(--cm-space-1) var(--cm-space-4);gap:2px;padding:2px;display:flex}.sb-seg button{color:var(--cm-on-navy);border-radius:var(--cm-radius-pill);transition:all var(--cm-transition);background:0 0;border:0;flex:1;padding:4px 8px;font-size:11px}.sb-seg button.on{background:var(--cm-accent-bg);color:var(--cm-accent-soft);font-weight:var(--cm-fw-semibold)}.tabs{align-items:stretch;height:100%;display:flex;overflow-x:auto}.tab{padding:0 var(--cm-space-4);height:100%;color:var(--cm-on-navy);font-size:var(--cm-fs-sm);font-weight:var(--cm-fw-medium);white-space:nowrap;transition:all var(--cm-transition);background:0 0;border:none;border-bottom:2px solid #0000}.tab:hover{color:var(--cm-on-navy-hover)}.tab.on{color:#fff;border-bottom-color:var(--cm-accent)}.period-group{background:var(--cm-navy-400);border-radius:var(--cm-radius-pill);align-items:center;gap:2px;padding:2px;display:flex}.period-chip{color:var(--cm-on-navy);border-radius:var(--cm-radius-pill);transition:all var(--cm-transition);background:0 0;border:0;padding:4px 12px;font-size:11px}.period-chip.on{background:var(--cm-accent-bg);color:var(--cm-accent-soft);font-weight:var(--cm-fw-semibold)}.card{background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-sm);padding:var(--cm-space-4);min-width:0}.card-title{font-size:var(--cm-fs-title);font-weight:var(--cm-fw-semibold);color:var(--cm-text-strong);margin-bottom:var(--cm-space-3)}.kpi-row{gap:var(--cm-space-4);margin-bottom:var(--cm-space-4);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));display:grid}.kpi{background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-sm);padding:var(--cm-space-4) var(--cm-space-4) var(--cm-space-4);min-width:0;position:relative;overflow:hidden}.kpi:before{content:"";background:var(--accent,var(--cm-accent));height:3px;position:absolute;inset-block-start:0;inset-inline:0}.kpi-l{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);font-weight:var(--cm-fw-semibold);margin-bottom:var(--cm-space-1)}.kpi-v{font-size:var(--cm-fs-kpi);font-weight:var(--cm-fw-black);color:var(--cm-text-strong);line-height:var(--cm-lh-tight)}.kpi-sub{border-top:1px solid var(--cm-border-subtle);padding-top:var(--cm-space-2);margin-top:var(--cm-space-2);gap:var(--cm-space-1);flex-direction:column;display:flex}.kpi-line{font-size:var(--cm-fs-caption);justify-content:space-between;display:flex}.kpi-line .muted{color:var(--cm-text-muted)}.kpi-line .val{font-weight:var(--cm-fw-semibold);color:var(--cm-text)}.progress{background:var(--cm-border-subtle);height:4px;margin:var(--cm-space-2) 0;border-radius:2px;overflow:hidden}.progress>span{border-radius:2px;height:100%;display:block}.badge{align-items:center;gap:var(--cm-space-1);padding:2px var(--cm-space-2);font-size:var(--cm-fs-caption);font-weight:var(--cm-fw-medium);border-radius:var(--cm-radius-pill);display:inline-flex}.badge.up{background:var(--cm-success-bg);color:var(--cm-success-text)}.badge.down{background:var(--cm-danger-bg);color:var(--cm-danger-text)}.badge.neutral{background:var(--cm-info-bg);color:var(--cm-info)}.seg button{color:var(--cm-text-muted);font-size:var(--cm-fs-caption);border-radius:var(--cm-radius-pill);transition:all var(--cm-transition);background:0 0;border:0;padding:4px 12px}.seg button.on{background:var(--cm-surface);color:var(--cm-text-strong);font-weight:var(--cm-fw-semibold);box-shadow:var(--cm-shadow-sm)}.table-wrap{background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-sm);overflow-x:auto}.dt{border-collapse:collapse;width:100%;font-size:var(--cm-fs-sm)}.dt th{padding:var(--cm-space-2) var(--cm-space-3);text-align:start;font-size:var(--cm-fs-caption);font-weight:var(--cm-fw-semibold);color:var(--cm-text-muted);text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid var(--cm-border-subtle);white-space:nowrap;background:var(--cm-surface);position:sticky;top:0}.dt td{height:var(--cm-row-h);padding:0 var(--cm-space-3);color:var(--cm-text);border-bottom:1px solid var(--cm-border-subtle);text-align:start;white-space:nowrap}.dt tbody tr:last-child td{border-bottom:none}.dt tbody tr:nth-child(2n) td{background:var(--cm-surface-alt)}.dt tbody tr:hover td{background:var(--cm-surface-hover)}.dt .num{text-align:end;font-feature-settings:"tnum"}.mini-bar{background:var(--cm-border-subtle);vertical-align:middle;border-radius:3px;width:46px;height:6px;display:inline-block;overflow:hidden}.mini-bar>span{border-radius:3px;height:100%;display:block}.grid-2{gap:var(--cm-space-4);margin-bottom:var(--cm-space-4);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}@media (width<=1000px){.grid-2{grid-template-columns:1fr}}.row-between{justify-content:space-between;align-items:center;gap:var(--cm-space-3);margin-bottom:var(--cm-space-3);flex-wrap:wrap;display:flex}.data-updated{align-items:center;gap:var(--cm-space-2);font-size:var(--cm-fs-caption);font-weight:var(--cm-fw-semibold);color:var(--cm-info);background:var(--cm-info-bg);border-radius:var(--cm-radius-pill);padding:var(--cm-space-1) var(--cm-space-3);margin-bottom:var(--cm-space-3);display:inline-flex}.mbar{align-items:center;gap:var(--cm-space-2);background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-sm);padding:var(--cm-space-2) var(--cm-space-4);margin-bottom:var(--cm-space-4);flex-wrap:wrap;display:flex}.mbar-lbl{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);font-weight:var(--cm-fw-semibold)}.mbtn{border:1px solid var(--cm-border);color:var(--cm-text);font-size:var(--cm-fs-sm);border-radius:var(--cm-radius-pill);transition:all var(--cm-transition);background:0 0;padding:5px 14px}.mbtn.on{background:var(--cm-navy-900);border-color:var(--cm-navy-800);color:var(--cm-accent-soft);font-weight:var(--cm-fw-semibold)}.mbtn:hover:not(.on){background:var(--cm-surface-hover)}.placeholder{justify-content:center;align-items:center;gap:var(--cm-space-3);height:70vh;color:var(--cm-text-muted);text-align:center;flex-direction:column;display:flex}.placeholder h2{font-size:var(--cm-fs-h2);color:var(--cm-text-strong)}.chart-box{width:100%;position:relative}.dt-grouped th{text-transform:none;letter-spacing:0}.dt-grouped .band{border-inline-start:1px solid var(--cm-border)}.dt-grouped thead .grp{text-align:center;font-weight:var(--cm-fw-semibold);color:var(--cm-text-strong);background:var(--cm-surface-alt)}.dt-grouped thead .sub{text-align:end;font-weight:var(--cm-fw-medium);vertical-align:bottom}.dt-grouped tfoot td{height:var(--cm-row-h);padding:0 var(--cm-space-3);font-weight:var(--cm-fw-semibold);color:var(--cm-text-strong);background:var(--cm-surface-alt);border-top:2px solid var(--cm-border);white-space:nowrap}.dt-grouped tfoot .num{text-align:end;font-feature-settings:"tnum"}.depth-critical{color:var(--cm-danger-text);background:var(--cm-danger-bg);font-weight:var(--cm-fw-semibold)}.depth-warning{color:var(--cm-warning-text);background:var(--cm-warning-bg);font-weight:var(--cm-fw-semibold)}.depth-safe{color:var(--cm-success-text);background:var(--cm-success-bg);font-weight:var(--cm-fw-semibold)}.depth-protected{color:var(--cm-info);background:var(--cm-info-bg);font-weight:var(--cm-fw-semibold)}.table-note{margin-top:var(--cm-space-3);padding:var(--cm-space-3);font-size:var(--cm-fs-caption);color:var(--cm-text-muted);background:var(--cm-surface-alt);border-radius:var(--cm-radius-sm,6px);border-inline-start:3px solid var(--cm-warning);line-height:1.7}.ask-fab{border-radius:var(--cm-radius-pill);background:var(--cm-accent);width:52px;height:52px;color:var(--cm-on-accent);cursor:pointer;box-shadow:var(--cm-shadow-lg);z-index:50;transition:background var(--cm-transition);border:none;font-size:22px;position:fixed;inset-block-end:var(--cm-space-6);inset-inline-start:var(--cm-space-6)}.ask-fab:hover{background:var(--cm-accent-hover)}.ask-fab.is-busy:after{content:"";border-radius:var(--cm-radius-pill);background:var(--cm-warning);width:10px;height:10px;animation:1.2s ease-in-out infinite ask-pulse;position:absolute;inset-block-start:4px;inset-inline-end:4px}@keyframes ask-pulse{50%{opacity:.3}}.ask-panel{width:min(420px, calc(100vw - 2 * var(--cm-space-6)));background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius-lg);max-height:70vh;box-shadow:var(--cm-shadow-lg);padding:var(--cm-space-4);z-index:50;position:fixed;inset-block-end:calc(var(--cm-space-6) + 52px + var(--cm-space-3));inset-inline-start:var(--cm-space-6);overflow-y:auto}.ask-panel-head{font-size:var(--cm-fs-title);font-weight:var(--cm-fw-semibold);color:var(--cm-text-strong);margin-bottom:var(--cm-space-3);justify-content:space-between;align-items:center;display:flex}.ask-close{color:var(--cm-text-muted);cursor:pointer;font-size:var(--cm-fs-body);background:0 0;border:none}.ask-close:hover{color:var(--cm-text)}.ask-row{gap:var(--cm-space-2);display:flex}.ask-input{min-width:0;height:38px;padding-inline:var(--cm-space-3);font:var(--cm-fw-regular) var(--cm-fs-body) var(--cm-font-family);color:var(--cm-text);background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius-sm);text-align:start;flex:1}.ask-input:focus{border-color:var(--cm-accent);box-shadow:0 0 0 3px var(--cm-accent-ring);outline:none}.ask-input:disabled{background:var(--cm-surface-alt);color:var(--cm-text-muted)}.ask-send{padding-inline:var(--cm-space-4);font:var(--cm-fw-semibold) var(--cm-fs-sm) var(--cm-font-family);color:var(--cm-on-accent);background:var(--cm-accent);border-radius:var(--cm-radius-sm);cursor:pointer;transition:background var(--cm-transition);border:none}.ask-send:hover:not(:disabled){background:var(--cm-accent-hover)}.ask-send:disabled{background:var(--cm-border);color:var(--cm-text-muted);cursor:default}.ask-scope{margin-top:var(--cm-space-2);padding:3px var(--cm-space-3);font-size:var(--cm-fs-caption);color:var(--cm-info);background:var(--cm-info-bg);border-radius:var(--cm-radius-pill);cursor:pointer;border:1px solid #0000;font-family:inherit}.ask-scope.is-off{color:var(--cm-text-muted);border-color:var(--cm-border);background:0 0}.ask-samples{gap:var(--cm-space-2);margin-top:var(--cm-space-3);flex-wrap:wrap;display:flex}.ask-chip{padding:var(--cm-space-1) var(--cm-space-3);font-size:var(--cm-fs-caption);color:var(--cm-text-muted);background:var(--cm-surface-alt);border:1px solid var(--cm-border);border-radius:var(--cm-radius-pill);cursor:pointer;transition:all var(--cm-transition);font-family:inherit}.ask-chip:hover{color:var(--cm-accent);border-color:var(--cm-accent)}.ask-wait{align-items:center;gap:var(--cm-space-2);margin-top:var(--cm-space-3);font-size:var(--cm-fs-sm);color:var(--cm-text-muted);display:flex}.ask-wait-dot{color:var(--cm-accent);animation:1.2s ease-in-out infinite ask-pulse}.ask-elapsed{font-size:var(--cm-fs-caption);margin-inline-start:auto}.ask-error{margin-top:var(--cm-space-3);padding:var(--cm-space-2) var(--cm-space-3);font-size:var(--cm-fs-sm);color:var(--cm-danger-text);background:var(--cm-danger-bg);border-radius:var(--cm-radius-sm)}.ask-answer{margin-top:var(--cm-space-3)}.ask-headline{text-align:center;padding-block:var(--cm-space-3)}.ask-headline-value{font-size:var(--cm-fs-kpi);font-weight:var(--cm-fw-black);color:var(--cm-text-strong);line-height:var(--cm-lh-tight)}.ask-headline-label{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);margin-top:var(--cm-space-1)}.ask-rows{margin-top:var(--cm-space-3)}.ask-prose{font-size:var(--cm-fs-sm);color:var(--cm-text);white-space:pre-wrap;margin:var(--cm-space-2) 0 0}.ask-details{margin-top:var(--cm-space-3)}.ask-details summary{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);cursor:pointer}.ask-details summary:hover{color:var(--cm-accent)}.ask-sql{margin-top:var(--cm-space-2);padding:var(--cm-space-3);font-size:var(--cm-fs-caption);color:var(--cm-text);background:var(--cm-surface-alt);border:1px solid var(--cm-border-subtle);border-radius:var(--cm-radius-sm);text-align:start;white-space:pre-wrap;direction:ltr;overflow-x:auto}.fs{margin:var(--cm-space-1) var(--cm-space-3);position:relative}.fs-trigger{align-items:center;gap:var(--cm-space-2);inline-size:100%;padding:6px var(--cm-space-3);border:1px solid var(--cm-navy-600);border-radius:var(--cm-radius);background:var(--cm-navy-400);color:var(--cm-on-navy);font:inherit;font-size:var(--cm-fs-sm);text-align:start;cursor:pointer;transition:all var(--cm-transition);display:flex}.fs-trigger:hover{border-color:var(--cm-navy-500);color:var(--cm-on-navy-hover)}.fs-trigger.narrowed{background:var(--cm-accent-bg);border-color:var(--cm-accent-bg);color:var(--cm-on-accent)}.fs-trigger.narrowed .fs-label{color:var(--cm-on-accent);opacity:.85}.fs-label{color:var(--cm-on-navy-label);font-size:var(--cm-fs-caption);flex-shrink:0}.fs-value{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;font-weight:var(--cm-fw-semibold);flex:1;overflow:hidden}.fs-arrow{opacity:.8;font-size:10px;transition:transform .2s}.fs.open .fs-arrow{transform:rotate(180deg)}.fs-menu{z-index:30;max-block-size:280px;padding:var(--cm-space-1);background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-md,0 8px 24px #0000002e);position:absolute;inset-block-start:calc(100% + 4px);inset-inline:0;overflow-y:auto}.fs-opt{align-items:center;gap:var(--cm-space-2);inline-size:100%;padding:6px var(--cm-space-3);border-radius:calc(var(--cm-radius) - 4px);color:var(--cm-text);font:inherit;font-size:var(--cm-fs-sm);text-align:start;cursor:pointer;background:0 0;border:0;display:flex}.fs-opt:hover{background:var(--cm-surface-hover)}.fs-opt.on{color:var(--cm-accent);font-weight:var(--cm-fw-semibold)}.fs-all{border-block-end:1px solid var(--cm-border-subtle);border-radius:0;margin-block-end:var(--cm-space-1)}.fs-check{inline-size:14px;color:var(--cm-accent);flex-shrink:0;font-size:12px}.portal{background:var(--cm-bg);flex-direction:column;height:100%;display:flex;overflow:hidden}.portal-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}.portal-body .app{height:100%}.portal-workspace{flex-direction:column;flex:1;min-height:0;display:flex}.portal-workspace .content{flex:1}.login-page{background:var(--cm-bg);place-items:center;height:100%;display:grid}.login-card{background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);width:min(360px,90vw);box-shadow:var(--cm-shadow-sm);padding:var(--cm-space-8);gap:var(--cm-space-4);flex-direction:column;display:flex}.login-brand{inline-size:min(260px,80%);margin-block-end:var(--cm-space-2);margin-inline:auto}.login-logo{font-size:var(--cm-fs-h2);font-weight:var(--cm-fw-bold);color:var(--cm-text-strong);text-align:center}.login-sub{font-size:var(--cm-fs-sm);color:var(--cm-text-muted);text-align:center;margin-block-end:var(--cm-space-2)}.login-input{font:inherit;padding:var(--cm-space-3);border:1px solid var(--cm-border);border-radius:var(--cm-radius);background:var(--cm-surface);color:var(--cm-text)}.login-input:focus{border-color:var(--cm-accent);box-shadow:0 0 0 3px var(--cm-accent-ring);outline:none}.login-btn{font:inherit;font-weight:var(--cm-fw-semibold);padding:var(--cm-space-3);border-radius:var(--cm-radius);background:var(--cm-accent);color:var(--cm-on-accent);cursor:pointer;border:none}.login-btn:hover:not(:disabled){background:var(--cm-accent-hover)}.login-btn:disabled{background:var(--cm-border);color:var(--cm-text-muted);cursor:not-allowed}.portal-header{align-items:center;gap:var(--cm-space-4);padding-inline:var(--cm-space-5);background:var(--cm-surface);border-block-end:1px solid var(--cm-border);flex:none;block-size:52px;display:flex}.portal-header .brand-logo{cursor:pointer;block-size:24px;inline-size:auto}.portal-crumbs{align-items:center;gap:var(--cm-space-2);font-size:var(--cm-fs-sm);color:var(--cm-text-muted);display:flex}.portal-crumbs button{font:inherit;color:var(--cm-text-strong);cursor:pointer;padding:2px var(--cm-space-1);background:0 0;border:none}.portal-crumbs button:hover{color:var(--cm-accent)}.portal-crumbs .here{color:var(--cm-text-muted)}.portal-header .spacer{flex:1}.portal-user{font-size:var(--cm-fs-sm);color:var(--cm-text-muted)}.portal-logout{font:inherit;font-size:var(--cm-fs-sm);border:1px solid var(--cm-border);border-radius:var(--cm-radius-pill);color:var(--cm-text);padding:var(--cm-space-1) var(--cm-space-4);cursor:pointer;background:0 0}.portal-logout:hover{border-color:var(--cm-accent);color:var(--cm-accent)}.hub{width:100%;max-width:960px;padding:var(--cm-space-10) var(--cm-space-6);margin-inline:auto}.hub-greeting{font-size:var(--cm-fs-h1);font-weight:var(--cm-fw-bold);color:var(--cm-text-strong)}.hub-sub{color:var(--cm-text-muted);margin-block:var(--cm-space-2) var(--cm-space-8)}.hub-grid{gap:var(--cm-space-4);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));display:grid}.hub-card{text-align:start;font:inherit;background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-sm);padding:var(--cm-space-6) var(--cm-space-5);cursor:pointer;gap:var(--cm-space-2);flex-direction:column;transition:border-color .15s,transform .15s;display:flex}.hub-card:hover{border-color:var(--cm-accent);transform:translateY(-2px)}.hub-card .icon{color:var(--cm-accent);line-height:0}.hub-card .title{font-size:var(--cm-fs-title);font-weight:var(--cm-fw-semibold);color:var(--cm-text-strong)}.hub-card .desc{font-size:var(--cm-fs-sm);color:var(--cm-text-muted)}.hub-card.tickets{border-inline-start:3px solid var(--cm-warning)}.model-page{width:100%;max-width:960px;padding:var(--cm-space-10) var(--cm-space-6);margin-inline:auto}.model-title{align-items:center;gap:var(--cm-space-2);font-size:var(--cm-fs-h2);font-weight:var(--cm-fw-bold);color:var(--cm-text-strong);margin-block-end:var(--cm-space-5);display:inline-flex}.model-title svg{color:var(--cm-navy-600)}.model-section{font-size:var(--cm-fs-sm);font-weight:var(--cm-fw-semibold);color:var(--cm-text-muted);letter-spacing:.02em;margin-block:var(--cm-space-6) var(--cm-space-3)}.hub-card.soon{opacity:.55;cursor:default}.hub-card.soon:hover{border-color:var(--cm-border);transform:none}.soon-pill{font-size:var(--cm-fs-caption);background:var(--cm-info-bg);color:var(--cm-info);border-radius:var(--cm-radius-pill);padding:2px var(--cm-space-3);align-self:start}.ticket-form{background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-sm);padding:var(--cm-space-5);gap:var(--cm-space-3);grid-template-columns:2fr 1fr;margin-block-end:var(--cm-space-5);display:grid}.ticket-form textarea{resize:vertical;grid-column:1/-1;min-height:70px}.ticket-form .login-btn{padding-inline:var(--cm-space-8);grid-column:1/-1;justify-self:start}.ticket-form select.login-input{cursor:pointer}.ticket-note{font-size:var(--cm-fs-caption);color:var(--cm-success-text);grid-column:1/-1}.ticket-table{border-collapse:collapse;background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);width:100%;font-size:var(--cm-fs-sm);overflow:hidden}.ticket-table th,.ticket-table td{text-align:start;padding:var(--cm-space-3) var(--cm-space-4);border-block-end:1px solid var(--cm-border-subtle)}.ticket-table th{color:var(--cm-text-muted);font-weight:var(--cm-fw-semibold);background:var(--cm-surface-alt)}.status-pill{border-radius:var(--cm-radius-pill);padding:2px var(--cm-space-3);font-size:var(--cm-fs-caption);font-weight:var(--cm-fw-medium)}.status-pill.open{background:var(--cm-info-bg);color:var(--cm-info)}.status-pill.inProgress{background:var(--cm-warning-bg);color:var(--cm-warning-text)}.status-pill.closed{background:var(--cm-success-bg);color:var(--cm-success-text)}.tool-card{background:var(--cm-surface);border:1px solid var(--cm-border);border-radius:var(--cm-radius);box-shadow:var(--cm-shadow-sm);padding:var(--cm-space-6);gap:var(--cm-space-4);flex-direction:column;max-width:560px;display:flex}.tool-drop{border:2px dashed var(--cm-border);border-radius:var(--cm-radius);padding:var(--cm-space-8);text-align:center;color:var(--cm-text-muted);cursor:pointer}.tool-drop.has-file{border-color:var(--cm-accent);color:var(--cm-text)}.tool-error{background:var(--cm-danger-bg);color:var(--cm-danger-text);border-radius:var(--cm-radius);padding:var(--cm-space-3) var(--cm-space-4);font-size:var(--cm-fs-sm);white-space:pre-wrap;text-align:start;direction:ltr}.tool-busy{color:var(--cm-text-muted);font-size:var(--cm-fs-sm)}.tool-note{color:var(--cm-text-muted);font-size:var(--cm-fs-sm);line-height:var(--cm-lh-normal)}.load-history{flex-direction:column;display:flex}.load-row{gap:var(--cm-space-1);padding-block:var(--cm-space-3);border-block-end:1px solid var(--cm-border-subtle);font-size:var(--cm-fs-sm);line-height:var(--cm-lh-normal);flex-direction:column;display:flex}.load-row:last-child{border-block-end:none}.load-row b{font-weight:var(--cm-fw-semibold)}.load-row .meta{color:var(--cm-text-muted);font-size:var(--cm-fs-caption);text-align:end;direction:ltr}.data-updated.data-pending{color:var(--cm-warning-text);background:var(--cm-warning-bg);border-radius:var(--cm-radius-pill);padding:var(--cm-space-1) var(--cm-space-3);margin-inline-start:var(--cm-space-2)}.deck-list{flex-direction:column;display:flex}.deck-row{align-items:center;gap:var(--cm-space-3);padding-block:var(--cm-space-2);border-block-end:1px solid var(--cm-border-subtle);color:var(--cm-text);font-size:var(--cm-fs-sm);text-decoration:none;display:flex}.deck-row:hover{color:var(--cm-accent)}.deck-row .meta{color:var(--cm-text-muted);font-size:var(--cm-fs-caption);margin-inline-start:auto}.tool-card .card-title{font-weight:var(--cm-fw-semibold);color:var(--cm-text-strong)}button.deck-row{font:inherit;cursor:pointer;text-align:start;width:100%;color:inherit;background:0 0;border:0}.portal-updated{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);white-space:nowrap}.table-wrap{border:1px solid var(--cm-border);border-radius:var(--cm-radius);max-block-size:70vh;overflow:auto}.data-table{border-collapse:collapse;inline-size:100%;font-size:var(--cm-fs-sm)}.data-table th,.data-table td{border-block-end:1px solid var(--cm-border-subtle);text-align:start;white-space:nowrap;padding:6px 10px}.data-table thead th{background:var(--cm-surface-alt);color:var(--cm-text-muted);font-weight:var(--cm-fw-semibold);font-size:var(--cm-fs-caption);z-index:2;position:sticky;inset-block-start:0}.data-table th.num,.data-table td.num{text-align:end;font-variant-numeric:tabular-nums;direction:ltr}.data-table th.sorted{color:var(--cm-accent)}.data-table th.clickable{cursor:pointer}.data-table tbody tr:hover td{background:var(--cm-surface-hover)}.data-table tfoot td{background:var(--cm-surface-alt);border-block-start:2px solid var(--cm-border);font-weight:700}.data-table td.empty{text-align:center;color:var(--cm-text-muted);padding-block:var(--cm-space-6)}.data-table td.hl{color:var(--cm-danger-text);font-weight:700}.data-table .good{color:var(--cm-success-text,var(--cm-success))}.data-table .bad{color:var(--cm-danger-text)}.data-table .info{color:var(--cm-accent)}.pill{border-radius:var(--cm-radius-pill);font-size:var(--cm-fs-caption);font-weight:var(--cm-fw-semibold);padding:1px 8px;display:inline-block}.pill.good{background:var(--cm-success-bg);color:var(--cm-success-text,var(--cm-success))}.pill.warn{background:var(--cm-warning-bg);color:var(--cm-warning-text)}.pill.bad{background:var(--cm-danger-bg);color:var(--cm-danger-text)}.seg{background:var(--cm-surface-alt);border-radius:var(--cm-radius-pill);gap:2px;padding:2px;display:inline-flex}.seg button{color:var(--cm-text-muted);font:inherit;font-size:var(--cm-fs-caption);border-radius:var(--cm-radius-pill);cursor:pointer;background:0 0;border:0;padding:3px 10px}.seg button.on{background:var(--cm-accent);color:var(--cm-on-accent)}.seg-label{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);margin-inline-end:var(--cm-space-2)}.toolbar{align-items:center;gap:var(--cm-space-3);flex-wrap:wrap;margin-block-end:var(--cm-space-3);display:flex}.btn-soft{font:inherit;font-size:var(--cm-fs-sm);border:1px solid var(--cm-border);border-radius:var(--cm-radius);background:var(--cm-surface);color:var(--cm-text);cursor:pointer;padding:5px 12px}.btn-soft:hover{border-color:var(--cm-accent);color:var(--cm-accent)}.dyn{gap:var(--cm-space-4);align-items:flex-start;display:flex}.dyn-rail{gap:var(--cm-space-3);flex-direction:column;flex-shrink:0;inline-size:210px;display:flex}.dyn-rail .card{padding:var(--cm-space-3) var(--cm-space-4)}.dyn-check{align-items:center;gap:var(--cm-space-2);font-size:var(--cm-fs-sm);cursor:pointer;padding-block:3px;display:flex}.dyn-check input{accent-color:var(--cm-accent)}.dyn-select{inline-size:100%;font:inherit;font-size:var(--cm-fs-sm);border:1px solid var(--cm-border);border-radius:var(--cm-radius);background:var(--cm-surface);padding:5px 8px}.dyn-main{flex:1;min-inline-size:0}.dyn-sub{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);margin-block-end:var(--cm-space-3)}.sim-controls{gap:var(--cm-space-4);background:var(--cm-surface-alt);border-radius:var(--cm-radius);padding:var(--cm-space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-block-end:var(--cm-space-4);display:grid}.sim-slider{font-size:var(--cm-fs-sm);flex-direction:column;gap:4px;display:flex}.sim-slider input{accent-color:var(--cm-accent)}.sim-slider input.accent-good{accent-color:var(--cm-success)}.sim-slider small{color:var(--cm-text-muted)}.sim-table th.is-actual,.sim-table td.is-actual{background:var(--cm-surface-alt)}.sim-table th.is-forecast,.sim-table td.is-forecast{background:var(--cm-warning-bg)}.sim-table .sticky{background:var(--cm-surface);z-index:1;position:sticky;inset-inline-start:0}.sim-table thead .sticky{z-index:3;background:var(--cm-surface-alt)}.sim-family td{background:var(--cm-surface-alt);font-weight:var(--cm-fw-semibold);cursor:pointer}.sim-arrow{color:var(--cm-text-muted);font-size:10px}.sim-notes{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);flex-direction:column;gap:4px;margin-block-start:var(--cm-space-3);display:flex}.sim-notes .dot{vertical-align:middle;border-radius:50%;block-size:10px;inline-size:10px;margin-inline-end:6px;display:inline-block}.sim-notes .dot.actual{background:var(--cm-surface-alt);border:1px solid var(--cm-border)}.sim-notes .dot.forecast{background:var(--cm-warning-bg);border:1px solid var(--cm-warning)}.pace-table tr.pace-brand td{background:var(--cm-surface-alt);font-weight:var(--cm-fw-semibold);cursor:pointer}.pace-table tr.pace-total td{background:var(--cm-surface-alt);border-block-start:2px solid var(--cm-border);font-weight:700}.pace-table tr.pace-grand td{border-block-start:3px solid var(--cm-text-strong);font-weight:800}.pace-table td.model-name{padding-inline-start:28px}.pace-table input.target{inline-size:72px;font:inherit;font-size:var(--cm-fs-sm);text-align:end;border:1px solid var(--cm-warning);background:var(--cm-warning-bg);border-radius:4px;padding:2px 6px}.pace-sim{gap:var(--cm-space-4);grid-template-columns:1fr 1fr;align-items:start;display:grid}.pace-sim .field{font-size:var(--cm-fs-sm);flex-direction:column;gap:4px;display:flex}.pace-sim select{font:inherit;font-size:var(--cm-fs-sm);border:1px solid var(--cm-border);border-radius:var(--cm-radius);background:var(--cm-surface);padding:5px 8px}.pace-sim .rate{align-items:center;gap:var(--cm-space-3);display:flex}.pace-sim .rate input[type=range]{accent-color:var(--cm-accent);flex:1}.pace-sim .rate output{text-align:center;min-inline-size:48px;font-weight:var(--cm-fw-semibold);color:var(--cm-accent)}.pace-kpis{gap:var(--cm-space-3);grid-template-columns:repeat(3,1fr);margin-block-start:var(--cm-space-3);display:grid}.pace-kpi{border:1px solid var(--cm-border);border-radius:var(--cm-radius);padding:var(--cm-space-2) var(--cm-space-3)}.pace-kpi .label{font-size:var(--cm-fs-caption);color:var(--cm-text-muted)}.pace-kpi .value{color:var(--cm-text-strong);font-size:20px;font-weight:800}@media (width<=1100px){.pace-sim{grid-template-columns:1fr}.dyn{flex-direction:column}.dyn-rail{inline-size:100%}}.anom-cards{gap:var(--cm-space-3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr));margin-block-end:var(--cm-space-4);display:grid}.anom-card{text-align:start;border:1px solid var(--cm-border);border-block-start:3px solid var(--tone,var(--cm-accent));border-radius:var(--cm-radius);background:var(--cm-surface);padding:var(--cm-space-3) var(--cm-space-4);cursor:pointer;font:inherit}.anom-card.on{outline:2px solid var(--cm-accent);outline-offset:1px}.anom-card .label{font-size:var(--cm-fs-caption);color:var(--cm-text-muted)}.anom-card .value{color:var(--tone,var(--cm-text-strong));font-size:26px;font-weight:800;line-height:1.2}.anom-card .sub{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);justify-content:space-between;display:flex}.anom-card .sub.indent{padding-inline-start:10px}.anom-card .sub b{color:var(--cm-text);font-weight:var(--cm-fw-semibold)}.anom-card .sub b.bad{color:var(--cm-danger-text)}.anom-crumbs{font-size:var(--cm-fs-caption);color:var(--cm-text-muted)}.anom-hint{font-size:var(--cm-fs-caption);color:var(--cm-text-muted);margin-block-start:var(--cm-space-2)}
