:root{--space-0: 0;--space-0-5: 2px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--control-gap: var(--space-2);--section-gap: var(--space-6);--page-gutter: var(--space-6);--page-gutter-compact: var(--space-4);--type-xs: 11px;--type-xs-lh: 16px;--type-sm: 12px;--type-sm-lh: 18px;--type-body: 13px;--type-body-lh: 20px;--type-ui: 14px;--type-ui-lh: 20px;--type-title: 16px;--type-title-lh: 24px;--type-h2: 20px;--type-h2-lh: 28px;--type-h1: 24px;--type-h1-lh: 32px;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--font: "Montserrat", -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--mono: var(--font-mono);--radius-none: 0;--radius-sm: 7px;--radius-control: 7px;--radius-md: 10px;--radius-lg: 12px;--radius-pill: 999px;--radius: var(--radius-md);--shadow-surface: 0 1px 2px rgba(16, 27, 44, .08), 0 2px 8px rgba(16, 27, 44, .06);--shadow-overlay: 0 12px 32px rgba(10, 18, 30, .28), 0 2px 8px rgba(10, 18, 30, .2);--shadow-1: var(--shadow-surface);--shadow-2: var(--shadow-overlay);--shadow-win: var(--shadow-overlay);--brand-accent: #1f8f7e;--brand-accent-soft: #e6f5f1;--brand-accent-strong: #36d3be;--action-primary: #176f63;--action-primary-hover: #145f55;--surface-canvas: #1b2a3d;--surface-canvas-2: #22364c;--surface-panel: #ffffff;--surface-muted: #f3f6fa;--surface-overlay: #ffffff;--surface-sidebar: #233649;--surface-sidebar-2: #1b2a3d;--grid-row-odd-bg: #eef2f8;--grid-row-selected-bg: #d3efe8;--grid-row-hover-bg: color-mix(in srgb, var(--brand-accent) 10%, var(--surface-panel));--grid-group-head-hover: #2d435c;--grid-collapsed-muted: #c4cfdb;--text-primary: #1d2a3a;--text-secondary: #5d6e80;--text-inverse: #f4f9ff;--text-inverse-muted: #b9cadb;--text-disabled: #8a9aab;--border-default: #d7e0ea;--border-strong: #b9c7d6;--border-light: #eef0f4;--border-focus: var(--brand-accent);--status-success-fg: #2f7d5b;--status-success-bg: #e3f4ea;--status-danger-fg: #b3535f;--status-danger-bg: #f8e6e8;--status-warning-fg: #8a5a00;--status-warning-bg: #fbf0d9;--status-info-fg: #1e40af;--status-info-bg: #e8eefc;--selection-bg: var(--brand-accent-soft);--row-hover-bg: #eef3f8;--focus-ring: var(--brand-accent-strong);--focus-ring-width: 2px;--focus-ring-offset: 2px;--disabled-opacity: .55;--chrome-hover: rgba(255, 255, 255, .06);--chrome-hover-strong: rgba(255, 255, 255, .1);--chrome-border: rgba(255, 255, 255, .12);--bg: var(--surface-canvas);--bg-elevated: var(--surface-panel);--bg-alt: #f3f4f6;--bg-invert: #111111;--panel: var(--surface-panel);--panel-muted: var(--surface-muted);--sidebar-bg: var(--surface-sidebar);--sidebar-bg-2: var(--surface-sidebar-2);--border: var(--border-default);--text: var(--text-primary);--text-muted: var(--text-secondary);--text-invert: var(--text-inverse);--text-invert-muted: var(--text-inverse-muted);--muted: #6b7280;--accent: var(--brand-accent);--accent-soft: var(--brand-accent-soft);--accent-strong: var(--brand-accent-strong);--accent-warn: #b8860b;--positive-text: #1f6f56;--positive-bg: #ddf3ec;--negative-text: #9a2a3a;--negative-bg: #f6e1e4;--header-h: 56px;--sidebar-w: 264px;--level: 0}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}:where(a,button,input,select,textarea,summary,[role=button],[role=tab],[role=menuitem],[role=option],[tabindex]:not([tabindex="-1"])):focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring);outline-offset:var(--focus-ring-offset)}:where(button,input,select,textarea,.btn,.select-trigger,.date-picker-trigger):disabled,:where(.btn,.select-trigger,.date-picker-trigger).disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.num,.grid td,.grid th,.data-table td,.data-table th,.sf-table td,.excl-table td,[data-tabular=true]{font-variant-numeric:tabular-nums}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.ui-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font);font-weight:var(--weight-semibold);line-height:1;border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--panel);color:var(--text);cursor:pointer;transition:background .15s,border-color .15s,opacity .15s,color .15s;white-space:nowrap}.ui-btn-md{height:32px;padding:0 14px;font-size:var(--type-body)}.ui-btn-sm{height:28px;padding:0 10px;font-size:var(--type-sm)}.ui-btn-primary{background:var(--action-primary);border-color:var(--action-primary);color:#fff}.ui-btn-primary:hover:not(:disabled){background:var(--action-primary-hover);border-color:var(--action-primary-hover)}.ui-btn-secondary{background:var(--panel);border-color:var(--border-strong);color:var(--text)}.ui-btn-secondary:hover:not(:disabled){background:var(--panel-muted)}.ui-btn-danger{background:var(--status-danger-fg);border-color:var(--status-danger-fg);color:#fff}.ui-btn-danger:hover:not(:disabled){filter:brightness(.93)}.ui-btn-ghost{background:transparent;border-color:transparent;color:var(--text)}.ui-btn-ghost:hover:not(:disabled){background:var(--panel-muted)}.ui-btn:disabled,.ui-btn.is-loading{opacity:var(--disabled-opacity);cursor:not-allowed}.ui-btn.is-loading .ui-btn-label{opacity:.92}.ui-icon-btn.ui-btn-md{width:32px;padding:0}.ui-icon-btn.ui-btn-sm{width:28px;padding:0}.ui-icon-btn-glyph{display:inline-flex;align-items:center;justify-content:center;width:1em;height:1em;font-size:16px;line-height:1}.ui-field-control-main{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;flex:1 1 auto}.ui-field-hint{font-size:var(--type-sm);line-height:var(--type-sm-lh);color:var(--text-secondary)}.ui-field-error{font-size:var(--type-sm);line-height:var(--type-sm-lh);color:var(--status-danger-fg)}.ui-field-stack{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-1);padding:0}.ui-field-stack .ui-field-label,.ui-field-stack .form-field-label{display:inline-flex;align-items:center;gap:var(--space-0-5);font-size:var(--type-sm);font-weight:var(--weight-semibold);color:var(--text-muted)}.ui-field-stack .ui-field-control,.ui-field-stack .form-field-control{display:block;width:100%}.ui-field-stack .ui-field-control-main{width:100%}.ui-field-stack .ui-input,.ui-field-stack .input,.ui-field-stack .select-trigger,.ui-field-stack .date-picker-trigger{width:100%;max-width:none}.recompute .ui-field-stack .ui-field-label{font-size:var(--type-sm);font-weight:var(--weight-bold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.ui-field.has-error .ui-input,.ui-input.is-invalid{border-color:var(--status-danger-fg)}.ui-input.input{box-sizing:border-box;height:32px;padding:0 10px;font-size:var(--type-body);line-height:1}.ui-switch{display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;padding:0;cursor:pointer;font-family:var(--font);color:var(--text)}.ui-switch:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.ui-switch-track{box-sizing:border-box;width:40px;height:22px;border-radius:var(--radius-pill);background:var(--border-strong);position:relative;transition:background .15s;flex:0 0 auto}.ui-switch.is-on .ui-switch-track{background:var(--action-primary)}.ui-switch-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:var(--shadow-1);transition:transform .15s}.ui-switch.is-on .ui-switch-thumb{transform:translate(18px)}.ui-switch-text{font-size:var(--type-body)}.ui-checkbox-label.is-disabled{opacity:var(--disabled-opacity);cursor:not-allowed}.input,.select{font-family:var(--font);font-size:13px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:#fff;color:var(--text);outline:none}.input:focus,.select:focus{border-color:var(--accent)}.select-trigger{appearance:none;-webkit-appearance:none;-moz-appearance:none;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;width:auto;max-width:100%;font-family:var(--font);font-size:13px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s,background-color .15s}.select-trigger:hover:not(.disabled):not(:disabled),.select-trigger.open{border-color:var(--accent)}.select-trigger:disabled,.select-trigger.disabled{opacity:.55;cursor:not-allowed}.select-trigger:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}.select-trigger-value{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.select-trigger-arrow{flex:0 0 auto;width:14px;height:14px;display:inline-flex;color:var(--text-muted);transition:transform .15s,color .15s}.select-trigger-arrow svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.select-trigger.open .select-trigger-arrow{transform:rotate(180deg);color:var(--accent)}.select-trigger.loading{opacity:1;cursor:wait}.select-trigger.loading .select-trigger-value{color:var(--text-muted)}.select-trigger.loading .select-trigger-arrow{animation:select-loading-pulse 1.1s ease-in-out infinite}@keyframes select-loading-pulse{0%,to{opacity:.35}50%{opacity:1}}.ui-popup{position:fixed;box-sizing:border-box}.select-popup{z-index:10050;max-height:280px;overflow-y:auto;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);padding:4px;display:flex;flex-direction:column;gap:1px}.select-option{display:flex;align-items:center;gap:8px;width:100%;text-align:left;font-family:var(--font);font-size:13px;color:var(--text);background:transparent;border:none;border-radius:4px;padding:7px 8px;cursor:pointer;box-sizing:border-box}.select-option.hover,.select-option:hover{background:var(--accent-soft)}.select-option.selected{color:var(--accent);font-weight:600}.select-option-check{flex:0 0 14px;width:14px;text-align:center;color:var(--accent);font-weight:700}.select-option-label{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.date-picker-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:8px;min-width:148px;font-family:var(--font);font-size:13px;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);color:var(--text);cursor:pointer;transition:border-color .15s,background-color .15s}.date-picker-trigger:hover:not(.disabled):not(:disabled),.date-picker-trigger.open{border-color:var(--accent)}.date-picker-trigger:disabled,.date-picker-trigger.disabled{opacity:.55;cursor:not-allowed}.date-picker-trigger:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}.date-picker-icon{color:var(--accent);display:inline-flex}.date-picker-value{flex:1 1 auto;font-variant-numeric:tabular-nums}.date-picker-arrow{flex:0 0 auto;width:14px;height:14px;color:var(--text-muted);transition:transform .15s,color .15s}.date-picker-arrow svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.date-picker-trigger.open .date-picker-arrow{transform:rotate(180deg);color:var(--accent)}.date-picker-popup{z-index:10050;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow-win);padding:12px}.date-picker-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.date-picker-head-center{display:inline-flex;align-items:center;justify-content:center;gap:2px;flex:1;min-width:0}.date-picker-month{font-size:14px;font-weight:600;color:var(--text)}.date-picker-nav{width:30px;height:30px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-muted);color:var(--text);font-size:18px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.date-picker-nav:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.date-picker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:4px}.date-picker-weekday{text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);padding:4px 0}.date-picker-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.date-picker-cell.empty{aspect-ratio:1}.date-picker-cell.day{aspect-ratio:1;border:none;border-radius:var(--radius-sm);background:transparent;font-family:var(--font);font-size:13px;color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums;transition:background-color .12s,color .12s}.date-picker-cell.day:hover{background:var(--accent-soft)}.date-picker-cell.day.today:not(.selected){box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--accent);font-weight:600}.date-picker-cell.day.selected{background:var(--accent);color:var(--text-invert);font-weight:600}.date-picker-cell.day.hl-sale:not(.selected){background:var(--status-success-fg);color:#fff;box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--status-success-fg) 75%,#000);font-weight:700}.date-picker-cell.day.hl-market:not(.selected){background:var(--accent);color:#fff;box-shadow:inset 0 0 0 2px #1a7a6b;font-weight:700}.date-picker-cell.day.hl-sale.hl-market:not(.selected){background:linear-gradient(135deg,var(--status-success-fg) 50%,var(--accent) 50%);color:#fff;box-shadow:inset 0 0 0 2px #1a7a6b}.date-picker-cell.day.hl-sale:not(.selected):hover,.date-picker-cell.day.hl-market:not(.selected):hover{filter:brightness(1.06)}.date-picker-cell.day.range-baseline:not(.selected):not(.hl-sale):not(.hl-market){background:#e7edf5;color:#40556d;box-shadow:inset 0 0 0 1px #cad5e2}.date-picker-cell.day.range-report:not(.selected):not(.hl-sale):not(.hl-market){background:var(--accent-soft);color:#176f62;box-shadow:inset 0 0 0 1px #1f8f7e47;font-weight:600}.date-picker-legend{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.date-picker-legend-btn{display:flex;align-items:center;gap:8px;width:100%;min-height:44px;padding:6px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--panel);font-family:var(--font);color:var(--text);cursor:pointer;text-align:left;transition:border-color .15s,background-color .15s,box-shadow .15s}.date-picker-legend-btn:hover{background:var(--panel-muted);border-color:var(--accent)}.date-picker-legend-btn.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--accent-soft)}.date-picker-legend-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;line-height:1.2}.date-picker-legend-label{font-size:11.5px;font-weight:600}.date-picker-legend-date{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.date-picker-legend-btn.active .date-picker-legend-date{color:var(--text)}.date-picker-legend-dot{width:12px;height:12px;border-radius:3px;flex-shrink:0;align-self:center}.date-picker-legend-dot.hl-sale{background:var(--status-success-fg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--status-success-fg) 75%,#000)}.date-picker-legend-dot.hl-market{background:var(--accent);box-shadow:inset 0 0 0 1px #1a7a6b}.date-picker-range-legend{display:flex;flex-direction:column;gap:5px;margin-top:10px;padding-top:9px;border-top:1px solid var(--border)}.date-picker-range-legend-item{display:grid;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:7px;color:var(--text);font-size:11px}.date-picker-range-dot{width:12px;height:12px;border-radius:3px}.date-picker-range-dot.report{background:var(--accent-soft);box-shadow:inset 0 0 0 1px #1f8f7e73}.date-picker-range-dot.baseline{background:#e7edf5;box-shadow:inset 0 0 0 1px #b9c7d6}.date-picker-range-dates{color:var(--text-muted);font-variant-numeric:tabular-nums}input[type=radio]{appearance:none;-webkit-appearance:none;-moz-appearance:none;margin:0;width:16px;height:16px;flex:0 0 auto;border:1.5px solid var(--border-strong);border-radius:50%;background:var(--panel);cursor:pointer;display:inline-grid;place-content:center;transition:border-color .15s,background .15s}input[type=radio]:before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;transform:scale(0);transition:transform .15s}input[type=radio]:checked{border-color:var(--accent);background:var(--accent)}input[type=radio]:checked:before{transform:scale(1)}input[type=radio]:focus-visible{outline:2px solid var(--accent-strong);outline-offset:1px}input[type=radio]:disabled{opacity:.5;cursor:not-allowed}.login-screen{min-height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#1b2a3d,#314761);padding:24px}.login-card{width:360px;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow-win);padding:32px 28px}.login-logo{display:block;height:46px;margin:0 auto 18px}.login-title{text-align:center;font-size:16px;font-weight:700;margin:0 0 22px;color:var(--text)}.login-field{margin-bottom:14px}.login-field.ui-field-stack .ui-field-label{font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:0}.login-field .input,.login-field .ui-input{width:100%}.login-error{background:var(--status-danger-bg);color:var(--status-danger-fg);border-radius:var(--radius-sm);padding:9px 12px;font-size:12.5px;margin-bottom:14px}.login-btn{width:100%;margin-top:6px}.app-shell{height:100%;display:flex;flex-direction:column}.topbar{height:var(--header-h);flex:0 0 var(--header-h);background:var(--sidebar-bg-2);border-bottom:1px solid var(--chrome-hover);display:flex;align-items:center;padding:0 var(--space-5);gap:var(--space-3)}.topbar .logo{height:30px}.topbar .spacer{flex:1}.topbar .client{color:var(--text-invert);font-size:13px;font-weight:600}.topbar .client small{display:block;color:var(--text-invert-muted);font-weight:400;font-size:11px}.app-body{flex:1;display:flex;min-height:0}.sidebar{position:relative;z-index:1;width:var(--sidebar-w);flex:0 0 var(--sidebar-w);background:linear-gradient(180deg,var(--sidebar-bg) 0%,var(--sidebar-bg-2) 100%);border-right:1px solid var(--chrome-hover);padding:var(--space-3);overflow-y:auto;overflow-x:hidden;transition:width .16s ease,flex-basis .16s ease}.sidebar.collapsed{width:60px;flex-basis:60px;overflow:visible}.sidebar-toggle{display:flex;align-items:center;justify-content:center;width:36px;height:36px;min-width:36px;margin:0 0 var(--space-2) var(--space-0-5);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-invert-muted);cursor:pointer;padding:0}.sidebar-toggle.ui-icon-btn:hover:not(:disabled){background:var(--chrome-hover);color:var(--text-invert)}.sidebar-toggle svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}.sidebar.collapsed .sidebar-label{display:none}.sidebar.collapsed .sidebar-group-title{justify-content:center;padding:4px 0 8px}.sidebar.collapsed .sidebar-group-head{justify-content:center;padding:6px 0}.sidebar.collapsed .sidebar-group-chev,.sidebar.collapsed .sidebar-group-tools{display:none}.sidebar.collapsed .sidebar-group{position:relative}.sidebar.collapsed .sidebar-group-head.active{background:#36d3be24}.sidebar-flyout{position:absolute;left:calc(100% + 6px);top:0;z-index:200;min-width:210px;padding:6px;background:var(--sidebar-bg);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);box-shadow:0 8px 28px #00000059}.sidebar-flyout-title{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--accent-strong);padding:6px 10px 8px}.sidebar-flyout-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-invert);font-family:var(--font);font-size:13px;font-weight:500;padding:9px 10px;cursor:pointer;transition:background .15s,border-color .15s}.sidebar-flyout-item:hover{background:#ffffff0f}.sidebar-flyout-item.active{background:#36d3be24;border-color:#36d3be4d}.sidebar-flyout-item svg{flex:0 0 18px;width:18px;height:18px;stroke:var(--accent-strong);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar.collapsed .sidebar-tool{justify-content:center;padding:9px 0}.sidebar-group{margin-bottom:18px}.sidebar-group-head{display:flex;align-items:center;gap:8px;width:100%;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-strong);padding:4px 8px 8px;border:none;background:transparent;cursor:pointer;font-family:var(--font);text-align:left;border-radius:var(--radius-sm);transition:background .15s}.sidebar-group-head:hover{background:#ffffff0f}.sidebar-group-head svg{flex:0 0 16px;width:16px;height:16px;stroke:var(--accent-strong);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-group-chev{margin-left:auto;flex:0 0 22px;width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.12);border-radius:999px;transition:transform .15s ease}.sidebar-group-chev svg{width:14px;height:14px;stroke:var(--text-invert-muted)}.sidebar-group-chev.open{transform:rotate(180deg)}.sidebar-group-tools{display:flex;flex-direction:column;gap:2px}.sidebar-group-title{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-strong);padding:4px 8px 8px}.sidebar-group-title svg{flex:0 0 16px;width:16px;height:16px;stroke:var(--accent-strong);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sidebar-tool{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-invert);font-family:var(--font);font-size:13px;font-weight:500;padding:9px 10px;cursor:pointer;transition:background .15s,border-color .15s}.sidebar-tool:hover{background:#ffffff0f}.sidebar-tool.active{background:#36d3be24;border-color:#36d3be4d}.sidebar-tool svg{flex:0 0 18px;width:18px;height:18px;stroke:var(--accent-strong);fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.workspace{position:relative;z-index:0;flex:1;overflow:hidden;background:linear-gradient(160deg,var(--surface-canvas) 0%,var(--surface-canvas-2) 100%)}.workspace-hint,.workspace>.ui-async-empty.workspace-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-invert-muted);font-size:var(--type-ui);pointer-events:none;padding:0;min-height:0;background:transparent}.window{position:absolute;display:flex;flex-direction:column;background:var(--panel);border-radius:var(--radius);box-shadow:var(--shadow-win);border:1px solid var(--border);overflow:hidden}.window.maximized{border-radius:0;box-shadow:none}.window.window-minimized{visibility:hidden;pointer-events:none}.window-resize{position:absolute;z-index:20;touch-action:none}.window-resize-e{top:0;right:0;width:8px;height:100%;cursor:ew-resize}.window-resize-s{left:0;bottom:0;width:100%;height:8px;cursor:ns-resize}.window-resize-se{right:0;bottom:0;width:20px;height:20px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 0 50%,var(--border-strong) 50% 60%,transparent 60% 72%,var(--border-strong) 72% 82%,transparent 82%)}.window-titlebar{flex:0 0 auto;height:40px;background:var(--sidebar-bg-2);color:var(--text-invert);display:flex;align-items:center;padding:0 10px 0 14px;cursor:move;-webkit-user-select:none;user-select:none}.window-title{font-size:13px;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.window-actions{display:flex;gap:var(--space-1)}.window-btn,.window-btn.ui-icon-btn{width:26px;height:26px;min-width:26px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-invert-muted);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--type-ui);line-height:1;padding:0}.window-btn.ui-icon-btn:hover:not(:disabled),.window-btn:hover:not(:disabled){background:var(--chrome-hover-strong);color:var(--text-invert)}.window-btn.ui-icon-btn .ui-icon-btn-glyph{font-size:inherit}.window-body{flex:1;min-height:0;overflow:auto;background:var(--panel)}.taskbar{position:absolute;left:var(--space-3);bottom:var(--space-3);display:flex;gap:var(--space-2);z-index:9000}.taskbar-item{background:var(--sidebar-bg-2);color:var(--text-invert);border:1px solid var(--chrome-border);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:var(--type-body);font-weight:var(--weight-semibold);cursor:pointer;box-shadow:var(--shadow-1)}.taskbar-item:hover{background:var(--sidebar-bg)}@media (max-width: 767px){.app-shell-mobile .app-body{flex-direction:column}.app-shell-mobile .sidebar-mobile{width:100%;flex:1 1 auto;border-right:none;border-bottom:1px solid var(--chrome-hover)}.app-shell-mobile.app-tool-open .sidebar-mobile{display:none}.app-shell-mobile .workspace-mobile{flex:1 1 auto;position:relative;min-height:0}.app-shell-mobile.app-tool-open .workspace-mobile{flex:1 1 100%}.app-shell-mobile .workspace-mobile:not(.has-tool) .workspace-hint{padding:var(--space-6)}.mobile-tool{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;background:var(--panel);z-index:2}.mobile-tool[hidden]{display:none!important}.mobile-tool-bar{display:flex;align-items:center;gap:var(--space-2);min-height:48px;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border);background:var(--panel);flex-shrink:0}.mobile-tool-title{font-size:var(--type-title);font-weight:var(--weight-semibold);color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-tool-body{flex:1;min-height:0;overflow:auto}.app-shell-mobile .topbar .client{max-width:40vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width: 768px){:root{--page-gutter: var(--page-gutter-compact);--control-touch: 44px}.app-shell,.mobile-tool-body,.win-body,.params-form,.login-card,.ui-dialog-body,.modal-body{overflow-x:clip;max-width:100%}.ui-table-scroll,.table-wrap,.table-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}.summary.analysis-summary{width:100%;max-width:100%;overflow-x:auto}.params-form{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}.params-actions{padding-left:var(--page-gutter);padding-right:var(--page-gutter);margin-left:calc(-1 * var(--page-gutter));margin-right:calc(-1 * var(--page-gutter));flex-wrap:wrap;gap:var(--space-3)}.mobile-tool-body>*{box-sizing:border-box}.form-field,.selection-topn .form-field,.data-upload-matching .form-field,.bp-row{grid-template-columns:1fr;align-items:start}.conf-grid{flex-direction:column}.form-field-label,.bp-row-label{white-space:normal}.selection-topn .form-field-control .input[type=number],.selection-topn .form-field-control .select,.form-field-control .input,.form-field-control .select,.form-field-control .ui-input,.form-field-control .select-trigger{width:100%;max-width:100%}.indicator-period-grid,.summary:not(.analysis-summary){grid-template-columns:1fr}.indicator-lifecycle-field{min-width:0;flex:1 1 100%}.indicator-lifecycle-select{max-width:100%}.comp-grid{flex-direction:column}.market-kind-row{flex-wrap:wrap}.market-kind-row .input{width:100%;max-width:120px}.ui-btn-md{min-height:var(--control-touch);height:var(--control-touch)}.ui-icon-btn.ui-btn-md{width:var(--control-touch);min-width:var(--control-touch)}.ui-btn-sm{min-height:var(--control-touch);height:var(--control-touch);padding:0 12px}.ui-icon-btn.ui-btn-sm{width:var(--control-touch);min-width:var(--control-touch)}.ui-input.input,.ui-field .input:not([type=checkbox]):not([type=radio]):not([type=range]),.form-field .input:not([type=checkbox]):not([type=radio]):not([type=range]),.params-form .input:not([type=checkbox]):not([type=radio]):not([type=range]),.login-card .input:not([type=checkbox]):not([type=radio]),.select-trigger,.date-picker-trigger,.params-store-select{min-height:var(--control-touch);height:var(--control-touch);box-sizing:border-box}textarea.ui-input,.ui-field textarea.input,.form-field textarea.input,.params-form textarea.input{height:auto;min-height:calc(var(--control-touch) * 2)}.ui-switch{min-height:var(--control-touch);padding:6px 0}.ui-checkbox-label,.check-label,.check-inline{min-height:var(--control-touch);align-items:center}.ui-dialog-close,.modal-close{min-width:var(--control-touch);min-height:var(--control-touch);display:inline-flex;align-items:center;justify-content:center}.ui-table-sort-btn{min-height:var(--control-touch);padding:8px 4px}.mobile-tool-bar .ui-btn,.sidebar-tool{min-height:var(--control-touch)}.ui-dialog-overlay,.modal-overlay{padding:var(--page-gutter);align-items:flex-end}.ui-dialog-panel,.modal-dialog{max-height:min(92vh,100%);max-width:100%;border-radius:var(--radius) var(--radius) 0 0}.ui-dialog-footer,.data-upload-cleanup-dialog .ui-dialog-footer{position:sticky;bottom:0;flex-wrap:wrap;justify-content:stretch;gap:var(--space-2);background:var(--panel);z-index:1}.ui-dialog-footer>.ui-btn,.ui-dialog-footer>button{flex:1 1 auto;min-width:min(100%,120px)}.ui-table-sticky-key table th:first-child,.ui-table-sticky-key table td:first-child{position:sticky;left:0;z-index:2;background:var(--panel);box-shadow:1px 0 0 var(--border)}.ui-table-sticky.ui-table-sticky-key thead th:first-child{z-index:3;background:var(--panel)}.ui-table-sticky-key table tbody tr.row-odd td:first-child{background:var(--grid-row-odd-bg, var(--panel-muted))}.ui-table-sticky-key table tbody tr.row-selected td:first-child{background:var(--grid-row-selected-bg, var(--accent-soft))}.ui-data-grid table.grid thead tr.cols th:first-child,.ui-data-grid table.grid tbody td:first-child{position:sticky;left:0;z-index:2;background:var(--panel);box-shadow:1px 0 0 var(--border)}.ui-data-grid table.grid thead tr.cols th:first-child{z-index:4}.ui-data-grid table.grid tbody tr.row-odd td:first-child{background:var(--grid-row-odd-bg)}.ui-data-grid table.grid tbody tr.row-selected td:first-child{background:var(--grid-row-selected-bg)!important}.ui-data-grid table.grid th.sticky-chrome,.ui-data-grid table.grid td.sticky-chrome{z-index:3}}.repricing{display:flex;flex-direction:column;height:100%}.repricing-chrome{flex:0 0 auto;display:flex;flex-direction:column;border-bottom:1px solid var(--border);background:var(--panel)}.ribbon-tabs{position:relative;display:flex;align-items:stretch;gap:0;padding:0 8px 0 6px;background:#1e2f42;border-bottom:1px solid #162433;min-height:34px}.ribbon-tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#9aafc2;font-family:var(--font);font-size:13px;font-weight:500;padding:0 12px;cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:7px;transition:color .12s}.ribbon-tab-icon{display:inline-flex;align-items:center;opacity:.75}.ribbon-tab-icon svg{display:block}.ribbon-tab-label{white-space:nowrap}.ribbon-tab:hover{color:#e8f0f7}.ribbon-tab.active{color:#fff}.ribbon-tab-indicator{position:absolute;bottom:4px;left:0;height:3px;border-radius:2px;background:var(--accent-strong);pointer-events:none;opacity:0;transform:translate(0);width:0;transition:transform .34s cubic-bezier(.22,1.35,.36,1),width .34s cubic-bezier(.22,1.35,.36,1),opacity .16s ease;will-change:transform,width}.ribbon-tab-indicator.visible{opacity:1}.ribbon-tab-indicator.no-motion{transition:none}.ribbon-tab.active .ribbon-tab-icon{opacity:1;color:var(--accent-strong)}.ribbon-tab.has-filters:not(.active){color:#d5e4f0}.ribbon-collapse{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#7e93a8;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;margin:auto 2px;border-radius:4px;cursor:pointer;flex:0 0 auto}.ribbon-collapse:hover{color:#e8f0f7;background:#ffffff0f}.ribbon-tabs-spacer{flex:1;min-width:8px}.ribbon-tabs .btn{align-self:center;margin:3px 0}.btn-excel{display:inline-flex;align-items:center;gap:5px}.btn-excel svg{display:block}.ribbon-body{display:flex;align-items:stretch;gap:0;padding:10px 10px 4px;background:var(--panel);overflow-x:auto;min-height:72px}.ribbon-body-results{min-height:0;padding:10px 12px 12px;overflow:visible}.ribbon-body-analysis{min-height:0;padding:10px 12px 12px;overflow-x:auto;overflow-y:hidden}.analysis-summary{flex-wrap:nowrap;width:max-content;min-width:0;grid-template-columns:none;display:flex;align-items:stretch;justify-content:flex-start;gap:8px;padding:0}.analysis-summary .analysis-card{flex:0 0 auto;width:max-content;min-width:0;max-width:none}.analysis-summary .analysis-card-price{min-width:0}.analysis-card-title-center{text-align:center}.analysis-price-table{width:max-content;max-width:100%;border-collapse:collapse;table-layout:auto;margin-top:2px;font-variant-numeric:tabular-nums}.analysis-price-table th,.analysis-price-table td{padding:2px 8px 2px 0;text-align:left;white-space:nowrap;vertical-align:baseline}.analysis-price-table th:last-child,.analysis-price-table td:last-child{padding-right:0}.analysis-price-table thead th{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--text-muted);padding-bottom:4px;border-bottom:1px solid var(--border)}.analysis-price-table tbody td,.analysis-price-table tbody th{font-size:13px;color:var(--text);padding-top:3px;padding-bottom:3px}.analysis-price-table tbody tr:last-child th,.analysis-price-table tbody tr:last-child td{padding-top:5px;border-top:1px solid var(--border);font-weight:600}.analysis-price-mark{color:var(--text-muted);font-weight:600;font-size:12px;text-align:left}.analysis-price-table .analysis-price-n,.analysis-price-table thead th:nth-child(2){text-align:right;padding-left:4px;padding-right:10px}.analysis-price-n{font-weight:700}.analysis-pct{font-size:13px;font-weight:700}.analysis-rub{font-size:12px;font-weight:600;color:var(--text-muted)}.analysis-pct.cell-pos,.analysis-rub.cell-pos,.analysis-price-table .cell-pos,.analysis-pi-delta .cell-pos{color:var(--positive-text)}.analysis-pct.cell-neg,.analysis-rub.cell-neg,.analysis-price-table .cell-neg,.analysis-pi-delta .cell-neg{color:var(--negative-text)}.analysis-pi-main{display:flex;align-items:baseline;justify-content:center;gap:10px}.analysis-pi-main .value{font-size:20px}.analysis-pi-arrow{color:var(--text-muted);font-size:16px;font-weight:600}.analysis-pi-delta{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:4px 0}.analysis-card-pi{text-align:center}.analysis-sep{margin:0 6px;color:var(--border-strong)}.analysis-card-abc{text-align:left;display:flex;flex-direction:column;gap:2px;padding-top:6px;padding-bottom:6px}.analysis-abc-body{display:flex;flex-direction:row;align-items:stretch;gap:8px;min-width:0}.analysis-abc-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.analysis-abc-title{margin:0;text-align:center;font-size:11px}.analysis-abc-toggles{display:flex;flex-direction:column;justify-content:center;gap:6px;flex:0 0 auto;border-left:1px solid var(--border);padding-left:8px}.analysis-abc-toggle-row{display:grid;grid-template-columns:auto auto auto;column-gap:6px;align-items:center;justify-content:start}.analysis-abc-toggle-cap{display:inline-flex;align-items:center;justify-content:flex-start;font-size:9px;font-weight:600;color:var(--text-muted);text-transform:lowercase;letter-spacing:.02em;line-height:1;text-align:left;min-width:2.8em}.analysis-abc-toggle-row>.help-hint{justify-self:start}.analysis-abc-toggle-row .help-hint-icon{width:12px;height:12px;font-size:8px;line-height:12px}.analysis-abc-head{display:none}.analysis-abc-corner{display:inline-flex;align-items:center;gap:3px;min-width:0}.analysis-abc-foot{display:none}.abc-switch{display:inline-flex;align-items:center;gap:3px;justify-self:start}.abc-switch-label{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:transparent;padding:0;margin:0;font:inherit;font-size:10px;font-weight:600;line-height:1;color:var(--text-muted);cursor:pointer;white-space:nowrap}.abc-switch-label-left{text-align:right;min-width:2.6em}.abc-switch-label-right{text-align:left;min-width:2.6em}.abc-switch-label.on{color:var(--accent)}.abc-switch-track{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;width:26px;height:14px;padding:0;border-radius:999px;background:var(--border-strong);cursor:pointer;flex:0 0 26px;transition:background .12s ease}.abc-switch-track.left,.abc-switch-track.right{background:var(--accent)}.abc-switch-knob{position:absolute;top:1px;left:1px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #0000000f;transition:transform .12s ease}.abc-switch-track.right .abc-switch-knob{transform:translate(12px)}.analysis-abc-table.analysis-price-table{margin-top:0}.analysis-abc-table.analysis-price-table thead th{text-align:right;padding:0 0 1px 8px;font-size:9px}.analysis-abc-table.analysis-price-table thead th:first-child{text-align:left;padding-left:0}.analysis-abc-table.analysis-price-table tbody td,.analysis-abc-table.analysis-price-table tbody th{padding-top:1px;padding-bottom:1px;font-size:12px}.analysis-abc-table.analysis-price-table tbody tr:last-child th,.analysis-abc-table.analysis-price-table tbody tr:last-child td{padding-top:2px;border-top:1px solid var(--border);font-weight:600}.analysis-abc-table .analysis-abc-td{text-align:right;padding-left:8px;padding-right:0;white-space:nowrap;vertical-align:baseline}.analysis-abc-th-total,.analysis-abc-td-total{padding-left:10px!important}.analysis-abc-share{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums;cursor:default;color:var(--text)}.analysis-abc-ratio{display:none}.analysis-abc-share.abc-share-empty{font-weight:600;color:var(--text-muted)}.analysis-abc-td{border-radius:3px}.analysis-abc-td-empty{background:transparent}.analysis-abc-zone-core{background:#228c5a2e}.analysis-abc-zone-watch{background:#c88c142e}.analysis-abc-zone-tail{background:#646e781a}.ribbon-group{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;padding:0 10px;position:relative;flex:0 0 auto}.ribbon-group-hint{align-items:center}.ribbon-sep{width:1px;align-self:stretch;background:var(--border);margin:4px 10px;flex:0 0 1px;opacity:.85}.icon-menu{display:flex;align-items:center;flex:0 0 auto}.icon-menu .hover-tooltip-anchor{display:inline-flex;overflow:visible;text-overflow:unset;white-space:normal;min-width:0}.icon-menu-trigger{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:stretch;gap:0;padding:0;border:1px solid rgba(120,140,160,.14);border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer;min-height:36px;transition:background .12s,color .12s,border-color .12s}.icon-menu-trigger:hover:not(:disabled),.icon-menu.open .icon-menu-trigger{background:#e8eef5;color:var(--text);border-color:#788ca047}.icon-menu.active .icon-menu-trigger{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 18%,transparent);background:color-mix(in srgb,var(--accent-soft) 70%,transparent)}.icon-menu.active .icon-menu-icon{color:var(--accent)}.icon-menu-trigger:disabled{opacity:.3;cursor:default}.icon-menu-icon{display:inline-flex;align-items:center;justify-content:center;padding:6px 8px;color:inherit}.icon-menu-icon svg{display:block;width:20px;height:20px}.icon-menu-chev{display:inline-flex;align-items:center;justify-content:center;padding:0 4px 0 2px;color:inherit;opacity:.65}.icon-menu-trigger:hover:not(:disabled) .icon-menu-chev,.icon-menu.open .icon-menu-chev{opacity:.9}.icon-menu-chev svg{width:12px;height:12px}.icon-menu-action{padding:6px 10px}.icon-menu-action .icon-menu-icon{padding:0}.icon-menu-popup{z-index:1200;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-1);padding:4px;overflow-y:auto}.icon-menu-option{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;gap:8px;width:100%;border:none;background:transparent;color:var(--text);font-family:var(--font);font-size:13px;text-align:left;padding:8px 10px;border-radius:4px;cursor:pointer}.icon-menu-option.hover,.icon-menu-option:hover{background:var(--panel-muted)}.icon-menu-option.selected{color:var(--accent);font-weight:600}.icon-menu-option-pair{cursor:default}.icon-menu-pair{display:inline-flex;align-items:center;gap:2px;margin-left:auto;flex:0 0 auto;padding:2px;border-radius:5px;background:var(--panel-muted)}.icon-menu-pair-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:12px;font-weight:500;padding:4px 8px;border-radius:4px;cursor:pointer;white-space:nowrap;line-height:1.2}.icon-menu-pair-btn:hover{color:var(--text);background:#ffffffb3}.icon-menu-pair-btn.on{color:var(--accent);background:#fff;font-weight:600;box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}.icon-menu-option.selected .icon-menu-pair-btn.on{color:var(--accent)}.icon-menu-option-check{width:14px;flex:0 0 14px;font-size:12px;color:var(--accent)}.icon-menu-option-label{flex:1;min-width:0}.icon-menu-option-count{color:var(--text-muted);font-weight:500;font-variant-numeric:tabular-nums}.icon-menu-option.selected .icon-menu-option-count{color:var(--accent);opacity:.75}.ribbon-info{display:flex;flex-direction:column;gap:2px;min-width:120px;padding:4px 8px 0}.ribbon-info-value{font-size:14px;font-weight:600;color:var(--text);line-height:1.3}.ribbon-info-caption{font-size:11px;color:#8a9aab}.summary-in-ribbon{flex:1 1 auto;width:100%;padding:0;border:none;background:transparent}.repricing-search-bar{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--panel)}.repricing-search-bar .rows-count-badge{margin-left:auto}.repricing-search-bar .search-field{position:relative;display:flex;align-items:center;width:min(280px,100%)}.repricing-search-bar .search-icon{position:absolute;left:10px;display:flex;align-items:center;color:var(--text-muted);pointer-events:none}.repricing-search-bar .search-input{width:100%;padding-left:34px}.rows-count-badge{font-size:12px;color:var(--text-muted);white-space:nowrap;padding:3px 8px;border-radius:var(--radius-sm);background:var(--panel);border:1px solid var(--border)}.filter-panel-hint{font-size:12px;color:var(--text-muted);max-width:180px;line-height:1.3}.btn-ghost{padding:6px 12px;font-size:13px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--text-muted);cursor:pointer}.btn-ghost:hover:not(:disabled){color:var(--text);border-color:var(--border);background:var(--panel-muted)}.btn-ghost:disabled{opacity:.4;cursor:default}.summary{flex:0 0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;padding:14px}.summary.analysis-summary{display:flex;grid-template-columns:none;gap:8px;width:max-content;min-width:0;padding:0}.summary-card{background:var(--panel-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px}.summary-card .label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:6px}.summary-card .value{font-size:20px;font-weight:700;color:var(--text)}.summary-card .pct{font-size:13px;font-weight:600;margin-top:2px}.summary-extra{margin-top:6px;font-size:12px;color:var(--text-muted);line-height:1.35}.summary-card.pi-card .pi-sub{font-size:11px;color:var(--text-muted);margin-bottom:4px}.summary-card.pi-card .pi-sub b{color:var(--text);font-weight:600}.summary-card.pi-card .pi-chart{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:6px;height:66px}.pi-col{display:flex;flex-direction:column;align-items:center;gap:5px}.pi-val{font-size:14px;font-weight:700;color:var(--text);line-height:1}.pi-block-wrap{position:relative;width:30px;height:30px}.pi-block-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(3px,3px);border-radius:7px;background:var(--border);opacity:.55}.pi-block{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:7px;box-shadow:0 1px 2px #0000001f}.pi-block.pi-cur{background:#4d6072}.pi-block.pi-new{background:var(--accent)}.pi-block.pi-new.pos{background:var(--status-success-fg)}.pi-block.pi-new.neg{background:var(--status-danger-fg)}.pi-tag{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.pi-arrow{font-size:18px;font-weight:700;color:var(--text-muted);margin-top:16px}.pi-arrow.pos{color:var(--status-success-fg)}.pi-arrow.neg{color:var(--status-danger-fg)}.report-date-badge{flex:0 0 auto;font-size:12.5px;font-weight:600;color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 11px;white-space:nowrap}.pos{color:var(--status-success-fg)}.neg{color:var(--status-danger-fg)}.table-wrap{flex:1;min-height:0;overflow:auto;padding:0 0 14px}table.grid{border-collapse:separate;border-spacing:0;width:100%;font-size:12.5px}table.grid thead th{position:sticky;top:0;background:var(--sidebar-bg-2);color:var(--text-invert);font-weight:600;padding:8px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);cursor:pointer;z-index:4}table.grid thead tr.groups th{top:0;text-align:center;background:var(--sidebar-bg);border-left:1px solid rgba(255,255,255,.08)}table.grid thead tr.groups th.group-head{cursor:pointer;-webkit-user-select:none;user-select:none}table.grid thead tr.groups th.group-head:hover{background:var(--grid-group-head-hover)}table.grid thead .chev{display:inline-block;margin-right:6px;color:var(--accent-strong);font-size:10px}table.grid thead tr.cols th{top:33px}table.grid th.collapsed-col,table.grid td.collapsed-col{text-align:center;color:var(--text-muted);cursor:pointer;min-width:30px;max-width:30px}table.grid td.collapsed-col{color:var(--grid-collapsed-muted)}.strategy-badge{flex:0 0 auto;font-size:12.5px;font-weight:600;color:var(--accent);background:var(--accent-soft);border:1px solid #bfe3da;border-radius:var(--radius-sm);padding:7px 11px;white-space:nowrap}table.grid thead th.text-col,table.grid tbody td.text-col{text-align:left}table.grid tbody td{padding:7px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--panel-muted);color:var(--text)}table.grid tbody tr.row-odd td{background:var(--grid-row-odd-bg)}table.grid tbody tr.row-selected td{background:var(--grid-row-selected-bg)!important}table.grid tbody tr.row-selected td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.ui-data-grid table.grid tbody tr:hover:not(.row-selected) td{background:var(--grid-row-hover-bg)}.ui-data-grid table.grid tbody tr.row-odd:hover:not(.row-selected) td{background:color-mix(in srgb,var(--grid-row-hover-bg) 70%,var(--grid-row-odd-bg))}.ui-data-grid:focus-visible{outline:2px solid var(--focus-ring, var(--accent));outline-offset:-2px}table.grid tbody td.name{max-width:320px}table.grid tbody td.store{max-width:180px}.hover-tooltip-anchor{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.cell-hover-tooltip{max-width:min(420px,calc(100vw - 20px));z-index:10060;white-space:normal;line-height:1.45;font-size:12.5px}.cell-hover-tooltip-text{display:flex;flex-direction:column;gap:2px}.cell-hover-tooltip-line{display:block}.weekly-repricing-tip{display:flex;flex-direction:column;gap:6px;min-width:220px}.weekly-repricing-tip-title{font-weight:700;font-size:12.5px;padding-bottom:4px;border-bottom:1px solid color-mix(in srgb,#fff 18%,transparent)}.weekly-repricing-tip-row{display:grid;grid-template-columns:72px 1fr;gap:8px;align-items:start}.weekly-repricing-tip-label{color:color-mix(in srgb,#fff 62%,transparent);font-size:11.5px}.weekly-repricing-tip-value{font-size:12px;word-break:break-word;display:flex;flex-direction:column;gap:1px}.weekly-repricing-tip-meta{margin-top:2px;padding-top:4px;border-top:1px solid color-mix(in srgb,#fff 12%,transparent);color:color-mix(in srgb,#fff 72%,transparent);font-size:11.5px;display:flex;flex-direction:column;gap:2px}.weekly-strategy-tip{max-width:400px}.weekly-strategy-tip-badge{margin-left:8px;font-weight:500;font-size:10.5px;color:color-mix(in srgb,#fff 65%,transparent)}.weekly-strategy-tip-section{margin-top:2px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:color-mix(in srgb,#fff 58%,transparent)}.weekly-strategy-tip-text{font-size:12px;line-height:1.45;word-break:break-word}.weekly-strategy-tip-params{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:3px;font-size:11.5px;line-height:1.4}.weekly-strategy-tip-params li{word-break:break-word}.weekly-strategy-cell{display:flex;align-items:center;gap:8px;min-width:0;width:100%}.weekly-strategy-direction{flex:0 0 auto;display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;line-height:1.3;white-space:nowrap}.weekly-strategy-direction.raise{color:var(--status-success-fg);background:var(--status-success-bg)}.weekly-strategy-direction.lower{color:var(--status-danger-fg);background:var(--status-danger-bg)}.weekly-strategy-direction.hold{color:var(--text-muted);background:var(--panel-muted)}.weekly-rank-grid td .weekly-strategy-cell .weekly-strategy-select.select-trigger{flex:1 1 auto;width:auto;min-width:0;max-width:100%;padding:3px 8px;font-size:12px;line-height:1.3;min-height:26px;gap:4px}.weekly-rank-grid td .weekly-strategy-cell .weekly-strategy-select .select-trigger-arrow{width:12px;height:12px}.weekly-rank-grid .info-col .info-btn{cursor:default}table.grid tbody tr.vspacer td{padding:0;border:none;background:transparent!important}.cell-pos{background:var(--status-success-bg)!important;color:var(--status-success-fg);font-weight:600}.cell-neg{background:var(--status-danger-bg)!important;color:var(--status-danger-fg);font-weight:600}.sort-ind{font-size:10px;opacity:.8;margin-left:4px}.empty-state,.ui-async-empty,.ui-async-error{padding:40px;text-align:center;color:var(--text-muted)}.ui-async-error{color:var(--negative-text)}.loading,.ui-async-loading{padding:40px;text-align:center;color:var(--text-muted)}.ui-table-frame{display:flex;flex-direction:column;gap:var(--space-2, 8px);min-width:0}.ui-table-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ui-table-scroll{overflow:auto;min-width:0;-webkit-overflow-scrolling:touch}.ui-table-scroll:focus-visible{outline:2px solid var(--focus-ring, var(--accent));outline-offset:2px}.ui-table-sticky thead th{position:sticky;top:0;z-index:1;background:var(--panel);box-shadow:0 1px 0 var(--border)}.ui-table-frame .ui-async-empty,.ui-table-frame .ui-async-error,.ui-table-frame .ui-async-loading{padding:20px 12px}.ui-table-num{text-align:right;font-variant-numeric:tabular-nums}.ui-table-th-sortable{white-space:nowrap}.ui-table-sort-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:inherit;font:inherit;font-weight:inherit;padding:0;margin:0;cursor:pointer;display:inline-flex;align-items:center;gap:4px}.ui-table-sort-btn:focus-visible{outline:2px solid var(--focus-ring, var(--accent));outline-offset:2px;border-radius:2px}.ui-table-sort-ind{font-size:10px;opacity:.75}.ui-table-frame--compact .ui-table-scroll{overflow:visible}.ui-table-frame--compact.ui-table-frame{gap:0}.ui-status-badge,.sf-badge,.data-upload-badge{display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:700;line-height:16px;border:1px solid var(--border);background:var(--panel-muted);color:var(--text-muted);white-space:nowrap;box-sizing:border-box}.ui-status-success,.sf-badge-pass{color:#fff;background:var(--positive-text);border-color:transparent}.ui-status-danger,.sf-badge-fail{color:#fff;background:var(--negative-text);border-color:transparent}.ui-status-warning,.sf-badge-soft{color:#6b4e00;background:#ffe9b0;border-color:#f0c34a}.ui-status-info{background:var(--accent-soft);color:var(--status-info-fg);border-color:transparent}.ui-status-neutral,.sf-badge-off,.sf-badge-na,.sf-badge-unknown{color:var(--text-muted);background:var(--panel-muted);border-color:var(--border)}.data-upload-badge{font-size:11.5px;font-weight:600;text-transform:lowercase}.data-upload-badge-done{background:var(--positive-bg);color:var(--positive-text);border-color:transparent}.data-upload-badge-running{background:var(--accent-soft);color:var(--status-info-fg);border-color:transparent}.data-upload-badge-pending{background:var(--status-warning-bg);color:var(--status-warning-fg);border-color:transparent}.data-upload-badge-failed{background:var(--negative-bg);color:var(--negative-text);border-color:transparent}.data-upload-badge.data-upload-badge-done.ui-status-success{background:var(--positive-bg);color:var(--positive-text)}.data-upload-badge.data-upload-badge-running.ui-status-info{background:var(--accent-soft);color:var(--status-info-fg)}.data-upload-badge.data-upload-badge-pending.ui-status-warning{background:var(--status-warning-bg);color:var(--status-warning-fg);border-color:transparent}.data-upload-badge.data-upload-badge-failed.ui-status-danger{background:var(--negative-bg);color:var(--negative-text)}.params-panel{display:flex;flex-direction:column;height:100%}.params-fieldset{border:0;margin:0;padding:0;min-width:0;flex:1 1 auto;display:flex;flex-direction:column;min-height:0}.params-fieldset:disabled{opacity:1}.params-readonly-banner{flex:0 0 auto;padding:6px 12px;font-size:12px;color:var(--text-muted);background:var(--panel-muted);border-bottom:1px solid var(--border)}.params-store-bar{flex:0 0 auto;padding:8px 12px 0;background:var(--panel-muted);border-bottom:1px solid var(--border)}.tabs{display:flex;align-items:center;flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;gap:4px;padding:8px 12px 0;border-bottom:1px solid var(--border);background:var(--panel-muted);flex:0 0 auto}.tab{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;border-bottom:none;background:transparent;color:var(--text-muted);font-family:var(--font);font-size:13px;font-weight:600;line-height:20px;padding:8px 14px;border-radius:var(--radius-sm) var(--radius-sm) 0 0;cursor:pointer;white-space:nowrap;flex:0 0 auto}.tab:hover:not(:disabled){color:var(--text)}.tab.active{background:var(--panel);color:var(--accent);border-color:var(--border);margin-bottom:-1px}.tab:disabled{opacity:.45;cursor:not-allowed}.ui-tabs-segmented{border-bottom:none;gap:2px;padding:8px 12px;background:var(--panel-muted)}.ui-tabs-segmented .tab{border:1px solid transparent;border-radius:var(--radius-sm);margin-bottom:0;padding:6px 12px}.ui-tabs-segmented .tab.active{background:var(--accent-soft);color:var(--accent);border-color:var(--border);margin-bottom:0}.params-store-select{display:flex;align-items:center;gap:8px;flex:0 0 auto}.params-store-bar .params-store-select{padding-bottom:8px}.params-store-label{font-size:12.5px;color:var(--text-muted)}.tab-panel{flex:1 1 auto;overflow:auto;background:var(--panel)}.params-form{padding:16px 18px 80px}.params-section{margin-bottom:var(--space-6, 22px)}.params-section-title{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 var(--space-3, 10px);padding-bottom:6px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px}.params-section-body{display:flex;flex-direction:column;gap:0}.params-form-error{margin:8px 0 0;padding:8px 10px;border-radius:var(--radius-sm);border:1px solid var(--status-danger-fg);background:var(--status-danger-bg);color:var(--status-danger-fg);font-size:12.5px}.form-field{display:grid;grid-template-columns:280px 1fr;align-items:center;gap:12px;padding:5px 0}.form-field-label{display:flex;align-items:center;gap:2px;font-size:13px;color:var(--text)}.form-field-control{display:flex;align-items:center;gap:8px}.form-field-control .input,.form-field-control .select{max-width:240px}.check-inline{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text);cursor:pointer}input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0;width:18px;height:18px;flex:0 0 18px;border:1.5px solid var(--border-strong);border-radius:5px;background:var(--panel);cursor:pointer;position:relative;transition:background .12s ease,border-color .12s ease}input[type=checkbox]:hover{border-color:var(--accent)}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:after{content:"";position:absolute;left:5px;top:1px;width:4px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}input[type=checkbox]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.apply-all-btn.ui-btn{white-space:nowrap;font-size:11.5px;font-weight:600;padding:4px 8px}.apply-all-btn.ui-btn:hover:not(:disabled){color:var(--accent);border-color:var(--accent)}.apply-all-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.muted{color:var(--text-muted);font-size:12.5px}.conf-block{margin:8px 0 14px}.conf-title{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:6px;display:flex;align-items:center;gap:6px}.conf-grid{display:flex;flex-wrap:wrap;gap:10px}.conf-cell{display:flex;flex-direction:column;gap:3px;font-size:11.5px;color:var(--text-muted)}.conf-cell .input{width:92px}.comp-grid{display:flex;flex-wrap:wrap;gap:14px}.market-kinds{display:grid;grid-template-columns:1fr;gap:8px;max-width:520px}.market-kind-row{display:flex;align-items:center;gap:12px}.market-kind-row .check-inline{flex:1}.market-kind-row .input{width:90px}.market-preview{margin-top:6px;font-size:12.5px}.ui-dialog-overlay,.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.ui-dialog-panel,.modal-dialog{background:var(--panel);color:var(--text);border-radius:var(--radius);max-width:920px;width:100%;max-height:86vh;display:flex;flex-direction:column;box-shadow:var(--shadow-win);outline:none}.market-modal{max-width:920px}.ui-dialog-header,.modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);flex:0 0 auto}.ui-dialog-title,.modal-header h3{margin:0;font-size:16px;font-weight:600;line-height:24px}.ui-dialog-close,.modal-close{background:transparent;border:none;font-size:22px;line-height:1;cursor:pointer;color:var(--text-muted);padding:0 6px;flex:0 0 auto}.ui-dialog-close:hover,.modal-close:hover{color:var(--text)}.ui-dialog-body,.modal-body{padding:12px 16px;overflow:auto;flex:1 1 auto;min-height:0}.ui-dialog-footer{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border);flex:0 0 auto}.market-meta{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:10px;font-size:13px;color:var(--text-muted)}.market-log-toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--text)}.market-data-btn{margin-top:10px;align-self:flex-start}.group-modal{max-width:820px}.group-modal .market-meta{margin-bottom:12px}.group-modal .gp-selected{background:#1f8f7e1a;font-weight:600}.gp-selected-tag{margin-left:8px;padding:1px 6px;border-radius:var(--radius-sm, 4px);font-size:10px;font-weight:600;color:#fff;background:var(--accent)}.group-link-btn{margin-left:10px;align-self:center}.ep-reason{font-size:12px;color:var(--text-muted);white-space:nowrap}.ep-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.ep-toggle input{cursor:pointer}.demand-groups-modal{max-width:980px}.dg-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.dg-search{flex:1}.dg-meta{font-size:12px;color:var(--text-muted);white-space:nowrap}.dg-list{display:flex;flex-direction:column;gap:6px}.dg-group{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel)}.dg-group-head{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;background:transparent;color:var(--text);font-size:13px;font-weight:600;cursor:pointer;text-align:left}.dg-group-head:hover{background:var(--panel-muted)}.dg-caret{width:12px;color:var(--text-muted)}.dg-group-id{flex:1;font-family:var(--font-mono, monospace);font-size:12px}.dg-count{font-size:11px;font-weight:600;color:var(--text-muted)}.dg-excl{font-size:10px;padding:2px 8px}.dg-products{padding:0 12px 10px}.dg-table{width:100%;font-size:12px}.dg-table th,.dg-table td{padding:5px 8px;border-bottom:1px solid var(--border);color:var(--text);text-align:left;vertical-align:middle}.dg-table thead th{background:var(--panel-muted);font-weight:700;vertical-align:middle}.dg-status,.dg-status .sf-badge{white-space:nowrap}.dg-name{font-weight:600}.dg-sales{display:block;font-size:10px;font-weight:400;color:var(--text-muted)}.dg-rules{max-width:280px}.dg-rule{display:inline-block;position:relative;margin:0 4px 2px 0;padding:1px 6px;border-radius:var(--radius-sm, 4px);font-size:11px;background:var(--panel-muted);color:var(--text);border:1px solid var(--border);cursor:help}.dg-rule:hover{background:var(--panel);border-color:var(--border-strong, var(--border))}.dg-tooltip{position:absolute;top:calc(100% + 6px);left:0;z-index:50;display:flex;flex-direction:column;gap:6px;padding:8px 10px;background:#1f2430;color:#fff;font-size:11px;font-weight:400;line-height:1.45;white-space:pre-line;border-radius:var(--radius-sm, 4px);box-shadow:0 4px 14px #00000040;width:460px;max-width:70vw;max-height:320px;overflow:auto}.dg-tooltip-copy{align-self:flex-start;padding:3px 8px;font-size:11px;font-weight:600;color:#fff;background:#ffffff1f;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-sm, 4px);cursor:pointer}.dg-tooltip-copy:hover{background:#ffffff38}.dg-tooltip-copy.copied{background:var(--accent);border-color:transparent}.dg-tooltip-text{margin:0}.dg-rule-none,.dg-row-excluded{color:var(--text-muted)}.dg-excl-reason{display:block;margin-top:2px;font-size:10px;color:var(--text-muted)}.dg-more{margin-top:8px}.dg-tree{display:flex;flex-direction:column;gap:4px}.dg-tree-controls{display:flex;gap:6px}.dg-tree-node{display:flex;flex-direction:column;gap:2px}.dg-tree-children{display:flex;flex-direction:column;gap:4px;padding-left:calc(var(--level, 0) * 14px + 12px)}.dg-tree-head{display:flex;align-items:center;gap:10px;width:100%;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-muted);color:var(--text);font-size:13px;font-weight:600;cursor:pointer;text-align:left}.dg-tree-head:hover{background:var(--panel)}.dg-tree-name{flex:1;font-size:12px;word-break:break-word}.dg-group[style*=--level],.dg-group{margin-left:calc(var(--level, 0) * 14px)}.excl-attr-picker{margin:8px 0 4px}.excl-attr-picker .form-field-control .select-trigger,.excl-attr-picker .form-field-control .input{width:240px;max-width:240px}.excl-attr-picker .form-field-control .ui-btn{flex-shrink:0}.excl-add{position:relative;display:flex;gap:8px;align-items:center;margin:8px 0}.excl-add-input{flex:1}.excl-add-popup{position:absolute;top:100%;left:0;right:0;max-height:240px;overflow-y:auto;z-index:30;background:var(--bg-elevated);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0000001f}.excl-add-option{display:block;width:100%;text-align:left;padding:6px 10px;border:none;background:transparent;cursor:pointer;font-size:12px}.excl-add-option:hover{background:var(--accent-soft)}.excl-table-frame .ui-table-scroll{margin-top:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated)}.excl-table-wrap{margin-top:8px;max-height:220px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;background:var(--bg-elevated)}.excl-table{width:100%;border-collapse:collapse;font-size:12px}.excl-table thead{position:sticky;top:0;z-index:1;background:var(--bg-elevated)}.excl-table th{text-align:left;padding:6px 10px;font-weight:600;border-bottom:1px solid var(--border)}.excl-table td{padding:4px 10px;border-bottom:1px solid var(--border-light)}.excl-table tr:last-child td{border-bottom:none}.excl-table-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.excl-table-action{width:36px;text-align:center}.excl-list-empty{margin-top:8px}.excl-list-remove{line-height:1;padding:0 8px}.excl-table-apply{margin-top:6px;display:flex;justify-content:flex-end}.excl-add-empty{padding:8px 10px;color:var(--muted);font-size:12px}.market-table{width:100%;font-size:12px}.market-table th,.market-table td{padding:6px 10px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;color:var(--text)}.market-table thead th{position:sticky;top:0;background:var(--panel-muted);color:var(--text);font-weight:600;border-bottom:1px solid var(--border-strong);z-index:1}.market-table tbody tr:nth-child(2n){background:var(--panel-muted)}.market-table td.market-reason{max-width:340px;white-space:normal;color:var(--text-muted)}.elast-modal{max-width:980px}.elast-modal .detail-group{margin-bottom:18px}.elast-modal .detail-group:last-child{margin-bottom:0}.elast-hint{font-size:12px;color:var(--text-muted);margin:0 0 12px;line-height:1.45}.demand-actions{padding:4px 0 8px}.market-table tbody tr.ep-filtered{color:var(--text-muted)}.elast-summary{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;padding:8px 10px;margin-bottom:8px;background:var(--panel-muted);border-radius:6px;font-size:12.5px}.elast-sum-row{display:inline-flex;align-items:center;gap:5px;color:var(--text-muted)}.elast-sum-row b{color:var(--text);font-weight:600}.elast-exclude{flex-basis:100%;color:var(--negative-text);font-size:12px;margin-top:2px}.elast-conf{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid transparent}.elast-conf-high{color:#fff;background:var(--positive-text)}.elast-conf-medium{color:#6b4e00;background:#ffe9b0;border-color:#f0c34a}.elast-conf-low{color:#fff;background:var(--negative-text)}.elast-conf-off{color:var(--text-muted);background:var(--panel-muted)}.market-table td.ep-pos{color:var(--positive-text);font-weight:600}.market-table td.ep-neg{color:var(--negative-text);font-weight:600}.table-scroll{max-height:62vh;overflow:auto}.basket-card{border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:12px;background:var(--panel-muted)}.selection-grid th,.selection-grid td{text-align:center;vertical-align:middle}.selection-grid td:first-child,.selection-grid th:first-child{text-align:left}.selection-grid .input{width:90px}.percent-input-wrap{display:inline-flex;align-items:center;gap:4px}.percent-input-wrap .percent-input{width:72px;max-width:72px}.percent-suffix{font-size:13px;color:var(--text-muted);flex-shrink:0}.form-field-control .percent-input-wrap .percent-input{max-width:100px}.clustering-form{display:flex;flex-direction:column;height:100%}.clustering-form .params-section{margin-bottom:14px}.clustering-source{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px}.clustering-pending{font-size:12.5px}.clustering-template-dropdown{min-width:260px;max-width:min(420px,100%)}.engine-badge{font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px;border:1px solid var(--border);background:var(--bg);white-space:nowrap}.engine-badge.template-badge{color:#1a5f9e;border-color:#1a5f9e;background:#1a5f9e14}.engine-badge.modified-badge{color:#9a5b00;border-color:#c47a00;background:#c47a001a}.params-actions{position:sticky;bottom:0;z-index:2;display:flex;align-items:center;gap:var(--space-4, 14px);padding:var(--space-3, 12px) 18px;margin:0 -18px;background:var(--panel);border-top:1px solid var(--border);box-shadow:var(--shadow-1, 0 -1px 0 transparent)}.params-status.ui-status-badge{font-size:12.5px;font-weight:600}.json-editor{width:100%;min-height:380px;flex:1 1 auto;resize:vertical;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.5;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#0f1c2b;color:#d7e7f5}.json-editor:focus{outline:none;border-color:var(--accent)}.help-hint{position:relative;display:inline-flex;align-items:center;vertical-align:middle;margin-left:4px;flex-shrink:0}.help-hint-icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;border:1px solid var(--border-strong);color:var(--text-muted);font-size:10px;font-weight:700;line-height:1;cursor:help;background:var(--panel-muted);-webkit-user-select:none;user-select:none}.help-hint:hover .help-hint-icon,.help-hint.open .help-hint-icon,.help-hint:focus-within .help-hint-icon{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.help-hint-popup--fixed{display:block;width:max-content;max-width:300px;padding:10px 12px;background:#1b2a3d;color:var(--text-invert);font-size:12px;font-weight:400;line-height:1.45;border-radius:var(--radius-sm);box-shadow:var(--shadow-win);z-index:10050;white-space:normal;text-align:left;pointer-events:auto}.check-label{display:inline-flex;align-items:center;gap:4px}.filter-name{margin-right:2px}.selection-topn .form-field{grid-template-columns:220px 1fr;padding:6px 0}.selection-topn .form-field-control .input[type=number]{width:110px}.selection-topn .form-field-control .select{width:280px;max-width:280px}.selection-topn-applyall{margin-top:8px}.selection-grid th{white-space:nowrap}.selection-grid th .help-hint{vertical-align:middle}.th-label{margin-right:2px}.selection-grid td:first-child{text-align:left}.grid th.info-col,.grid td.info-col{width:34px;min-width:34px;max-width:34px;padding:0;text-align:center}.grid th.status-col,.grid td.status-col{width:28px;min-width:28px;max-width:28px;padding:0 4px;text-align:center;vertical-align:middle}.grid th.sticky-chrome,.grid td.sticky-chrome{position:sticky;background-color:#fff;background-clip:padding-box}.grid thead th.sticky-chrome{z-index:6;background-color:var(--sidebar-bg)!important;color:var(--text-invert);cursor:pointer}.grid thead tr.cols th.sticky-chrome{background-color:var(--sidebar-bg-2)!important;z-index:6}.grid thead th.info-col.sticky-chrome,.grid thead th.status-col.sticky-chrome{cursor:default}.grid tbody td.sticky-chrome{z-index:1;background-color:#fff!important}.grid tbody tr.row-odd td.sticky-chrome{background-color:#eef2f8!important}.grid tbody tr.row-selected td.sticky-chrome{background-color:#d3efe8!important}.grid tr.row-not-optimal td:not(.sticky-chrome){opacity:.88}.grid td.sticky-chrome-end,.grid th.sticky-chrome-end{box-shadow:4px 0 8px -4px #0f172a2e}.grid th.row-index-col,.grid td.row-index{width:40px;min-width:40px;max-width:48px;text-align:right;font-variant-numeric:tabular-nums;color:var(--text-muted);font-size:11px;padding-left:6px;padding-right:8px}.grid thead th.row-index-col{cursor:default}table.grid.grid-resizable{table-layout:fixed}table.grid.grid-resizable th,table.grid.grid-resizable td{overflow:hidden;text-overflow:ellipsis}table.grid.grid-resizable th.row-index-col,table.grid.grid-resizable td.row-index{width:auto;min-width:0;max-width:none}.col-resize-handle{position:absolute;top:0;right:-3px;z-index:3;width:7px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none}.col-resize-handle:after{content:"";position:absolute;top:20%;bottom:20%;left:3px;width:1px;background:transparent}.col-resize-handle:hover:after,body.col-resizing .col-resize-handle:hover:after{background:#ffffff73}body.col-resizing,body.col-resizing *{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.th-label-row{display:inline-flex;align-items:center;gap:8px;max-width:100%}.col-pin-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:#ffffffb8;cursor:pointer;padding:0;margin:0;border-radius:0;display:inline-flex;align-items:center;justify-content:center;line-height:0;flex:0 0 auto}.col-pin-btn:hover{color:#fff;background:transparent}.col-pin-btn.on{color:var(--accent-strong);background:transparent}.col-pin-btn svg{display:block;width:15px;height:15px;transform:rotate(35deg);transform-origin:center 70%}.info-col .hover-tooltip-anchor{display:inline-flex;overflow:visible;text-overflow:unset;white-space:normal;min-width:0;align-items:center;justify-content:center;width:100%;height:100%}.info-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center}.info-btn:hover{color:var(--accent);background:var(--panel-muted)}.status-col-head{font-size:8px;color:#ffffff73;line-height:1}.status-dots{display:inline-flex;align-items:center;justify-content:center;gap:3px}.status-dot{width:8px;height:8px;border-radius:50%;box-sizing:border-box;flex:0 0 auto}.status-dot.on{background:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}.status-dot.off{background:transparent;border:1.5px solid #b7c4d2}.grid td.cell-dimmed,.grid td.cell-dimmed .num{color:var(--text-muted);opacity:.55}.product-detail{display:flex;flex-direction:column;height:100%;min-width:0}.product-detail-head{flex:0 0 auto;padding:14px 18px 10px;border-bottom:1px solid var(--border);background:var(--panel-muted)}.product-detail-name{font-size:15px;font-weight:700;color:var(--text)}.product-detail-meta{margin-top:4px;display:flex;gap:14px;font-size:12.5px;color:var(--text-muted)}.product-detail .tabs{overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.product-detail .tabs .tab{flex-shrink:0;white-space:nowrap}.product-detail .tab-panel{background:var(--panel)}.detail-list{padding:12px 18px 24px}.detail-row{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--border);font-size:13.5px}.detail-label{color:var(--text-muted)}.detail-value{color:var(--text);font-weight:600;text-align:right}.detail-value.filter-mark{font-size:15px;min-width:1.5em}.detail-value.filter-pass{color:var(--positive-text)}.detail-value.filter-soft{color:#b8860b}.detail-value.filter-fail{color:var(--negative-text)}.detail-value.filter-na{color:var(--text-muted);font-weight:500}.detail-value.selection-param-value{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px 12px;font-weight:500}.selection-thresholds{color:var(--text);font-weight:600}.selection-soft{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted)}.selection-soft-label{font-weight:500}.detail-groups{display:flex;flex-direction:column;gap:16px}.detail-group{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel);overflow:hidden}.detail-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.detail-group-title{margin:0;padding:10px 14px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);background:var(--panel-muted);border-bottom:1px solid var(--border)}.detail-group-body{padding:4px 14px 8px}.detail-group-body .detail-row:last-child{border-bottom:none}.price-explanation{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel-muted);padding:12px 14px;font-size:13px;line-height:1.5;color:var(--text);margin-bottom:16px}.price-explanation-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin:0 0 6px}.price-explanation-text{margin:0}.price-explanation-text+.price-explanation-text{margin-top:4px}.price-explanation-text.muted{color:var(--text-muted)}.price-explanation-text.warn{color:var(--accent-warn)}.sf-table{width:100%;border-collapse:collapse;font-size:13px}.sf-table th{text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);padding:8px 10px 6px;border-bottom:1px solid var(--border)}.sf-table th:nth-child(2),.sf-table th:nth-child(3),.sf-table th:nth-child(4){text-align:right}.sf-table td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle}.sf-table tr:last-child td{border-bottom:none}.sf-name{font-weight:600;color:var(--text)}.sf-threshold,.sf-value,.sf-result{text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.sf-value{font-weight:600}.sf-bracket{font-weight:700;padding:0 1px}.sf-bracket.hard{color:var(--text-muted)}.sf-bracket.soft{color:#b07a00}.sf-row.sf-pass .sf-value{color:var(--positive-text)}.sf-row.sf-fail .sf-value{color:var(--negative-text)}.sf-row.sf-soft .sf-value{color:#9a6b00}.sf-row.sf-off .sf-value,.sf-row.sf-na .sf-value,.sf-row.sf-unknown .sf-value{color:var(--text-muted);font-weight:500}.sf-row{box-shadow:inset 3px 0 0 transparent}.sf-row.sf-pass{box-shadow:inset 3px 0 0 var(--positive-text)}.sf-row.sf-fail{box-shadow:inset 3px 0 0 var(--negative-text)}.sf-row.sf-soft{box-shadow:inset 3px 0 #f0c34a}.sf-row.sf-off,.sf-row.sf-na,.sf-row.sf-unknown{box-shadow:inset 3px 0 0 var(--border)}.sf-row.sf-off .sf-name,.sf-row.sf-na .sf-name,.sf-row.sf-unknown .sf-name{color:var(--text-muted)}.elasticity-badge{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid transparent;vertical-align:middle}.elasticity-badge.elastic-ok{color:#fff;background:var(--positive-text)}.elasticity-badge.elastic-warn{color:#6b4e00;background:#ffe9b0;border-color:#f0c34a}.detail-value.elastic-active{font-weight:700;color:var(--positive-text)}.detail-row-stack{flex-direction:column;align-items:stretch;justify-content:flex-start;gap:2px}.detail-row-main{display:flex;justify-content:space-between;gap:16px}.detail-row-sub{display:flex;justify-content:flex-end}.price-delta{font-size:11.5px;font-weight:600;color:var(--text-muted);letter-spacing:.01em}.price-delta.pos{color:var(--positive-text)}.price-delta.neg{color:var(--negative-text)}.detail-value-muted{color:var(--text-muted);font-weight:500;font-size:11.5px}.detail-value.strategy-diff{color:#b06a1e;font-weight:700}.composition-text{flex-direction:column;justify-content:flex-start;gap:3px}.composition-line{display:flex;align-items:baseline;gap:8px;font-size:12.5px}.composition-line-label{color:var(--text);font-weight:600;min-width:90px}.composition-line-w{color:var(--text-muted);font-variant-numeric:tabular-nums}.composition-line-price{color:var(--text);font-weight:700;margin-left:auto;font-variant-numeric:tabular-nums}.composition-formula{font-size:11px;color:var(--text-muted);margin-top:2px}.bounds-plot-group{overflow:visible}.bounds-plot-group .bounds-plot{--bp-label-w: 120px;position:relative;display:flex;flex-direction:column;gap:9px;padding:0}.bp-label-band{flex:0 0 auto}.bp-toggles{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-bottom:4px}.bp-toggle{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;border:1px solid var(--border);background:var(--panel);font-size:11.5px;color:var(--text-muted);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.bp-toggle.on{color:var(--text);border-color:var(--border-strong);background:var(--panel-muted)}.bp-toggle.off{opacity:.6}.bp-toggle.disabled{opacity:.35;cursor:not-allowed}.bp-toggle-dot{width:9px;height:9px;border-radius:50%;flex:0 0 9px;background:var(--bp-ref-color, #5d6e80)}.bp-toggle-dot[data-ref=current_price],.bp-ref[data-ref=current_price]{--bp-ref-color: #5d6e80}.bp-toggle-dot[data-ref=optimal_price],.bp-ref[data-ref=optimal_price]{--bp-ref-color: #1f8f7e}.bp-toggle-dot[data-ref=market_price],.bp-ref[data-ref=market_price]{--bp-ref-color: #36a394}.bp-toggle-dot[data-ref=cost],.bp-ref[data-ref=cost]{--bp-ref-color: #7a4f9d}.bp-overlay{position:absolute;left:calc(var(--bp-label-w) + 10px);right:0;top:0;bottom:0;pointer-events:none}.bp-ref{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed var(--bp-ref-color, #5d6e80)}.bp-ref-label{position:absolute;left:4px;font-size:10px;font-weight:700;color:var(--bp-ref-color, #5d6e80);background:var(--panel);padding:1px 4px;border-radius:3px;pointer-events:auto;white-space:nowrap;cursor:help}.bp-ref-tooltip{position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);z-index:31;min-width:110px;background:var(--panel);border:1px solid var(--border-strong);border-radius:7px;padding:5px 9px;font-size:11px;font-weight:400;line-height:1.3;color:var(--text);white-space:nowrap;box-shadow:0 4px 14px #00000029;font-variant-numeric:tabular-nums;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease}.bp-ref-tooltip.bp-ref-tooltip-rich{min-width:210px;text-align:left;white-space:normal;padding:7px 10px;line-height:1.4}.bp-ref-tooltip-rich .bp-tooltip-title{font-weight:700;margin-bottom:4px;color:var(--text)}.bp-ref-tooltip-rich .bp-tooltip-row{color:var(--text-muted)}.bp-ref-tooltip-rich .bp-tooltip-row b{color:var(--text);font-variant-numeric:tabular-nums}.bp-ref-label:hover .bp-ref-tooltip{opacity:1;visibility:visible}.bp-row{display:grid;grid-template-columns:var(--bp-label-w) 1fr;align-items:center;gap:10px}.bp-row-label{font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bp-row-track{position:relative;height:16px;border-radius:5px;background:var(--panel-muted);border:1px solid var(--border)}.bp-seg{position:absolute;top:0;bottom:0;min-width:3px;transition:filter .12s ease;cursor:help}.bp-seg.bp-lower{left:0;border-radius:5px 0 0 5px}.bp-seg.bp-upper{right:0;border-radius:0 5px 5px 0}.bp-seg.t-binding{background:var(--accent)}.bp-seg.t-set{background:color-mix(in srgb,var(--accent) 50%,var(--panel))}.bp-seg.t-off{background:var(--accent-soft);border:1px dashed var(--accent)}.bp-seg.t-not_set{background-color:var(--accent-soft);background-image:repeating-linear-gradient(45deg,color-mix(in srgb,var(--accent) 55%,transparent) 0 3px,transparent 3px 7px)}.bp-seg.bp-unset{left:0;right:0;border-radius:5px}.bp-seg.bp-unset .bp-tooltip{left:50%;right:auto;transform:translate(-50%)}.bp-seg:hover{filter:brightness(1.15)}.bp-tooltip{position:absolute;bottom:calc(100% + 7px);z-index:30;min-width:150px;background:var(--panel);border:1px solid var(--border-strong);border-radius:7px;padding:7px 10px;font-size:11px;line-height:1.35;color:var(--text);box-shadow:0 4px 14px #00000029;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .12s ease}.bp-seg:hover .bp-tooltip{opacity:1;visibility:visible}.bp-lower .bp-tooltip{right:0;transform:translate(50%)}.bp-upper .bp-tooltip{left:0;transform:translate(-50%)}.bp-tooltip-title{font-weight:700;margin-bottom:4px;color:var(--text)}.bp-tooltip-row{color:var(--text-muted)}.bp-tooltip-row b{color:var(--text);font-variant-numeric:tabular-nums}.bp-tooltip-param{font-variant-numeric:tabular-nums}.bp-tooltip-disabled{margin-bottom:2px;font-weight:700;color:var(--text-muted)}.bp-axis{display:grid;grid-template-columns:var(--bp-label-w) 1fr;gap:10px;margin-top:4px}.bp-axis-track{position:relative;height:20px}.bp-tick{position:absolute;top:0;bottom:0}.bp-tick-line{position:absolute;top:0;left:0;width:0;height:5px;border-left:1px solid var(--border-strong)}.bp-tick-label{position:absolute;top:7px;left:0;font-size:10.5px;color:var(--text-muted);white-space:nowrap;font-variant-numeric:tabular-nums}.recompute{padding:14px 18px 16px;display:flex;flex-direction:column;gap:10px;box-sizing:border-box}.recompute-form{display:flex;flex-direction:column;gap:0}.recompute-top-row{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px 28px}.recompute-field{display:flex;flex-direction:column;gap:6px;min-width:200px}.recompute-field:not(.recompute-field-inline) .select-trigger{align-self:flex-start}.recompute-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.recompute-label-row{display:inline-flex;align-items:center;gap:2px}.recompute-field-inline{flex-direction:row;align-items:center;gap:8px}.recompute-checkbox{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;padding:0}.recompute-checkbox-wrap{display:inline-flex;align-items:center;gap:2px}.recompute-checkbox input:disabled{cursor:default;opacity:.6}.recompute-stages{border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 12px;background:var(--panel-muted)}.recompute-stages-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:4px}.recompute-stages-list{display:flex;flex-direction:column;gap:0}.recompute-stage{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:12.5px;line-height:1.3}.recompute-stage-mark{width:14px;color:var(--accent);font-weight:700;flex:0 0 14px;font-size:11px;text-align:center}.recompute-stage-body{display:flex;flex-direction:row;align-items:baseline;gap:6px;min-width:0;flex:1}.recompute-stage-label{color:var(--text);font-weight:600;flex-shrink:0}.recompute-stage-hint{color:var(--text-muted);font-size:11px;font-family:var(--mono, ui-monospace, monospace);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.recompute-stage-hint:before{content:"·";margin-right:6px;color:var(--border-strong);font-family:var(--font)}.recompute-stage.skipped .recompute-stage-mark{color:var(--text-muted)}.recompute-stage.skipped .recompute-stage-label{color:var(--text-muted);text-decoration:line-through}.recompute-note{margin-top:8px;font-size:12.5px;color:var(--text-muted)}.recompute-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-top:0;padding-top:0}.recompute-run-btn{min-width:200px;margin-left:auto}.recompute-status{min-height:38px;padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;line-height:1.45;background:var(--panel-muted);border:1px solid var(--border);color:var(--text-muted)}.recompute-status-idle{color:var(--text-muted);opacity:.85}.recompute-status-pending{background:var(--accent-soft);border-color:#1f8f7e40;color:var(--text)}.recompute-status-ok{background:var(--status-success-bg);border-color:#2f7d5b40;color:var(--status-success-fg)}.recompute-status-error{background:var(--status-danger-bg);border-color:#b3535f40;color:var(--status-danger-fg)}.recompute-field-asof{flex:1 1 280px;min-width:280px}.recompute-asof-controls{display:flex;flex-wrap:nowrap;align-items:stretch;gap:8px}.recompute-datepicker{flex:0 0 auto;min-width:148px;align-self:stretch}.recompute-datepicker.date-picker-trigger{min-height:36px;height:100%;box-sizing:border-box}.recompute-datepicker .date-picker-value{flex:1 1 auto}.data-upload{display:flex;flex-direction:column;height:100%}.data-upload-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.data-upload-actions{display:flex;align-items:center;gap:8px}.data-upload-title{font-size:16px;font-weight:600}.data-upload-sub{font-size:13px;color:var(--text-muted);margin-top:2px}.data-upload-meta{font-size:12.5px;color:var(--text-muted);margin-left:4px;display:inline-flex;align-items:center;flex-wrap:wrap;gap:0;min-width:0}.data-upload-meta a{color:var(--accent);text-decoration:none;font-weight:600}.data-upload-meta a:hover{text-decoration:underline}.data-upload-meta-sep{margin:0 6px;opacity:.55}.data-upload-section-title{font-size:13.5px;font-weight:600;margin-top:6px}.data-upload-warn{padding:8px 12px;border-radius:var(--radius-sm);background:var(--status-warning-bg);color:var(--status-warning-fg);font-size:13px;margin-top:10px}.data-upload-result{padding:8px 12px;border-radius:var(--radius-sm);font-size:13px;margin-bottom:10px}.data-upload-result.ok{background:var(--positive-bg);color:var(--positive-text)}.data-upload-result.error{background:var(--negative-bg);color:var(--negative-text)}.data-upload-table{width:100%;border-collapse:collapse;font-size:13px}.data-upload-table th,.data-upload-table td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--border)}.data-upload-table th{color:var(--text-muted);font-weight:600}.data-upload-hash{font-family:var(--mono, monospace);color:var(--text-muted)}.data-upload-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:4px 0 8px}.data-upload-checks{display:flex;flex-wrap:wrap;align-items:center;gap:18px;margin:0 0 10px}.data-upload-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-muted)}.data-upload-check-all{font-weight:600;color:var(--text)}.data-upload-step-checks{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.data-upload-step-row{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.data-upload-inline-check{margin:0}.data-upload-cleanup .data-upload-check{align-items:flex-start;cursor:pointer}.data-upload-cleanup .data-upload-check input[type=radio]{margin-top:2px}.data-upload-cleanup-title{display:block;font-weight:600;color:var(--text)}.data-upload-cleanup-desc{display:block;font-size:12px;color:var(--text-muted);margin-top:2px}.data-upload-cleanup-confirm{display:flex;flex-direction:column;gap:12px}.data-upload-cleanup-hint{margin:0;font-size:13px}.data-upload-cleanup-hint code{background:var(--bg-invert);color:var(--text-invert);padding:1px 6px;border-radius:var(--radius-sm, 4px)}.data-upload-cleanup-confirm-input{width:100%;max-width:100%}.data-upload-cleanup-dialog .ui-dialog-footer{display:flex;justify-content:flex-end;gap:8px}.data-upload-soon{margin-left:6px}.data-upload-market-row{align-items:center}.data-upload-market-label{font-size:13px;color:var(--text);white-space:nowrap}.data-upload-subblock{margin-top:10px}.data-upload-date{width:150px}.data-upload-config{margin:10px 0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.data-upload-config-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:var(--panel-muted);font-size:13px;font-weight:600;color:var(--text)}.data-upload-config-head em{font-weight:400;color:var(--text-muted)}.data-upload-json{width:100%;min-height:180px;padding:10px 12px;border:none;border-top:1px solid var(--border);font-family:var(--mono, ui-monospace, monospace);font-size:12.5px;line-height:1.45;resize:vertical;outline:none;background:var(--bg);color:var(--text-invert)}.data-upload-json:focus{box-shadow:inset 0 0 0 2px var(--accent-soft)}.data-upload-hint{margin:0 0 12px;font-size:12.5px;color:var(--text-muted);line-height:1.45}.data-upload-hint code{font-size:11.5px}.data-upload-matching{max-width:720px}.data-upload-matching .form-field{grid-template-columns:200px 1fr}.data-upload-matching-prompt{align-items:start}.data-upload-matching-prompt .form-field-label{padding-top:8px;flex-direction:column;align-items:flex-start;gap:2px}.data-upload-field-hint{font-size:11px;font-weight:400;color:var(--text-muted)}.data-upload-matching-prompt-ta{min-height:120px;border:1px solid var(--border);border-radius:var(--radius-sm);max-width:100%}.data-upload-matching-autos{flex-wrap:wrap;gap:10px 18px}.data-upload-row{cursor:pointer}.data-upload-row:hover{background:var(--bg-alt)}.data-upload-job-log{margin-top:8px;display:flex;flex-direction:column;gap:3px}.data-upload-job-log-line{display:flex;gap:8px;font-family:var(--mono, ui-monospace, monospace);font-size:12px;line-height:1.4;color:var(--text)}.data-upload-job-log-ts{color:var(--text-muted);flex:0 0 auto}.data-upload-job-log-stage{color:var(--status-info-fg);flex:0 0 auto}.data-upload-job-log-error{color:var(--negative-text)}.data-upload-job-log-warn{color:var(--status-warning-fg)}.data-upload-job-events{display:flex;flex-direction:column;gap:4px;max-height:60vh;overflow:auto}.data-upload-validation{display:flex;flex-direction:column;gap:10px}.data-upload-validation-errors,.data-upload-validation-warn{margin:0;padding-left:20px;font-size:13px}.data-upload-validation-errors{color:var(--negative-text)}.data-upload-validation-warn{color:var(--status-warning-fg)}.data-upload-validation-section{display:flex;flex-direction:column;gap:6px}.data-upload-modal{max-width:720px}.grid th.filter-col,.grid td.filter-col{text-align:center;min-width:52px;font-size:13px}.grid td.filter-pass{color:var(--positive-text);font-weight:700}.grid td.filter-soft{color:#b8860b;font-weight:700}.grid td.filter-fail{color:var(--negative-text);font-weight:700}.grid td.filter-na{color:var(--text-muted)}.group-head-filters{background:var(--panel-muted)}.window-btn:disabled,.window-btn.ui-icon-btn:disabled{opacity:.35;cursor:not-allowed}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.btn-danger{background:var(--status-danger-fg);color:#fff;border-color:var(--status-danger-fg)}.btn-danger:hover{filter:brightness(.93)}.indicator-recompute{min-width:0}.indicator-params-row{align-items:flex-end;gap:14px 20px}.indicator-params-row .recompute-field{min-width:0}.indicator-inline-control{display:inline-flex;align-items:center;gap:8px;min-height:35px}.indicator-inline-suffix{font-size:13px;font-weight:600;color:var(--text-muted)}.indicator-days-input{width:72px;text-align:right;font-variant-numeric:tabular-nums}.indicator-lifecycle-field{flex:1 1 220px;min-width:220px}.indicator-lifecycle-select{width:100%;max-width:280px}.indicator-baseline-windows{display:flex;flex-direction:column;gap:2px}.indicator-period-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.indicator-period-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--panel)}.indicator-period-card.report{border-color:#1f8f7e59;background:linear-gradient(180deg,var(--accent-soft),var(--panel) 70%)}.indicator-period-card.baseline{background:linear-gradient(180deg,#edf2f7,var(--panel) 70%)}.indicator-period-card .date-picker-trigger,.indicator-baseline-calendar{width:100%}.indicator-baseline-calendar{display:flex;align-items:center;gap:8px;min-height:35px;padding:8px 10px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--panel);font-size:13px;font-variant-numeric:tabular-nums}.indicator-period-value{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}.indicator-source-note{padding:7px 10px;border-left:3px solid var(--accent);background:var(--panel-muted);color:var(--text-muted);font-size:12px;line-height:1.4}.weekly-news{display:flex;flex-direction:column;height:100%;min-height:0;background:#edf2f7}.weekly-chrome{flex:0 0 auto}.weekly-news-body{flex:1 1 auto;min-height:0;overflow:auto;padding:14px 16px 16px}.weekly-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}.weekly-recommendations-block{max-width:100%}.weekly-recommendations-block .weekly-group-influence{margin-top:0}.weekly-recommendations-block .weekly-group-influence-head{margin-bottom:8px}.weekly-block{min-width:0;display:flex;flex-direction:column;padding:14px 16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-1)}.weekly-block-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.weekly-block-head h2{margin:0;font-size:16px;color:var(--text)}.weekly-block-head .weekly-main-metric-periods{font-weight:400}.weekly-block-head .weekly-expand-btn{flex:0 0 auto}.weekly-revenue-stack{display:flex;flex-direction:column;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--panel-muted)}.weekly-main-metric{display:grid;grid-template-columns:1fr auto;gap:2px 8px;align-content:center}.weekly-main-metric-inline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.weekly-main-metric-body{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.weekly-main-metric-body>span,.weekly-main-metric-title{color:var(--text);font-size:15px;font-weight:700;letter-spacing:.01em;text-transform:none}.weekly-main-metric-periods{font-size:12px;font-weight:500;color:var(--text-muted);letter-spacing:0}.weekly-main-metric-values{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 12px}.weekly-main-metric-body strong{font-size:24px;line-height:1.15;font-variant-numeric:tabular-nums;background:transparent!important}.weekly-main-metric-body em{font-size:14px;font-style:normal;font-weight:700;background:transparent!important}.weekly-delta-pos{color:var(--status-success-fg);background:transparent!important}.weekly-delta-neg{color:var(--status-danger-fg);background:transparent!important}.weekly-main-metric-body small{color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.weekly-main-metric-inline>.btn{flex-shrink:0;align-self:center}.weekly-main-metric-inline>.weekly-main-metric-actions{flex-shrink:0;align-self:flex-start}.weekly-main-metric>span{grid-column:1 / -1;color:var(--text-muted);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.weekly-main-metric strong{font-size:22px;line-height:1.15;font-variant-numeric:tabular-nums}.weekly-main-metric em{align-self:center;font-size:13px;font-style:normal;font-weight:700}.weekly-main-metric small{grid-column:1 / -1;color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}.weekly-waterfall{min-width:0;width:100%}.weekly-waterfall-svg{display:block;width:100%;height:auto}.weekly-waterfall-callout{fill:#7a8898;font-size:8px;font-weight:500;letter-spacing:.01em}.weekly-waterfall-leader{stroke:#c5d0db;stroke-width:1;stroke-linecap:round}.weekly-waterfall.expanded .weekly-waterfall-callout{font-size:10px}.weekly-waterfall-modal-card{width:min(1200px,100%)}.weekly-waterfall-callouts{display:grid;gap:6px;margin-bottom:0}.weekly-waterfall-callouts .hover-tooltip-anchor{min-width:0;width:100%;display:block}.weekly-waterfall-callout-item{display:flex;flex-direction:column;align-items:center;min-width:0;width:100%;text-align:center;font-size:9px;font-weight:500;line-height:1.25;color:#7a8898;cursor:help;padding-bottom:2px}.weekly-waterfall-callout-item>span{display:block;width:100%;max-width:100%;overflow-wrap:break-word;word-wrap:break-word;word-break:normal;white-space:normal;-webkit-hyphens:auto;hyphens:auto}.weekly-waterfall.expanded .weekly-waterfall-callout-item{font-size:11px;line-height:1.3}.weekly-main-metric-actions{display:inline-flex;flex-direction:column;align-items:center;gap:6px;flex-shrink:0;margin-left:auto}.weekly-details-btn{font-size:12px;font-weight:700;white-space:nowrap}.weekly-details-link{font-size:13px;font-weight:700;color:var(--text);padding:4px 10px}.weekly-details-link:hover{color:var(--accent)}.weekly-expand-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;margin:0;padding:2px 4px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;line-height:1}.weekly-expand-btn:hover{color:var(--text)}.weekly-expand-caption{font-size:8px;font-weight:500;letter-spacing:.01em;white-space:nowrap;text-transform:lowercase}.weekly-waterfall-labels{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-top:4px}.weekly-waterfall-labels .hover-tooltip-anchor{min-width:0;display:block}.weekly-waterfall-label-chip{display:flex;flex-direction:column;align-items:center;gap:1px;text-align:center;font-size:10px;font-weight:600;line-height:1.15;color:var(--text);cursor:help}.weekly-waterfall-zero{stroke:#b7c3d0;stroke-width:1;stroke-dasharray:3 3}.weekly-waterfall-link{stroke:#9eacbc;stroke-width:1}.weekly-waterfall-bar.positive{fill:var(--status-success-fg)}.weekly-waterfall-bar.negative{fill:var(--status-danger-fg)}.weekly-waterfall-bar.total-pos{fill:var(--status-success-fg)}.weekly-waterfall-bar.total-neg{fill:var(--status-danger-fg)}.weekly-waterfall-value{font-size:9px;font-weight:700;fill:var(--text)}.weekly-waterfall-value.positive,.weekly-waterfall-value.cell-pos{fill:var(--status-success-fg)}.weekly-waterfall-value.negative,.weekly-waterfall-value.cell-neg{fill:var(--status-danger-fg)}.weekly-waterfall-pct{font-size:8px;font-weight:600;fill:var(--text-muted)}.weekly-waterfall-pct.positive,.weekly-waterfall-pct.cell-pos{fill:var(--status-success-fg)}.weekly-waterfall-pct.negative,.weekly-waterfall-pct.cell-neg{fill:var(--status-danger-fg)}.weekly-group-influence{margin-top:10px;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.weekly-group-influence-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.weekly-group-influence-head h3{margin:0;font-size:12px;color:var(--text)}.weekly-rank-head-left{display:inline-flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}.weekly-rank-topn{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.weekly-rank-switch .abc-switch-label-left{min-width:7.2em}.weekly-rank-switch .abc-switch-label-right{min-width:2.2em}.weekly-rank-topn .indicator-days-input{width:56px}.weekly-rank-expand{display:inline-flex;align-items:center;gap:6px;font-size:12px}.weekly-rank-table-wrap{flex:0 1 auto;overflow:auto;max-height:360px;padding:0;border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff}.weekly-rank-table-wrap.expanded{max-height:none;flex:1;min-height:0}.weekly-rank-stores{display:flex;flex-direction:column;gap:10px;min-height:0}.weekly-rank-stores.expanded{flex:1;overflow:auto}.weekly-rank-store-title{margin:0 0 4px;font-size:11px;font-weight:600;color:var(--text-muted)}.weekly-rank-grid{width:100%}table.grid.weekly-rank-grid thead tr.cols th{top:0;cursor:default}.weekly-rank-grid tbody tr{cursor:pointer}.weekly-rank-grid td.name,.weekly-rank-grid th[data-col=product]{max-width:none!important}.weekly-rank-grid.grid-resizable td[data-col=product],.weekly-rank-grid.grid-resizable th[data-col=product]{overflow:hidden;text-overflow:ellipsis}.weekly-rank-name{display:block;max-width:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-rank-comment{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.weekly-rank-price{display:inline-block;border-bottom:1px dotted color-mix(in srgb,var(--text-muted) 55%,transparent);cursor:help}.weekly-rank-tag{display:inline-block;padding:1px 6px;border-radius:var(--radius-sm);font-size:10px;font-weight:700}.weekly-rank-tag.best{color:var(--status-success-fg);background:var(--status-success-bg)}.weekly-rank-tag.worst{color:var(--status-danger-fg);background:var(--status-danger-bg)}.weekly-rank-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;align-items:stretch;justify-content:center;padding:24px;background:#0f172a73}.weekly-rank-modal-card{width:min(1100px,100%);max-height:100%;display:flex;flex-direction:column;gap:10px;padding:14px 16px;border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow-2)}.weekly-rank-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.weekly-rank-modal-head h3{margin:0;font-size:16px}.weekly-rank-modal-head .weekly-rank-topn,.weekly-rank-modal-head .weekly-rank-topn .indicator-days-input{font-size:13px}.weekly-group-empty{color:var(--text-muted);font-size:11px;padding:4px 0}.weekly-position-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:10px}.weekly-position-stats span{padding:2px 6px;border-radius:999px;background:var(--panel-muted);color:var(--text-muted);font-size:10px;font-variant-numeric:tabular-nums}.weekly-source-warning{margin-top:8px;padding:5px 7px;border-left:3px solid #b7791f;background:var(--status-warning-bg);color:var(--status-warning-fg);font-size:10px;line-height:1.4}.weekly-coming-soon{position:relative;overflow:hidden;min-height:220px}.weekly-coming-soon-body{flex:1;filter:blur(2.5px);opacity:.55;-webkit-user-select:none;user-select:none;pointer-events:none}.weekly-coming-soon-title{font-size:16px;font-weight:700;color:var(--text);margin-bottom:14px}.weekly-coming-soon-fake{display:flex;align-items:flex-end;gap:8px;height:72px;margin-top:8px}.weekly-coming-soon-fake span{flex:1;border-radius:4px 4px 0 0;background:#d4dde7}.weekly-coming-soon-fake span:nth-child(1){height:45%}.weekly-coming-soon-fake span:nth-child(2){height:80%}.weekly-coming-soon-fake span:nth-child(3){height:60%}.weekly-coming-soon-badge{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--text);background:linear-gradient(180deg,#edf2f733,#edf2f79e)}.weekly-loading,.weekly-empty{min-height:240px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel)}.weekly-lifecycle{display:inline-flex;align-items:center;padding:1px 6px;border-radius:999px;font-size:10px;font-weight:700;line-height:1.4;white-space:nowrap}.weekly-lifecycle.shared{background:var(--panel-muted);color:var(--text-muted)}.weekly-lifecycle.new{background:var(--status-success-bg);color:var(--status-success-fg)}.weekly-lifecycle.discontinued{background:#f3e8e8;color:var(--status-danger-fg)}.revenue-details .th-label-row{display:inline-flex;align-items:center;gap:4px}@media (max-width: 900px){.weekly-tiles{grid-template-columns:1fr}.weekly-waterfall-labels{gap:4px}.indicator-period-grid{grid-template-columns:1fr}}
