:root{--bg:#f3f6fa;--panel:#fff;--line:#d5dee9;--muted:#60718d;--ink:#0f172a;--teal:#0f766e;--blue:#2563eb;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}button,input,select{font:inherit}.icon-btn,.primary-btn{border:1px solid var(--line);min-height:34px;color:var(--ink);white-space:nowrap;cursor:pointer;background:#fff;border-radius:7px;justify-content:center;align-items:center;gap:7px;padding:8px 12px;font-weight:700;display:inline-flex}.icon-btn:hover,.primary-btn:hover{border-color:#9fb2ca}.icon-btn:disabled,.primary-btn:disabled{opacity:.55;cursor:default}.icon-btn:disabled:hover,.primary-btn:disabled:hover{border-color:var(--line)}.primary-btn{background:var(--ink);border-color:var(--ink);color:#fff}.export-btn{width:34px;min-width:34px;min-height:34px;padding:0;font-size:18px;line-height:1}.panel-head .export-btn{align-self:flex-start;margin-left:auto}.export-menu{align-items:center;margin-bottom:1px;display:inline-flex}.export-dialog{width:min(420px,100%);overflow:hidden}.export-dialog-options{gap:8px;padding:12px 16px 16px;display:grid}.export-dialog-options button{border:1px solid var(--line);color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:7px;padding:12px 14px;font-weight:800}.export-dialog-options button:hover{background:#eef6ff;border-color:#9fb2ca}.app-shell{max-width:1780px;margin:0 auto;padding:14px 18px 40px}.topbar{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:12px;display:flex}h1{margin:0;font-size:24px;line-height:1.15}.source-line,.panel-sub,.article-meta,.muted,label span{color:var(--muted);font-size:12px}.logout-button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:7px;padding:9px 13px;font-weight:700}.logout-button:hover{color:var(--ink);border-color:#9fb2ca}.workspace-tabs{border-bottom:1px solid var(--line);gap:18px;margin-bottom:14px;display:flex}.workspace-tab{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:12px 0;font-weight:700}.workspace-tab.active{color:var(--teal);border-bottom:2px solid var(--teal)}.workspace-tab-production{margin-left:auto}.filters{grid-template-columns:minmax(260px,1.8fr) repeat(4,minmax(160px,1fr)) auto;align-items:end;gap:10px;margin-bottom:14px;display:grid}label{text-transform:uppercase;letter-spacing:0;gap:5px;display:grid}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:7px;padding:9px 11px}.mode-tabs{border:1px solid var(--line);background:#fff;border-radius:7px;display:flex;overflow:hidden}.mode-tabs button{border:0;border-left:1px solid var(--line);cursor:pointer;background:#fff;padding:10px 14px}.mode-tabs button:first-child{border-left:0}.mode-tabs .active{color:var(--teal);background:#dff3ee;font-weight:800}.kpis{grid-template-columns:repeat(7,minmax(150px,1fr));gap:12px;margin-bottom:14px;display:grid}.kpi,.panel,.article-card,.incoming-card,.funnel-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 28px #0f172a0d}.kpi{padding:14px 16px}.kpi-title{color:var(--muted);margin-bottom:8px;font-size:12px}.kpi-value{font-size:24px;font-weight:800}.grid{--grid-panel-height:clamp(420px, calc(100vh - 255px), 660px);grid-template-columns:minmax(0,1.15fr) minmax(0,.95fr);align-items:stretch;gap:12px;margin-bottom:14px;display:grid}.panel{overflow:hidden}.grid>.panel{min-height:420px;height:var(--grid-panel-height);flex-direction:column;display:flex}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:14px 16px;display:flex}.panel-title,.production-title{font-weight:800}.alert-list-controls,.incoming-filter,.funnel-filter-bar{border-bottom:1px solid var(--line);align-items:end;gap:14px;padding:12px 16px;display:flex}.alert-list-controls label,.incoming-filter label{max-width:210px}.incoming-summary,.alert-summary{color:var(--muted);margin-left:auto;font-size:12px}.article-list-tools{flex-wrap:wrap;align-items:flex-end;gap:10px;margin-bottom:12px;padding:8px 16px;display:flex}.article-list-tools-title{align-self:center;min-width:160px;margin-right:0}.article-list-tools label{gap:4px;width:min(220px,100%)}.article-list-tools label span{text-align:center;justify-self:center;width:100%;max-width:145px;min-height:28px;line-height:1.15}.article-list-tools input,.article-list-tools select{min-height:32px;padding:6px 10px}.article-list-tools .article-filter-days{width:138px}.article-list-tools .article-filter-days span{max-width:120px}.article-list-tools .article-filter-speed{width:138px}.article-list-tools .article-filter-speed span{max-width:95px}.article-list-tools .article-filter-search{width:210px;margin-left:auto}.article-list-tools .article-filter-search span{max-width:130px}.article-list-tools .article-filter-tag{width:138px;margin-left:0}.article-list-tools .article-filter-tag span{max-width:70px}.article-list-summary{color:var(--muted);white-space:nowrap;margin-bottom:9px;margin-left:6px;font-size:12px}.article-list-tools .icon-btn{min-height:34px;margin-top:0;margin-bottom:1px;padding:6px 10px}.article-list-tools .article-tag-create{min-width:128px}.article-list{gap:10px;display:grid}.article-card,.incoming-card,.funnel-card{margin-bottom:10px;overflow:hidden}.article-summary,.incoming-article-summary,.funnel-summary{text-align:left;cursor:pointer;background:#fff;border:0;grid-template-columns:auto minmax(260px,1fr) repeat(7,minmax(92px,auto));align-items:center;gap:12px;width:100%;padding:12px 14px;display:grid}.stock-article-summary{grid-template-columns:22px minmax(220px,1fr) minmax(142px,170px) minmax(58px,68px) minmax(68px,78px) minmax(82px,92px) minmax(78px,88px) minmax(78px,88px) minmax(78px,88px) minmax(78px,88px) minmax(130px,150px)}.incoming-article-summary{grid-template-columns:auto minmax(250px,1fr) repeat(3,minmax(96px,auto))}.funnel-summary{grid-template-columns:auto minmax(250px,1fr) minmax(142px,170px) auto repeat(7,minmax(90px,auto))}.chev,.size-toggle{width:22px;height:22px;color:var(--teal);background:#e7f5f1;border:1px solid #b9dfd6;border-radius:6px;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.size-toggle{margin-right:5px}.article-name{font-weight:850;display:inline-block}.article-name+.article-meta{margin-left:5px}.article-nm{display:inline-block}.metric{color:var(--ink);justify-items:end;gap:3px;display:grid}.metric span{color:var(--muted);font-size:11px}.metric b{font-size:15px}.sort-metric{cursor:pointer;background:0 0;border:0;border-radius:6px;padding:3px 5px}.sort-metric:hover{background:#eef6ff}.stock-article-summary .article-tags,.funnel-summary .article-tags{justify-content:center;justify-self:center;width:100%}.stock-article-summary .metric{text-align:center;justify-items:center;width:100%;min-width:0}.stock-article-summary .metric span{text-align:center;white-space:normal;line-height:1.1}.stock-article-summary .metric b{text-align:center}.stock-article-summary .sort-metric{padding-left:2px;padding-right:2px}.funnel-summary .metric{text-align:center;justify-items:center}.funnel-summary .metric span{text-align:center}.funnel-chart-mini{align-self:center;min-height:30px;padding:5px 9px;font-size:12px}.funnel-filter-bar label{width:190px}.copy-target{cursor:copy;border-radius:4px}.copy-target:hover{color:var(--teal);text-underline-offset:3px;text-decoration:underline}.copy-code{font-weight:800}.article-tags{cursor:default;flex-wrap:wrap;align-items:center;gap:5px;min-width:0;display:flex}.article-tag-list{flex-wrap:wrap;gap:4px;min-width:0;display:flex}.tag-chip-wrap{flex-wrap:wrap;align-items:center;gap:5px;display:inline-flex}.tag-chip{border:1px solid var(--tag-border,#b9dfd6);background:var(--tag-bg,#e7f5f1);max-width:150px;min-height:24px;color:var(--tag-text,var(--teal));border-radius:999px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;font-weight:800;display:inline-flex}.tag-chip-button{cursor:pointer;font:inherit}.tag-chip-button:hover{filter:brightness(.98)}.tag-chip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.article-tag-select{cursor:pointer;border-radius:6px;width:auto;min-width:74px;max-width:96px;min-height:26px;padding:3px 7px;font-size:12px}.article-tag-select:disabled{color:var(--muted);cursor:default}.tag-chip-menu{align-items:center;gap:5px;display:inline-flex}.tag-chip-menu select{width:118px;min-height:28px;padding:4px 7px;font-size:12px}.tag-chip-menu .icon-btn{min-height:28px;padding:4px 8px;font-size:12px}.modal-backdrop{z-index:50;background:#0f172a47;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.tag-settings{grid-template-rows:auto auto minmax(0,1fr);width:min(880px,100%);max-height:min(720px,100vh - 48px);display:grid;overflow:hidden}.tag-settings-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.tag-settings-create{border-bottom:1px solid var(--line);grid-template-columns:minmax(190px,1fr) minmax(260px,auto) auto;align-items:end;gap:12px;padding:12px 16px;display:grid}.tag-settings-create input{min-height:34px}.tag-settings-list{gap:8px;padding:12px 16px 16px;display:grid;overflow:auto}.tag-settings-row{border:1px solid var(--line);background:#fff;border-radius:7px;grid-template-columns:minmax(115px,150px) minmax(150px,1fr) minmax(230px,auto) auto auto;align-items:center;gap:10px;padding:8px;display:grid}.tag-preview{justify-self:start}.color-swatches{grid-template-columns:repeat(8,24px);align-items:center;gap:6px;display:grid}.color-swatches.compact{grid-template-columns:repeat(8,20px);gap:5px}.color-swatch{border:1px solid var(--tag-border,var(--line));background:var(--tag-bg,#fff);cursor:pointer;border-radius:999px;width:24px;height:24px;padding:0}.color-swatches.compact .color-swatch{width:20px;height:20px}.color-swatch.active{outline:2px solid var(--ink);outline-offset:2px}.danger-btn{color:#991b1b}.danger-btn:hover{border-color:#fca5a5}.size-wrap,.incoming-size-wrap,.funnel-details{padding:8px}.table-scroll{overflow:auto}.alert-list-body,.incoming-table-wrap{flex:1;min-height:0;padding:10px 12px;overflow:auto}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 9px;font-size:12px}th{color:#536987;text-align:left;background:#f0f4f9;font-weight:800}.num{text-align:right;font-variant-numeric:tabular-nums}.size-table th{vertical-align:middle;padding-top:7px;padding-bottom:7px;line-height:1.15}.size-table th span{white-space:nowrap;display:block}.size-table th.num,.size-table td.num{text-align:center}.size-table .days-risk{justify-content:center}.size-total,.cluster-summary{cursor:pointer;background:#f7fbfb;font-weight:700}.cluster-summary .warehouse-cell{white-space:nowrap}.warehouse-cluster{color:#0f172a;font-size:11px;font-weight:800}.warehouse-name{color:#12213a}.pill{color:var(--teal);background:#ecfdf5;border-radius:999px;padding:3px 8px;font-weight:800;display:inline-flex}.days-risk{border-radius:999px;justify-content:flex-end;min-width:54px;padding:2px 8px;font-weight:800;display:inline-flex}.days-risk.no-sales{justify-content:center;min-width:82px}.days-risk-red{color:#991b1b;background:#fee2e2}.days-risk-orange{color:#9a3412;background:#ffedd5}.days-risk-yellow{color:#854d0e;background:#fef9c3}.days-risk-green{color:#166534;background:#dcfce7}.days-risk-gray{color:#374151;background:#e5e7eb}.empty{color:var(--muted);text-align:center;padding:22px}.production-toolbar{justify-content:space-between;padding:12px 0 16px;display:flex}.production-note{color:var(--muted);margin-top:4px;font-size:13px}.funnel-main{gap:12px;display:grid}.funnel-overview{margin-bottom:0}.funnel-overview-head{align-items:flex-start}.funnel-period-controls{flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:10px;display:flex}.funnel-period-buttons{border:1px solid var(--line);background:#fff;border-radius:7px;display:flex;overflow:hidden}.funnel-period-buttons button{border:0;border-left:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;padding:9px 12px;font-weight:800}.funnel-period-buttons button:first-child{border-left:0}.funnel-period-buttons button.active{color:var(--teal);background:#dff3ee}.funnel-custom-dates{align-items:flex-end;gap:8px;display:flex}.funnel-custom-dates label{width:145px}.funnel-custom-dates input{min-height:34px;padding:6px 9px}.funnel-flow{border-bottom:1px solid var(--line);grid-template-columns:minmax(120px,1fr) 76px minmax(120px,1fr) 76px minmax(120px,1fr) 76px minmax(120px,1fr);align-items:stretch;gap:8px;padding:12px 16px;display:grid}.funnel-stage,.funnel-connector{border:1px solid var(--line);text-align:center;background:#f8fbff;border-radius:8px;align-content:center;place-items:center;gap:4px;min-height:76px;display:grid}.funnel-stage span,.funnel-connector span{color:var(--muted);font-size:12px}.funnel-stage b{font-size:22px}.funnel-stage em{color:var(--teal);font-size:12px;font-style:normal;font-weight:800}.funnel-connector{color:var(--teal);background:#fff;border-style:dashed;position:relative}.funnel-connector:before,.funnel-connector:after{content:"";background:var(--line);width:12px;height:1px;position:absolute;top:50%}.funnel-connector:before{left:-11px}.funnel-connector:after{right:-11px}.funnel-connector b{color:var(--teal);font-size:14px}.funnel-day-scroll{max-height:310px}.funnel-detail-scroll{max-height:260px}.funnel-day-table th,.funnel-day-table td{white-space:nowrap}.funnel-matrix-table{min-width:980px}.funnel-matrix-table th,.funnel-matrix-table td{text-align:center}.funnel-matrix-table .funnel-metric-name{z-index:2;text-align:left;background:#fff;min-width:180px;position:sticky;left:0}.funnel-matrix-table thead .funnel-metric-name{z-index:3;background:#f0f4f9}.funnel-matrix-table .funnel-total-head,.funnel-matrix-table .funnel-total-cell{background:#f8fbff;min-width:140px;font-weight:800}.funnel-conversion-row td,.funnel-conversion-row .funnel-metric-name{background:#fbfdff}.funnel-chart-dialog{grid-template-rows:auto auto minmax(0,1fr);width:min(1020px,100%);max-height:min(760px,100vh - 48px);display:grid;overflow:hidden}.funnel-chart-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.funnel-chart-toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:12px;padding:12px 16px;display:flex}.funnel-chart-metrics{flex:620px;gap:6px;display:grid}.funnel-chart-metrics>span{color:var(--muted);text-transform:uppercase;font-size:12px}.funnel-chart-metric-list{flex-wrap:wrap;gap:6px;display:flex}.funnel-chart-metric-list button{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.funnel-chart-metric-list button:before{content:"";background:var(--series-color,var(--teal));vertical-align:0;opacity:.4;border-radius:999px;width:9px;height:9px;margin-right:6px;display:inline-block}.funnel-chart-metric-list button.active{border-color:var(--series-color,var(--teal));color:var(--ink);background:#f8fbff}.funnel-chart-metric-list button.active:before{opacity:1}.funnel-chart-type{border:1px solid var(--line);background:#fff;border-radius:7px;display:flex;overflow:hidden}.funnel-chart-type button{border:0;border-left:1px solid var(--line);color:var(--muted);cursor:pointer;background:#fff;padding:8px 12px;font-weight:800}.funnel-chart-type button:first-child{border-left:0}.funnel-chart-type button.active{color:var(--teal);background:#dff3ee}.funnel-chart-body{min-height:0;padding:14px 16px 16px;overflow:auto}.funnel-chart-svg{width:100%;min-width:760px;height:auto;display:block}.funnel-chart-bg{fill:#fff;stroke:var(--line)}.funnel-chart-grid{stroke:#e5ecf4;stroke-width:1px}.funnel-chart-axis-line{stroke:#a9b8cb;stroke-width:1.2px}.funnel-chart-axis,.funnel-chart-date{fill:var(--muted);font-size:12px}.funnel-chart-line{fill:none;stroke:var(--series-color,var(--teal));stroke-width:3px;stroke-linecap:round;stroke-linejoin:round}.funnel-chart-dot{fill:#fff;stroke:var(--series-color,var(--teal));stroke-width:2px;cursor:pointer}.funnel-chart-candle{fill:color-mix(in srgb, var(--series-color,var(--teal)) 42%, white);stroke:var(--series-color,var(--teal));stroke-width:1.4px;cursor:pointer}.funnel-chart-legend text{fill:var(--muted);font-size:12px;font-weight:700}.funnel-chart-tooltip rect{fill:#0f172a;opacity:.94}.funnel-chart-tooltip text{fill:#fff;font-size:12px;font-weight:800}.funnel-chart-empty{place-items:center;min-height:260px;display:grid}.production-table th,.production-table td{font-size:13px}.production-tabs{border-bottom:1px solid var(--line);gap:18px;margin-bottom:12px;display:flex}.production-tabs button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:12px 0;font-weight:800}.production-tabs button.active{color:var(--blue);border-bottom:2px solid var(--blue)}.production-forms{grid-template-columns:1fr 1fr;align-items:start;gap:12px;margin-bottom:12px;display:grid}.production-form{margin-bottom:12px}.form-grid{grid-template-columns:repeat(3,minmax(140px,1fr));align-items:end;gap:10px;padding:12px;display:grid}.form-grid .wide{grid-column:span 2}.goods-form{grid-template-columns:minmax(260px,1fr) 160px auto}.production-message{margin-bottom:12px}.production-ok{color:#166534;background:#dcfce7;border-radius:7px;padding:10px 12px;font-size:13px;font-weight:800}.history-list{gap:8px;padding:12px;display:grid}.history-item{border:1px solid var(--line);border-radius:7px;grid-template-columns:110px 1fr;gap:12px;padding:9px 10px;display:grid}@media (max-width:1100px){.filters,.grid,.kpis{grid-template-columns:1fr}.workspace-tab-production{margin-left:0}.grid>.panel{height:auto;min-height:0;max-height:none}.alert-list-body,.incoming-table-wrap{max-height:520px}.article-summary,.incoming-article-summary,.funnel-summary{grid-template-columns:auto 1fr}.metric{justify-items:start}.funnel-flow{grid-template-columns:1fr}.funnel-connector:before,.funnel-connector:after{display:none}.funnel-period-controls{justify-content:flex-start}.tag-settings-create,.tag-settings-row,.production-forms,.form-grid,.goods-form{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}.login-page{background:#eef3f8;place-items:center;min-height:100vh;padding:24px;display:grid}.login-panel{border:1px solid var(--line);background:#fff;border-radius:8px;gap:16px;width:min(420px,100%);padding:26px;display:grid;box-shadow:0 18px 48px #0f172a14}.login-panel h1{margin-bottom:5px;font-size:28px}.login-panel p{color:var(--muted);margin:0}.login-submit{background:var(--teal);color:#fff;cursor:pointer;border:0;border-radius:7px;padding:11px 14px;font-weight:800}.login-submit:disabled{opacity:.65;cursor:default}.login-error{color:#991b1b;background:#fee2e2;border-radius:7px;padding:10px 12px;font-size:13px;font-weight:700}
