[hidden]{display:none!important}
/* переменные, на которых стоит штатный msel из «Продакшна» — в цветах grt-design */
:root{--panel:#fff;--line:#E2E8F0;--bg:#F8FAFC;--accent:#2563EB;--accent-soft:#EFF6FF;--muted:#64748B;--ink:#1E293B}
body{margin:0;background:#F8FAFC;font:400 12px/1.4 var(--g-font);color:#334155}
#draft{background:#FFFBEB;color:#B45309;border-bottom:1px solid #FCD34D;text-align:center;font:600 12px var(--g-font);padding:4px}
header{display:flex;align-items:center;gap:16px;padding:8px 24px;background:#0F172A;color:#fff;box-shadow:0 1px 3px rgba(15,23,42,.25)}
header .brand{font-size:16px;font-weight:600}
.brandbox{display:flex;flex-direction:column;line-height:1.25}
#fresh{font-size:11px;color:rgba(255,255,255,.7)}
#who{font-size:11px;color:rgba(255,255,255,.7)}
.hbtn{border:0;background:none;color:rgba(255,255,255,.85);font:inherit;font-size:12px;text-decoration:underline;cursor:pointer}
.sp{flex:1}.muted{color:var(--g-t500);font-size:12px}
.g-tabs{display:flex;gap:4px}
.g-tabs a{padding:5px 12px;border-radius:4px;color:rgba(255,255,255,.85);cursor:pointer;text-decoration:none;font-size:14px;transition:background .15s}
.g-tabs a:hover{background:rgba(255,255,255,.1)}
.g-tabs a.on{background:#fff;color:#0F172A;font-weight:500}
main{padding:12px 16px}
.bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
.chip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--g-line2);border-radius:var(--g-r);background:#fff;padding:2px 2px 2px 8px;font-size:12px;color:var(--g-t600)}
.chip.active{border-color:var(--g-blue);background:var(--g-blue)}.chip.active>span{color:#fff}
.wrap{overflow:auto;max-height:calc(100vh - 150px);border:1px solid var(--g-line);border-radius:4px;background:#fff}
.pivot{font-family:var(--grt-font-table,Calibri,"Segoe UI",system-ui,sans-serif);font-size:12px;border-collapse:collapse;font-variant-numeric:tabular-nums}
.pivot thead th{position:sticky;top:0;z-index:2}
.pivot td.rowhdr,.pivot th.rowhdr{position:sticky;left:0;background:#fff;z-index:1;max-width:320px;overflow:hidden;text-overflow:ellipsis}
.pivot thead th.rowhdr{z-index:3;background:var(--xl-header,#0000FF);color:#fff;text-align:left}
.pivot tbody tr.lvl0 td{font-weight:400}
.pivot tbody tr.lvl0 td.rowhdr{font-weight:600}
.pivot tr.total td{font-weight:700}
.tg{display:inline-block;width:16px;height:16px;line-height:14px;text-align:center;border:1px solid #CBD5E1;border-radius:3px;margin-right:6px;cursor:pointer;font-size:12px;color:#475569;background:#fff}
.lvl1 td.rowhdr{padding-left:28px}.lvl2 td.rowhdr{padding-left:48px;color:var(--g-t500)}
td.oos{background:#FFFBEB}
.sub{color:var(--g-t500);font-size:11px}
.foot{margin-top:6px;color:var(--g-t500);font-size:12px}
.login{max-width:360px;margin:12vh auto;background:#fff;border:1px solid var(--g-line);border-radius:4px;padding:24px;display:flex;flex-direction:column;gap:12px}
.login h1{font-size:18px;margin:0}
.card{background:#fff;border:1px solid var(--g-line);border-radius:4px;padding:12px 16px;margin-bottom:12px}
.card h2{font-size:14px;margin:0 0 8px}
.sc{display:inline-flex;gap:4px;align-items:center;border:1px solid var(--g-line2);border-radius:10px;padding:1px 8px;margin:1px 4px 1px 0;font-size:11px;background:#F8FAFC}
.sc.off{opacity:.5}.sc button{border:0;background:none;color:var(--g-t400);cursor:pointer;padding:0 0 0 2px}
table.list{border-collapse:collapse;font-size:12px;width:100%}
table.list th,table.list td{border-bottom:1px solid var(--g-line);padding:4px 8px;text-align:left;vertical-align:top}
table.list th{color:var(--g-t500);font-weight:600}
.nw{white-space:nowrap}
.scrow td{background:#F8FAFC}
#fweeks .msel-btn,.chip .msel-btn{font-size:12px}
/* сток в неделях (план сток-планинга, этап A): недосток / излишек; текущая неполная неделя — серым */
.pivot td.low{color:#DC2626;font-weight:700}
.pivot td.over{color:#B45309;font-weight:700}
.pivot td.wk{font-weight:600}
.pivot td.cur,.pivot th.cur{color:var(--g-t500)}
.pivot td.cur{background:#F8FAFC}
.pivot th.sep,.pivot td.sep{border-left:2px solid #94A3B8}
.pivot th,.pivot td{padding:3px 6px}
.pivot td.rowhdr,.pivot th.rowhdr{max-width:250px}
/* прогноз (этап B): «Игра» серым, правка Sales синим, из Excel голубым; выделение как в Excel */
.pivot td.fc{cursor:cell;user-select:none}
.pivot td.fc.src-game,.lg.src-game{color:#94A3B8}
.pivot td.fc.src-sales,.lg.src-sales{color:#1D4ED8;font-weight:600}
.pivot td.fc.src-excel,.lg.src-excel{color:#0891B2}
.pivot td.fc:not(.ed){background:#F8FAFC}
.pivot td.fc.sel{background:#DBEAFE!important;outline:1px solid #2563EB;outline-offset:-1px}
.pivot td.curw{border-left:2px solid #CBD5E1}
#tblwrap:focus{outline:none}
.fcin{width:60px;font:inherit;text-align:right;border:1px solid #2563EB;padding:0 2px}
/* шапка фильтров — эталон внутренних дашбордов Ozon/WB (Filters.tsx): панель с синей рамкой, подпись над полем, высота полей 30px */
.fbar{display:flex;align-items:flex-end;gap:8px;padding:8px;margin-bottom:8px;background:#fff;border:2px solid var(--g-blue);border-radius:4px;overflow-x:auto;font-size:12px}
.ff{display:flex;flex-direction:column;gap:4px;flex:none}
.ff>.fl{font-size:12px;color:#475569;white-space:nowrap}
.fdd .msel{display:flex;align-items:center;height:30px;box-sizing:border-box;padding:0 8px;border:1px solid #CBD5E1;border-radius:4px;background:#fff}
.fdd .msel:hover{border-color:#94A3B8}
.fdd .msel .msel-btn{width:100%;max-width:none;justify-content:space-between;font-size:14px;color:#1E293B}
.fdd .msel .msel-car{color:#94A3B8}
.ftg{display:flex;height:30px;border:1px solid #CBD5E1;border-radius:4px;overflow:hidden}
.ftg button{border:0;border-left:1px solid #CBD5E1;background:#fff;color:#475569;font:inherit;font-size:12px;padding:0 10px;cursor:pointer;white-space:nowrap}
.ftg button:first-child{border-left:0}
.ftg button:hover{background:#F1F5F9}
.ftg button.on{background:var(--g-blue);color:#fff;font-weight:600}
.fpchip{align-self:flex-end;height:30px;padding:0 8px;border:1px solid var(--g-blue);border-radius:4px;background:var(--g-blue-soft);color:var(--g-blue);font:inherit;font-size:12px;white-space:nowrap;cursor:pointer}
#fprodchip:empty{display:none}
#fprodchip{align-self:flex-end;display:flex}
.freset{margin-left:auto;align-self:flex-end;padding:0 0 7px;border:0;background:none;color:#475569;font:inherit;font-size:12px;text-decoration:underline;cursor:pointer;white-space:nowrap}
.freset:hover{color:#0F172A}
.fmore{align-self:flex-end;height:30px;padding:0 10px;border:1px solid #CBD5E1;border-radius:4px;background:#fff;color:#475569;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.fmore.on{border-color:var(--g-blue);color:var(--g-blue)}
.fmorebar{display:flex;align-items:flex-end;gap:8px;padding:8px;margin:-6px 0 8px;background:#fff;border:2px solid var(--g-blue);border-top:0;border-radius:0 0 4px 4px}
.fbar .ftg button{padding:0 8px}
.ftg{box-sizing:border-box}
.fbar .ftg button{padding:0 7px}
.fbar{gap:7px}
.fbar{gap:6px;padding:8px 10px}

/* ═════ «Спрос» как в прототипе Flow (:8086): таблица x, панель товара, блоки, окна — стили перенесены из prototip/index.html ═════ */
:root{--acc:#2563EB;--acc-soft:#DBEAFE;--tbl:#0000FF;--grid:#D0D7DE;--t2:#334155;--t3:#475569;--t4:#64748B;--t5:#94A3B8;--amb:#B45309;--amb-bg:#FFFBEB;--amb-line:#FCD34D;--red:#DC2626}
.tbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:6px}
.tbar .sp{flex:1}
.chip{border:1px solid #CBD5E1;background:#fff;color:var(--t3);border-radius:4px;padding:3px 8px;cursor:pointer;font:inherit;font-size:12px}
.chip:hover{background:#F1F5F9}
.chip.on{background:var(--acc);border-color:var(--acc);color:#fff}
.btn{border:1px solid var(--acc);background:var(--acc);color:#fff;border-radius:4px;padding:3px 10px;cursor:pointer;font:inherit;font-size:12px}
.btn.gh{background:#fff;color:var(--acc)}
.btn.sm{padding:1px 7px;font-size:11px}
.btn:hover{filter:brightness(.95)}
.lnkb{border:0;background:none;color:var(--acc);cursor:pointer;font:inherit;padding:0 2px}
.lnkb:disabled{color:var(--t4);cursor:default}
.meta{font-size:11px;color:var(--t4)}
.tw{overflow:auto;max-height:calc(100vh - 230px);border:1px solid #E2E8F0;border-radius:4px;background:#fff;max-width:100%}
.tw.tall{max-height:none}
.tw:focus{outline:none}
table.x{border-collapse:collapse;font:12px/1.35 Calibri,"Segoe UI",system-ui,sans-serif;color:#000;font-variant-numeric:tabular-nums;width:max-content;min-width:100%}
table.x th,table.x td{border:1px solid var(--grid);padding:3px 7px;white-space:nowrap;text-align:right}
table.x th{background:var(--tbl);color:#fff;font-weight:700;position:sticky;top:0;z-index:2}
table.x th.l,table.x td.l{text-align:left}
table.x td.lb{position:sticky;left:0;background:#fff;z-index:1;text-align:left;max-width:300px;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
table.x th.lb{left:0;z-index:3;text-align:left}
table.x tr:not(.tot):hover td{box-shadow:inset 0 0 0 999px rgba(0,0,0,.15)}   /* = #D9D9D9 поверх белого, как подсветка строки в Excel-стиле */
table.x tr.tot td{background:var(--tbl)!important;color:#fff;font-weight:700;position:sticky;top:21px;z-index:2}
table.x tr.tot td.lb{z-index:3}
table.x tr.grp td{border-top:2px solid #94A3B8}
table.x tr.lvl1 td.lb{padding-left:22px}   /* отступ уровня 14px */
table.x tr.psel td.lb{box-shadow:inset 3px 0 0 var(--acc)}
table.x td.g{color:var(--t4);font-style:italic}
table.x td.man{color:var(--acc);font-weight:700;font-style:normal}
table.x td.pp{color:var(--ink);font-style:normal}                 /* старт из ПП («Продакшн») */
.ppw{font-size:11px;color:var(--amb);font-weight:700;white-space:nowrap}
.rv{font-size:11px;color:var(--t4);white-space:nowrap;margin-left:4px}.rv.ck{cursor:pointer;text-decoration:underline dotted}
.rv.on{color:#15803D;font-weight:700}.rv.half{color:var(--amb)}
table.x td.chg{background:var(--amb-bg)}
table.x td.bad{color:var(--red);font-weight:700}
table.x td.warn,table.x span.warn{color:var(--amb);font-weight:700}
table.x td.oos{color:var(--amb)}
table.x td.fc{cursor:cell;user-select:none}
table.x td.fc:not(.ed){background:#F8FAFC}
table.x td.low{color:#DC2626;font-weight:700}
table.x td.over{color:#B45309;font-weight:700}
table.x td.wk{font-weight:600}
table.x td.dim{color:var(--t5)}
table.x td.curf{color:var(--t4);background:#F8FAFC}
table.x th.sep,table.x td.sep{border-left:2px solid #94A3B8}
table.x td.edit input{width:60px;border:0;outline:none;font:inherit;text-align:right;background:transparent;padding:0}
table.x td.edit{cursor:text;background:#fff}
table.x td.nodog{background:#FEF2F2;color:var(--red)}
table.x tr.err td{background:#FEF2F2}
table.x td.txt{text-align:left;color:var(--t2);font-family:system-ui,sans-serif;font-size:11px}
.tcur{color:#BFDBFE;font-weight:400}
.fcin{width:60px;font:inherit;text-align:right;border:1px solid var(--acc);padding:0 2px}
.scols{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start}
@media (max-width:1499px){.scols{grid-template-columns:minmax(0,1fr)}}
.side{background:#fff;border:1px solid #E2E8F0;border-radius:4px;padding:8px 10px;font-size:12px}
.side h4{margin:0 0 2px;font-size:12px;font-weight:700;color:#1E293B}
.side .sh{margin-top:8px;font-weight:700;color:#1E293B;border-bottom:1px solid #E2E8F0}
.kv{display:flex;justify-content:space-between;gap:8px;padding:2px 0;border-bottom:1px solid #F1F5F9;font-variant-numeric:tabular-nums}
.kv span{color:var(--t3)}.kv b{color:#1E293B}
.kv .low{color:#DC2626}.kv .over{color:#B45309}
.nx{margin-top:8px;color:var(--t3);line-height:1.5}
.nx b{color:#1E293B}
.nx.pr{border-top:1px solid #E2E8F0;padding-top:6px}
.sbar{font-size:11px;color:var(--t4);min-height:15px;margin-top:3px}
.legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:4px;font-size:11px;color:var(--t3)}
.legend span{display:inline-flex;align-items:center;gap:5px}
.legend i{width:12px;height:12px;border-radius:2px;display:inline-block;border:1px solid rgba(0,0,0,.08)}
.legend i.lg-p{background:var(--ink)}.legend i.lg-g{background:#fff}.legend i.lg-m{background:var(--acc)}.legend i.lg-c{background:var(--amb-bg)}
.blk{margin-top:14px}
.ttl{font-size:16px;font-weight:600;color:#1E293B;margin:0 0 6px;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.ttl span{font-size:11px;font-weight:400;color:var(--t4)}
.cnt{font-size:11px;color:var(--t5);margin-top:4px}
.src{font-size:11px;color:var(--t5);margin-top:10px;line-height:1.5}
.src b{color:var(--t4);font-weight:600}
.ov{position:fixed;inset:0;z-index:300;background:rgba(15,23,42,.35);display:flex;align-items:flex-start;justify-content:center;padding-top:8vh}
.mod{background:#fff;border-radius:4px;box-shadow:0 12px 36px rgba(15,23,42,.3);width:min(620px,calc(100% - 32px));max-height:84vh;display:flex;flex-direction:column}
.mod .mh{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid #E2E8F0;font-size:14px}
.mod .mx{border:0;background:none;cursor:pointer;color:var(--t4);font-size:14px}
.mod .mb{padding:10px 14px;overflow:auto;font-size:12px}
.mod .mb label{display:block;margin:8px 0 3px;color:var(--t3)}
.mod .mb .g-input{width:100%;box-sizing:border-box}
.mod .mb .fdd .msel{width:100%;box-sizing:border-box}
.mod .mf{display:flex;gap:6px;justify-content:flex-end;padding:10px 14px;border-top:1px solid #E2E8F0}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.prev{margin-top:10px;padding:8px 10px;background:var(--acc-soft);border-radius:4px;color:#1E293B;line-height:1.5}
.cmenu{position:fixed;z-index:500;background:#fff;border:1px solid #E2E8F0;border-radius:4px;box-shadow:0 8px 24px rgba(20,30,50,.18);padding:4px 0;min-width:260px;font-size:12px}
.cmenu div{display:flex;justify-content:space-between;gap:16px;padding:5px 12px;cursor:pointer}
.cmenu div:hover{background:var(--acc-soft)}
.cmenu div.off{color:var(--t5);cursor:default}.cmenu div.off:hover{background:none}
.cmenu small{color:var(--t5)}
.cmenu hr{border:0;border-top:1px solid #E2E8F0;margin:3px 0}

.mpd{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:1px}
.login h1{font-size:16px}
.card h2{font-size:16px}
/* период — как «Период (диапазон)» и ползунок внутренних дашбордов (DateRangePicker / DateRangeSlider) */
.fdate{height:30px;min-width:150px;padding:0 8px;border:1px solid #CBD5E1;border-radius:4px;background:#fff;font:inherit;font-size:12px;text-align:left;white-space:nowrap;cursor:pointer;color:#1E293B}
.fdate:hover{border-color:var(--acc)}
.dr-slider{position:relative;height:30px}
.dr-slider input[type=range]{position:absolute;left:0;top:3px;width:100%;height:24px;margin:0;-webkit-appearance:none;appearance:none;background:transparent}
.dr-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--acc);border:2px solid #fff;box-shadow:0 0 0 1px var(--acc);cursor:pointer}
.dr-slider input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--acc);border:2px solid #fff;cursor:pointer}
.dr-track{position:absolute;top:13px;left:0;height:4px;width:100%;background:#E2E8F0;border-radius:2px}
.dr-fill{position:absolute;top:13px;height:4px;background:var(--acc);border-radius:2px}
.calpop{position:fixed;z-index:450;width:280px;background:#fff;border:2px solid var(--acc);border-radius:4px;box-shadow:0 8px 24px rgba(20,30,50,.18);padding:8px;font-size:12px;user-select:none}
.calpop .ch{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;color:#334155}
.calpop .ch button{border:0;background:none;cursor:pointer;padding:2px 8px;border-radius:4px;font-size:14px}
.calpop .ch button:hover{background:#F1F5F9}
.calpop .cg{display:grid;grid-template-columns:26px repeat(7,1fr);gap:1px 0}
.calpop .cwd{text-align:center;color:#64748B;font-size:11px;padding:2px 0}
.calpop .cwn{text-align:center;color:#94A3B8;font-size:11px;padding:2px 0}
.calpop .cwn:not(.h){color:var(--acc);opacity:.7}
.calpop .cd{text-align:center;padding:2px 0;border-radius:4px;cursor:pointer;color:#334155}
.calpop .cd:hover{background:var(--acc-soft)}
.calpop .cd.out{color:#CBD5E1}
.calpop .cd.in{background:var(--acc-soft)}
.calpop .cd.end{background:var(--acc);color:#fff;font-weight:600}
.calpop .cd.today{box-shadow:inset 0 0 0 1px #93C5FD}
.calpop .cf{display:flex;justify-content:space-between;margin-top:6px;padding-top:6px;border-top:1px solid #F1F5F9;font-size:11px;color:#64748B}
.calpop .cf button{border:0;background:none;color:#64748B;text-decoration:underline;cursor:pointer;font-size:11px}

/* «Контроль данных» — окно привязки и выбор товара */
.ctlm{position:fixed;inset:0;background:rgba(15,23,42,.35);display:flex;align-items:flex-start;justify-content:center;padding-top:8vh;z-index:50}
.ctlbox{background:#fff;border-radius:4px;padding:16px;width:min(640px,94vw);box-shadow:0 8px 30px rgba(0,0,0,.2)}
.ctlbox h2{font-size:14px;margin:0 0 10px}.ctlbox .g-field{margin-bottom:8px}
.ctlpick{max-height:180px;overflow:auto;border:1px solid var(--g-line);border-radius:4px;margin-top:4px}
.ctlpick>div{padding:4px 8px;cursor:pointer;font-size:12px;border-bottom:1px solid var(--g-line)}.ctlpick>div:hover{background:#F1F5F9}.ctlpick>div.on{background:#DBEAFE}
table.list td.r,table.list th.r{text-align:right}
table.list td .g-btn.text{white-space:nowrap}

/* комментарии на экране */
.cmov{position:fixed;inset:0;z-index:70;cursor:crosshair;background:rgba(37,99,235,.05)}
.cmhint{position:fixed;top:64px;left:50%;transform:translateX(-50%);background:#0F172A;color:#fff;font-size:12px;padding:6px 12px;border-radius:4px;pointer-events:none}
.cmrect{position:absolute;z-index:71;border:2px dashed #2563EB;background:rgba(37,99,235,.08);pointer-events:none}
.cmpin{position:absolute;z-index:40;border:2px dashed #F59E0B;border-radius:4px;pointer-events:none}
.cmpin b{position:absolute;top:-11px;left:-11px;min-width:20px;height:20px;line-height:20px;text-align:center;background:#F59E0B;color:#fff;border-radius:10px;font-size:11px;cursor:pointer;pointer-events:auto;padding:0 5px}
.cmpop{position:absolute;z-index:72;width:320px;background:#fff;border:1px solid var(--g-line);border-radius:4px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.18);font-size:12px}
.cmtext{white-space:pre-wrap;margin-top:4px}.cmreply{margin-top:6px;padding:6px;background:#F1F5F9;border-radius:4px;white-space:pre-wrap}

/* цвета файла Вовы «SP_Reforged» (20.10): шапка — цвет площадки (если выбрана одна), светлые заливки колонок, полосы запаса в неделях */
table.x.sp-WB th{background:#8A2BE2;border-color:#8A2BE2}table.x.sp-OZON th{background:#057DCD;border-color:#057DCD}table.x.sp-YM th{background:#FFCC00;border-color:#8A6A00;color:#1F1F1F}
table.x.sp-WB tr.tot td{background:#8A2BE2!important}table.x.sp-OZON tr.tot td{background:#057DCD!important}table.x.sp-YM tr.tot td{background:#FFCC00!important;color:#1F1F1F}
table.x td.fwk{background:#E6E6FA}table.x td.fst{background:#F0E4F9}table.x td.fss{background:#E3D0F3}table.x td.fow{background:#FFEEE6}
table.x td.kfc,.legend i.kfc{background:#FFF0D4}table.x td.kfa,.legend i.kfa{background:#D8D8F4}
table.x td.spl{color:#94A3B8;text-align:center}
.sb.b0{background:#FAF5FC}.sb.b1{background:linear-gradient(90deg,#FF512F,#DD2476,#FF512F);color:#fff}.sb.b2{background:linear-gradient(90deg,#FEC163,#F5F523,#FEC163)}
.sb.b3{background:linear-gradient(90deg,#3FEA2C,#31C47F,#3FEA2C)}.sb.b4{background:linear-gradient(90deg,#48BC84,#D0E496,#48BC84)}.sb.b5{background:linear-gradient(90deg,#FFDAB9,#FFBAA8,#FFDAB9)}
.legend i.sb,.legend i.kfc,.legend i.kfa{display:inline-block;width:14px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle;border:1px solid #CBD5E1}
table.x td.fwk.oos{background:#FFF4D6}
.side{position:sticky;top:8px;max-height:calc(100vh - 16px);overflow:auto}
.side .facw{overflow-x:auto;margin-top:4px;border:1px solid #E2E8F0;border-radius:4px}
.side table.x.fac{font-size:11px;min-width:0}
.side table.x.fac th,.side table.x.fac td{padding:2px 5px}
.side table.x.fac td.lb,.side table.x.fac th.lb{max-width:150px;white-space:normal;line-height:1.2}
.side .fac-n{margin-top:3px}
.cfx{font-size:12px;line-height:1.45;background:#F8FAFC;border:1px solid #E2E8F0;border-radius:4px;padding:8px 12px;margin-bottom:6px}
.cfx ol,.cfx ul{margin:4px 0 8px 18px;padding:0}.cfx li{margin:2px 0}
label.fmore{display:inline-flex;align-items:center;flex:none}
#fpp{align-self:flex-end;display:flex}
@media (max-width:1499px){.fbar{flex-wrap:wrap;row-gap:6px}}
.tbar{position:relative}
.hintbtn{width:20px;height:20px;border-radius:50%;border:1px solid #CBD5E1;background:#fff;color:#64748B;font:600 11px/18px system-ui,sans-serif;padding:0;cursor:pointer;flex:none}
.hintbtn:hover{border-color:#2563EB;color:#2563EB}
.hintpop{position:absolute;right:0;top:calc(100% + 4px);z-index:40;width:min(720px,92vw);max-height:70vh;overflow:auto;background:#fff;border:1px solid #CBD5E1;border-radius:4px;box-shadow:0 8px 24px rgba(15,23,42,.18);padding:10px 12px;font-size:12px}
.hintpop .legend{margin:0;display:flex;flex-wrap:wrap;gap:4px 12px}.hintpop .src{margin-top:8px}
.hintpop .legend span.meta,.hintpop .legend span:has(i.sb){display:block;flex-basis:100%;line-height:1.6}
.hintpop .legend span.meta b,.hintpop .legend span.meta code{display:inline}
.fxbar{font-size:12px;padding:4px 8px;margin:0 0 6px;border:1px solid #E2E8F0;border-radius:4px;background:#fff;min-height:26px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fxbar .fxf{font-family:Consolas,Menlo,monospace;color:#1D4ED8;font-weight:600}
table.x td.fxc{background-image:linear-gradient(225deg,#2563EB 0 6px,transparent 6px)}
/* значки шапки колонки — глаз «скрыть» и воронка «отбор», как в Excel/портале себестоимости; поверх подписи, ширину колонки не меняют */
table.x th[data-ck]{position:sticky}
table.x th .thi{position:absolute;right:1px;top:50%;transform:translateY(-50%);display:none;gap:1px;background:inherit;padding-left:2px}
table.x th:hover .thi,table.x th.cf-on .thi{display:inline-flex}
table.x th.cf-on .thi .th-h{display:none}
table.x th .thi b{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:3px;cursor:pointer;color:inherit;opacity:.85}
table.x th .thi b:hover{background:rgba(255,255,255,.25);opacity:1}
table.x th.cf-on .th-f{background:#fff;color:#2563EB;opacity:1}
.hf-panel{position:fixed;z-index:60;width:260px;background:#fff;border:1px solid #CBD5E1;border-radius:6px;box-shadow:0 10px 30px rgba(15,23,42,.2);font-size:12px;color:#1E293B;padding:4px 0}
.hf-act{display:flex;gap:8px;align-items:center;padding:5px 12px;cursor:pointer}.hf-act i{font-style:normal;width:14px;color:#475569}.hf-act:hover{background:#F1F5F9}.hf-act.off{color:#94A3B8;cursor:default;background:none}
.hf-sep{height:1px;background:#E2E8F0;margin:4px 0}.hf-search{padding:4px 10px}.hf-search input{width:100%;box-sizing:border-box;border:1px solid #2563EB;border-radius:4px;padding:5px 8px;font:inherit}
.hf-list{max-height:240px;overflow:auto;padding:2px 6px}.hf-opt{display:flex;gap:7px;align-items:center;padding:3px 6px;cursor:pointer;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hf-opt:hover{background:#F1F5F9}.hf-opt.all{font-weight:600}
.hf-box{width:14px;height:14px;flex:none;border:1px solid #94A3B8;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font-size:10px;color:#fff}.hf-box.on{background:#2563EB;border-color:#2563EB}
.hf-empty{padding:6px}.hf-foot{display:flex;gap:6px;align-items:center;padding:6px 10px 4px;border-top:1px solid #E2E8F0;margin-top:4px}.hf-foot .hf-cnt{margin-right:auto}
/* правка ячейки — поверх ячейки: колонка не раздвигается (Лина 20.10: «чтобы не съезжал дизайн») */
table.x td.editing{position:relative;overflow:visible}
table.x td.editing .fcghost{visibility:hidden}
table.x td.editing .fcin{position:absolute;right:-1px;top:-1px;height:calc(100% + 2px);box-sizing:border-box;z-index:8;font:inherit;text-align:right;border:2px solid #2563EB;padding:0 3px;background:#fff;margin:0}
table.x td.editing .fcin.fx{left:-1px;right:auto;text-align:left;font-family:Consolas,Menlo,monospace}
.fxac{position:fixed;z-index:70;min-width:300px;max-width:420px;background:#fff;border:1px solid #CBD5E1;border-radius:4px;box-shadow:0 8px 24px rgba(15,23,42,.18);font-size:12px;padding:3px 0}
.fxac .fxi{padding:3px 10px;cursor:pointer;display:flex;gap:6px;align-items:baseline;white-space:nowrap}.fxac .fxi b{font-family:Consolas,Menlo,monospace;color:#1D4ED8}
.fxac .fxi span{color:#64748B;overflow:hidden;text-overflow:ellipsis}.fxac .fxi.on,.fxac .fxi:hover{background:#EFF6FF}
.fxac .fxh{padding:4px 10px;background:#FFFBEB;color:#92400E;border-top:1px solid #FDE68A}
.fxac .fxr{padding:4px 10px;border-top:1px solid #E2E8F0;white-space:normal}
table.x th.curh,table.x td.curh,table.x td.curf{border-left:2px solid #60A5FA}
/* значки шапки — всегда на своём месте справа (как кнопки автофильтра Excel): подпись не перекрывается, при наведении ничего не прыгает */
table.x th[data-ck]{padding-right:33px}
table.x th[data-ck] .thi{display:inline-flex;right:2px;background:none;padding:0}
table.x th[data-ck] .thi b{opacity:.55}
table.x th[data-ck]:hover .thi b{opacity:.9}
table.x th.cf-on .thi .th-h{display:inline-flex}
/* выделение как в Excel: диапазон — голубая подложка поверх цветов колонки, активная ячейка — рамка, заголовок выделенного столбца — светлее */
table.x td.xsel{box-shadow:inset 0 0 0 999px rgba(37,99,235,.16)!important}
table.x td.xact{outline:2px solid #2563EB;outline-offset:-2px}
table.x th.xcol{filter:brightness(1.25)}
table.x th[data-ck]{cursor:s-resize}
table.x td.lb{cursor:e-resize}
#tblwrap:focus{outline:none}
.ntb{margin-top:8px}.ntb textarea{width:100%;box-sizing:border-box;font:inherit;font-size:12px;resize:vertical;margin-top:4px}
.ntf{display:flex;gap:6px;align-items:center;margin-top:4px;flex-wrap:wrap}.ntf select{width:auto;font-size:12px;padding:2px 4px}.ntf .btn{margin-left:auto}
.nth{margin-top:6px;max-height:220px;overflow:auto}.nti{border-top:1px solid #E2E8F0;padding:4px 0}.ntw{font-size:11px;color:#64748B}.ntt{font-size:12px;color:#1E293B;white-space:normal;word-break:break-word}
.ntm{font-size:11px;cursor:help}
/* 21.10 (Лина): подпись колонки — у того же правого края, что и числа (комментарий №2 «выровняй всё по одному краю»); 👁 и воронка — слева */
table.x th[data-ck]:not(.lb){padding-right:7px;padding-left:33px}
table.x th[data-ck]:not(.lb) .thi{right:auto;left:2px}
/* ширина колонки — тянуть правый край заголовка (как в Excel) */
table.x th .cwr{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;z-index:4}
table.x th .cwr:hover,body.cwdrag table.x th .cwr:hover{background:rgba(255,255,255,.45)}
body.cwdrag,body.cwdrag *{cursor:col-resize!important;user-select:none}
/* строка формулы как в Excel: имя ячейки · ✕ ✓ ƒx · поле (правится) · серым — из чего сложилось число */
.fxbar{display:flex;align-items:center;gap:0;padding:0;overflow:visible;text-overflow:clip;height:28px;min-height:0}
.fxbar .fxname{flex:none;width:118px;height:100%;display:flex;align-items:center;padding:0 8px;border-right:1px solid #E2E8F0;color:#334155;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fxbar .fxbtn{flex:none;display:flex;align-items:center;gap:2px;padding:0 6px;border-right:1px solid #E2E8F0;height:100%;color:#94A3B8}
.fxbar .fxbtn b{width:20px;text-align:center;cursor:pointer;font-weight:600;visibility:hidden}
.fxbar.on .fxbtn b{visibility:visible}.fxbar .fxbtn b#fxx{color:#DC2626}.fxbar .fxbtn b#fxok{color:#16A34A}
.fxbar .fxbtn i{font-style:italic;font-family:Georgia,serif;color:#64748B;padding:0 4px}
.fxbar #fxin{flex:1 1 220px;min-width:120px;height:100%;border:0;outline:0;padding:0 8px;font:12px Consolas,Menlo,monospace;color:#0F172A;background:transparent}
.fxbar #fxin:focus{background:#F8FAFF;box-shadow:inset 0 0 0 1px #2563EB}
.fxbar.ro #fxin{color:#475569}
.fxbar .fxinfo{flex:0 1 auto;max-width:55%;padding:0 8px;color:#64748B;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.x td.fxedit{outline:2px solid #2563EB!important;outline-offset:-2px}
/* сумма, среднее выделенного — внизу справа поверх страницы, как строка состояния Excel */
.sbar{position:fixed;right:16px;bottom:10px;z-index:45;margin:0;min-height:0;padding:4px 12px;background:#fff;border:1px solid #CBD5E1;border-radius:4px;box-shadow:0 2px 10px rgba(15,23,42,.15);font-size:12px;color:#334155}
.sbar:empty{display:none}.sbar b{color:#0F172A}
/* всё — в окне фильтров: справа ПП, «Коэффициенты», «+ Акция», «?», «Сбросить» */
.fbar .fsp{flex:1 1 0;min-width:0}
.fbar .facts{display:flex;align-items:flex-end;gap:6px;flex:none}
.fbar .facts .hintbtn{align-self:center;margin-top:16px}
.fbar .freset{margin-left:0}
.fmore.fstat{display:inline-flex;align-items:center;cursor:default}
#sview{position:relative}
#sview>.hintpop{top:-4px}
/* календарь периода: быстрый выбор вместо ползунка */
.calpop .cpre{display:flex;gap:4px;padding:6px 0 2px;border-top:1px solid #E2E8F0;margin-top:6px}
.calpop .cpre button{flex:1;height:24px;border:1px solid #CBD5E1;border-radius:4px;background:#fff;font:inherit;font-size:12px;cursor:pointer}
.calpop .cpre button:hover{border-color:#2563EB;color:#2563EB}
/* «Кабинет»: площадка целиком — жирным, её кабинеты — с отступом */
.msel-opt[data-v$=":all"] .msel-t{font-weight:600}
.msel-opt[data-v^="OZON "],.msel-opt[data-v^="WB "]{padding-left:22px}
/* шапка стала в одну строку, полосы над таблицей нет — таблице больше высоты */
.tw{max-height:calc(100vh - 196px)}
/* 21.10 после выкладки: шапка в одну строку и на 1280; «?» на одной линии с кнопками; подсказка «?» — поверх рамок комментариев */
.fdate{min-width:120px}
.fbar .facts .hintbtn{align-self:flex-end;margin:0 0 5px}
#sview>.hintpop{z-index:60}
.fxbar #fxin::placeholder{color:#94A3B8;font-family:system-ui,sans-serif}
/* 📣 в неделе факта — кнопка окна акции (21.10) */
.fpromo{cursor:pointer;border-radius:3px;padding:0 1px}
.fpromo:hover{background:var(--acc-soft);outline:1px solid var(--acc)}
table.x .pos{color:#16A34A;font-weight:700}table.x .neg{color:var(--red);font-weight:700}
.mod.pwin{width:min(780px,calc(100% - 32px))}
table.x.pwa{width:100%}table.x.pwa td.l{white-space:normal}
