/* Переменные цвета — единственный :root ниже (~стр. 99); старый блок правил 1–98 действует только там, где новый его не перекрывает. */
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:var(--fs-md)/1.45 var(--font)}
.top{display:flex;align-items:center;gap:22px;padding:14px 26px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:var(--w-bold);color:var(--ink);text-decoration:none}.brand span{font-weight:var(--w-medium);color:var(--mute);margin-left:8px}
.period button{height:32px;padding:0 12px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-sm);cursor:pointer;margin-left:6px;font:inherit}
.period button.on{background:var(--accent-bg);color:var(--accent);border-color:transparent;font-weight:var(--w-medium)}
main{padding:22px 26px;max-width:1500px;margin:0 auto}
.empty,.warn{padding:40px;text-align:center;color:var(--mute)}.warn{color:var(--bad)}
.runs{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:14px}.run{display:flex;flex-direction:column;gap:8px;padding:14px 18px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);text-decoration:none;color:inherit}
.run:hover{border-color:var(--accent-line)}.run-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.run .when{font-weight:var(--w-bold)}.run .what{color:var(--mute)}.run-head .span{font-size:var(--fs-xs);white-space:nowrap}.run .pics{display:flex;flex-wrap:wrap;gap:6px}.run .pics img,.run .pics .ph,.run .pics .more{width:64px;height:84px;border-radius:var(--r-md);background:var(--ph-bg);flex:0 0 auto}.run .pics img{object-fit:cover}.run .pics .more{display:flex;align-items:center;justify-content:center;font-weight:var(--w-bold);font-size:var(--fs-base);color:var(--mute);background:var(--ph-bg)}.run .lsrow{margin-top:6px;width:100%}
.lead{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px}.tile .k{font-size:var(--fs-xs);color:var(--mute)}.tile .v{font-size:var(--fs-xl);font-weight:var(--w-bold);margin-top:4px}.tile .s{color:var(--mute);font-size:var(--fs-sm);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.box{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
table{width:100%;border-collapse:collapse;table-layout:fixed}th,td{padding:10px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
th{font-size:var(--fs-xs);color:var(--mute);text-align:right;cursor:pointer;user-select:none;white-space:nowrap;line-height:1.2;background:var(--surface-2)}
th.l,td.l{text-align:left}th.on{color:var(--accent)}td.n{text-align:right;font-variant-numeric:normal;white-space:nowrap;font-size:var(--fs-sm)}
.card{display:flex;gap:10px;align-items:center}.card img{width:40px;height:52px;object-fit:cover;border-radius:6px;background:var(--ph-bg);flex:none}
.card .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .t a{color:inherit;text-decoration:none}.card .m{color:var(--mute);font-size:var(--fs-xs)}
tr.row{cursor:pointer}tr.row:hover td{background:var(--accent-faint)}tr.row.open td{background:var(--accent-bg)}
tr.detail td{background:var(--accent-faint);padding:12px 16px 16px}
.spark{width:100%;height:150px;display:block}.legend{display:flex;gap:16px;color:var(--mute);font-size:var(--fs-xs);margin-bottom:6px}.legend b{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.best{color:var(--good);font-weight:var(--w-bold)}.worst{color:var(--bad)}
.foot{color:var(--mute);font-size:var(--fs-sm);padding:10px 16px}

.bar{display:flex;align-items:center;gap:14px;margin-bottom:12px;padding:10px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md)}
.bar-info{font-weight:var(--w-medium)}.bar-go{height:34px;padding:0 16px;border:none;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer}.bar-go:disabled{opacity:.45;cursor:default}
.bar-own{margin-left:auto;color:var(--mute);font-size:var(--fs-sm)}.bar-own-clear{border:none;background:transparent;color:var(--mute);cursor:pointer;font-size:var(--fs-md)}
input.pick{width:16px;height:16px;cursor:pointer}
button.star{border:none;background:transparent;color:var(--dim);cursor:pointer;font-size:var(--fs-md);padding:0 2px;line-height:1}button.star.on,button.star:hover{color:var(--star)}
tr.row.own td{background:var(--warn-bg)}tr.row.own .card .t a{font-weight:var(--w-bold)}
.diff{font-size:var(--fs-xs);color:var(--mute);margin-top:2px}.diff.up{color:var(--good)}.diff.down{color:var(--bad)}
/* Сравнение карточек: колонка на карточку фиксирована, таблица по центру
   блока, числа по центру клетки. На всю ширину не тянется — две карточки на
   широком экране это два числа по краям пустыни (Андрей, 22.09). */
.cmp-box{overflow-x:auto}
/* Общее правило «table{min-width:1180px}» растягивало и эту таблицу: две
   карточки получали по 416 px, на телефоне колонка метрик съедала экран
   (22.09). Сравнение — по содержимому. */
table.cmp{width:auto;min-width:0;margin:0 auto;table-layout:fixed}
table.cmp th.cmp-head{text-transform:none;letter-spacing:0;font-size:var(--fs-sm);color:var(--ink);cursor:default;width:240px;text-align:center;vertical-align:top}
table.cmp th.l:first-child{width:200px}
table.cmp td.k{font-weight:var(--w-medium);cursor:help}table.cmp td.k .m{font-weight:var(--w-regular);font-size:var(--fs-xs);color:var(--mute)}
table.cmp td.n{text-align:center;font-size:var(--fs-base);font-variant-numeric:normal;padding:12px 10px}
/* Лучше/хуже — цветом числа и лёгким оттенком, а не сплошной плитой цвета
   на всю клетку: плиты на двадцати строках сливались в пятна (22.09). */
table.cmp td.best{color:var(--good);font-weight:var(--w-bold);background:color-mix(in srgb,var(--good-bg) 45%,transparent)}
table.cmp td.worst{color:var(--bad);background:color-mix(in srgb,var(--bad-bg) 40%,transparent)}
table.cmp th.own,table.cmp td.own{box-shadow:inset 3px 0 0 var(--star)}
table.cmp .cmp-card{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center}
table.cmp .cmp-card img{width:56px;height:74px;border-radius:var(--r-sm);object-fit:cover}
table.cmp .cmp-card .t a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}
table.cmp td .diff{display:inline-block;margin:3px 0 0}

.tag{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn);font-size:var(--fs-xs);font-weight:var(--w-medium);vertical-align:middle}
.legend label{cursor:pointer;user-select:none}
/* Заголовок «Позиция в поиске» в nowrap не влезал в свою колонку и резался
   последней буквой — и на телефоне, и на широком экране. Переносим. */
.foot button{height:26px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--card);cursor:pointer;font:inherit}.foot button.on{background:var(--accent-bg);color:var(--accent);border-color:transparent}

.lead-tile{display:flex;gap:12px;padding:12px}.lead-tile.own{box-shadow:inset 0 0 0 2px var(--warn-line)}
.lead-pic img{width:56px;height:74px;object-fit:cover;border-radius:var(--r-sm);background:var(--ph-bg);display:block}
.lead-body{min-width:0;flex:1}.lead-body .s a{color:var(--ink);text-decoration:none;font-weight:var(--w-medium)}.lead-body .s a:hover{color:var(--accent)}
.lead-body .s .wb{color:var(--accent);font-weight:var(--w-medium);margin-left:6px}

.leaders{margin-bottom:12px}.leaders-head{width:100%;text-align:left;border:none;background:transparent;padding:10px 14px;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:8px}
.leaders-head .chev{display:inline-block;transition:transform .15s;color:var(--accent);font-size:var(--fs-base)}
.leaders .lead{display:none;margin:0;padding:0 12px 12px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.leaders.open .lead{display:grid}.leaders.open .chev{transform:rotate(90deg)}
.lead.compact .lead-tile{padding:8px 10px;gap:9px;border-radius:var(--r-md)}.lead.compact .lead-pic img{width:36px;height:48px;border-radius:6px}
.lead.compact .k{font-size:var(--fs-2xs)}.lead.compact .v{font-size:var(--fs-base);margin-top:1px}.lead.compact .s{font-size:var(--fs-xs);margin-top:0}

.bar-search{height:34px;width:260px;border:1px solid var(--line);border-radius:var(--r-md);padding:0 12px;font:inherit}
th .th-l{display:inline-block;vertical-align:middle}th button.flt{margin-left:4px;border:none;background:transparent;color:var(--dim);cursor:pointer;font-size:var(--fs-sm);padding:0 2px;vertical-align:middle}
th button.flt:hover{color:var(--accent)}th button.flt.on{color:var(--accent)}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--accent-bg);color:var(--accent);font-size:var(--fs-sm);font-weight:var(--w-medium)}
.chip button{border:none;background:transparent;color:inherit;cursor:pointer;font-size:var(--fs-md);line-height:1;padding:0}
.chip-clear{border:none;background:transparent;color:var(--mute);cursor:pointer;font-size:var(--fs-sm);text-decoration:underline}
.pop{position:absolute;z-index:50;width:290px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 12px 32px rgba(0,0,0,.12);padding:14px}
.pop-t{font-weight:var(--w-bold);margin-bottom:8px}.pop-t .m{display:block;font-weight:var(--w-regular);color:var(--mute);font-size:var(--fs-xs)}
.range{position:relative;height:26px;margin:6px 0}.range input[type=range]{position:absolute;left:0;right:0;top:0;width:100%;margin:0;background:transparent;pointer-events:none;-webkit-appearance:none;appearance:none;height:26px}
.range input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--line);border-radius:2px}.range input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:18px;height:18px;margin-top:-7px;border-radius:50%;background:var(--card);border:2px solid var(--accent);cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.pop-nums{display:flex;gap:8px}.pop-nums label{flex:1;font-size:var(--fs-xs);color:var(--mute)}.pop-nums input{width:100%;height:30px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 8px;font-size:var(--fs-sm);margin-top:2px}
.pop-quick{display:flex;gap:6px;margin:10px 0}.pop-quick button{flex:1;height:28px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);font-size:var(--fs-xs);cursor:pointer}.pop-quick button:hover{background:var(--accent-bg);border-color:transparent}
.pop-act{display:flex;gap:8px}.pop-ok{flex:1;height:34px;border:none;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer}.pop-reset{height:34px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);font-size:var(--fs-sm);cursor:pointer}

.period{display:flex;align-items:center}.period .custom{margin-left:12px;padding-left:12px;border-left:1px solid var(--line);color:var(--mute);font-size:var(--fs-sm);display:inline-flex;align-items:center;gap:4px}
.period .custom input[type=date]{height:30px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 6px;font-size:var(--fs-sm)}
.period .custom.on{color:var(--accent)}.period .custom.on input{border-color:var(--accent-line)}.period .custom-go{margin-left:4px}

.chb{display:grid;grid-template-columns:200px 1fr;min-height:340px}
.chb-side{border-right:1px solid var(--line);padding:10px 8px;display:flex;flex-direction:column;gap:2px}
.chb-side button{text-align:left;border:none;background:transparent;padding:7px 10px;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink);cursor:pointer}.chb-side button:hover{background:var(--bg)}.chb-side button.on{background:var(--accent-bg);color:var(--accent);font-weight:var(--w-medium)}
.chb-main{padding:12px 14px 6px;min-width:0}.chb-top{display:flex;align-items:flex-start;gap:12px;margin-bottom:6px}
.chb-legend{display:flex;flex-wrap:wrap;gap:6px;flex:1}.chb-legend .lg{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:3px 10px 3px 6px;font-size:var(--fs-xs);cursor:pointer;color:var(--ink)}
.chb-legend .lg b{width:10px;height:10px;border-radius:3px}.chb-legend .lg img{width:18px;height:24px;object-fit:cover;border-radius:4px}.chb-legend .lg.off{opacity:.45;text-decoration:line-through}
.chb-mode button{height:28px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);font-size:var(--fs-xs);cursor:pointer;margin-left:4px}.chb-mode button.on{background:var(--accent-bg);color:var(--accent);border-color:transparent;font-weight:var(--w-medium)}
.ch-wrap{position:relative}.ch{width:100%;height:300px;display:block}
.ch-tip{position:absolute;z-index:6;min-width:260px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 10px 30px rgba(0,0,0,.12);padding:10px 12px;pointer-events:none;font-size:var(--fs-sm)}
.ch-date{font-weight:var(--w-bold)}.ch-tip .m{color:var(--mute);font-size:var(--fs-xs);margin-bottom:6px}
.ch-row{display:grid;grid-template-columns:10px 1fr 52px 84px;gap:8px;align-items:center;padding:2px 0}.ch-row b{width:10px;height:10px;border-radius:3px;display:inline-block}
.ch-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ch-ch{text-align:right;font-size:var(--fs-xs);color:var(--mute)}.ch-ch.up{color:var(--good)}.ch-ch.down{color:var(--bad)}.ch-v{text-align:right;font-weight:var(--w-bold);font-variant-numeric:normal}

.box{overflow-x:auto}table{min-width:1180px}
/* Таблица карточек: ширина столбцов из colgroup, таблица растёт вширь и прокручивается в коробке,
   а не сжимает ячейки друг в друга (06.09: 18 столбцов делили 1180px поровну). */
/* width задаёт разметка суммой колонок: с width:auto fixed-раскладка не действует и колонка карточки ужималась */
table.cards{table-layout:fixed;min-width:100%}table.cards td.n,table.cards th{overflow:hidden}table.cards td.n{white-space:nowrap;text-overflow:clip}table.cards td.l{overflow:hidden}
.pill.wb{color:var(--accent);text-decoration:none;font-weight:var(--w-medium)}
tr.groups th{height:22px;padding:4px 10px 2px;font-size:var(--fs-2xs);color:var(--mute-3);text-align:left;cursor:default;border-bottom:none;background:var(--surface-2)}
tr.groups th.named{border-bottom:2px solid var(--line)}
th.first,td.first{border-left:1px solid var(--ph-bg)}
th .u{font-size:var(--fs-2xs);text-transform:none;letter-spacing:0;color:var(--mute-3);margin-top:1px}
tbody tr.row:nth-child(4n+1) td{background:var(--surface-2)}tbody tr.row:hover td{background:var(--accent-soft)}
td.n{font-size:var(--fs-md);color:var(--ink-2)}td.n .diff{font-size:var(--fs-2xs)}

/* ── Язык кабинета WB: светлый фон, белые карточки 16px, фиолетовый акцент ── */
:root{--ink:#1a1a1f;--ink-2:#27272a;--ink-3:#3f3f46;--mute:#7a7a85;--mute-2:#8a8a94;--mute-3:#a1a1aa;--dim:#c4c4cc;--dim-2:#b4b4bd;--bg:#f5f5f7;--card:#fff;--surface-2:#fafafb;--surface-3:#f0f0f3;--hover:#e8e8ee;--ph-bg:#ececf1;--line:#ebebf0;--line-2:#dcdce2;--accent:#7c3aed;--accent-2:#a855f7;--accent-deep:#6d28d9;--accent-light:#a78bfa;--accent-bg:#f3ecfe;--accent-soft:#f5f3ff;--accent-faint:#faf7ff;--accent-mid:#e2d6fb;--accent-line:#d9c8fb;--accent-shadow:rgba(124,58,237,.08);--on-accent:#fff;--good:#1a8f4a;--good-bg:#e8f8ee;--good-faint:#f2fbf5;--good-line:#bfe6cd;--bad:#d12d3b;--bad-ink:#7a1020;--bad-bg:#fde8ea;--bad-faint:#fff8f8;--bad-line:#f3c7cf;--warn:#b45309;--warn-ink:#9a3412;--warn-bg:#fff7ed;--warn-faint:#fdf1e3;--warn-line:#fdba74;--star:#f59e0b;--info:#2f5bd8;--info-bg:#e9f0ff;--cta:#ff6b3d;--cta-hover:#f25a2b;--on-cta:#fff;--on-color:#fff;--inverse-bg:#1a1a1f;--inverse-ink:#fff;--qd-hover:rgba(255,255,255,.7);--chart-grid:#ececf1;--chart-grid-2:#f3f3f6;--chart-orange:#ea580c;--heat:124,58,237;--chart-1:#7c3aed;--chart-2:#e11d48;--chart-3:#f59e0b;--chart-4:#65a30d;--chart-5:#0891b2;--chart-6:#0f766e;--chart-7:#9333ea;--chart-8:#b45309;--r:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:var(--fs-md)/1.45 var(--font);-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
.top{display:flex;align-items:center;gap:22px;padding:0 26px;height:60px;background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.brand{font-weight:var(--w-bold);font-size:var(--fs-lg);letter-spacing:-.01em;color:var(--ink);text-decoration:none}.brand span{font-weight:var(--w-medium);color:var(--mute);margin-left:8px;font-size:var(--fs-md)}
.period{display:flex;align-items:center;gap:6px;background:var(--surface-3);border-radius:var(--r-md);padding:3px}
.period button{height:32px;padding:0 12px;border:none;background:transparent;border-radius:var(--r-sm);cursor:pointer;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--mute)}
.period button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.period .custom{margin-left:6px;padding-left:10px;border-left:1px solid var(--line-2);color:var(--mute);font-size:var(--fs-sm);display:inline-flex;align-items:center;gap:4px}
.period .custom input[type=date]{height:30px;border:1px solid transparent;border-radius:var(--r-sm);padding:0 6px;font-size:var(--fs-sm);background:var(--card)}.period .custom.on{color:var(--accent)}.period .custom-go{margin-left:2px;background:var(--card)!important}
main{padding:22px 26px;max-width:1520px;margin:0 auto}
.empty,.warn{padding:40px;text-align:center;color:var(--mute)}.warn{color:var(--bad)}
.box{background:var(--card);border:none;border-radius:var(--r);overflow:hidden}
.runs{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:14px}.run{display:flex;flex-direction:column;gap:8px;padding:16px 20px;background:var(--card);border:1px solid transparent;border-radius:var(--r);text-decoration:none;color:inherit;transition:border-color .12s,box-shadow .12s}
.run:hover{border-color:var(--accent-line);box-shadow:0 4px 16px var(--accent-shadow)}.run-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.run .when{font-weight:var(--w-bold);font-size:var(--fs-base)}.run .what{color:var(--mute)}.run-head .span{font-size:var(--fs-xs);white-space:nowrap}.run .pics{display:flex;flex-wrap:wrap;gap:6px}.run .pics img,.run .pics .ph,.run .pics .more{width:64px;height:84px;border-radius:var(--r-md);background:var(--ph-bg);flex:0 0 auto}.run .pics img{object-fit:cover}.run .pics .more{display:flex;align-items:center;justify-content:center;font-weight:var(--w-bold);font-size:var(--fs-base);color:var(--mute);background:var(--ph-bg)}.run .lsrow{margin-top:6px;width:100%}
.foot{color:var(--mute);font-size:var(--fs-sm);padding:10px 18px}
/* панель действий */
.bar{display:flex;align-items:center;gap:14px;margin-bottom:12px;padding:10px 14px;background:var(--card);border:none;border-radius:var(--r)}
.bar-search{height:40px;width:280px;border:1px solid var(--line);border-radius:var(--r-md);padding:0 14px;font:inherit;background:var(--surface-2)}.bar-search:focus{outline:none;border-color:var(--accent-line);background:var(--card)}
.bar-info{font-weight:var(--w-medium)}.bar-go{height:40px;padding:0 18px;border:none;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-weight:var(--w-medium);font-size:var(--fs-md);cursor:pointer}.bar-go:disabled{opacity:.4;cursor:default}
.bar-own{margin-left:auto;color:var(--mute);font-size:var(--fs-sm)}
/* лидеры */
.leaders{margin-bottom:12px}.leaders-head{width:100%;text-align:left;border:none;background:transparent;padding:14px 18px;font-weight:var(--w-bold);font-size:var(--fs-base);color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:8px}
.leaders-head .chev{display:inline-block;transition:transform .15s;color:var(--accent);font-size:var(--fs-lg);line-height:1}
.leaders .lead{display:none;margin:0;padding:0 18px 16px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.leaders.open .lead{display:grid}.leaders.open .chev{transform:rotate(90deg)}
/* Плитка лидера — по центру (владелец 19.09): подпись сверху, число крупно под
   ней, карточка-победитель компактной строкой внизу. Число — главный элемент,
   поэтому оно крупнее подписи втрое; выход на WB стоит в конце той же строки,
   а не в углу, чтобы подпись по центру не уезжала под него.
   Плитки в ряду одной высоты: сетка растягивает их, а строку с карточкой
   прижимает к низу margin-top:auto. */
.stat{position:relative;background:var(--surface-2);border-radius:var(--r-lg);padding:12px 12px;min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center}
.stat.own{background:var(--warn-bg)}
.stat-k{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.stat-v{font-size:var(--fs-2xl);font-weight:var(--w-bold);letter-spacing:-.02em;line-height:1.15;margin:2px 0 9px}
.stat-row{display:flex;align-items:center;gap:6px;max-width:100%;min-width:0;margin-top:auto}
.stat-card{display:flex;gap:8px;align-items:center;text-decoration:none;color:inherit;min-width:0;text-align:left}
.stat-card img,.stat-card .ph{width:28px;height:36px;border-radius:6px;object-fit:cover;background:var(--ph-bg);flex:none}
.stat-t{display:flex;flex-direction:column;min-width:0}.stat-n{font-size:var(--fs-xs);font-weight:var(--w-medium);white-space:nowrap;overflow:hidden;text-overflow:clip}.stat-m{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat-m .mine{color:var(--warn);font-weight:var(--w-bold)}
.stat-wb{flex:none;width:22px;height:22px;border-radius:var(--r-sm);background:var(--card);color:var(--accent);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:var(--fs-xs)}
.stat-card:hover .stat-n{color:var(--accent)}
/* дельты пилюлями */
.diff{display:inline-flex;align-items:center;gap:2px;margin-top:3px;padding:1px 6px;border-radius:999px;font-size:var(--fs-2xs);font-weight:var(--w-medium);color:var(--mute);background:var(--surface-3)}
.diff i{font-style:normal;font-size:var(--fs-2xs)}.diff.up{color:var(--good);background:var(--good-bg)}.diff.down{color:var(--bad);background:var(--bad-bg)}
/* таблица */
th{background:var(--card)}tr.groups th{background:var(--card);color:var(--mute-3)}tr.groups th.named{border-bottom:2px solid var(--accent-bg)}
tbody tr.row:nth-child(4n+1) td{background:var(--card)}tbody tr.row:hover td{background:var(--accent-faint)}
td,th{border-bottom:1px solid var(--surface-3)}
.card img{border-radius:var(--r-sm)}.card .t a{font-weight:var(--w-medium)}.card .m a{color:var(--accent);text-decoration:none;font-weight:var(--w-medium)}
button.star{color:var(--dim)}button.star.on{color:var(--star)}
/* сравнение */
table.cmp th.cmp-head{background:var(--card)}table.cmp td.best{background:color-mix(in srgb,var(--good-bg) 45%,transparent)}table.cmp td.worst{background:color-mix(in srgb,var(--bad-bg) 40%,transparent)}
/* чипы, попап, график */
.chip{background:var(--accent-bg);color:var(--accent)}
.chb-side button.on{background:var(--accent-bg);color:var(--accent)}.chb-mode{background:var(--surface-3);border-radius:var(--r-md);padding:2px;display:inline-flex}
.chb-mode button{border:none;background:transparent;border-radius:var(--r-sm);margin:0;height:28px;color:var(--mute)}.chb-mode button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08);font-weight:var(--w-medium)}
.chb-legend .lg{background:var(--surface-2);border-color:transparent}.chb-legend .lg:hover{background:var(--surface-3)}
.tile{border:none;background:var(--card)}.tile .k{font-size:var(--fs-xs);text-transform:none;letter-spacing:0}.tile .v{font-size:var(--fs-xl)}
.ch-tip{border:none;box-shadow:0 12px 40px rgba(0,0,0,.14)}
.pop{border:none;box-shadow:0 16px 48px rgba(0,0,0,.16)}.pop-ok{height:40px;border-radius:var(--r-md)}.pop-reset{height:40px;border-radius:var(--r-md);border:none;background:var(--surface-3)}
.pop-quick button{border:none;background:var(--surface-3);border-radius:var(--r-sm);height:30px}.pop-quick button:hover{background:var(--accent-bg)}
.foot button{border:none;background:var(--surface-3)}

td.n .diff{display:table;margin:3px 0 0 auto}

.sec-h{font-weight:var(--w-bold);font-size:var(--fs-base);margin-bottom:10px}.sec-h .m{font-weight:var(--w-regular);color:var(--mute);font-size:var(--fs-sm);margin-left:6px}
.params{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.param{background:var(--surface-2);border-radius:var(--r-md);padding:10px 12px}.param .k{font-size:var(--fs-xs);color:var(--mute)}.param .v{font-size:var(--fs-base);font-weight:var(--w-bold);margin-top:2px}
table.mini{min-width:0}table.mini th,table.mini td{padding:8px 10px}table.mini tbody tr:hover td{background:var(--accent-faint)}

.who{position:relative;margin-left:8px}.who-btn{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px 0 6px;border:none;border-radius:var(--r-md);background:var(--surface-3);cursor:pointer;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--ink)}
.who-ava{width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);display:flex;align-items:center;justify-content:center}
.who-menu{position:absolute;right:0;top:46px;width:336px;max-height:calc(100vh - 70px);overflow:auto;background:var(--card);border-radius:var(--r-lg);box-shadow:0 16px 48px rgba(0,0,0,.16);padding:8px 16px;z-index:60;font-size:var(--fs-md)}
.bar-own-pick{height:34px;padding:0 14px;border:1px solid var(--accent-line);border-radius:var(--r-md);background:var(--card);color:var(--accent);font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer}.bar-own-pick:hover{background:var(--accent-bg)}
.pop-own{width:340px;max-height:420px;overflow:auto}.own-list{display:flex;flex-direction:column;gap:4px}
.own-list button{display:flex;gap:10px;align-items:center;text-align:left;border:none;background:var(--surface-2);border-radius:var(--r-md);padding:6px 8px;cursor:pointer;font-size:var(--fs-sm);color:var(--ink)}.own-list button:hover{background:var(--accent-bg)}
.own-list img{width:32px;height:42px;border-radius:6px;object-fit:cover}.own-list span{display:flex;flex-direction:column;min-width:0}.own-list small{color:var(--mute);font-size:var(--fs-xs)}

.params .param{min-width:0}.param .v{font-size:var(--fs-base);line-height:1.3;word-break:break-word}
.chips-inline{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.chip-s{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--accent-bg);color:var(--accent);font-size:var(--fs-xs);font-weight:var(--w-medium);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip-more{border:none;background:var(--surface-3);border-radius:999px;padding:2px 8px;font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer;color:var(--mute)}
.params{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}

td.detail-cell{padding:0!important;background:var(--accent-faint)}.detail-head{padding:10px 16px 0;color:var(--mute);font-size:var(--fs-sm)}
/* Ячейка раскрытой строки шириной во всю таблицу, а таблица едет боком.
   Содержимое прилипает к левому краю прокрутки и получает ровно видимую
   ширину (её ставит fitDetail в app.js) — иначе график уезжал правым краем
   за экран и по крайним дням нельзя было провести мышью (владелец 19.09). */
.detail-in{position:sticky;left:0;max-width:100%}
tr.detail .chb{min-height:300px}tr.detail .chb-side{padding:8px 6px}tr.detail .chb-side button{padding:5px 9px;font-size:var(--fs-sm)}tr.detail .ch{height:240px}

.who{margin-left:12px;order:9}.who-btn{padding:0 10px 0 6px}.who-chev{color:var(--mute);font-size:var(--fs-xs);margin-left:2px}.who-btn:hover{background:var(--hover)}
/* Меню аккаунта: сетка 8px, секции тонкой линией, заголовки капителью 11px,
   значения 14px, цветных плашек нет (владелец 18.09). */
.who-head{display:flex;gap:12px;align-items:center;padding:8px 0 12px;border-bottom:1px solid var(--line)}.who-ava.big{width:36px;height:36px;font-size:var(--fs-xs);flex:none}.who-head-t{min-width:0;flex:1}.who-name{font-weight:var(--w-bold);font-size:var(--fs-md);line-height:1.3}
.who-uid{display:block;max-width:100%;border:none;background:transparent;padding:0;margin:0;color:var(--mute);font-size:var(--fs-xs);line-height:1.4;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:copy}.who-uid:hover{color:var(--ink)}.who-uid.copied{color:var(--good)}.who-uid-none{color:var(--mute);font-size:var(--fs-xs)}
.who-sec{padding:12px 0;border-bottom:1px solid var(--line)}.who-sec-t{display:block;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute)}.who-sec>.who-sec-t{margin-bottom:8px}
.who-line{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:20px;font-size:var(--fs-md)}.who-line b{font-weight:var(--w-medium);white-space:nowrap}.who-line .who-sec-t{margin:0}
.who-plan-name{font-weight:var(--w-medium);cursor:help;border-bottom:1px dotted var(--dim-2)}.who-days.soon{color:var(--bad);font-weight:var(--w-medium)}
.who-renew{display:block;margin-top:8px;height:36px;line-height:36px;text-align:center;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);text-decoration:none;font-weight:var(--w-medium);font-size:var(--fs-sm)}.who-renew:hover{background:var(--accent-deep)}
.who-meter{padding:4px 0}.who-meter .lsbar{margin-top:6px;height:4px}.who-meter .who-line{font-size:var(--fs-sm)}.who-meter .who-line span{color:var(--ink-3)}
.who-sec.who-devices .who-sec-t{cursor:help}
details.who-sec{padding:0}details.who-sec summary{list-style:none;display:flex;align-items:center;gap:8px;padding:12px 0;cursor:pointer;font-size:var(--fs-md)}details.who-sec summary::-webkit-details-marker{display:none}
.who-sum{margin-left:auto;color:var(--mute);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.who-arr{font-style:normal;color:var(--mute);font-size:var(--fs-base);line-height:1;transition:transform .15s}details.who-sec[open] .who-arr{transform:rotate(90deg)}
.who-fold{padding:0 0 12px}.who-fold .m{color:var(--mute);font-size:var(--fs-xs);line-height:1.4;margin-bottom:8px}.who-fold .own-any{margin:8px 0 0}.who-fold .own-nm{height:32px;font-size:var(--fs-sm)}.who-fold .own-nm-go{height:32px;font-size:var(--fs-sm)}
.who-theme{display:block}.who-theme .theme-seg{margin:0}
.who-out{display:block;width:100%;height:36px;border:none;border-radius:var(--r-md);background:transparent;color:var(--mute);font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;margin:4px 0 0}.who-out:hover{background:var(--bad-bg);color:var(--bad)}
.own-any{display:flex;gap:6px;margin-bottom:8px}.own-nm{flex:1;height:34px;border:1px solid var(--line);border-radius:var(--r-md);padding:0 10px;font-size:var(--fs-sm)}.own-nm-go{height:34px;padding:0 12px;border:none;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer}
.bar-warn{color:var(--bad);font-weight:var(--w-medium);margin-left:6px}

.stat-v{font-size:var(--fs-2xl);font-weight:var(--w-bold);color:var(--ink-2);letter-spacing:-.02em}
.tile .v{font-size:var(--fs-lg);font-weight:var(--w-bold);color:var(--ink-2)}
td.n{font-size:var(--fs-sm);color:var(--ink-2)}

.card-head{display:flex;gap:18px;padding:16px 18px;margin-bottom:12px;align-items:flex-start}
.card-photo{width:84px;height:110px;border-radius:var(--r-md);object-fit:cover;background:var(--ph-bg);display:block}.card-photo.ph{background:var(--ph-bg)}
.card-pass{min-width:0;flex:1}.card-title{font-size:var(--fs-lg);font-weight:var(--w-bold);letter-spacing:-.01em;margin-bottom:6px}
.card-facts{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--mute);font-size:var(--fs-sm);margin-top:4px;align-items:center}.card-facts b{color:var(--ink);font-weight:var(--w-bold)}
.sec{margin-bottom:12px}.sec-head{width:100%;text-align:left;border:none;background:transparent;padding:13px 18px;font-weight:var(--w-bold);font-size:var(--fs-base);color:var(--ink);cursor:pointer;display:flex;align-items:center;gap:8px}
.sec-head .chev{display:inline-block;transition:transform .15s;color:var(--accent);font-size:var(--fs-lg);line-height:1}.sec.open .sec-head .chev{transform:rotate(90deg)}
.sec-body{display:none;padding:0 18px 16px}.sec.open .sec-body{display:block}
.sec .lead{margin:0}/* График живёт в тех же полях, что и остальные блоки: вынос на края (margin −18px) выталкивал плашки легенды за рамку блока (22.09). */

.an-verdict{padding:12px 14px;border-radius:var(--r-md);background:var(--accent-soft);margin-bottom:12px;font-size:var(--fs-md);line-height:1.5}.an-verdict b{color:var(--accent)}
tr.an-bad td{background:var(--bad-bg)}tr.an-gap td{background:var(--warn-bg)}
.an-money{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.an-money .tile{background:var(--surface-2)}
.share-tabs{display:inline-flex;background:var(--surface-3);border-radius:var(--r-md);padding:2px;margin-bottom:10px}.share-tabs button{border:none;background:transparent;border-radius:var(--r-sm);height:28px;padding:0 12px;font-size:var(--fs-sm);cursor:pointer;color:var(--mute)}.share-tabs button.on{background:var(--card);color:var(--ink);font-weight:var(--w-medium);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.share-legend{display:flex;flex-wrap:wrap;gap:10px;font-size:var(--fs-xs);color:var(--mute);margin-bottom:8px}.share-legend b{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.share-rows{display:flex;flex-direction:column;gap:6px}.share-row{display:grid;grid-template-columns:80px 1fr;gap:10px;align-items:center}.share-d{font-size:var(--fs-xs);color:var(--mute)}.share-bar{display:flex;height:22px;border-radius:6px;overflow:hidden}.share-bar i{display:block;height:100%}
.dual .legend{margin:0 0 4px}

.pass-grid{display:grid;grid-template-columns:1fr 340px;gap:18px}.pass-side{background:var(--surface-2);border-radius:var(--r-md);padding:12px}

ul.oklist{margin:6px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-md)}ul.oklist li::marker{color:var(--good)}


/* ── паспорт карточки: подпись сверху, значение снизу, действия справа ── */
.card-head{padding:18px 20px;gap:20px}
.card-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}
.card-title{font-size:var(--fs-xl);font-weight:var(--w-bold);letter-spacing:-.01em;margin:0}.card-sub{color:var(--mute);font-size:var(--fs-sm);margin-top:3px}
.card-actions{display:flex;gap:8px;flex:none}
.btn{height:36px;line-height:36px;padding:0 14px;border:none;border-radius:var(--r-md);background:var(--surface-3);color:var(--ink);font-weight:var(--w-medium);font-size:var(--fs-sm);text-decoration:none;cursor:pointer;white-space:nowrap}.btn:hover{background:var(--hover)}
.star-btn.on{background:var(--warn-bg);color:var(--warn)}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 18px}.facts.wide{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.fact{padding:6px 0;border-top:1px solid var(--surface-3)}.facts.wide .fact{background:var(--surface-2);border:none;border-radius:var(--r-md);padding:10px 12px}
.fact .k{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fact .v{font-size:var(--fs-base);font-weight:var(--w-bold);margin-top:1px;color:var(--ink-2)}.facts.wide .fact .v{font-size:var(--fs-lg)}
.fact.conv{background:var(--accent-soft)!important}

/* ── «Итоги за период» на странице карточки: все метрики плитками ────────
   Одна сетка на весь блок, подзаголовки групп занимают всю строку — поэтому
   группа всегда начинается с новой строки, а плитки всех групп одной ширины и
   ряды не разъезжаются. Содержимое по центру тем же приёмом, что у плиток
   лидеров (.stat): подпись сверху, число крупно под ней.
   Место под две строки подписи занято всегда (min-height + прижим к низу),
   поэтому числа всех плиток стоят на одной высоте, а длинное имя переносится,
   а не обрезается многоточием. */
/* 168px — это ровно семь столбцов на ширине 1400: «Воронка» и «Прочее» по
   семь метрик ложатся в ряд целиком, а самая длинная подпись («Ключей с
   заказами») помещается, не упираясь в край. */
/* Вид 25.09 (Андрей: «уродство… разделить как надо»): каждая группа — своей
   строкой, подпись слева, плитки одной ширины в общей сетке — колонки
   плиток совпадают от группы к группе, ничего не «плывёт». */
.tot{display:flex;flex-direction:column;gap:10px}
.tot-g{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;column-gap:14px;min-width:0}
/* Плитка итогов — по размеру своей метрики (Андрей 25.09: одинаковые 158 px
   с пустыми полями вокруг «20,4» «визуально неприятно»). */
.tot-gr{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:8px}
.tot-gt{font-size:var(--fs-xs);font-weight:var(--w-bold);color:var(--mute)}
.tot-t{background:var(--surface-2);border-radius:var(--r-md);padding:9px 10px;min-width:0;min-height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.tot-k{display:flex;align-items:flex-end;justify-content:center;max-width:100%;font-size:var(--fs-xs);line-height:1.25;color:var(--mute);white-space:nowrap}
.tot-k span{min-width:0}
.tot-v{margin-top:2px;max-width:100%;font-size:var(--fs-lg);font-weight:var(--w-bold);line-height:1.2;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}

/* ── Типографика как у кабинета WB: Inter, крупнее и спокойнее ── */
body{font-family:var(--font);font-size:var(--fs-md);letter-spacing:-.005em}
th{font-size:var(--fs-xs);text-transform:none;font-weight:var(--w-medium);color:var(--mute-2)}th .th-l{font-weight:var(--w-medium)}
td,th{padding:13px 12px}td.n{font-size:var(--fs-md);font-weight:var(--w-medium);color:var(--ink)}
.card .t a{font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink)}.card .m{font-size:var(--fs-sm);color:var(--mute-2);margin-top:2px}
.card img{width:52px;height:68px;border-radius:var(--r-md)}
.chips-row{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap}.pill{display:inline-block;padding:1px 7px;border-radius:6px;background:var(--surface-3);color:var(--ink-3);font-size:var(--fs-xs);font-weight:var(--w-medium)}.pill.svc{background:var(--info-bg);color:var(--info);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.diff{font-size:var(--fs-xs);font-weight:var(--w-medium)}.stat-v,.tile .v,.fact .v{color:var(--ink)}
.pickcell{white-space:nowrap}button.exp{border:none;background:var(--surface-3);width:24px;height:24px;border-radius:var(--r-sm);cursor:pointer;color:var(--ink-3);font-size:var(--fs-base);line-height:1;margin-left:6px;vertical-align:middle;transition:transform .15s}button.exp.on{transform:rotate(90deg);background:var(--accent-bg);color:var(--accent)}
tr.size-row td{background:var(--surface-2);padding:10px 12px;border-bottom:1px solid var(--surface-3)}tr.size-row td.n{font-weight:var(--w-medium);color:var(--ink-3)}tr.size-row td.dim{color:var(--dim);font-weight:var(--w-regular)}
.size-name{display:flex;flex-direction:column;padding-left:60px}.size-name b{font-size:var(--fs-md)}.size-name .m{font-size:var(--fs-xs)}
.sec-t{font-size:var(--fs-base)}.leaders-head{font-size:var(--fs-base)}

td.pickcell{padding-left:12px;padding-right:4px}.pickcell input.pick{vertical-align:middle}button.exp{margin-left:8px}

/* ── Подача кабинета WB: меню шапки, заголовок страницы, вкладки, плитки, подсказки ── */
.top{gap:14px}.brand{margin-right:4px}
.menu{display:flex;align-items:center;gap:2px;height:60px;flex:1}
.mi{display:block;padding:8px 12px;border-radius:var(--r-md);color:var(--ink);text-decoration:none;font-weight:var(--w-medium);font-size:var(--fs-md);cursor:pointer;white-space:nowrap}
.mi:hover,.mi.on{background:var(--surface-3)}
.help{position:relative;margin-left:auto}.help-btn{height:38px;padding:0 12px;border:none;border-radius:var(--r-md);background:transparent;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--ink);cursor:pointer}.help:hover .help-btn{background:var(--surface-3)}
.help-menu{display:none;position:absolute;right:0;top:48px;width:400px;background:var(--card);border-radius:var(--r-lg);box-shadow:0 20px 60px rgba(0,0,0,.16);padding:16px 20px;z-index:70;font-size:var(--fs-md);line-height:1.5}
.help:hover .help-menu{display:block}.help-menu b{display:block;margin-top:10px}.help-menu b:first-child{margin-top:0}.help-menu p{margin:2px 0 0;color:var(--ink-3)}
.who{margin-left:2px}
.page-head{margin-bottom:12px}.page-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.page-head h1{margin:0;font-size:var(--fs-2xl);font-weight:var(--w-bold);letter-spacing:-.01em;line-height:1.2}.page-sub{color:var(--mute);font-size:var(--fs-sm);margin-top:4px}
.page-right{display:flex;align-items:center;gap:6px;color:var(--mute);font-size:var(--fs-sm);white-space:nowrap;padding-top:4px}.page-right .upd{margin-right:6px}
button.ico{width:36px;height:36px;border:none;border-radius:var(--r-md);background:var(--card);color:var(--ink);font-size:var(--fs-lg);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}button.ico:hover{background:var(--hover)}
/* Единый вертикальный ритм: любые два соседних блока страницы разделены 12px
   (владелец 18.09: «между блоками должен быть небольшой отступ»). Свои
   margin-bottom у блоков схлопываются с этим правилом, а не складываются. */
#app > * + *{margin-top:12px}
.tip{position:fixed;z-index:200;max-width:400px;background:var(--inverse-bg);color:var(--inverse-ink);font-size:var(--fs-sm);line-height:1.4;font-weight:var(--w-medium);padding:8px 12px;border-radius:var(--r-sm);box-shadow:0 8px 24px rgba(0,0,0,.2);pointer-events:none}
.q{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;border:1.5px solid var(--dim-2);color:var(--mute-2);font-size:var(--fs-2xs);font-weight:var(--w-bold);margin-left:5px;vertical-align:1px;cursor:help;flex:none;line-height:1}
.q:hover{border-color:var(--ink);color:var(--ink)}th .q{margin-left:3px}.sec-t .q,.leaders-head .q{margin-left:6px}
.kpi{display:flex;flex-wrap:wrap;padding:14px 6px;margin-bottom:12px}
.kpi-i{flex:1 1 170px;min-width:170px;padding:2px 16px;border-right:1px solid var(--line)}.kpi-i:last-child{border-right:none}
.kpi-k{font-size:var(--fs-xs);color:var(--mute);display:flex;align-items:center;white-space:nowrap}.kpi-v{font-size:var(--fs-lg);font-weight:var(--w-bold);margin-top:2px;color:var(--ink)}
.kpi-bar{height:6px;border-radius:3px;background:var(--ph-bg);margin-top:8px;overflow:hidden;max-width:150px}.kpi-bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.kpi-s{font-size:var(--fs-xs);color:var(--mute);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:clip}
tr.total td{background:var(--surface-2);border-bottom:2px solid var(--accent-line)}tr.total td.n{font-weight:var(--w-bold)}tr.total td.l .m{font-size:var(--fs-xs);color:var(--mute);font-weight:var(--w-regular);margin-top:2px}
.chb-legend .lg{align-items:flex-start;padding:6px 12px 6px 8px;border-radius:var(--r-md)}.chb-legend .cb{width:16px;height:16px;border-radius:4px;color:var(--on-color);font-size:var(--fs-xs);display:inline-flex;align-items:center;justify-content:center;flex:none;margin-top:2px;font-style:normal}
.chb-legend .lg.off .cb{background:var(--dim)!important}.chb-legend .lg.off{opacity:.75;text-decoration:none}
.lg-t{display:flex;flex-direction:column;align-items:flex-start;line-height:1.25}.lg-n{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm)}.lg-v{font-size:var(--fs-md);font-weight:var(--w-bold);margin-top:2px}

/* ── Период как у WB: кнопка с датами и календарь ── */
.period{position:relative;background:transparent;padding:0;border-radius:0}
.dp-btn{display:inline-flex;align-items:center;gap:10px;height:40px;padding:0 12px 0 14px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--card);font-weight:var(--w-medium);font-size:var(--fs-md);color:var(--ink);cursor:pointer;letter-spacing:0}
.dp-btn:hover{border-color:var(--dim-2)}.dp-btn.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.dp-btn svg{color:var(--accent)}
.dp{position:absolute;right:0;top:48px;z-index:80;display:grid;grid-template-columns:300px 190px;background:var(--card);border-radius:var(--r-lg);box-shadow:0 20px 60px rgba(0,0,0,.18);padding:14px 16px 16px;gap:18px;font-size:var(--fs-md)}
.dp-nav{display:flex;align-items:center;justify-content:space-between;padding:0 4px 8px}.dp-nav b{font-size:var(--fs-base)}
.dp-nav button{border:none;background:transparent;font-size:var(--fs-base);cursor:pointer;color:var(--accent);width:28px;height:28px;border-radius:var(--r-sm)}.dp-nav button:hover{background:var(--surface-3)}.dp-nav button:disabled{color:var(--dim);cursor:default;background:transparent}
.dp-months{max-height:360px;overflow-y:auto;padding-right:6px;scrollbar-width:thin}
.dp-m{margin-bottom:14px}.dp-mt{text-align:center;font-weight:var(--w-medium);margin-bottom:8px}
.dp-dow,.dp-grid{display:grid;grid-template-columns:repeat(7,38px)}.dp-dow span{text-align:center;font-size:var(--fs-sm);color:var(--mute);padding-bottom:6px}.dp-dow span.we{color:var(--bad)}
.dp-grid{gap:0;border-left:1px solid var(--line-2);border-top:1px solid var(--line-2)}.dp-grid>*{height:34px;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.dp-grid>span{border-color:transparent;border-right-color:transparent}
.dp-d{background:var(--card);border:none;font-size:var(--fs-md);color:var(--ink);cursor:pointer;padding:0}.dp-d:hover{background:var(--surface-3)}
.dp-d.off{color:var(--dim);cursor:default;background:var(--card)}.dp-d.in{background:var(--accent-bg)}.dp-d.pick{background:var(--accent-mid);color:var(--accent);font-weight:var(--w-bold)}
.dp-side{display:flex;flex-direction:column;gap:8px}
.dp-q{height:38px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--card);font-weight:var(--w-medium);font-size:var(--fs-md);cursor:pointer;color:var(--ink)}.dp-q:hover{background:var(--bg)}.dp-q.on{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}
.dp-f{display:flex;flex-direction:column;gap:5px;color:var(--mute);font-size:var(--fs-sm);margin-top:4px}.dp-f input{height:40px;border:1px solid var(--line-2);border-radius:var(--r-md);padding:0 12px;font-weight:var(--w-medium);font-size:var(--fs-md);color:var(--ink)}.dp-f input:focus{outline:none;border-color:var(--accent)}
.dp-err{color:var(--bad);font-size:var(--fs-sm)}
.dp-reset{height:42px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--card);font-weight:var(--w-medium);font-size:var(--fs-md);cursor:pointer;margin-top:6px}.dp-reset:hover{background:var(--bg)}
.dp-save{height:42px;border:none;border-radius:var(--r-md);background:var(--cta);color:var(--on-cta);font-weight:var(--w-medium);font-size:var(--fs-md);cursor:pointer}.dp-save:hover{background:var(--cta-hover)}

[hidden]{display:none!important}
.period .dp-btn{height:40px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);box-shadow:none;border-radius:var(--r-md)}.period .dp-btn.on{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent);background:var(--card)}
.period .dp-q{height:38px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:var(--r-md);padding:0;box-shadow:none}.period .dp-q.on{border-color:var(--accent);color:var(--accent);background:var(--accent-bg);box-shadow:none}
.period .dp-nav button{height:28px;padding:0;color:var(--accent)}.period .dp-nav button:disabled{color:var(--dim)}
.period .dp-d{height:34px;border-radius:0;padding:0;color:var(--ink);background:var(--card)}.period .dp-d.off{color:var(--dim)}.period .dp-d.in{background:var(--accent-bg)}.period .dp-d.pick{background:var(--accent-mid);color:var(--accent)}.period .dp-d:hover:not(.off){background:var(--surface-3)}
.period .dp-reset{height:42px;border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:var(--r-md);padding:0}
.period .dp-save{height:42px;border:none;background:var(--cta);color:var(--on-cta);border-radius:var(--r-md);padding:0}.period .dp-save:hover{background:var(--cta-hover)}

/* панель таблицы внутри бокса, как заголовок «Детализация по дням» у WB */
.bar.tbar{margin:0;border-radius:0;padding:16px 18px 12px;border-bottom:1px solid var(--surface-3);flex-wrap:wrap}
.tbar-t{font-weight:var(--w-bold);font-size:var(--fs-base);margin-right:8px}.tbar-t .m{font-weight:var(--w-regular);color:var(--mute);font-size:var(--fs-sm);margin-left:4px}
.tbar .bar-search{width:250px;height:38px}.tbar .bar-info{font-weight:var(--w-medium);color:var(--mute);font-size:var(--fs-sm)}.tbar .bar-go{height:38px}
.box .chips{padding:10px 18px 0}

/* кнопка «Размеры · N» под названием карточки вместо безымянной стрелки */
.size-name{padding-left:52px}

.chb-legend .lg,.lg-n,.lg-v{white-space:nowrap}.chb-legend{position:relative;z-index:2;background:var(--card)}.chb-chart{clear:both}

/* матрица цена × конверсия: четыре угла списками */
.quad{display:grid;grid-template-columns:1fr 1fr;gap:10px}.qd{border-radius:var(--r-md);padding:12px 14px;background:var(--surface-2)}.qd.good{background:var(--good-faint)}.qd.bad{background:var(--bad-faint)}
.qd-t{font-weight:var(--w-bold);font-size:var(--fs-md)}.qd-t .m{font-weight:var(--w-regular);color:var(--mute);margin-left:4px}.qd-h{color:var(--mute);font-size:var(--fs-xs);margin:2px 0 8px}
.qd-i{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;padding:4px 6px;margin:0 -6px;border-radius:var(--r-sm);text-decoration:none;color:var(--ink);font-size:var(--fs-sm)}.qd-i:hover{background:var(--qd-hover)}
.qd-i img,.qd-i i{width:28px;height:36px;border-radius:6px;object-fit:cover;background:var(--line);display:block}.qd-n{font-weight:var(--w-medium)}.qd-v{color:var(--mute);font-variant-numeric:normal;white-space:nowrap}
.qd-i.own{background:var(--warn-bg);box-shadow:inset 0 0 0 1.5px var(--warn-line)}.qd-i.own .qd-n{color:var(--warn)}.qd-e{color:var(--mute);font-size:var(--fs-sm)}

/* три группы полосками вместо точечной диаграммы */
.an-list{margin-top:10px}.an-list > summary{cursor:pointer}

table.mini td.n{white-space:normal}.an-verdict{line-height:1.55}.quad .qd-i span:empty{display:none}

.qd-i{grid-template-columns:minmax(28px,auto) 1fr auto}.qd-n{white-space:nowrap}

/* ── Телефон: шапка в две строки, всё в одну колонку, таблицы прокручиваются внутри блока ── */
@media (max-width: 720px){
  html,body{overflow-x:hidden}
  .top{flex-wrap:wrap;height:auto;padding:8px 12px 0;gap:6px 8px;row-gap:6px}
  .brand{font-size:var(--fs-base);margin-right:auto}.brand span{display:none}
  .menu{order:5;flex-basis:100%;height:44px;overflow-x:auto;scrollbar-width:none;margin:0 -12px;padding:0 8px;border-top:1px solid var(--line)}
  .mi{padding:6px 10px;font-size:var(--fs-md)}
  .period{order:4;flex-basis:100%}.dp-btn{width:100%;justify-content:space-between;height:38px;font-size:var(--fs-md)}
  .dp{position:fixed;left:8px;right:8px;top:60px;grid-template-columns:1fr;max-height:82vh;overflow:auto;padding:12px}
  .dp-dow,.dp-grid{grid-template-columns:repeat(7,1fr)}.dp-months{max-height:none;padding-right:0}.dp-side{flex-direction:row;flex-wrap:wrap;gap:6px}
  .dp-q{flex:1 1 30%}.dp-f{flex:1 1 45%}.dp-err{flex-basis:100%}.dp-reset,.dp-save{flex:1 1 45%;margin-top:0}
  .help{margin-left:0}.help-btn{padding:0 8px;font-size:var(--fs-sm)}.help-menu{position:fixed;left:8px;right:8px;top:60px;width:auto}
  .who{margin-left:0}.who-btn{padding:0 6px 0 4px}.who-txt{display:none}.who-menu{position:fixed;left:8px;right:8px;top:60px;width:auto}
  main{padding:12px 10px}
  .page-head h1{font-size:var(--fs-lg)}.page-row{flex-wrap:wrap}.page-right{width:100%;justify-content:flex-end;padding-top:0}.page-right .upd{margin-right:auto}
  .kpi{padding:8px 4px}.kpi-i{flex:1 1 44%;min-width:140px;padding:8px 10px;border-right:none}.kpi-v{font-size:var(--fs-lg)}
  .leaders .lead{grid-template-columns:repeat(2,minmax(0,1fr));padding:0 10px 10px;gap:8px}.stat{padding:10px 10px}.stat-wb{display:none}
  .leaders-head,.sec-head{padding:12px 12px;font-size:var(--fs-md)}.sec-body{padding:0 12px 12px}
  .bar.tbar{padding:12px 12px 10px;gap:8px}.tbar-t{width:100%}.tbar .bar-search{width:100%}.bar-own{margin-left:0;width:100%}
  .bar-info{width:100%}.bar-go{width:100%}
  .runs{grid-template-columns:1fr;gap:10px}.runs .run{gap:6px;padding:12px 14px}.run .pics img,.run .pics .ph,.run .pics .more{width:52px;height:68px}
  .card-head{flex-direction:column;gap:12px;padding:14px 12px}.card-photo{width:64px;height:84px}.card-top{flex-direction:column}
  .card-title{font-size:var(--fs-base)}.card-actions{flex-wrap:wrap}.btn{height:32px;line-height:32px;padding:0 10px;font-size:var(--fs-sm)}
  .facts,.facts.wide{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.fact .v,.facts.wide .fact .v{font-size:var(--fs-md)}
  .tot{gap:12px}.tot-g{width:100%;grid-template-columns:1fr;row-gap:6px}.tot-gr{display:grid;grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-columns:auto;gap:6px}.tot-t{padding:9px 8px}.tot-k{white-space:normal}.tot-v{font-size:var(--fs-lg)}
  .params{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.param .v{font-size:var(--fs-md)}
  .chb{grid-template-columns:1fr;min-height:0}.chb-side{flex-direction:row;overflow-x:auto;scrollbar-width:none;border-right:none;border-bottom:1px solid var(--line);padding:6px 8px}
  .chb-side button{white-space:nowrap;padding:6px 10px;font-size:var(--fs-sm)}.chb-main{padding:10px 8px 4px}.chb-top{flex-wrap:wrap}.ch{height:220px}
  .chb-legend .lg{padding:4px 8px 4px 6px}.lg-n{font-size:var(--fs-xs)}.lg-v{font-size:var(--fs-sm)}
  .quad{grid-template-columns:1fr}
  .pass-grid{grid-template-columns:1fr}.an-money{grid-template-columns:1fr}
  .share-row{grid-template-columns:60px 1fr}
  .an-verdict{font-size:var(--fs-md);padding:10px 12px}
  .tip{max-width:calc(100vw - 16px)}
  .pop{left:8px!important;right:8px;width:auto}
  table.mini{min-width:520px}.sec-body,.box{overflow-x:auto}
}

@media (max-width: 720px){
  .who{order:0}.help{order:0}.period{order:4}.menu{order:5}
  .kpi-k{white-space:normal;line-height:1.25}
  .dp-months{max-height:46vh;overflow-y:auto}
}

/* меню и помощь по тапу */
.help.open .help-menu{display:block}
/* нижняя панель и шторка — только на телефоне */
.bnav{display:none}
@media (max-width: 720px){
  .menu{display:none}
  main{padding-bottom:84px}
  .bnav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--card);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .bnav button{border:none;background:transparent;font-weight:var(--w-medium);font-size:var(--fs-xs);color:var(--mute);display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0;border-radius:var(--r-md)}
  .bnav button i{font-style:normal;font-size:var(--fs-lg);line-height:1}.bnav button.on{color:var(--accent);background:var(--accent-bg)}
  .who-menu,.help-menu{top:auto;bottom:0;left:0;right:0;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:72vh;overflow:auto;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .top{padding-top:6px}.help{margin-left:auto}
  /* поля ввода 16px — иначе iPhone приближает экран при фокусе */
  .bar-search,.dp-f input,.own-nm,.pop-nums input{font-size:var(--fs-base)}
  /* лидеры — карусель с прилипанием */
  .leaders .lead{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:8px;padding:0 12px 12px;scrollbar-width:none}
  .leaders.open .lead{display:flex}.leaders .stat{flex:0 0 78%;scroll-snap-align:start}
  /* таблица: галочка и карточка прилипают слева, остальное едет */
  table{min-width:900px}
  th{position:sticky;top:0;z-index:3}th.l{z-index:4}tr.groups th{position:static}
  table.cmp th.l:first-child,table.cmp td.k{position:sticky;left:0;z-index:2;background:var(--card);box-shadow:4px 0 8px -4px rgba(0,0,0,.12)}
  table.hm th.l,table.hm td.l{position:sticky;left:0;z-index:2;background:var(--card)}
  .card{gap:8px}.card img{width:44px;height:58px}.card .t a{font-size:var(--fs-md)}
  td,th{padding:10px 8px}td.n{font-size:var(--fs-sm)}
  /* календарь снизу: сначала быстрые кнопки и даты, потом месяцы */
  .dp{top:auto;bottom:0;left:0;right:0;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:86vh;padding:14px 14px calc(14px + env(safe-area-inset-bottom))}
  .dp-side{order:-1;margin-bottom:10px}.dp-months{max-height:40vh}
  .btn,.bar-go,.bar-own-pick,.pop-ok,.pop-reset{min-height:42px}
}

.top{z-index:40}
/* Шторки профиля, календаря и «Помощи» лежат внутри шапки, а sticky-шапка —
   отдельный стековый контекст: с z-index 40 её низ уходил под нижнее меню
   (z-index 90) и нижняя часть шторки не нажималась (iPhone, аудит 08.09).
   Поднимаем шапку выше нижнего меню, но только пока шторка открыта: иначе она
   закрывала бы всплывающие окна фильтров на прокрутке. */
@media (max-width: 720px){
  .top:has(.who-menu:not([hidden])),
  .top:has(.help.open),
  .top:has(.dp:not([hidden])){z-index:95}
}
@media (max-width: 720px){
  /* Только таблица замера: галочка 44, название 214. Раньше правило било по любой
     таблице с colgroup — у «Мест по ключам» колонка ключа схлопывалась до 44. */
  table.cards col:nth-child(2){width:214px!important}table.cards col:first-child{width:44px!important}
  .pill.svc{display:none}.card .t a{font-size:var(--fs-sm)}.card .m{font-size:var(--fs-xs)}
  .ch-tip{min-width:0;max-width:calc(100vw - 48px);font-size:var(--fs-xs)}.ch-row{grid-template-columns:10px 1fr 46px 70px}
}
@media (max-width: 720px){
  table{min-width:1300px}table.mini,table.hm,table.cmp{min-width:0}table.mini{min-width:520px}
  td.l{overflow:hidden}.card .m{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}


.page-head h1 .badge{display:inline-block;vertical-align:middle;margin-left:8px;padding:3px 10px;border-radius:999px;background:var(--card);color:var(--mute);font-size:var(--fs-sm);font-weight:var(--w-medium);white-space:nowrap;letter-spacing:0}
@media (max-width: 720px){.page-head h1{font-size:var(--fs-lg);line-height:1.25}.page-head h1 .badge{display:inline-block;margin:6px 0 0;background:var(--ph-bg)}}
@media (max-width: 720px){.leaders:not(.open) .lead{display:none}}

/* телефон: список карточек вместо таблицы */
.mlist{display:none}
@media (max-width: 720px){
  .box.has-mlist table{display:none}.mlist{display:block}
  .ml-head{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--surface-3);font-size:var(--fs-xs);color:var(--mute)}.ml-head label{display:flex;align-items:center;gap:6px;flex:1;min-width:0}
  .ml-sort{flex:1;min-width:0;height:38px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--card);font-weight:var(--w-medium);font-size:var(--fs-base);color:var(--ink);padding:0 8px}
  .ml-dir{height:38px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--card);font-weight:var(--w-medium);font-size:var(--fs-sm);padding:0 10px;color:var(--ink);white-space:nowrap}
  .ml-i{padding:12px 12px 10px;border-bottom:1px solid var(--surface-3)}.ml-i.own{background:var(--warn-bg)}
  .ml-top{display:flex;gap:8px;align-items:center}.ml-top img,.ml-ph{width:44px;height:58px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none;display:block}
  .ml-pick{width:18px;height:18px;flex:none}.ml-rank{font-size:var(--fs-xs);color:var(--mute);width:16px;text-align:center;flex:none}
  .ml-t{flex:1;min-width:0}.ml-t a{display:block;font-weight:var(--w-bold);font-size:var(--fs-md);color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:clip;white-space:nowrap}.ml-t .m{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ml-t .mine{color:var(--warn)}
  .ml-star{border:none;background:transparent;color:var(--dim);font-size:var(--fs-2xl);padding:2px 4px;flex:none;line-height:1}.ml-star.on{color:var(--star)}
  .ml-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}
  .ml-c{background:var(--surface-2);border-radius:var(--r-sm);padding:6px 8px;min-width:0}.ml-c.on{background:var(--accent-bg)}
  .ml-c .k{display:block;font-size:var(--fs-2xs);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ml-c b{font-size:var(--fs-md);font-variant-numeric:normal;white-space:nowrap}
  .ml-c .diff{margin:2px 0 0;font-size:var(--fs-2xs);padding:0 5px;display:inline-flex}
}
@media (max-width: 720px){
  table.mini{min-width:0!important}table.mini th,table.mini td{padding:7px 5px;font-size:var(--fs-xs);white-space:normal;line-height:1.3}
  table.mini td.n{white-space:nowrap;font-size:var(--fs-sm)}table.mini th{font-size:var(--fs-2xs)}
  .sec-body{overflow-x:hidden}.pass-side table.mini td{font-size:var(--fs-xs)}
}

.kpi-bar{display:none}

/* ключи против конкурентов */
.keys-table td.dim{color:var(--dim)}
.keys-table th .u{font-size:var(--fs-2xs);color:var(--mute-3);font-weight:var(--w-regular);text-transform:none;letter-spacing:0}
.keys-m{display:none}
@media (max-width: 720px){
  .keys-table{display:none}.keys-m{display:block}
  .km{padding:10px 0;border-bottom:1px solid var(--surface-3)}.km.hole{background:var(--warn-bg);margin:0 -12px;padding:10px 12px}.km-t{font-weight:var(--w-medium)}.km-m{font-size:var(--fs-xs);color:var(--mute);margin:2px 0 6px}
  .km-g{display:grid;grid-template-columns:1fr 1fr;gap:6px}.km-c{background:var(--surface-2);border-radius:var(--r-sm);padding:6px 8px;min-width:0}.km-c .k{display:block;font-size:var(--fs-xs);color:var(--mute);white-space:normal;line-height:1.2}.km-c b{font-size:var(--fs-md)}
  /* Строка ключа нажимается: под ней раскрывается та же панель, что в
     развёрнутой строке таблицы на широком экране. */
  .km{cursor:pointer;-webkit-tap-highlight-color:transparent}
  .km-t{display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}
  .km-x{margin-left:auto;font-style:normal;color:var(--accent);font-size:var(--fs-lg);line-height:1;transition:transform .15s}
  .km.open .km-x{transform:rotate(90deg)}
  .km.open{background:var(--accent-bg);margin:0 -12px;padding:10px 12px}
  .km-c.own{background:var(--accent-soft)}
  .km-c.km-loss b{color:var(--bad)}
  .km-det{background:var(--accent-faint);border-radius:var(--r-md);margin:0 -12px 8px;padding:10px 12px 12px}
}

.own-inline{display:inline-flex;gap:6px;align-items:center}.own-inline-nm{width:150px;height:36px}.own-inline-go{height:36px}
@media (max-width:720px){.own-inline{width:100%}.own-inline-nm{flex:1;width:auto}}

td .pos{font-size:var(--fs-2xs);color:var(--accent);font-weight:var(--w-medium)}.km .pos{display:block;font-size:var(--fs-xs);color:var(--accent);font-weight:var(--w-medium)}

/* мышь: колонка под курсором и превью карточки */
@media (hover: hover){
  #app table td.col-hi,#app table th.col-hi{background:var(--accent-bg)!important}
  tbody tr.row:hover td.col-hi{background:var(--accent-mid)!important}
  #app table th.col-hi .th-l{color:var(--accent)}
}
.peek{position:fixed;z-index:210;display:flex;gap:12px;width:360px;padding:10px;background:var(--card);border-radius:var(--r-lg);box-shadow:0 16px 48px rgba(0,0,0,.18);pointer-events:none}
.peek img,.peek-ph{width:96px;height:126px;border-radius:var(--r-md);object-fit:cover;background:var(--ph-bg);flex:none}
.peek-b{min-width:0;flex:1}.peek-t{font-weight:var(--w-bold);font-size:var(--fs-md);line-height:1.3;max-height:3.9em;overflow:hidden}.peek-m{font-size:var(--fs-xs);color:var(--mute);margin-top:2px}.peek-m b{color:var(--warn)}
.peek-g{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.peek-g div{background:var(--surface-2);border-radius:var(--r-sm);padding:5px 7px;min-width:0}.peek-g span{display:block;font-size:var(--fs-2xs);color:var(--mute)}.peek-g b{font-size:var(--fs-sm);white-space:nowrap}
.peek-f{font-size:var(--fs-2xs);color:var(--mute);margin-top:6px}

.share-card{display:flex;gap:10px;align-items:center;color:inherit;text-decoration:none;min-width:0}.share-card img,.share-card i{width:36px;height:48px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none;display:block}.share-card:hover b{color:var(--accent)}
.share-tbl th .u{font-size:var(--fs-2xs);color:var(--mute-3);font-weight:var(--w-regular);text-transform:none;letter-spacing:0}
@media (max-width:720px){.share-tbl{min-width:560px!important}.sec-body:has(.share-tbl){overflow-x:auto}}

.fold{display:none}.unfolded .fold{display:table-row}.unfolded .km.fold{display:block}
.fold-btn{margin:10px 0 2px}

.nowrap{white-space:nowrap}
@media (max-width:720px){.run .when{font-size:var(--fs-base)}.run .what{font-size:var(--fs-sm);line-height:1.35}}
/* превью: плитки по ширине содержимого, ничего не вылезает */
.peek{width:auto;min-width:360px;max-width:460px}
.peek-g{display:flex;gap:6px;flex-wrap:wrap}.peek-g div{flex:1 1 auto;min-width:0;overflow:hidden}.peek-g b{font-size:var(--fs-sm);white-space:nowrap;display:block;overflow:hidden;text-overflow:ellipsis}

/* длинные таблицы: прокрутка внутри блока, шапка прилипает */
.scroll-y{max-height:72vh;overflow:auto;overscroll-behavior:contain}.scroll-y.short{max-height:none}
.scroll-y thead th{position:sticky;top:0;z-index:3;background:var(--card)}.scroll-y thead tr.groups th{top:0;z-index:4;background:var(--card)}
.scroll-y table{min-width:0}.box:has(> .scroll-y){overflow:visible}.scroll-y table:not(.mini){min-width:1180px}

.param .k{white-space:normal;line-height:1.25}

/* выводы структурой, пояснения в таблицах тише цифр */
.an-verdict{padding:14px 18px}.an-verdict .v-t{font-size:var(--fs-xs);color:var(--accent);font-weight:var(--w-bold);margin-bottom:6px}
.an-verdict .v-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px}.an-verdict .v-list li::marker{color:var(--accent)}
table.mini td.l.m{font-size:var(--fs-xs);color:var(--mute);line-height:1.35}table.mini td.l b{font-weight:var(--w-bold)}

/* воронка цепочкой шагов */
.fun-steps{display:flex;align-items:stretch;gap:6px;overflow-x:auto;padding:2px 0}
.fun-step{flex:1 1 0;min-width:120px;background:var(--surface-2);border-radius:var(--r-md);padding:12px 14px}.fun-step .fun-k{font-size:var(--fs-sm);color:var(--mute);font-weight:var(--w-medium)}.fun-step .fun-v{font-size:var(--fs-2xl);font-weight:var(--w-bold);text-align:left;margin:2px 0;font-variant-numeric:normal}
.fun-arrow{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:54px;color:var(--accent);position:relative;padding:0 2px}.fun-arrow b{font-size:var(--fs-md);background:var(--accent-bg);border-radius:999px;padding:2px 8px;z-index:1}.fun-arrow span{font-size:var(--fs-2xs);color:var(--mute);margin-top:3px;z-index:1}
.fun-arrow::before{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background:var(--accent-mid)}.fun-arrow::after{content:"";position:absolute;right:-1px;top:calc(50% - 4px);border:5px solid transparent;border-left-color:var(--accent-line);border-right:0}
@media (max-width:720px){.fun-steps{flex-direction:column;gap:4px;overflow:visible}.fun-step{display:grid;grid-template-columns:1fr auto;column-gap:10px;align-items:center;padding:10px 12px}.fun-step .fun-k{grid-column:1}.fun-step .fun-v{grid-column:2;grid-row:1;font-size:var(--fs-xl);text-align:right}.fun-arrow{flex-direction:row;gap:6px;min-height:26px;padding:0 12px;justify-content:flex-start}.fun-arrow::before,.fun-arrow::after{display:none}}

/* число + «показать все» в плитке, список — модальным окном по группам */
.chips-cnt{display:flex;align-items:center;gap:8px;font-size:var(--fs-base);font-weight:var(--w-bold);flex-wrap:wrap}.chips-cnt b{font-size:var(--fs-base)}
.cmodal-back{position:fixed;inset:0;z-index:96;background:rgba(20,18,40,.42);display:flex;align-items:center;justify-content:center;padding:24px}
.cmodal{background:var(--card);border-radius:var(--r-lg);width:min(640px,100%);max-height:min(82vh,760px);display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(0,0,0,.28)}
.cmodal-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 22px 12px;border-bottom:1px solid var(--line)}.cmodal-head b{font-size:var(--fs-lg)}.cmodal-head .m{font-size:var(--fs-xs);color:var(--mute);margin-top:2px}
.cmodal-x{border:none;background:var(--surface-3);width:32px;height:32px;border-radius:999px;font-size:var(--fs-xl);line-height:1;cursor:pointer;color:var(--ink)}
.cmodal-body{overflow:auto;padding:14px 22px 20px;display:flex;flex-direction:column;gap:16px}
.cmodal-gt{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:8px}.cmodal-gt .m{color:var(--mute);font-weight:var(--w-medium);font-size:var(--fs-xs)}
.cmodal-items{display:flex;flex-wrap:wrap;gap:6px}.cmodal-items .chip-s{font-size:var(--fs-sm);padding:5px 11px;white-space:normal;line-height:1.3}
@media (max-width:720px){.cmodal-back{align-items:flex-end;padding:0}.cmodal{width:100%;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:86vh;padding-bottom:env(safe-area-inset-bottom)}.cmodal-head{padding:14px 16px 10px}.cmodal-body{padding:12px 16px 18px}}

/* вывод разметкой: подзаголовки, строки ключей, чипы */
.an-verdict .v-h{font-weight:var(--w-bold);margin:10px 0 6px;font-size:var(--fs-md)}.an-verdict .v-t + .v-h{margin-top:0}
.an-verdict .v-keys{display:flex;flex-direction:column;gap:4px}.an-verdict .v-key{display:grid;grid-template-columns:minmax(160px,auto) auto 1fr;gap:4px 12px;align-items:baseline;background:var(--card);border-radius:var(--r-md);padding:7px 12px;font-size:var(--fs-md)}
.an-verdict .v-key > b{color:var(--accent)}.an-verdict .v-key .m{color:var(--mute);font-size:var(--fs-xs);white-space:nowrap}
.an-verdict .v-chips{display:flex;flex-wrap:wrap;gap:6px}.an-verdict .v-chips .chip-s{background:var(--card);font-size:var(--fs-sm);padding:4px 10px}
.an-verdict .v-p{margin-top:8px;color:var(--ink-3);font-size:var(--fs-md)}
@media (max-width:720px){.an-verdict .v-key{grid-template-columns:1fr auto}.an-verdict .v-key > span:last-child{grid-column:1/-1}}

/* вывод по ключам: карточки с полосками, как в «Сравнении карточек» WB */
.an-verdict.vk{background:var(--accent-soft)}.an-verdict.vk .v-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.an-verdict.vk .v-h .m{font-weight:var(--w-regular);font-size:var(--fs-xs);color:var(--mute)}
.kc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:10px}
.kc{background:var(--card);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:12px 14px}.kc-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:8px}.kc-h b{font-size:var(--fs-md);color:var(--ink)}.kc-h .m{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap}
.kb-rows{display:flex;gap:18px;flex-wrap:wrap}.kb-row{display:flex;flex-direction:column;gap:1px;font-size:var(--fs-xs);min-width:90px}.kb-row b{font-size:var(--fs-lg);text-align:left}.kb-l{color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kb-bar{height:9px;background:var(--accent-soft);border-radius:999px;overflow:hidden}.kb-bar i{display:block;height:100%;border-radius:999px;background:var(--accent)}.kb-bar i.you{background:var(--star)}
.kb-row b{text-align:right;font-variant-numeric:normal;color:var(--accent)}.kb-row b.you{color:var(--warn)}
.kc-n{margin-top:8px;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--bad);display:inline-block;background:var(--bad-bg);border-radius:999px;padding:2px 9px}.kc-n.ok{color:var(--good);background:var(--good-bg)}.kc-n:empty{display:none}
@media (max-width:720px){.kc-grid{grid-template-columns:1fr}}
.kc-n.mid{color:var(--ink-3);background:var(--surface-3)}

/* ячейка карточки: название целыми словами в две строки без многоточия; строка бренд·артикул·WB одной строкой, хвост не гуляет */
.card .t{white-space:normal;overflow:visible;text-overflow:clip}.card .tt{display:flex;align-items:flex-start;gap:4px}.card .tt > a{flex:1 1 auto;min-width:0;display:block;white-space:normal;overflow:hidden;text-overflow:clip;line-height:1.25;max-height:2.5em}.card .tt button.star{flex:none;padding:0;font-size:var(--fs-md);line-height:1.25;color:var(--dim)}.card .tt button.star.on{color:var(--star)}
.card .m{display:flex;align-items:baseline;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:clip;font-size:var(--fs-sm);font-weight:var(--w-regular)}.card .m .brand{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:inherit;font-weight:inherit}.card .m .fix{flex:none}

/* место карточки в поисковой выдаче WB: приписка под конверсиями ключа */
.wbplace{color:var(--accent);font-weight:var(--w-medium)}.wbplace-out{color:var(--mute)}
/* Отказ WB на вопрос про ключ: строка под таблицей вместо пустых клеток.
   Форма как у .wbpos-notoken (catalog.css), цвет — отказ, а не совет. */
.wbpos-fail{margin:10px 0 4px;padding:8px 12px;border-radius:var(--r-md);background:var(--bad-bg);color:var(--bad-ink);font-size:var(--fs-sm);line-height:1.45}
.wbpos-none{color:var(--bad);font-weight:var(--w-medium);font-size:var(--fs-xs)}.wbpos-seen{color:var(--good);font-weight:var(--w-medium);font-size:var(--fs-xs)}.wbpos .m,.wbpos-none .m,.wbpos-seen .m{font-weight:var(--w-regular);font-size:var(--fs-xs);color:var(--mute)}

.n30{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap}.n30.on{color:var(--good)}.n30.off{color:var(--bad)}
.kc-n .kc-now{display:block;margin-top:6px;font-weight:var(--w-medium);color:var(--ink-3);background:none;padding:0}.kc-n:has(.kc-now){background:none;padding:0}.kc-n:has(.kc-now)::before{content:""}

.qp-bar{display:flex;align-items:center;gap:6px;margin:0 0 10px;flex-wrap:wrap}.qp-bar button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 12px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;color:var(--ink)}.qp-bar button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.qp-bar .m{font-size:var(--fs-xs);color:var(--mute);margin-left:6px}
/* Ключи против конкурентов (владелец 19.09): период блок больше не выбирает —
   его задаёт шапка сайта; фильтры сложены в кнопку с панелью; метрика стоит
   отдельной строкой вплотную к таблице, а поиск переехал в шапку «Запроса». */
.gk-ctl{display:flex;align-items:center;gap:10px;margin:0 0 8px;flex-wrap:wrap}
.gk-mrow{display:flex;align-items:center;gap:10px;margin:0 0 6px;min-width:0}
.gk-mrow-k{flex:0 0 auto;font-size:var(--fs-xs);color:var(--mute)}
.gk-metric{display:flex;align-items:center;gap:6px;flex:1 1 220px;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.gk-metric::-webkit-scrollbar{width:0;height:0;display:none}
.gk-metric button{flex:0 0 auto;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 12px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;color:var(--ink);white-space:nowrap}
.gk-metric button:hover{border-color:var(--accent-line);color:var(--accent)}
.gk-metric button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
/* Кнопка «Фильтры» со счётчиком и панель под ней. Панель абсолютная: она не
   двигает таблицу вниз и не накрывает её целиком — ширина одной колонки. */
.gk-flt{position:relative;flex:0 0 auto}
.gk-flt-b{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 12px;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--ink);cursor:pointer;white-space:nowrap}
.gk-flt-b:hover{border-color:var(--accent-line);color:var(--accent)}
.gk-flt-b.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent)}
.gk-flt-n{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--on-accent);font-size:var(--fs-xs);font-weight:var(--w-bold)}
.gk-flt-p{position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:236px;max-height:60vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 12px 28px -12px rgba(0,0,0,.35);padding:8px}
.gk-fg{padding:2px 0}.gk-fg+.gk-fg{border-top:1px solid var(--line);margin-top:4px;padding-top:6px}
.gk-fg-t{font-size:var(--fs-2xs);color:var(--mute-3);margin:0 0 2px 2px}
.gk-fo{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:var(--r-sm);font-size:var(--fs-sm);color:var(--ink);cursor:pointer}
.gk-fo:hover{background:var(--accent-faint)}
.gk-fo input{width:15px;height:15px;accent-color:var(--accent);margin:0;cursor:pointer}
.gk-flt-x{width:100%;margin-top:6px;height:28px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink-3);font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer}
.gk-flt-x:hover{border-color:var(--accent);color:var(--accent)}
/* Включённые фильтры снаружи — мелкими снимаемыми метками. */
.gk-tags{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
.gk-tag{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--accent-line);background:var(--accent-bg);color:var(--accent);border-radius:999px;padding:3px 9px;font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer;white-space:nowrap}
.gk-tag i{font-style:normal;font-size:var(--fs-sm);line-height:1;opacity:.75}
.gk-tag:hover i{opacity:1}
/* Поиск в шапке колонки «Запрос»: во всю её ширину, с лупой. */
.gk-find{position:relative;display:block;margin:6px 0 3px}
.gk-find-i{position:absolute;left:8px;top:50%;transform:translateY(-50%);font-style:normal;font-size:var(--fs-sm);color:var(--mute-3);pointer-events:none}
.gk-q{width:100%;height:27px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 8px 0 24px;font-weight:var(--w-regular);font-size:var(--fs-xs);background:var(--card);color:var(--ink);text-transform:none;letter-spacing:0;cursor:text;user-select:text}
.gk-q:focus{outline:none;border-color:var(--accent-line)}
.gk-cnt{display:block;font-size:var(--fs-2xs);font-weight:var(--w-regular);color:var(--mute);text-transform:none;letter-spacing:0;white-space:nowrap}
/* Вывод сверху — одна строка фактов, без плашки-абзаца (владелец 19.09). */
.gk-own{height:26px;padding:0 10px;margin-left:4px;border:none;border-radius:var(--r-sm);background:var(--accent);color:var(--on-accent);font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer;vertical-align:middle}
.gk-pick{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}
.gk-pick button{height:26px;padding:0 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer}
.gk-pick button:hover{border-color:var(--accent);color:var(--accent)}

/* Размеры склада — мини-таблица на подложке (25.09). */
.osz{padding:4px 0 6px}
.osz-tb{background:var(--surface-2);border-radius:var(--r-md);overflow:hidden;width:auto;min-width:0}
table.mini.osz-tb th,table.mini.osz-tb td{padding:6px 12px;font-size:var(--fs-sm)}
.osz-tb td.l b{font-weight:var(--w-bold)}
.osz-tb tr.osz-out td{color:var(--bad)}.osz-tb tr.osz-out td.osz-st{font-weight:var(--w-bold)}
.osz-tb td.worst{color:var(--bad);font-weight:var(--w-bold)}
.osz-note{font-size:var(--fs-xs);color:var(--mute);padding:6px 2px 0}

/* текст ключа ровно как у WB: двойной пробел виден и не схлопывается */
.keys-table td.l, .keys-m .km-t{white-space:pre-wrap}

/* Индикатор загрузки сравнения — тихая строка над таблицей, не коробка.
   Едет: полоска и время. Остановлено: только то, чего нет, тёплым цветом.
   Готово: строки нет — полнота само собой разумеется (владелец 18.09). */
.lstate{font-size:var(--fs-sm);line-height:1.4;padding:0 4px}
.lstate.loading{color:var(--accent);display:flex;align-items:center;gap:10px}.lstate.loading .lsbar{flex:0 1 220px}
.lstate.range{color:var(--mute)}
/* Та же мысль строкой — в карточке сравнения из списка. */
.lsrow{margin-top:4px;font-size:var(--fs-xs);line-height:1.35;color:var(--mute)}
.lsrow.loading{color:var(--accent);display:flex;align-items:center;gap:10px}.lsbar{flex:1 1 120px;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.lsbar i{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .4s}.lstxt{white-space:nowrap}.lsrow.stopped{color:var(--warn-ink)}


/* Карточка блока «Кто растёт, кто падает» (19.09). Главное в ней — число:
   текущая доля крупно, относительное изменение цветом рядом. Подпись «кто
   это» уведена в мелкий приглушённый заголовок, «было» и деньги идут мелкой
   строкой, название карточки — внизу вместо голого артикула. Цвет — только на
   изменении: залитая целиком зелёным карточка красит и фото, и название. */
.kc.mv{display:block;color:inherit;text-decoration:none;transition:border-color .12s}
.kc.mv:hover{border-color:var(--accent)}
.kc.mv .mv-lbl{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute)}
.kc.mv .mv-body{display:flex;gap:12px;align-items:center;margin:8px 0 0}
.kc.mv img{width:44px;height:58px;object-fit:cover;border-radius:var(--r-sm);flex:none;background:var(--ph-bg)}
.kc.mv .mv-d{min-width:0}
.kc.mv .mv-now{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.kc.mv .mv-now b{font-size:var(--fs-3xl);font-weight:var(--w-bold);line-height:1.1;letter-spacing:-.02em;font-variant-numeric:normal;color:var(--ink)}
.kc.mv .mv-rel{font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink-3);white-space:nowrap}
.kc.mv .mv-rel.up{color:var(--good)}.kc.mv .mv-rel.down{color:var(--bad)}
.kc.mv .mv-was{font-size:var(--fs-xs);color:var(--mute);margin-top:2px}
.kc.mv .mv-money{font-size:var(--fs-sm);color:var(--ink-3);margin-top:4px}
.kc.mv .mv-name{margin-top:10px;padding-top:8px;border-top:1px solid var(--line);font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink);overflow-wrap:anywhere}
.kc.mv .mv-name .m{font-weight:var(--w-regular);margin-left:6px}
.kc.mv .mv-rank{margin-top:4px;font-size:var(--fs-xs);color:var(--mute)}
.kc.mv .m{font-size:var(--fs-xs);color:var(--mute)}
.kc.mv.mine{border-color:var(--warn-line)}.kc.mv.mine .mv-lbl{color:var(--warn)}
.an-verdict .v-h .tip{margin-left:6px}

/* Жалоба, когда аккаунт не принял «мою карточку»: снизу по центру, поверх
   таблицы и всплывашек — иначе отказ пропадёт мимо глаз, как и раньше. */
.own-note{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:220;max-width:min(560px,92vw);padding:10px 14px;border-radius:var(--r-md);background:var(--bad-bg);border:1px solid var(--bad-line);color:var(--bad-ink);font-size:var(--fs-sm);line-height:1.35;box-shadow:0 8px 24px rgba(0,0,0,.14)}

.own-chip{display:inline-flex;align-items:center;gap:4px;background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:999px;padding:1px 4px 1px 9px;margin-right:4px}.own-chip .bar-own-clear{border:none;background:none;cursor:pointer;color:var(--mute);font-size:var(--fs-md);line-height:1;padding:0 4px}

.own-pick{display:inline-flex;align-items:center;gap:6px;margin-left:10px;flex-wrap:wrap}.own-pick .m{font-size:var(--fs-xs);color:var(--mute)}.own-pick button{border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:999px;padding:3px 10px;font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer;color:var(--warn-ink)}.own-pick button.on{background:var(--star);border-color:var(--star);color:var(--on-accent)}

.cols-gear{position:relative;display:inline-block;margin-left:8px}/* Кнопка настроек таблицы (25.09): одинокая шестерёнка терялась, и было не
   понятно, что это настройки — теперь подпись и наш акцентный цвет. */
.cols-gear-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px 0 10px;border:1px solid var(--accent-line);background:var(--accent-soft);color:var(--accent-deep);border-radius:var(--r-md);cursor:pointer;font-size:var(--fs-sm);font-weight:var(--w-medium);white-space:nowrap}
.cols-gear-btn .cg-i{font-size:var(--fs-md);line-height:1}
.cols-gear-btn:hover{background:var(--accent-bg);border-color:var(--accent)}
/* Меню столбцов группами, в порядке колонок таблицы (владелец 19.09: 24
   галочки одной кучей не читаются). Подзаголовок — имя группы из COLS. */
/* Группы идут потоком в две колонки: жёсткая сетка 1fr 1fr раскладывала их
   через одну, и под короткой левой колонкой зияла пустота в треть меню
   (владелец 19.09). Поток переносит группу целиком (break-inside) и выравнивает
   колонки сам. Потолок высоты — чтобы меню не оказалось выше экрана. */
.cols-menu{position:absolute;right:0;top:36px;z-index:50;background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 12px 40px rgba(0,0,0,.14);padding:10px 12px;min-width:360px;max-height:min(70vh,560px);overflow:auto}.cols-menu label{font-size:var(--fs-sm);display:flex;gap:6px;align-items:center;white-space:nowrap;padding:1.5px 0}.cols-menu .m{color:var(--mute);font-size:var(--fs-xs)}
.cols-flow{column-count:2;column-gap:18px}
.cols-grp{min-width:0;margin:0 0 10px;break-inside:avoid;-webkit-column-break-inside:avoid}
.cols-grp-t{font-size:var(--fs-2xs);font-weight:var(--w-bold);color:var(--mute-3);margin-bottom:2px}
.cols-btns{display:flex;gap:8px;margin-top:2px}
.cols-menu .cols-all,.cols-menu .cols-reset{flex:1;border:none;background:var(--surface-3);border-radius:var(--r-sm);padding:7px;cursor:pointer;font-weight:var(--w-medium);font-size:var(--fs-xs);color:var(--ink-2)}
.cols-menu .cols-all:hover,.cols-menu .cols-reset:hover{background:var(--accent-bg);color:var(--accent)}

.season-svg{display:block;width:100%;height:auto;margin-top:8px}.season-svg .sb{fill:var(--accent-mid)}.season-svg .sb.peak{fill:var(--accent)}/* неполная неделя: столбик бледный — она ещё идёт и в пики не идёт */.season-svg .sb.part{fill:var(--ph-bg);stroke:var(--accent-mid);stroke-dasharray:2 2}.season-svg .sl{fill:none;stroke:var(--star);stroke-width:2}.season-svg .sx{font-size:var(--fs-xs);fill:var(--mute-2)}
/* Сезонность: вместо четырёх карточек пиков и абзаца — одна строка над
   графиком (владелец 19.09). Подложка окна периода из шапки — из переменных. */
.season-svg .sw{fill:var(--accent-bg);stroke:var(--accent-line);stroke-width:1}


/* ключ доступа и команда в профиле: раскрывашки */
.who-fold .team-actions{display:flex;gap:6px;flex-wrap:wrap}.who-fold .btn{height:32px;line-height:32px;font-size:var(--fs-sm);padding:0 12px}
.who-fold .key-code,.who-fold .team-code{margin-top:8px;border:1px solid var(--line-2);border-radius:var(--r-md);padding:10px 12px}
/* Ключ длиннее кода приглашения: моноширинный, но без разрядки в 3px — иначе не влезает в меню профиля. */
.who-fold .key-code .code{font:var(--w-bold) var(--fs-md)/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.5px;color:var(--accent);word-break:break-all}
.who-fold .team-code .code{font:var(--w-bold) var(--fs-2xl)/1.2 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:3px;color:var(--accent)}
.who-fold .key-code .m,.who-fold .team-code .m{margin:4px 0 8px}
.who-fold .key-err,.who-fold .team-err{color:var(--bad);margin:4px 0 0}.who-fold .key-err:empty,.who-fold .team-err:empty{display:none}
.who-fold .team-dev{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:var(--fs-sm);padding:8px 0;border-top:1px solid var(--line)}.who-fold .team-dev:first-child{margin-top:8px}
.who-fold .team-revoke{border:none;background:transparent;color:var(--bad);border-radius:var(--r-sm);padding:4px 8px;font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer}.who-fold .team-revoke:hover{background:var(--bad-bg)}
/* «Команда» (этап 2b-2, 03.10): участник строкой — имя, метки, когда был;
   у управляющего под строкой два действия. Цвета — из токенов, обе темы. */
.who-fold .team-seats{margin:0 0 4px}
.who-fold .team-mem{padding:8px 0;border-top:1px solid var(--line);font-size:var(--fs-sm)}
.who-fold .team-who{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
.who-fold .team-name{color:var(--ink);font-weight:var(--w-medium);word-break:break-word}
.who-fold .team-tag{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--accent);background:transparent;box-shadow:inset 0 0 0 1px var(--accent-line);border-radius:6px;padding:1px 6px}
.who-fold .team-tag.me{color:var(--ink-2);background:var(--surface-3)}
.who-fold .team-seen{color:var(--mute);font-size:var(--fs-xs);margin-left:auto}
.who-fold .team-acts{display:flex;gap:4px;margin-top:4px}
.who-fold .team-mgr,.who-fold .team-rm{border:none;background:transparent;border-radius:var(--r-sm);padding:4px 8px;font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer}
.who-fold .team-mgr{color:var(--accent)}.who-fold .team-mgr:hover{background:var(--accent-bg)}
.who-fold .team-rm{color:var(--bad)}.who-fold .team-rm:hover{background:var(--bad-bg)}
.who-fold .team-mem + .team-actions{margin-top:8px}
.who-fold .team-link{margin-top:8px;border:1px solid var(--line-2);border-radius:var(--r-md);padding:10px 12px}
.who-fold .team-url{font:var(--w-medium) var(--fs-sm)/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--accent);word-break:break-all}
.who-fold .team-link .m{margin:4px 0 8px}
/* Ключ из бота на экране «нет доступа» (03.10) — заглавными, как его выдаёт бот. */
.key-login-in{text-transform:uppercase;letter-spacing:0}.key-login-in::placeholder{text-transform:none}
.who-fold .team-mine{margin-top:10px}.who-fold .team-mine .team-dev:first-of-type{margin-top:0}

/* своя карточка в шапке таблицы */
.own-add{display:inline-flex;gap:4px;margin-left:8px;vertical-align:middle}.own-add-nm{width:190px;height:30px;border:1px solid var(--line);border-radius:var(--r-sm);padding:0 10px;font-size:var(--fs-sm)}.own-add-go{height:30px;padding:0 10px;border:none;border-radius:var(--r-sm);background:var(--surface-3);color:var(--ink);font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer}.own-add-go:hover{background:var(--hover)}
.tag-extra{font-weight:var(--w-medium);font-size:var(--fs-2xs);color:var(--accent);background:var(--accent-bg);border-radius:6px;padding:1px 6px;vertical-align:middle}

/* фото в шапке таблицы запросов */
.mini th .th-ph{display:block;width:34px;height:44px;object-fit:cover;border-radius:6px;margin:0 auto 3px;background:var(--surface-3)}

/* тепловая карта ключей */
table.mini td.hm{transition:none}table.mini tbody tr:hover td.hm[style]{filter:brightness(0.95)}

/* ── Разведка: трекинг конкурентов ─────────────────────────────────────── */
.ml-track{margin-top:8px}
.intel-set{margin-bottom:12px}
.intel-set-row{display:flex;align-items:center;gap:14px 18px;flex-wrap:wrap}
.intel-set-row label{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--ink-3);font-weight:var(--w-medium)}
.intel-set-row input[type=number]{width:72px;height:34px;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 8px;font-weight:var(--w-medium);font-size:var(--fs-md);color:var(--ink)}
.intel-set-row label.chk input{width:18px;height:18px;accent-color:var(--accent)}
.intel-set-row .bar-go{height:34px;padding:0 16px;font-size:var(--fs-sm);border-radius:var(--r-md)}
.intel-err{color:var(--bad);font-size:var(--fs-sm);font-weight:var(--w-medium)}.intel-err:empty{display:none}
/* Роль «только чтение»: заблокированные поля должны читаться как заблокированные,
   иначе выключенная форма выглядит поломанной. */
.intel-ro{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--mute)}
.intel-set-row input:disabled{background:var(--bg);color:var(--mute);cursor:default}
.intel-set-row label:has(input:disabled){color:var(--mute)}
.intel-est{margin-top:10px;padding-top:10px;border-top:1px solid var(--surface-3);display:flex;flex-wrap:wrap;gap:6px 18px;font-size:var(--fs-sm);color:var(--ink-3)}
.intel-est .bar-warn{margin-left:0}
/* Лента «что изменилось» (22.09): строка на конкурента во всю ширину. Сетка
   карточками снята — в ней главное изменение пряталось третьей строкой
   мелкого шрифта. */
.intel-week{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;padding:10px 14px;background:var(--surface-2);border-radius:var(--r-md);font-size:var(--fs-sm)}
.intel-week .k{font-weight:var(--w-bold);color:var(--ink);margin-right:2px}
.intel-week.none{color:var(--ink-3)}
.intel-week .iw{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink-3)}
.intel-week .iw b{font-variant-numeric:normal;color:var(--ink)}
.intel-week .iw.up-them{border-color:var(--bad-line);color:var(--bad)}
.intel-week .iw.down-them{border-color:var(--good-line);color:var(--good)}
.ir-main .d,.ir-more .d{color:var(--mute);font-variant-numeric:normal;margin-right:6px}
.ir-more{margin-top:3px;font-size:var(--fs-sm);color:var(--ink-3);display:flex;flex-wrap:wrap;gap:2px 14px}
.diff.up-them{color:var(--bad)}.diff.down-them{color:var(--good)}
/* Разбор загруженных файлов: осталось от прежней формы загрузки истории */
.intel-up,.intel-up-ro{padding:14px 18px;margin-bottom:12px}
.intel-up-ro .intel-up-p{margin-bottom:0}
.intel-up-t{font-size:var(--fs-base);font-weight:var(--w-bold)}
.intel-up-p{color:var(--ink-3);line-height:1.5;margin:4px 0 12px;max-width:760px;font-size:var(--fs-sm)}
.intel-drop{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 16px;border:1.5px dashed var(--accent-line);border-radius:var(--r-lg);background:var(--accent-faint);cursor:pointer;text-align:center;transition:border-color .15s,background .15s}
.intel-drop:hover,.intel-drop:focus-visible{border-color:var(--accent);background:var(--accent-bg);outline:none}
.intel-drop.over{border-color:var(--accent);background:var(--accent-bg)}
.intel-drop-x{font-size:var(--fs-md);color:var(--ink-3)}.intel-drop-x b{color:var(--accent)}
.intel-up.busy .intel-drop{pointer-events:none;opacity:.55}
.intel-up-go{margin-top:10px;font-size:var(--fs-sm);color:var(--accent);font-weight:var(--w-medium)}
.intel-up-err{margin-top:10px}
.intel-up-res:not(:empty){margin-top:12px}
.intel-up-tab tr.bad td{background:var(--bad-faint)}
.intel-up-tab .up-ok{color:var(--good);font-weight:var(--w-bold)}.intel-up-tab .up-bad{color:var(--bad);font-weight:var(--w-bold)}
/* Имя файла режется ещё и CSS-ом: обрезка посередине в JS даёт ≤28 знаков, но
   при узком экране и они не влезали и наезжали на артикул. Таблица fixed, иначе
   ширина клетки плывёт от длины имени. */
.intel-up-tab{table-layout:fixed;width:100%}.intel-up-tab th:first-child{width:26%}.intel-up-tab th.l:nth-child(7){width:30%}
.intel-up-tab td.up-file{overflow:hidden}.intel-up-tab td.up-file b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.intel-up-tab td.up-res{white-space:normal}
.up-track{border:1px solid var(--accent-line);background:var(--card);color:var(--accent);border-radius:999px;padding:2px 10px;font-weight:var(--w-medium);font-size:var(--fs-xs);cursor:pointer;white-space:nowrap;line-height:18px;margin-left:4px}
.up-track:hover{background:var(--accent-bg)}.up-track.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.up-track:disabled{cursor:default}
.up-track-hint{display:block;font-size:var(--fs-xs);margin-top:2px}
/* «Он против вас»: единственное сравнение на странице конкурента. Цветом —
   только отрыв больше 15%: красным впереди он, зелёным вы. Цена без цвета. */
table.mini.vs{table-layout:auto}
table.mini.vs th:first-child,table.mini.vs td:first-child{min-width:190px}
table.mini.vs td.n{font-variant-numeric:normal}
.vs-d{font-weight:var(--w-medium);color:var(--mute)}
.vs-d.vs-he{color:var(--bad);background:var(--bad-faint)}
.vs-d.vs-you{color:var(--good);background:var(--good-bg)}
.vs-my{color:var(--accent);text-decoration:none}.vs-my:hover{text-decoration:underline}
.vs-none{margin:0 0 12px;padding:10px 14px;border:1px dashed var(--line-2);border-radius:var(--r-md);color:var(--ink-3);font-size:var(--fs-md);line-height:1.45}
.vs-none a{color:var(--accent)}
/* Плашка «есть только места в выдаче»: замеров нет не потому, что сломалось */
.intel-only-pos{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-bottom:12px;background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--warn-ink);font-size:var(--fs-md);line-height:1.45}
.intel-since{margin:0 0 8px;font-size:var(--fs-sm);color:var(--ink-3)}.lnk{border:none;background:none;padding:0;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--accent);cursor:pointer;text-decoration:underline}
.intel-keys-bar{display:flex;align-items:center;gap:10px;margin:0 0 8px;flex-wrap:wrap}
.intel-keys-q{height:34px;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 10px;font-size:var(--fs-md);color:var(--ink);width:260px;max-width:100%}
.intel-card{position:relative;border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;background:var(--card);cursor:pointer;min-width:0}
.intel-card:hover{border-color:var(--accent-line);box-shadow:0 6px 20px var(--accent-shadow)}
.intel-card.paused{background:var(--surface-2)}.intel-card.gone{border-color:var(--bad-line);background:var(--bad-faint)}
.intel-card-top{display:flex;gap:10px;align-items:flex-start}
.intel-card-top img,.intel-card-top .ph{width:48px;height:64px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none;display:block}
.intel-card-top .t{flex:1;min-width:0}.intel-card-top .t .n{display:block;font-weight:var(--w-bold);font-size:var(--fs-md);color:var(--ink);text-decoration:none;overflow:hidden;text-overflow:clip;white-space:nowrap}
.intel-card-top .m{font-size:var(--fs-xs);color:var(--mute);margin-top:2px}
.intel-pill-paused{background:var(--warn-bg);color:var(--warn-ink)}.intel-pill-gone{background:var(--bad-bg);color:var(--bad)}
.intel-act-err{display:block;color:var(--bad);font-size:var(--fs-xs);font-weight:var(--w-medium);margin-top:6px}.intel-act-err:empty{display:none}
.intel-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px}
.intel-m{background:var(--surface-2);border-radius:var(--r-sm);padding:6px 8px;min-width:0}.intel-m .k{display:block;font-size:var(--fs-2xs);color:var(--mute);white-space:normal;line-height:1.25}
.intel-facts .fact .k{white-space:normal}
.intel-m b{display:block;font-size:var(--fs-md);margin-top:1px}.intel-m .diff{margin-top:2px}
.intel-ev{list-style:none;margin:10px 0 0;padding:0;font-size:var(--fs-sm)}.intel-ev li{display:flex;gap:8px;padding:3px 0;border-top:1px solid var(--surface-3)}
.intel-ev li .d{color:var(--mute);flex:none;font-variant-numeric:normal}.intel-ev li.w3{font-weight:var(--w-medium)}.intel-noev{margin-top:10px;font-size:var(--fs-xs)}
.intel-head .card-sub .pill{margin-left:2px}
.intel-flt{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.intel-flt button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 12px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;color:var(--ink)}.intel-flt button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
/* Хронология днями: строка дня — обычного размера, события внутри раскрываются
   кликом. Сотни строк подряд мелким шрифтом давали восемь экранов и прятали
   «Места по ключам» за собой. */
.intel-days{list-style:none;margin:0;padding:0}
.intel-day{border-top:1px solid var(--surface-3)}.intel-day:first-child{border-top:none}.intel-day[hidden]{display:none}
.day-head{width:100%;display:grid;grid-template-columns:16px 56px 116px 1fr;gap:10px;align-items:baseline;padding:10px 6px;border:none;background:transparent;font:inherit;font-size:var(--fs-md);color:var(--ink);text-align:left;cursor:pointer;border-radius:var(--r-sm)}
.day-head:hover{background:var(--accent-faint)}
.day-head .chev{color:var(--accent);font-size:var(--fs-lg);line-height:1;transition:transform .15s}
.intel-day.open .day-head .chev{transform:rotate(90deg)}
.day-head .d{color:var(--mute);font-variant-numeric:normal}
.day-head .n{color:var(--mute);font-size:var(--fs-sm)}
.day-head .x{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.intel-day .intel-timeline,.intel-day .day-more{display:none}
.intel-day.open .intel-timeline{display:block}
.intel-day.open .day-more:not([hidden]){display:inline-block;margin:2px 0 10px 26px}
.intel-ev-cut{color:var(--mute);font-size:var(--fs-sm);padding:10px 6px 0;margin-top:6px;border-top:1px solid var(--surface-3)}
.intel-timeline{list-style:none;margin:0;padding:0 0 0 26px}
.intel-timeline li{display:grid;grid-template-columns:56px 36px 1fr;gap:10px;align-items:baseline;padding:7px 6px;border-top:1px solid var(--bg);cursor:pointer;border-radius:var(--r-sm);font-size:var(--fs-md)}
.intel-timeline li:hover{background:var(--accent-faint)}.intel-timeline li .d{color:var(--mute);font-variant-numeric:normal;font-size:var(--fs-sm)}
.intel-timeline li .w{color:var(--dim);letter-spacing:1px;font-size:var(--fs-2xs)}.intel-timeline li.w2 .w{color:var(--accent-light)}.intel-timeline li.w3 .w{color:var(--accent)}
.intel-timeline li.w3 .x{font-weight:var(--w-medium)}.intel-timeline li[hidden]{display:none}
/* Гипотеза (17.09): строка 1 жирно — ключ и заказы, рядом пилюля диагноза
   одним словом; строка 2 серым — «почему» тремя числами; всё остальное в
   .hyp-full, раскрывается кнопкой .hyp-x. Без рамок, плотно: восемь гипотез
   должны влезать в экран 1440×900 вместе с заголовком. */
.intel-hyp{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:2px}.intel-hyp li{padding:4px 8px;border-radius:var(--r-sm);cursor:pointer;line-height:1.35}.intel-hyp li:hover{background:var(--accent-faint)}.intel-hyp li.on{background:var(--accent-bg)}
.hyp-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
.hyp-row .d{color:var(--mute);font-size:var(--fs-xs);font-variant-numeric:normal;flex:none}
.hyp-t{font-weight:var(--w-bold);font-size:var(--fs-md);min-width:0;overflow-wrap:anywhere}.hyp-t .m{font-weight:var(--w-regular);font-size:var(--fs-sm);color:var(--mute)}
.hyp-tag{flex:none;font-size:var(--fs-xs);padding:1px 8px;border-radius:999px;white-space:nowrap}
.hyp-tag[data-diag=search],.hyp-tag[data-diag=mixed],.hyp-tag[data-diag=position]{background:var(--accent-bg);color:var(--accent)}
.hyp-tag[data-diag=card],.hyp-tag[data-diag=funnel]{background:var(--info-bg);color:var(--info)}
.hyp-tag[data-diag=demand]{background:var(--warn-bg);color:var(--warn-ink)}
.hyp-tag[data-diag=dry]{background:var(--bad-bg);color:var(--bad)}
.hyp-x{flex:none;height:26px;padding:0 9px;font-size:var(--fs-xs)}
.intel-hyp li.open .hyp-x .xbtn-c{transform:rotate(90deg)}
/* Метрика в строке следствия не рвётся пополам, числа остальных — в подсказке */
.hyp-m{white-space:nowrap}.hyp-m[title]{cursor:help}
.hyp-why{color:var(--mute);font-size:var(--fs-sm);margin-top:1px}
.hyp-full{display:none;margin-top:6px;padding:8px 10px;border-radius:var(--r-sm);background:var(--accent-soft);font-size:var(--fs-sm);color:var(--ink-3);line-height:1.45}.intel-hyp li.open .hyp-full{display:block}
.hyp-full .hyp-why{margin-top:3px}.hyp-full:empty{display:none}
.hyp-diag{font-size:var(--fs-sm);margin-top:3px}.hyp-diag b{font-weight:var(--w-medium)}
.hyp-why .hyp-more{white-space:nowrap}
/* Телефон: дата, заголовок и ярлык текут одной строкой и переносятся сами;
   ярлык встаёт под заголовком, а не выталкивает его вбок. */
@media (max-width:720px){.hyp-row{display:block}.hyp-row .d{margin-right:6px}.hyp-t{display:inline;font-size:var(--fs-md)}.hyp-tag,.hyp-x{margin-left:6px;vertical-align:1px}.intel-hyp li{padding:5px 4px}}
/* Таблица «ключ × дни»: ширины из colgroup, таблица растёт вширь и едет в
   контейнере (тот же приём, что у table.cards), а не сжимает 37 колонок в 37 px. */
.intel-keys-scroll{overflow-x:auto;max-width:100%}
/* Подпись под таблицей: одна строка, остальное под «как читать таблицу» */
.intel-pos{table-layout:fixed}
.intel-pos th{white-space:normal;line-height:1.2;padding:8px 6px;overflow:hidden}
.intel-pos td{padding:8px 6px;overflow:hidden}.intel-pos td.n{white-space:nowrap;text-overflow:clip}
.intel-pos td.l{overflow:hidden}.intel-pos td.l b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intel-pos th.dcol{font-size:var(--fs-xs);white-space:nowrap;padding:8px 1px;text-align:center}.intel-pos th[data-sort]{cursor:pointer}.intel-pos th.on{color:var(--accent)}
.intel-pos td.pcell{text-align:center;font-variant-numeric:normal;padding:8px 2px}.intel-pos td.pcell.none{color:var(--dim)}
.intel-pos td.now .m{display:block;font-size:var(--fs-2xs)}
.intel-pos td .qsub{font-size:var(--fs-xs);color:var(--mute);margin-top:2px;white-space:normal;line-height:1.3}
.intel-pos td .qsub .qcluster,.intel-pos td .qsub .src{white-space:nowrap}
.intel-pos tr.qrow{cursor:pointer}.intel-pos tr.qrow.on td{background:var(--accent-faint)}
.intel-pos tr.qchart td{background:var(--surface-2);padding:6px 10px 12px}
/* Частый ключ, который за период не принёс ни одного заказа: строка читается
   как пустая, а не как важная. Цвет тот же, что у «дыр» в разборе своих
   ключей (tr.an-gap), новой схемы не заводим. */
.intel-pos tr.qdry td{background:var(--warn-bg)}.intel-pos tr.qdry.on td{background:var(--warn-faint)}
.intel-pos .qdry-tag{display:inline-block;margin-top:2px;padding:0 6px;border-radius:6px;background:var(--warn-line);color:var(--warn-ink);font-weight:var(--w-bold);font-size:var(--fs-2xs);line-height:16px;white-space:nowrap}
.intel-pos td.wcol{font-variant-numeric:normal}
.intel-qchart .legend{margin:0 0 4px}
/* Ряд по дням шире экрана быть не должен: таблица с днями уезжает вправо на
   полторы тысячи пикселей, а картинка остаётся на месте. */
.intel-pos tr.qchart .intel-qchart{position:sticky;left:0}
.ev-mark{cursor:help}.intel-svg,.place-svg{max-width:100%}
@media (max-width: 720px){
  .intel-set-row{gap:10px 14px}.intel-set-row label{flex:1 1 45%;justify-content:space-between}.intel-set-row label.chk{justify-content:flex-start}
  .intel-set-row input[type=number]{font-size:var(--fs-base)}.intel-set-row .bar-go{width:100%}
  .intel-up,.intel-up-ro{padding:12px 12px}.intel-drop{padding:14px 10px}.intel-up-res{overflow-x:auto}
  /* Телефон: фото и текст в строку, числа под ними в ряд, кнопки следом. */
  .intel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .intel-timeline li{grid-template-columns:46px 30px 1fr;gap:6px;padding:8px 2px}
  /* Строка дня на узком экране: дата и счётчик сверху, словесная сводка под
     ними во всю ширину — в одну строку она не помещается. */
  .day-head{grid-template-columns:16px 50px 1fr;gap:6px;padding:10px 2px}
  .day-head .x{grid-column:2/4;white-space:normal;margin-top:2px}
  .intel-timeline{padding-left:14px}
  .intel-day.open .day-more:not([hidden]){margin-left:14px}
  /* Без бокового поля: липкая колонка ключа прилипает left:0 к краю прокрутки,
     а поле оставляло слева зазор, в котором из-под неё торчали уехавшие цифры. */
  .intel-keys-scroll{margin:0 -12px;padding:0}
  .sec-body:has(.intel-keys-scroll){overflow-x:hidden}
  /* колонка «Ключ» прилипает слева, дни едут — как карточка в table.cards */
  .intel-pos th.l,.intel-pos td.l{position:sticky;left:0;z-index:2;background:var(--card);box-shadow:4px 0 8px -4px rgba(0,0,0,.12)}
  /* Ключ в две строки: на узкой колонке одна строка с многоточием давала «пи…»,
     по такому обрывку ключ не узнать. Кластер и источник на телефоне прячем — они
     всё равно обрезались до «клас…», а место отдаём самому ключу. */
  .intel-pos td.l b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25}
  .intel-pos td .qsub{display:none}
  .intel-pos th.l,.intel-pos td.l{padding-left:12px}
  .intel-pos tr.qrow.on td.l{background:var(--accent-faint)}
  .intel-pos tr.qdry td.l{background:var(--warn-bg)}.intel-pos tr.qdry.on td.l{background:var(--warn-faint)}
  .intel-pos th{position:static}
  .intel-head .card-sub{line-height:1.6}
  .intel-keys-q{width:100%;font-size:var(--fs-base)}
  .intel-only-pos{padding:12px 12px}
  table.mini.vs th:first-child,table.mini.vs td:first-child{width:34%}
  table.mini.vs th,table.mini.vs td{padding:7px 4px}
  .vs-none{padding:10px 12px;font-size:var(--fs-sm)}
}
/* Телефон: настройки столбиком (подпись над полем), итог загрузки карточками */
@media (max-width:640px){
  .intel-set-row label:not(.chk){flex:1 1 40%;flex-direction:column;align-items:flex-start;gap:4px}
  .intel-set-row label:not(.chk) span{white-space:nowrap}
  .intel-set-row label:not(.chk) input[type=number]{width:100%}
  .intel-set-row label.chk{flex:1 1 100%;flex-direction:row;align-items:center;gap:10px}
  .intel-up-res{overflow-x:visible}
  .intel-up-tab,.intel-up-tab tbody{display:block;min-width:0!important}
  .intel-up-tab thead{display:none}
  .intel-up-tab tbody tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 8px;padding:10px 0;border-bottom:1px solid var(--line)}
  .intel-up-tab tbody tr.bad{background:var(--bad-faint)}.intel-up-tab tbody tr.bad td{background:transparent}
  .intel-up-tab td{display:block;padding:0!important;border:none!important;font-size:var(--fs-sm)!important;min-width:0}
  .intel-up-tab td[data-l]::before{content:attr(data-l);display:block;font-size:var(--fs-2xs);color:var(--mute)}
  .intel-up-tab td.up-file{grid-column:1/-1}.intel-up-tab td.up-file b{white-space:normal;overflow-wrap:anywhere}
  .intel-up-tab td[data-l="Артикул"]{grid-column:1}.intel-up-tab td[data-l="Период"]{grid-column:2/-1}
  .intel-up-tab td.up-res{grid-column:1/-1;margin-top:4px}
  .intel-up-tab td.n{text-align:left}
}

/* ── Каталог карточек (#/cards, cards.js) ──────────────────────────────── */
.cat-bar .bar-info{margin-left:auto}
.cat-chips{padding:10px 18px 12px;border-bottom:1px solid var(--surface-3);margin:0}
.cat-chip{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 13px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;color:var(--ink)}
.cat-chip:hover{border-color:var(--accent-line)}.cat-chip.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.cat-chip.grp{background:var(--accent-bg);border-color:transparent;color:var(--accent)}.cat-chip.grp.on{background:var(--accent);color:var(--on-accent)}
.cat-sort{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:var(--mute);font-size:var(--fs-sm)}
.cat-sort label{display:inline-flex;align-items:center;gap:6px}
.cat-sel{height:32px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);font:inherit;color:var(--ink);padding:0 8px}
.cat-dir{height:32px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);font-weight:var(--w-medium);font-size:var(--fs-sm);padding:0 10px;cursor:pointer;color:var(--ink);white-space:nowrap}
.cat-body.wait{opacity:.55;transition:opacity .15s}
.cat-table th.nosort{cursor:default}.cat-table th .u{font-size:var(--fs-2xs);color:var(--mute-3);font-weight:var(--w-regular);text-transform:none;letter-spacing:0}
.cat-table tr.cat-row{cursor:default}.cat-row.own td{background:var(--warn-faint)}
.cat-ph{width:40px;height:52px;border-radius:6px;background:var(--ph-bg);flex:none}
.cat-tags{display:inline-flex;gap:4px;flex-wrap:wrap;vertical-align:-1px}
.cat-tag{display:inline-block;padding:0 7px;border-radius:999px;font-size:var(--fs-2xs);font-weight:var(--w-bold);line-height:16px}
.cat-tag.mine{background:var(--warn-bg);color:var(--warn)}.cat-tag.track{background:var(--accent-bg);color:var(--accent)}
.cat-tag.pause{background:var(--surface-3);color:var(--mute)}
.cat-upd{font-size:var(--fs-xs);color:var(--mute)}.cat-upd.old{color:var(--warn)}.cat-upd.none{color:var(--dim)}
.cat-empty{padding:48px 24px}.cat-empty-m{margin-top:8px;font-size:var(--fs-sm);line-height:1.5}
.cat-reset{margin-top:14px;border:1px solid var(--line);background:var(--card);border-radius:var(--r-md);padding:8px 14px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;color:var(--accent)}
.cat-more-wrap{padding:12px 18px 18px;text-align:center}
.cat-more{border:1px solid var(--line);background:var(--card);border-radius:var(--r-md);padding:10px 22px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;color:var(--accent)}
.cat-more:hover{border-color:var(--accent-line)}.cat-more:disabled{opacity:.5;cursor:default}
.cat-list{display:none}
@media (max-width: 720px){
  /* На 390 точках шестнадцать колонок дают боковую прокрутку всей страницы:
     таблица уходит, вместо неё карточки в столбик. */
  .cat-table{display:none}.cat-list{display:block}
  .cat-chips{padding:10px 12px;gap:6px}.cat-sort{margin-left:0;width:100%}
  .cat-sort label{flex:1;min-width:0}.cat-sel{flex:1;min-width:0;height:38px;font-size:var(--fs-base)}
  .cat-dir{height:38px}
  .cat-i{padding:12px;border-bottom:1px solid var(--surface-3)}.cat-i.own{background:var(--warn-bg)}
  .cat-i-top{display:flex;gap:8px;align-items:flex-start}
  .cat-i-top .pick{width:18px;height:18px;flex:none;margin-top:4px}
  .cat-i .card{min-width:0;align-items:flex-start}
  .cat-i .card img,.cat-i .cat-ph{width:44px;height:58px;border-radius:var(--r-sm)}
  .cat-i .card .t{flex:1;min-width:0;white-space:normal;overflow:visible}
  .cat-i .card .t a{display:block;font-weight:var(--w-bold);font-size:var(--fs-md);line-height:1.3;overflow:hidden;text-overflow:clip;white-space:normal}
  .cat-i .card .m{font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis}
  .cat-i .chips-row{margin-top:6px}
  .cat-i-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px}
  .cat-c{background:var(--surface-2);border-radius:var(--r-sm);padding:6px 8px;min-width:0}
  .cat-c .k{display:block;font-size:var(--fs-2xs);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cat-c b{font-size:var(--fs-md);font-variant-numeric:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
  .cat-bar .bar-info{margin-left:0}
}

/* ── Тёмная тема: только переменные, правила выше не трогаем. Выбор — html[data-theme], ставится
   инлайн-скриптом в <head> (index.html) до первой отрисовки; хранится в localStorage «wbcmp.theme». ── */
html[data-theme=light]{color-scheme:light}
/* ── Кнопка-раскрывашка: одна на всю платформу (20.09) ──────────────────
   «все ключи», «Показать ещё N», «Свернуть до N», «подробнее», «Размеры»,
   «Фильтры», раскрывашки <details> — до 20.09 это были то ссылка с пунктиром,
   то подчёркнутый текст, то голая кнопка, и что из этого кликабельно, было
   непонятно. Теперь один вид: тихая кнопка с рамкой и шевроном, при наведении
   акцент. Цвета только переменными — тёмная тема берёт их же. */
.xbtn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--card);color:var(--ink-2);font-weight:var(--w-medium);font-size:var(--fs-sm);line-height:1;cursor:pointer;white-space:nowrap;text-decoration:none;transition:background .12s,border-color .12s,color .12s}
.xbtn .xbtn-c{font-style:normal;display:inline-block;color:var(--accent);font-size:var(--fs-sm);line-height:1;transition:transform .15s}
.xbtn:hover{border-color:var(--accent-line);background:var(--accent-bg);color:var(--accent)}
.xbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.xbtn.on,.xbtn[aria-expanded="true"]{border-color:var(--accent-line);background:var(--accent-bg);color:var(--accent)}
.xbtn.on .xbtn-c,.xbtn[aria-expanded="true"] .xbtn-c,details[open] > summary.xbtn .xbtn-c{transform:rotate(90deg)}
summary.xbtn{list-style:none}summary.xbtn::-webkit-details-marker{display:none}
/* Внутри «подвала» и списков кнопка стоит отдельной строкой, а не в тексте. */
.fold-btn{display:inline-flex}
.intel-more{margin:10px auto 0;display:flex}

/* ── Хвост графика: последний день с данными ────────────────────────────
   Ось у всех графиков идёт на весь выбранный период. Данных в хвосте может не
   быть — тогда там пустое место, а последний день с числами назван здесь. */
.ch-tail{padding:4px 0 0;color:var(--mute);font-size:var(--fs-xs);text-align:right}
/* Что изменилось в этот день — отдельным куском подсказки под метриками. */
.ch-ev{margin-top:6px;padding-top:6px;border-top:1px solid var(--line);color:var(--ink-3);font-size:var(--fs-xs)}
.ch-ev-i{padding:1px 0}.ch-ev-i::before{content:"◆ ";color:var(--star)}
/* Засечки событий на «Динамике карточки»: цена, реклама, акция, отзывы. */

/* ── Склады ─────────────────────────────────────────────────────────────
   «Хватит на» и доля склада в заказах полосой; кнопка «Размеры» — в своей
   колонке, а не в клетке с названием (до 20.09 она наезжала на «Регион»). */
.ofc td.ofc-days{white-space:nowrap}
.ofc td.ofc-days.worst{color:var(--bad);font-weight:var(--w-bold)}
.ofc td.ofc-share > span{font-variant-numeric:normal}
/* Остаток по дням над таблицей: компактная линия общего остатка, разбивка по
   складам — в подсказке общего курсора. Мало дней сбора — вместо графика
   строка о том, с какого числа копится история. */
.ofc-daily{margin-bottom:10px}
.ofc-daily .ofc-svg{width:100%;display:block}
.ofc-since{padding:0 0 6px}

/* ── «Свернуть всё» в шапке страницы ────────────────────────────────────*/
.page-right .sec-all{margin-right:6px}

/* Кнопка «Отметить мою карточку» стоит в строке управления рядом с «Фильтрами». */
.gk-ctl .gk-own{margin-left:0}
.gk-pick{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:var(--fs-sm);color:var(--mute)}

html[data-theme=dark]{color-scheme:dark;
 --ink:#e6e7eb;--ink-2:#dfe1e6;--ink-3:#c5c8d1;--mute:#a3a7b3;--mute-2:#979ba7;--mute-3:#868a96;--dim:#6e7484;--dim-2:#7a8090;
 --bg:#111318;--card:#1a1d24;--surface-2:#20242c;--surface-3:#282d37;--hover:#323844;--ph-bg:#2b3039;
 --line:#262a33;--line-2:#363b47;
 --accent:#a78bfa;--accent-2:#c4b5fd;--accent-deep:#c4b5fd;--accent-light:#c4b5fd;--accent-bg:#2a2347;--accent-soft:#23203a;--accent-faint:#1d1c29;--accent-mid:#3b3170;--accent-line:#4c3f8a;--accent-shadow:rgba(167,139,250,.12);--on-accent:#15121f;
 --good:#4ade80;--good-bg:#153521;--good-faint:#16241b;--good-line:#245c39;
 --bad:#f87171;--bad-ink:#fecaca;--bad-bg:#3a1a20;--bad-faint:#2a1a1d;--bad-line:#6b2a33;
 --warn:#fbbf24;--warn-ink:#fcd9a8;--warn-bg:#33261a;--warn-faint:#26201a;--warn-line:#6b4a1e;--star:#fbbf24;
 --info:#93b4ff;--info-bg:#1b2540;--cta:#ff6b3d;--cta-hover:#ff7f58;--on-cta:#fff;--on-color:#fff;
 --inverse-bg:#f0f0f4;--inverse-ink:#16181d;--qd-hover:rgba(255,255,255,.06);
 --chart-grid:#2a2e38;--chart-grid-2:#23272f;--chart-orange:#fb923c;
 --heat:167,139,250;
 --chart-1:#a78bfa;--chart-2:#fb7185;--chart-3:#fbbf24;--chart-4:#a3e635;--chart-5:#22d3ee;--chart-6:#2dd4bf;--chart-7:#c084fc;--chart-8:#fb923c}
/* Всплывающие панели на тёмном сливаются с карточками — им едва заметная рамка вместо одной тени. */
html[data-theme=dark] .who-menu,html[data-theme=dark] .help-menu,html[data-theme=dark] .pop,html[data-theme=dark] .dp,html[data-theme=dark] .ch-tip,html[data-theme=dark] .peek,html[data-theme=dark] .cols-menu,html[data-theme=dark] .cmodal,html[data-theme=dark] .cat-wait{border:1px solid var(--line-2)}
html[data-theme=dark] .run,html[data-theme=dark] .box,html[data-theme=dark] .tile,html[data-theme=dark] .bar:not(.tbar){border:1px solid var(--line)}
html[data-theme=dark] .period button.on,html[data-theme=dark] .chb-mode button.on,html[data-theme=dark] .share-tabs button.on,html[data-theme=dark] .theme-seg button.on{background:var(--hover)}
html[data-theme=dark] table.mini tbody tr:hover td.hm[style]{filter:brightness(1.25)}
/* Переключатель темы в меню «Профиль» */
.theme-seg{display:inline-flex;background:var(--surface-3);border-radius:var(--r-md);padding:2px}
.theme-seg button{border:none;background:transparent;border-radius:var(--r-sm);height:28px;padding:0 10px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;color:var(--mute)}
.theme-seg button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.08)}

/* ── Ячейка карточки в таблице (владелец 18.09) ─────────────────────────
   Три чипа — «Следить», «WB ↗», «Размеры» — одного роста и стиля; рейтинг
   отзывов тихо в строке бренда; балла «/10» нет. */
.card .m .rate{white-space:nowrap;cursor:help}
.chips-row > .pill,.chips-row > button.exp,.card .t .chips-row > a.pill.wb,.chips-row > .track-btn{display:inline-flex;align-items:center;gap:4px;box-sizing:border-box;height:24px;padding:0 9px;border:none;border-radius:var(--r-sm);background:var(--surface-3);color:var(--ink-3);font-family:inherit;font-size:var(--fs-xs);font-weight:var(--w-medium);line-height:1;white-space:nowrap;text-decoration:none;margin:0;width:auto;transform:none;cursor:pointer}
.chips-row > .pill{cursor:default}.chips-row > button.exp i{font-style:normal;font-size:var(--fs-2xs)}
.chips-row > button.exp:hover,.chips-row > .track-btn:hover,.card .t .chips-row > a.pill.wb:hover{background:var(--accent-bg);color:var(--accent)}
.chips-row > button.exp.on,.chips-row > .track-btn.on{background:var(--accent);color:var(--on-accent)}
/* ── Липкая колонка карточки: галочка слева, карточка за ней, метрики едут ──
   Прокрутка — у обёртки (.box или .scroll-y), не у таблицы. */
table.cards th.l,table.cards td.l{position:sticky;z-index:2;background:var(--card)}
table.cards th.l:first-child,table.cards td.l:first-child{left:0}
table.cards th:nth-child(2).l,table.cards td:nth-child(2).l{left:44px;box-shadow:4px 0 8px -4px rgba(0,0,0,.12);border-right:1px solid var(--line)}
table.cards thead th.l{z-index:4}
tr.row.own td.l{background:var(--warn-bg)}tbody tr.row:hover td.l{background:var(--accent-faint)}tr.row.open td.l{background:var(--accent-bg)}tr.size-row td.l{background:var(--surface-2)}

/* Ключи против конкурентов: аналитическая матрица (владелец 19.09 —
   «всё в одну кучу, тяжело смотреть»). В клетке одно число и отрыв от своей
   карточки; полосок под числом нет, различают вес шрифта, зебра и правый
   край. Прокрутка только горизонтальная: по вертикали блок растёт. */
/* Ширина колонок фиксирована (25.09): смена метрики меняет числа, и при
   автоширине колонки перестраивались — таблица «прыгала».
   На всю ширину блока не тянется (26.09): лишнее место при пяти карточках
   уходило в «Частоту» без ширины, и число стояло в полэкрана от запроса. */
table.gk-t{table-layout:fixed;width:max-content;min-width:100%}
/* 02.10: лишняя ширина блока — только колонкам карточек; «Запрос» и «Частота»
   держат свою, и число частоты стоит рядом с запросом. */
table.gk-t{width:100%;min-width:calc(372px + var(--gk-n, 1) * 132px)}
table.gk-t col.gk-cq{width:280px}table.gk-t col.gk-cf{width:92px}
.keys-table.gk-wrap{overflow-x:auto;overflow-y:visible}
/* Плотнее нынешнего примерно на четверть: строка ниже, но не слипается. */
.keys-table table.gk-t th,.keys-table table.gk-t td{padding:6px 10px}
table.gk-t th.gk-h{cursor:pointer}
table.gk-t th .gk-ar{font-style:normal;margin-left:3px;color:var(--accent)}
/* Левая часть закреплена: ширина «Запроса» задана жёстко, иначе сдвиг липкой
   «Частоты» (--gk-l) не с чем сверять. Шапка «Запроса» вертикальная: название,
   поиск, счётчик. */
table.gk-t th.l,table.gk-t td.l{width:280px;min-width:280px;max-width:280px}
table.gk-t th.l{vertical-align:top;white-space:normal}
.gk-th-q{display:block}
table.gk-t th.gk-freq,table.gk-t td.gk-freq{width:92px;min-width:92px}
table.gk-t th.gk-col{text-align:right;width:132px;min-width:132px}
/* Фото в шапке мельче: оно узнаёт карточку, а не заменяет подпись. */
table.gk-t th .th-ph{width:32px;height:42px;margin:0 0 4px auto}
.gk-th-t{display:block;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--ink-3);text-transform:none;letter-spacing:0;line-height:1.2;white-space:normal}
.gk-th-a{display:block;font-size:var(--fs-2xs);font-weight:var(--w-regular);color:var(--mute-3);text-transform:none;letter-spacing:0}
/* Одинаковые имена убраны — крупным идёт то, что различает: бренд или артикул. */
.gk-th-a.big{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink-2)}
/* Метрика в шапке колонки — пилюлей с отбивкой, а не мелким текстом впритык
   к имени (владелец 19.09: «сливается с названием»). */
.gk-th-m{display:inline-block;margin-top:5px;padding:2px 7px;border-radius:999px;background:var(--accent-bg);color:var(--accent);font-size:var(--fs-2xs);font-weight:var(--w-bold);text-transform:none;letter-spacing:0;line-height:1.35}
table.gk-t th.own,table.gk-t td.gk-c.own{border-left:2px solid var(--accent)}
table.gk-t th.own .gk-th-a{color:var(--accent)}
.gk-val{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:1px;min-height:34px;font-variant-numeric:normal}
.gk-val b{font-size:var(--fs-md);font-weight:var(--w-medium)}
/* Лучший в строке — только весом: цвет здесь занят сравнением со своей. */
table.gk-t td.gk-c.gk-top .gk-val b{font-weight:var(--w-bold)}
.gk-d.good{color:var(--good)}.gk-d.bad{color:var(--bad)}.gk-d i{font-style:normal;font-size:var(--fs-2xs);margin-right:2px;vertical-align:1px}
.gk-d{font-size:var(--fs-xs);line-height:1.15;font-weight:var(--w-medium);color:var(--mute);font-variant-numeric:normal;white-space:nowrap}
td.gk-loss b{font-weight:var(--w-bold)}
.gk-none{margin:8px 0 0;font-size:var(--fs-xs);color:var(--mute)}
/* Липкая левая часть — «Запрос» и «Частота» (владелец 19.09: карточек в
   таблице теперь вся выборка, и ключ со спросом обязан оставаться на экране).
   Сдвиг второй колонки задаёт --gk-l: ширину «Запроса» меряет analytics.js
   после отрисовки. Фон непрозрачный из переменных, иначе метрики просвечивают
   под ней; тень — на правом крае всей пары. Порядок правил ниже = порядок
   подложек: зебра, пробел, своя колонка, наведение, раскрытая строка. */
.keys-table table.gk-t th.l,.keys-table table.gk-t td.l{position:sticky;left:0;z-index:2;background:var(--card)}
.keys-table table.gk-t th.gk-freq,.keys-table table.gk-t td.gk-freq{position:sticky;left:var(--gk-l,280px);z-index:2;background:var(--card);border-right:1px solid var(--line);box-shadow:6px 0 10px -6px rgba(0,0,0,.18)}
.keys-table table.gk-t thead th.l,.keys-table table.gk-t thead th.gk-freq{z-index:5;background:var(--surface-2)}
/* Зебра через строку. Класс ставит разметка: под раскрытой строкой в tbody
   живёт второй <tr>, и счёт :nth-child после него сбился бы. */
.keys-table table.gk-t tbody tr.alt td{background:var(--surface-2)}
.keys-table table.gk-t tbody tr.an-gap td.l{background:var(--warn-bg)}
.keys-table table.gk-t td.gk-c.own{background:var(--accent-soft)}
.keys-table table.gk-t tbody tr.gk-r{cursor:pointer}
.keys-table table.gk-t tbody tr.gk-r:hover td{background:var(--accent-faint)}
.keys-table table.gk-t tbody tr.gk-r.open td{background:var(--accent-bg)}
.keys-table table.gk-t tbody tr.gk-r.open td.l{font-weight:var(--w-bold)}
/* Развёрнутая строка: все метрики по всем карточкам этого ключа, плитками. */
.keys-table table.gk-t tbody tr.gk-det > td{background:var(--accent-faint);padding:10px 12px 12px;white-space:normal}
.gk-det-h{font-size:var(--fs-sm);color:var(--ink-2);font-weight:var(--w-medium);margin-bottom:2px}
.gk-det-v{font-size:var(--fs-sm);color:var(--ink);margin:4px 0 10px;line-height:1.45}
/* Таблица метрика × карточка: подпись слева, числа колонками по карточкам.
   Лучшее в строке зелёным, худшее красным (как в бабочке сравнения). */
.gk-det-s{overflow-x:auto;background:var(--card);border-radius:var(--r-md);padding:4px 6px}
.gk-det-s table.gk-dt{border-collapse:collapse;width:auto;min-width:0;font-size:var(--fs-xs)}
.gk-det-s table.gk-dt th,.gk-det-s table.gk-dt td{padding:5px 10px;border:0;background:none;white-space:nowrap;text-align:right;vertical-align:baseline;height:auto;line-height:1.4}
/* Подпись строки липнет при прокрутке вбок (телефон, много карточек). */
.gk-det-s table.gk-dt tbody th,.gk-det-s table.gk-dt thead th:first-child{position:sticky;left:0;z-index:1;background:var(--card)}
.gk-det-s table.gk-dt tr + tr > *{border-top:1px solid var(--line)}
.gk-det-s table.gk-dt tbody th{text-align:left;font-weight:var(--w-regular);color:var(--mute);padding-left:4px}
.gk-det-s table.gk-dt thead th.gk-dc{font-weight:var(--w-regular);color:var(--mute);max-width:170px;overflow:hidden;text-overflow:ellipsis}
.gk-det-s table.gk-dt thead th.gk-dc b{display:block;font-weight:var(--w-bold);color:var(--ink-2);overflow:hidden;text-overflow:ellipsis}
.gk-det-s table.gk-dt thead th.gk-dc.own b,.gk-det-s table.gk-dt thead th.gk-dc.own span{color:var(--accent)}
.gk-det-s table.gk-dt td.gk-dv{color:var(--ink);font-weight:var(--w-medium)}
.gk-det-s table.gk-dt td.gk-dv.win{color:var(--good);background:var(--good-bg)}
.gk-det-s table.gk-dt td.gk-dv.lose{color:var(--bad);background:var(--bad-bg)}
.gk-dp,.gk-ds{font-style:normal;font-weight:var(--w-regular);font-size:var(--fs-2xs);color:var(--mute);margin-left:5px}
.gk-dz{color:var(--mute)}
.gk-det-s table.gk-dt tr.gk-dnr td{white-space:normal;text-align:left;max-width:200px}
.gk-dn{font-size:var(--fs-2xs);color:var(--mute);line-height:1.4;margin-top:2px}
/* Значки судьбы ключа у текста запроса: «выпал» тёплым, «новый» зелёным.
   Цвета только переменными — тёмная тема подставит свои. */
.gk-flag{margin-left:2px;cursor:help;font-weight:var(--w-medium)}
.gk-flag.drop{background:var(--warn-bg);color:var(--warn)}
.gk-flag.fresh{background:var(--good-bg);color:var(--good)}
/* Деньги в «Потерях» длиннее штук: рубль не должен уезжать на вторую строку. */
table.gk-t td.gk-loss{white-space:nowrap}

/* ── Телефон: разбор находок аудита 19.09 ────────────────────────────────
   Сайт за сутки переделали на широком экране, и новые блоки на 390 точках не
   смотрели. Правки собраны здесь одним куском, чтобы их было видно целиком;
   цвета — только переменными темы. */

/* Легенда графика: раньше кружок цвета был <b>, теперь <i class="cb">, а
   правило ширины осталось и резало число под именем карточки («28» в 10 px).
   Это ломало и широкий экран, но заметно стало на телефоне. */
.chb-legend .lg b.lg-v{width:auto;height:auto;border-radius:0}

/* Полоса «ты против группы»: min-width таблицы задавали классом .share-tbl,
   а рядом живёт table.mini{min-width:0!important} — селектор с типом
   специфичнее, и правило было мёртвым. Клетка «100.0% → 100.0%» резалась
   пополам. Возвращаем ширину с тем же весом и даём разделу прокрутку. */
@media (max-width:720px){
  table.mini.share-tbl{min-width:560px!important}
  .sec-body:has(.share-tbl){overflow-x:auto}
}

/* Меню столбцов: было position:absolute;right:0 при min-width 360 — на 390
   точках оно уезжало влево на 300 px и обрезалось overflow-x:hidden, то есть
   не открывалось вовсе. На телефоне это шторка снизу, как профиль и помощь. */
@media (max-width:720px){
  .cols-gear{position:static}
  .cols-menu{position:fixed;left:10px;right:10px;top:auto;
    bottom:calc(72px + env(safe-area-inset-bottom));width:auto;min-width:0;
    max-height:min(62vh,440px);z-index:96;padding:12px}
  .cols-menu label{font-size:var(--fs-sm);padding:3px 0}
  .cols-menu .m{font-size:var(--fs-xs)}
  .cols-menu .cols-all,.cols-menu .cols-reset{padding:10px;font-size:var(--fs-sm)}
}
@media (max-width:400px){.cols-flow{column-count:1}}

/* Плитки в списке карточек: три в ряд на 390 давали 106 px на плитку, и
   подпись «Ключей с заказами» резалась. Две в ряд — как в каталоге. */
@media (max-width:720px){
  .ml-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ml-c .k{font-size:var(--fs-xs);white-space:normal;line-height:1.2}
  .ml-rank{font-size:var(--fs-xs)}
}

/* Полоса метрик в «Ключах против конкурентов»: подпись съедала половину
   строки, и от семи таблеток было видно две. На телефоне подпись сверху,
   полоса — во всю ширину. */
@media (max-width:720px){
  .gk-mrow{display:block}
  .gk-mrow-k{display:block;margin-bottom:4px;font-size:var(--fs-xs)}
  .gk-metric{flex:1 1 auto;width:100%}
}

/* «Итоги по периодам» на странице карточки: таблица с min-width 1300 едет
   вбок на три с половиной экрана, и колонка «Период» уезжала вместе с ней —
   через два движения пальцем непонятно, какая это строка. Прилепляем её
   слева и снимаем лишнюю ширину: колонок девять, 900 точек им хватает. */
@media (max-width:720px){
}

/* Склады: шесть колонок (склад, регион, остаток, к клиенту, от клиента,
   заказов в день) на 370 точках сжимались до 58 px, и «Московская обл.»
   резалась в «Московск». Это тот самый случай, когда таблица обязана ехать
   вбок внутри своей рамки, а не ужиматься в ноль. */
@media (max-width:720px){
  .sec[data-sec="offices"] .sec-body{overflow-x:auto}
  /* Девять колонок на 390 точках не сжать — таблица едет вбок в своей рамке.
     Ширина под «Московская обл.» в «Регионе» и «нет остатка» в «Хватит на». */
  .sec[data-sec="offices"] table.mini{min-width:880px!important}
  .sec[data-sec="offices"] table.mini td.l{white-space:normal}
}

/* Пол по кеглю. Данные — числа, даты, доли, дельты — не мельче 12 px; подписи
   к ним не мельче 11,5 px. На 10 px цифру с телефона в руках не прочесть, а
   десятипиксельных дат и «п.п.» на экране сравнения было с десяток. */
@media (max-width:720px){
  /* данные */
  th .u,.keys-table th .u,.share-tbl th .u,.cat-table th .u,
  .diff,td.n .diff,.ml-c .diff,.stat-m,
  td.n .m,td.l .m,td.n .pos,td .pos,.km .pos,
  .intel-pos td.now .m,.intel-pos td .qsub{font-size:var(--fs-xs)}
  .gk-dp,.gk-ds,.gk-dn,.kc.mv .m,.kc-h .m{font-size:var(--fs-xs)}
  /* подписи */
  table.mini th{font-size:var(--fs-xs)}
  .gk-th-a,.cols-grp-t,.gk-fg-t,.peek-g span,.tot-k span,.tot-gt,
  .an-verdict .v-t,.stat-k,.cat-c .k,.cat-upd,.cat-age,.intel-m .k,.km-c .k,
  .fun-arrow span,.hyp-tag,.who-ava,.cat-tag,.who-sec-t{font-size:var(--fs-xs)}
}

/* ── Блоки самой карточки за период (20.09) ──────────────────────────────
   Размеры, место×заказы, цена×заказы, ключи и ключи по неделям. Места под
   блоки раскладываются сразу, поэтому порядок на экране не зависит от того,
   какая ручка ответила первой. Цвета — только переменные темы. */
.card-insights{display:contents}
.ci-slot{display:contents}

/* A. Размеры: ярлык, полоса, скорость, остаток и «в пути» */
.csz{display:flex;flex-direction:column;gap:8px}
.csz-r{display:grid;grid-template-columns:minmax(110px,190px) minmax(80px,1fr) 118px minmax(200px,auto);align-items:center;gap:12px;padding:6px 0}
.csz-r+.csz-r{border-top:1px solid var(--line)}
.csz-s{font-size:var(--fs-md);line-height:1.25}
.csz-s b{font-weight:var(--w-bold)}
.csz-x{display:block;color:var(--mute);font-weight:var(--w-regular);font-size:var(--fs-xs)}
.csz-bar{height:12px;border-radius:6px;background:var(--surface-3);overflow:hidden}
.csz-bar i{display:block;height:100%;border-radius:6px;background:var(--accent)}
.csz-v{font-variant-numeric:normal;font-weight:var(--w-bold);font-size:var(--fs-md);white-space:nowrap}
.csz-v .m{color:var(--mute);font-weight:var(--w-regular);font-size:var(--fs-xs)}
.csz-n{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--mute);font-size:var(--fs-sm);justify-content:flex-end}
.csz-n b{color:var(--ink);font-variant-numeric:normal}
.csz-r.dry .csz-s{color:var(--bad)}
.csz-dry{color:var(--bad);font-weight:var(--w-medium)}
.csz-depth{padding:10px 0 0}
.csz-share{color:var(--mute)}
.csz-scroll{overflow-x:auto;max-width:100%}
.csz-t td.l b{font-weight:var(--w-bold)}
.csz-t td.l .csz-x{font-size:var(--fs-xs)}
.csz-t tr.dry td.l b{color:var(--bad)}
.csz-t .csz-ttr{color:var(--mute);font-size:var(--fs-xs);margin-top:2px}
.csz-t td.n[data-tip],.csz-t td.n span[data-tip]{cursor:help}
.csz-t td.best{color:var(--good);font-weight:var(--w-bold)}
.csz-t td.worst{color:var(--bad);font-weight:var(--w-medium)}

/* B. Место и заказы */

/* C. Цена и заказы: полоса заказов прямо в ячейке */
.cpr td.cpr-w{position:relative}
.cpr tr.cpr-best td{background:var(--accent-soft)}

/* D. Ключи: строка фактов и три коротких списка */
.ck-facts{font-size:var(--fs-md);line-height:1.5;padding:2px 0 12px}
.ck-facts b{font-variant-numeric:normal}
.ck-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ck-c{background:var(--surface-2);border-radius:var(--r-md);padding:10px 12px}
.ck-h{font-weight:var(--w-bold);font-size:var(--fs-sm);margin-bottom:6px}
/* Числа под числами: в каждой колонке своя маленькая таблица, главный для неё
   столбец выделен. Бегущая строка «спрос … · заказов … · место …» снята
   21.09 — сравнить в ней было нечего. */
.ck-tb{width:100%;font-size:var(--fs-sm)}
.ck-tb th{font-size:var(--fs-xs);color:var(--mute);font-weight:var(--w-medium);padding:2px 4px;white-space:nowrap}
.ck-tb th.l,.ck-tb td.l{text-align:left}
.ck-tb td{padding:5px 4px;font-variant-numeric:normal;vertical-align:top}
.ck-tb td.l{font-size:var(--fs-sm);line-height:1.3;overflow-wrap:anywhere}
.ck-tb td.ck-key{font-weight:var(--w-bold);color:var(--ink)}
.ck-tb tbody tr+tr td{border-top:1px solid var(--line)}
.ck-none{color:var(--mute);font-size:var(--fs-sm);line-height:1.4}

/* E. Ключи по неделям: тепловая карта с липким первым столбцом */
.ckw-scroll{overflow-x:auto;max-width:100%}
/* Вид 25.09: клетки — плашки с зазором, у недели в шапке подпись неполноты,
   справа — изменение к прошлой полной неделе. */
/* table-layout:auto обязателен: общее правило таблиц — fixed, и при нём
   min-width колонки ключа не работает — на телефоне она сжималась до 70 px. */
table.mini.ckw{min-width:0;border-collapse:separate;border-spacing:3px 4px;table-layout:auto}
.ckw th{white-space:nowrap;font-variant-numeric:normal;vertical-align:bottom}
.ckw th.ckw-w{text-align:center}
.ckw th.ckw-w i{display:block;font-style:normal;font-weight:var(--w-medium);font-size:var(--fs-xs);color:var(--mute-3);text-transform:none;letter-spacing:0;white-space:nowrap}
.ckw td.ckw-c{text-align:center;font-variant-numeric:normal;white-space:nowrap;cursor:help;border-radius:var(--r-sm);font-weight:var(--w-medium);padding:7px 8px}
.ckw td.ckw-c.part{outline:1px dashed var(--line-2);outline-offset:-1px}
.ckw td.ckw-c.none{background:transparent;cursor:default}
.ckw td.ckw-c.none{color:var(--dim);font-weight:var(--w-regular)}
.ckw td.ckw-wow{font-weight:var(--w-bold);white-space:nowrap;font-variant-numeric:normal}
.ckw td.ckw-wow.up{color:var(--good)}.ckw td.ckw-wow.down{color:var(--bad)}.ckw td.ckw-wow.dim{color:var(--mute-3);font-weight:var(--w-medium)}
.ckw th.ckw-wow{white-space:normal;max-width:84px;line-height:1.2}
.ckw tbody tr:hover td.ckw-c:not(.none){filter:brightness(.96)}
.ckw tbody tr:hover td:not(.ckw-c){background:var(--accent-faint)}
.ckw-all{margin-top:6px}
/* Первый столбец липкий: длинный список ключей листается вбок, а ключ
   остаётся на месте. Таблица шире блока — она и так едет вбок внутри .ckw-scroll. */
.ckw th.l,.ckw td.l{position:sticky;left:0;z-index:2;background:var(--card);box-shadow:4px 0 8px -4px rgba(0,0,0,.12);min-width:230px;max-width:230px}
.ckw td.l b{display:block;font-weight:var(--w-medium);line-height:1.3;white-space:normal;overflow-wrap:break-word}
.ckw th:not(.l),.ckw td:not(.l){min-width:50px}
.ckw tbody tr:hover td.l{background:var(--accent-faint)}
.ckw tfoot td{border-top:1px solid var(--line-2);font-weight:var(--w-bold);color:var(--mute)}
.ckw tfoot td.l{background:var(--card)}
.ckw tfoot td:not(.l):not(.ckw-wow){text-align:center}
/* Ключу — сколько нужно (не меньше 230 px), остальное делят недели. */
table.mini.ckw{width:100%}.ckw th.l,.ckw td.l{width:1%}

/* F. Общий график карточки: галочки метрик, шаг, поле */
.mch{display:flex;flex-direction:column;gap:10px;padding-top:4px}
.mch-legend{display:flex;flex-wrap:wrap;gap:6px}
.mch-lg{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.mch-lg:hover{border-color:var(--accent-line)}
.mch-lg.on{background:var(--surface-2);border-color:var(--line-2)}
.mch-lg:not(.on) .mch-v,.mch-lg:not(.on) .mch-n{color:var(--mute)}
.mch-cb{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border:2px solid var(--dim);border-radius:5px;color:var(--on-accent);font-size:var(--fs-2xs);font-style:normal;line-height:1;flex:none}
.mch-t{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.mch-n{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap}
.mch-v{font-size:var(--fs-md);font-weight:var(--w-bold);font-variant-numeric:normal;white-space:nowrap}
.mch-d{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);white-space:nowrap;font-variant-numeric:normal}
.mch-d.good{color:var(--good)}.mch-d.bad{color:var(--bad)}
.mch-bar{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.mch-chart{min-height:220px}
.mch-chart .ch{height:300px}

@media (max-width:720px){
  /* Полосы размеров — в столбец: на 390 точках четыре колонки в строке
     превращались в четыре обрезка. */
  .csz-r{grid-template-columns:1fr auto;gap:4px 10px;padding:8px 0}
  .csz-s{grid-column:1}
  .csz-v{grid-column:2;text-align:right}
  .csz-bar{grid-column:1/-1;order:3}
  .csz-n{grid-column:1/-1;order:4;justify-content:flex-start}
  /* Таблицы едут вбок внутри себя, а не растягивают страницу. */
  .ckw-scroll,.csz-scroll{margin:0 -12px}
  .csz-scroll table.mini{min-width:640px!important}
  .sec-body:has(.csz-scroll){overflow-x:hidden}
  .csz-t th.l,.csz-t td.l{position:sticky;left:0;z-index:2;background:var(--card);padding-left:12px}
  /* Срок доставки под ярлыком размера на телефоне не помещается — он уходит
     в подсказку по тапу, как кластер ключа в таблице разведки. */
  .csz-t .csz-ttr{display:none}
  .ckw-scroll table.mini{min-width:560px!important}
  .sec-body:has(.ckw-scroll){overflow-x:hidden}
  .ckw th.l,.ckw td.l{padding-left:12px;min-width:150px;max-width:150px}
  .ckw td.l b{max-width:none}
  .ck-cols{grid-template-columns:1fr}
  .mch-legend{gap:5px}
  .mch-lg{padding:5px 8px;gap:6px}
  .mch-chart .ch{height:240px}
}

/* F. Хронология карточки: календарь изменений по дням (21.09) ────────────
   Строка — тип изменения, столбец — день периода. Ширина столбца считается от
   их числа: месяц — крупные клетки, год — узкие полоски с прокруткой. */
.cev-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.cev-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--card);color:var(--ink-3);border-radius:999px;padding:4px 10px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer}
.cev-chip i{width:8px;height:8px;border-radius:3px;background:var(--c);opacity:.35}
.cev-chip b{font-variant-numeric:normal}
.cev-chip.on{color:var(--ink);border-color:var(--c)}
.cev-chip.on i{opacity:1}
.cev-scroll{overflow-x:auto;max-width:100%;padding-bottom:4px}
.cev-grid{min-width:100%;display:flex;flex-direction:column;gap:3px}
.cev-row{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:10px}
.cev-n{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-3);white-space:nowrap}
.cev-n i{width:8px;height:8px;border-radius:3px}
.cev-cells{display:grid;grid-template-columns:repeat(var(--n),minmax(10px,1fr));gap:2px}
.cev-c{height:22px;border-radius:4px;background:var(--surface-2);cursor:pointer;font-weight:var(--w-bold);font-size:var(--fs-2xs);color:var(--on-accent);display:flex;align-items:center;justify-content:center}
.cev-c.on{background:var(--c);opacity:.55}
.cev-c.on.w2{opacity:.75}.cev-c.on.w3{opacity:1}
/* Вес 0 — справка витрины («WB обновил файл фото»), не действие продавца (03.10). */
.cev-c.on.w0{opacity:.25}
/* «Было → стало» миниатюрами у смены главного фото (своя копия, 03.10). */
.ph-pair{display:inline-flex;align-items:center;gap:6px;margin-left:8px;vertical-align:middle}
.ph-pair img,.ph-pair .ph-none{width:36px;height:48px;object-fit:cover;border-radius:4px;background:var(--surface-3)}
.ph-pair .ph-none{display:inline-flex;align-items:center;justify-content:center;color:var(--mute)}
.ph-pair img.gone{opacity:.3}
.ph-pair i{font-style:normal;opacity:.6}
.cev-c.sel{outline:2px solid var(--accent);outline-offset:1px}
.cev-h{font-size:var(--fs-xs);color:var(--mute);text-align:left;white-space:nowrap;cursor:pointer;padding-left:2px;min-width:0}
.cev-head .cev-cells{align-items:end}
.cev-day{margin-top:12px;background:var(--surface-2);border-radius:var(--r-md);padding:12px 14px}
.cev-d-h{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:8px}
.cev-d-n{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:10px}
.cev-d-n span{color:var(--mute);font-size:var(--fs-xs);margin-right:6px}
.cev-d-n b{font-variant-numeric:normal;font-size:var(--fs-md)}
.cev-d-l{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.cev-d-l li{position:relative;padding-left:14px;font-size:var(--fs-md);line-height:1.35}
.cev-d-l li::before{content:"";position:absolute;left:0;top:6px;width:8px;height:8px;border-radius:3px;background:var(--c)}
@media (max-width:720px){
  .cev-row{grid-template-columns:96px 1fr;gap:6px}
  .cev-n{font-size:var(--fs-xs)}
  .cev-cells{grid-template-columns:repeat(var(--n),minmax(8px,1fr))}
  .cev-c{height:18px}
  .cev-scroll{margin:0 -12px;padding:0 12px 4px}
}
/* Запросы на странице сравнения: таблица по содержимому, запрос переносится,
   колонка на карточку узкая и одинаковая — без пустыни между частотой и
   числами (Андрей, 22.09). */
table.mini.cq{width:auto;min-width:0}
table.mini.cq th.l,table.mini.cq td.l{max-width:420px;white-space:normal;overflow-wrap:anywhere;line-height:1.35;padding-right:16px}
table.mini.cq th:not(.l),table.mini.cq td:not(.l){width:150px;min-width:120px;text-align:center}
table.mini.cq td.n{font-variant-numeric:normal}
table.mini.cq .th-ph{display:block;margin:0 auto 4px}
@media (max-width:720px){table.mini.cq th.l,table.mini.cq td.l{max-width:180px}}

/* Сравнение: блоки под таблицей метрик (compare.js, 22.09) ───────────── */
.cx-blocks .sec{margin-top:14px}
table.mini.cx{width:auto;min-width:0;margin:0 auto}
table.mini.cx th:not(.l),table.mini.cx td:not(.l){width:200px;min-width:150px;text-align:center}
table.mini.cx td.n{font-variant-numeric:normal;font-size:var(--fs-md)}
table.mini.cx td.best{color:var(--good);font-weight:var(--w-bold)}
table.mini.cx td.worst{color:var(--bad)}
.cx-ph{width:22px;height:29px;border-radius:4px;object-fit:cover;vertical-align:middle;margin-right:6px}
.cx-d{display:block;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);margin-top:2px}.cx-d.up{color:var(--good)}.cx-d.down{color:var(--bad)}
.cx-verdict{margin-top:12px;padding:10px 14px;background:var(--surface-2);border-radius:var(--r-md);font-size:var(--fs-md);line-height:1.45}
.cx-verdict b{font-variant-numeric:normal}
.cx-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}
.cx-col{background:var(--surface-2);border-radius:var(--r-md);padding:10px 12px;min-width:0}
.cx-col-h{font-weight:var(--w-bold);font-size:var(--fs-sm);margin-bottom:8px;display:flex;align-items:center;gap:4px}
.cx-col table.mini{width:100%}
.cx-col table.mini td.l{white-space:normal;overflow-wrap:anywhere;line-height:1.3}
.cx-col table.mini tr.best td{color:var(--good);font-weight:var(--w-bold)}
.cx-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin-bottom:10px}
.cx-facts span{color:var(--mute);font-size:var(--fs-xs);margin-right:6px}.cx-facts b{font-variant-numeric:normal}.cx-facts b.worst{color:var(--bad)}
.cx-weeks{display:flex;align-items:flex-end;gap:6px;height:140px;padding:0 4px}
.cx-w{flex:1;display:flex;align-items:flex-end;gap:2px;height:100%;position:relative;cursor:help}
.cx-w i{flex:1;border-radius:3px 3px 0 0;min-height:2px}
.cx-w i.a,.cx-legend i.a{background:var(--chart-1)}.cx-w i.b,.cx-legend i.b{background:var(--chart-2)}
.cx-w span{position:absolute;left:0;right:0;bottom:-18px;text-align:center;font-size:var(--fs-2xs);color:var(--mute)}
.cx-legend{display:flex;gap:16px;margin-top:24px;font-size:var(--fs-xs);color:var(--mute)}
.cx-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
@media (max-width:720px){table.mini.cx th:not(.l),table.mini.cx td:not(.l){width:auto;min-width:96px}.cx-weeks{height:100px}}
.cev-d-n i{font-style:normal;font-size:var(--fs-xs);font-weight:var(--w-medium);margin-left:5px}.cev-d-n i.up{color:var(--good)}.cev-d-n i.down{color:var(--bad)}
/* События в строке разведки — плашками, а не абзацем (22.09) */
/* Изменения — в своей подложке, кнопки отделены чертой от чисел (22.09) */
@media (max-width:720px){.intel-row .intel-act{border-left:none;padding-left:0;border-top:1px solid var(--line);padding-top:8px}}
/* Плитка лидера: число сверху, карточка снизу — отделены чертой, чтобы не
   сливались в одну кашу (Андрей, 22.09). */
.stat-row{width:100%;margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
@media (max-width:720px){.intel-row .ir-nums{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Гипотезы карточкой из трёх ярусов (22.09): кто/когда → следствие крупно →
   факты плашками → вывод одной строкой. */
ol.intel-hyp{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.hyp-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;background:var(--card);cursor:pointer}
.hyp-card:hover,.hyp-card.on{border-color:var(--accent-line)}
.hyp-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.hyp-top .d{color:var(--mute);font-variant-numeric:normal;font-size:var(--fs-sm)}
.hyp-key{font-size:var(--fs-md);cursor:help}
.hyp-top .hyp-x{margin-left:auto}
.hyp-eff{margin-top:8px;font-size:var(--fs-md);color:var(--ink-2)}
.hyp-eff b{font-size:var(--fs-lg);font-variant-numeric:normal;margin:0 2px}
.hyp-eff .pc{margin-left:8px;font-weight:var(--w-bold);font-size:var(--fs-sm);padding:2px 8px;border-radius:999px;background:var(--surface-2)}
/* Андрей 25.09: в гипотезах цвет — по знаку, плюс зелёный, минус красный
   (не «хорошо ли это для тебя», как в остальной разведке). */
.hyp-eff.up .pc{color:var(--good);background:var(--good-faint)}.hyp-eff.down .pc{color:var(--bad);background:var(--bad-faint)}
.hyp-facts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.hf{display:inline-flex;gap:6px;align-items:baseline;padding:4px 10px;border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-sm);font-variant-numeric:normal}
.hf .k{color:var(--mute)}.hf.same{color:var(--mute)}
.hyp-verdict{margin-top:8px;font-size:var(--fs-sm);color:var(--ink-3);padding-left:10px;border-left:2px solid var(--accent-line)}
.hyp-also{margin-top:8px;font-size:var(--fs-sm);color:var(--ink-3)}.hyp-also .k{color:var(--mute);margin-right:8px}

/* Раскрытый день календаря — колонками по группам */
.cev-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.cev-g{background:var(--card);border-radius:var(--r-md);padding:10px 12px;border-top:3px solid var(--c)}
.cev-g-h{display:flex;justify-content:space-between;font-weight:var(--w-bold);font-size:var(--fs-sm);margin-bottom:6px}
.cev-g-h span{color:var(--mute);font-weight:var(--w-medium)}
.cev-g ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px;font-size:var(--fs-sm);line-height:1.35}
.cev-g li.kv{display:flex;flex-wrap:wrap;justify-content:flex-start;column-gap:10px;row-gap:2px;align-items:baseline}
.cev-g li.kv .t{overflow-wrap:anywhere}.cev-g li.kv .w{color:var(--mute);font-size:var(--fs-xs)}
.cev-g li.kv b{font-variant-numeric:normal;white-space:nowrap}
.cev-quiet{margin-top:4px}
/* Итоги на узком экране (планшет): группа во всю ширину, плитки по своему
   размеру переносятся. На телефоне — два столбца (правило выше). */
@media (max-width:1280px) and (min-width:721px){
  .tot-g{width:100%}
}
/* Узкие таблицы блоков карточки — по содержимому, а не на всю ширину: пять
   чисел по краям экрана глазом не сравнить (22.09). */
table.mini.cpr{width:auto;min-width:min(760px,100%)}
table.mini.cpr th:not(.l),table.mini.cpr td:not(.l){padding-left:28px}
.cpr-scroll{overflow-x:auto;max-width:100%}
/* В узкой колонке сравнения (пять карточек рядом) цены рвались посреди
   числа, заголовки слипались в «покупателяпродавца» (30.09): не переносим,
   а листаем вбок внутри .cpr-scroll. */
table.mini.cpr{table-layout:auto}
table.mini.cpr th,table.mini.cpr td{white-space:nowrap}
@media (max-width:720px){table.mini.cpr th:not(.l),table.mini.cpr td:not(.l){padding-left:10px}}
/* Размеры: колонка ярлыка держит срок доставки одной строкой (22.09) */
.csz-t td.l{min-width:150px}
.csz-t .csz-ttr{white-space:nowrap}
/* Ключи: числовые колонки ужимаются, ключу достаётся остальное */
/* table-layout:auto обязателен: общее правило таблиц — fixed, и «width:1%»
   при нём буквально сжимало колонку до трёх точек (телефон, 22.09). */
.ck-tb{table-layout:auto}
.ck-tb th:not(.l),.ck-tb td:not(.l){width:1%;white-space:nowrap;padding-left:12px}

/* Сравнение на телефоне: две карточки и колонка метрик в 390 px (22.09) */
@media (max-width:720px){
  table.cmp th.l:first-child{width:112px}
  table.cmp th.cmp-head{width:128px;font-size:var(--fs-xs);padding:8px 6px}
  /* Фиксированная раскладка работает только при заданной ширине таблицы:
     при width:auto колонки росли по содержимому до 215 px, и на экран
     помещалась одна карточка (30.09). */
  table.cmp.cmp-n{width:calc(112px + 128px * var(--cards, 5))}
  table.cmp.cmp-n .cmp-who{flex-direction:column;gap:4px;text-align:center}
  table.cmp.cmp-n .cmp-who-t{align-items:center}
  table.cmp .cmp-card img{width:40px;height:52px}
  table.cmp td.n{font-size:var(--fs-md);padding:10px 6px}
  table.cmp td.k{font-size:var(--fs-sm);padding:10px 8px}
  table.cmp td .diff{font-size:var(--fs-2xs)}
}
/* Кто когда обогнал: узкие столбики по центру, а не плиты на всю ширину */
.cx-weeks{justify-content:center}
.cx-w{flex:0 0 auto;width:64px}
.cx-w i{flex:0 0 22px}
/* wbui.js оборачивает широкие таблицы в .scroll-y, и правило
   «.scroll-y table:not(.mini){min-width:1180px}» было сильнее table.cmp —
   сравнение снова растягивалось на всю ширину (22.09). */
.scroll-y table.cmp:not(.mini){min-width:0}

/* Лидеры: своя карточка — тонкой чертой сверху, а не бурой заливкой. Когда
   своя лидирует в пятнадцати метриках из семнадцати, заливка превращала блок
   в сплошное оранжевое поле (22.09). */
.stat.own{background:var(--surface-2);box-shadow:inset 0 3px 0 var(--star)}
/* «Кто растёт, кто падает»: без надписи «ВЫВОД» и без цветных рамок у каждой
   карточки — подложка одна, карточки спокойные (22.09). */
.an-verdict.vk{background:transparent;padding:0}
.an-verdict.vk .v-t{display:none}
.an-verdict.vk .kc{border-color:var(--line);background:var(--card)}
.an-verdict.vk .kc.mv:hover{border-color:var(--accent-line)}

/* «Он против вас» — по содержимому, а не на всю ширину (22.09) */
table.mini.vs{width:auto;min-width:min(720px,100%)}
table.mini.vs th:not(.l),table.mini.vs td:not(.l){padding-left:28px}

/* Каталог: сведения о карточке одной серой строкой, под ней только кнопки;
   своя карточка — тонкой жёлтой чертой, а не бурой заливкой строки (22.09). */
.cat-meta{display:flex;flex-direction:column;gap:1px;margin-top:3px;font-size:var(--fs-xs);color:var(--mute);line-height:1.35}
.cat-meta .cat-upd,.cat-meta .cat-age{font-size:var(--fs-xs)}
/* Фон — цвет карточки, а не прозрачный: липкая колонка при боковой
   прокрутке иначе пропускала бы цифры сквозь себя. */
tr.row.own td,tr.row.own td.l,.cat-row.own td{background:var(--card)}
tr.row.own td.l:first-child,.cat-row.own td:first-child{box-shadow:inset 3px 0 0 var(--star)}
.cat-i.own{background:transparent;box-shadow:inset 3px 0 0 var(--star)}
/* Телефон, список замера: «ещё» под главными числами; своя — жёлтой чертой */
.ml-more{margin-top:6px}
.ml-more summary{-webkit-tap-highlight-color:transparent}
.ml-more .ml-grid{margin-top:6px}
@media (max-width:720px){.ml-i.own{background:transparent;box-shadow:inset 3px 0 0 var(--star)}}
/* ── Журнал ошибок (#/errors, errors.js) ── */
.err-box{padding:16px 18px;display:flex;flex-direction:column;gap:12px}
.err-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.err-nums{color:var(--mute);font-size:var(--fs-md)}.err-nums b{color:var(--ink);font-size:var(--fs-base)}
.err-all{color:var(--mute);font-size:var(--fs-sm);display:flex;gap:6px;align-items:center;cursor:pointer}
.err-chips{display:flex;gap:6px;flex-wrap:wrap}
.err-chip{height:28px;padding:0 12px;border:1px solid var(--line);background:var(--card);border-radius:999px;cursor:pointer;font:inherit;font-size:var(--fs-sm);color:var(--ink)}
.err-chip.on{background:var(--surface-3);border-color:var(--accent-line)}
.err-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-md)}
.err-bar[hidden]{display:none}
.err-list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.err-row{border-bottom:1px solid var(--line)}
.err-row>summary{display:grid;grid-template-columns:20px 96px minmax(0,1.2fr) minmax(0,2fr) 64px 92px;gap:10px;align-items:center;padding:10px 4px;cursor:pointer;list-style:none}
.err-row>summary::-webkit-details-marker{display:none}
.err-row.done{opacity:.55}
.err-kind{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-right:8px;min-width:0}
.err-where{font-weight:var(--w-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.err-msg{color:var(--mute);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.err-count{font-weight:var(--w-bold);text-align:right;font-variant-numeric:normal}
.err-ago{color:var(--mute);font-size:var(--fs-sm);text-align:right;white-space:nowrap}
.err-body{padding:4px 4px 14px 30px;display:flex;flex-direction:column;gap:8px}
.err-meta{color:var(--mute);font-size:var(--fs-sm)}
.err-full{font-size:var(--fs-md);overflow-wrap:anywhere}
.err-pre{margin:0;max-height:320px;overflow:auto;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-xs);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.err-actions{display:flex;gap:8px;flex-wrap:wrap}
@media (max-width:760px){
  .err-row>summary{grid-template-columns:20px minmax(0,1fr) 52px;grid-template-areas:"pick where count" "pick msg ago"}
  .err-pick{grid-area:pick}.err-where{grid-area:where}.err-count{grid-area:count}.err-msg{grid-area:msg}.err-ago{grid-area:ago}
  .err-kind{display:none}
  .err-body{padding-left:4px}
}
.btn.ghost{background:transparent;box-shadow:inset 0 0 0 1px var(--line)}.btn.ghost:hover{background:var(--surface-2)}
.src-part{color:var(--mute);font-size:var(--fs-sm);margin-top:6px}
.foot.warn-line{color:var(--bad)}
.help-page{padding:18px 22px;max-width:760px;line-height:1.55}.help-page b{display:block;margin-top:12px}.help-page p{margin:4px 0 0;color:var(--ink)}
.cx-nomine{padding:10px 4px;font-size:var(--fs-sm)}

/* ── Лидеры матрицей (25.09): лидер — колонкой один раз, метрики строками ──
   Полоса колонки — цвет лидера, в строке метрики его число на плашке того же
   цвета: метрики «сведены» к карточке без повторов. «Ты» — справа. */
.leaders .lead2{display:none;padding:0 18px 18px}
.leaders.open .lead2{display:block}
.ldm-scroll{overflow-x:auto;max-width:100%}
table.ldm{border-collapse:separate;border-spacing:0;width:auto;min-width:0;table-layout:auto}
table.ldm th,table.ldm td{padding:0}
.ldm thead th{vertical-align:bottom;padding:0 5px 10px}
.ldm th.ldm-k,.ldm td.ldm-k{text-align:left;position:sticky;left:0;z-index:2;background:var(--card);min-width:190px}
.ldm td.ldm-k{font-size:var(--fs-sm);color:var(--ink-2);padding:0 18px 0 2px;height:36px;white-space:nowrap}
.ldm th.ldm-card{min-width:118px}
.ldm-who{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;color:var(--ink);text-transform:none;letter-spacing:0;padding:10px 8px 8px;border-radius:var(--r-lg);background:color-mix(in srgb,var(--lc) 10%,var(--card));border-top:3px solid var(--lc);transition:box-shadow .12s}
.ldm-who:hover{box-shadow:0 2px 12px var(--accent-shadow)}
.ldm-who img,.ldm-who .ph{width:42px;height:56px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);display:block}
.ldm-who b{font-size:var(--fs-sm);font-weight:var(--w-bold);max-width:108px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ldm-n{font-size:var(--fs-xs);color:var(--mute);font-variant-numeric:normal}
.ldm-cnt{display:block;text-align:center;font-size:var(--fs-xs);color:var(--mute);margin-top:5px;font-weight:var(--w-medium)}
.ldm td.ldm-v{text-align:center;background:color-mix(in srgb,var(--lc) 6%,transparent);height:36px;min-width:118px}
.ldm td.ldm-v.on .ldr-v{display:inline-block;padding:4px 10px;border-radius:var(--r-sm);background:color-mix(in srgb,var(--lc) 22%,var(--card));font-weight:var(--w-bold);font-size:var(--fs-md);font-variant-numeric:normal;white-space:nowrap}
.ldm tr.ldm-g th{text-align:left;font-size:var(--fs-xs);font-weight:var(--w-bold);color:var(--mute);padding:16px 2px 6px;background:var(--card);position:sticky;left:0}
.ldm tbody tr.ldr-row td{border-top:1px solid var(--line)}
.ldm tbody tr.ldm-g + tr.ldr-row td{border-top:none}
.ldm tbody tr.ldr-row:hover td.ldm-k,.ldm tbody tr.ldr-row:hover td.ldm-me{background:var(--accent-faint)}
.ldm th.ldm-me-h{text-align:right;font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink-2);padding:0 2px 10px 18px;white-space:nowrap}
.ldm th.ldm-me-h span{display:block;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute)}
.ldm td.ldm-me{text-align:right;padding:0 2px 0 18px;white-space:nowrap;background:var(--card)}
.ldm td.ldm-me b{font-variant-numeric:normal;font-weight:var(--w-bold);font-size:var(--fs-md)}
.ldm td.ldm-me span{display:block;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute)}
.ldm td.ldm-me span.dn{color:var(--bad)}
.ldm td.ldm-me.win b,.ldm td.ldm-me.win span{color:var(--good)}
@media (max-width:720px){.leaders .lead2{padding:0 12px 12px}.ldm th.ldm-k,.ldm td.ldm-k{min-width:118px}.ldm td.ldm-k{white-space:normal;line-height:1.25}.ldm th.ldm-card{min-width:100px}.ldm td.ldm-me{padding-left:12px}}

/* Картинка WB, не пришедшая и после повторов, — ровная заглушка вместо
   значка сломанной картинки. */
img.img-fail{visibility:hidden}

/* Слияние сравнений: отметка на плитке и полоса «Открыть вместе» (25.09) */
.run .when{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.run-pick{width:18px;height:18px;border-radius:5px;border:1.5px solid var(--line-strong,var(--mute));flex:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;background:var(--card)}
.run-pick[aria-checked="true"]{background:var(--accent);border-color:var(--accent)}
.run-pick[aria-checked="true"]::after{content:"✓";color:#fff;font-size:var(--fs-xs);font-weight:var(--w-bold);line-height:1}
.run-pick:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.run.picked{border-color:var(--accent)}
.upd-at{font-weight:var(--w-medium);font-size:var(--fs-xs);color:var(--mute)}
.merge-bar{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px;padding:10px 14px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--accent-line);box-shadow:0 6px 24px var(--accent-shadow)}
.merge-bar .merge-hint{color:var(--mute);font-size:var(--fs-sm)}
.merge-bar .merge-go{margin-left:auto}
.page-sub.page-note{color:var(--mute);font-size:var(--fs-xs);margin-top:2px;max-width:900px}
.dp-win{font-size:var(--fs-xs);color:var(--mute);margin:0 0 8px;line-height:1.35}
/* Название карточки в таблице — одной строкой (25 символов, app.js TITLE_MAX);
   длиннее колонки — многоточием, а не обрез посреди буквы (QA 26.09). */
table.cards .card .tt a{white-space:nowrap}
/* Дни без остатка — пометкой под размером (25.09): колонка «Без остатка»
   сменилась на «Хватит на». */
.csz-zero{color:var(--bad);font-weight:var(--w-medium);white-space:normal;line-height:1.25}
/* Телефон: первая колонка размеров не уже слова «остатка» — таблица и так
   едет вбок внутри себя. */
@media (max-width:720px){table.mini.csz-t{table-layout:auto}.csz-t td.l{min-width:84px}}
/* Блок «Ключи: на чём держится» — все ключи, не пять (25.09): раскрытая
   колонка прокручивается внутри себя, а не растягивает соседей. */
.ck-n{display:inline-block;margin-left:6px;padding:0 7px;border-radius:var(--r-sm);background:var(--surface-3);color:var(--mute);font-size:var(--fs-xs);font-weight:var(--w-medium);vertical-align:1px}
.ck-c.all .ck-scroll{max-height:460px;overflow:auto}
.ck-all{margin-top:8px}
.ck-c.all .ck-all .xbtn-c{transform:rotate(-90deg)}
/* Сводка блока ключей плитками и полосой концентрации (25.09) */
.ck-sum{margin:0 0 14px}
.ck-kpis{display:flex;flex-wrap:wrap;gap:8px}
.ck-kpi{background:var(--surface-2);border-radius:var(--r-md);padding:8px 14px;min-width:0}
.ck-kpi .k{font-size:var(--fs-xs);color:var(--ink-3);white-space:nowrap}
.ck-kpi .v{font-size:var(--fs-lg);font-weight:var(--w-bold);letter-spacing:-.015em;line-height:1.2;white-space:nowrap;font-variant-numeric:normal}
.ck-kpi .s{font-size:var(--fs-xs);color:var(--mute-3);white-space:nowrap}

/* ── Сравнение карточек: «бабочка» для двух, полосы для трёх-пяти (25.09) ──
   Вместо клеток, залитых красным и зелёным: полоса длиной «доля от большего»,
   у лучшего — в цвете, у остальных серая; число рядом с полосой. */
.bf{max-width:980px;margin:0 auto}
.bf-head{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;padding:4px 0 14px;position:sticky;top:0;z-index:2;background:var(--card)}
.bf-head .cmp-who:first-child{justify-self:end;flex-direction:row-reverse;text-align:right}
.bf-vs{font-size:var(--fs-xs);color:var(--mute)}
.cmp-who{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;color:inherit}
.cmp-who img,.cmp-who .ph{width:44px;height:58px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none}
.cmp-who-t{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.cmp-who-t b{font-size:var(--fs-md);font-weight:var(--w-bold)}
.cmp-who-t span{font-size:var(--fs-xs);color:var(--mute)}
.cmp-who.own .cmp-who-t b{color:var(--warn-ink)}
.bf-grp{margin-top:10px}
.bf-grp h4{margin:0 0 2px;font-size:var(--fs-xs);font-weight:var(--w-bold);color:var(--mute);text-align:center}
.bf-row{display:grid;grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);align-items:center;gap:12px;padding:7px 0;border-top:1px solid var(--line)}
.bf-grp h4+.bf-row{border-top:none}
.bf-side{display:flex;align-items:center;gap:10px;min-width:0}
.bf-a{justify-content:flex-end}.bf-b{justify-content:flex-start}
.bf-v{font-size:var(--fs-base);font-weight:var(--w-medium);font-variant-numeric:normal;white-space:nowrap;color:var(--ink-2)}
.bf-side.win .bf-v{font-weight:var(--w-bold);color:var(--ink)}
.bf-k{text-align:center;font-size:var(--fs-sm);color:var(--mute);line-height:1.25}
.bf-k .u,.cmp-n td.k .u{font-size:var(--fs-2xs);color:var(--mute-3)}
.cmp-bar{display:block;height:10px;border-radius:6px;background:var(--dim);width:calc(var(--w) * .62);min-width:3px;flex:none}
.cmp-bar.best{background:var(--accent)}
.cmp-n{margin:0 auto}
.cmp-n td.n{text-align:center;vertical-align:middle}
.cmp-n .cmp-v{display:block;font-variant-numeric:normal}
.cmp-n td.win .cmp-v{font-weight:var(--w-bold)}
.cmp-n .cmp-bar{height:6px;margin:6px auto 0;width:calc(var(--w) * .8)}
.cmp-n tr.cmp-g th{text-align:left;font-size:var(--fs-xs);color:var(--mute);background:transparent;padding-top:14px}
.cmp-n th.cmp-head{vertical-align:top;text-transform:none;letter-spacing:0}
.cmp-n th.cmp-head .cmp-who{flex-direction:column;text-align:center}
@media (max-width:720px){
  .bf-head{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
  .bf-vs{display:none}
  .bf-head .cmp-who:first-child{justify-self:stretch}
  .cmp-who img,.cmp-who .ph{width:34px;height:44px}
  .bf-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4px 10px;padding:8px 0}
  .bf-k{grid-column:1 / -1;grid-row:1}
  .bf-v{font-size:var(--fs-md)}
  .cmp-bar{width:calc(var(--w) * .5)}
}
/* «Размеры бок о бок» бабочкой (25.09): цвет полосы — чья карточка */
.bf-sz .bf-head .bf-who{display:flex;align-items:center;gap:8px}.bf-sz .bf-head .bf-who.a{justify-self:end}
.bf-sz .bf-row{grid-template-columns:minmax(0,1fr) 90px minmax(0,1fr)}
.bf-sz .bf-k b{font-size:var(--fs-md);color:var(--ink)}
.bf-s{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap;font-variant-numeric:normal}.bf-s.worst{color:var(--bad);font-weight:var(--w-medium)}
.cmp-bar.sz-a{background:var(--accent)}.cmp-bar.sz-b{background:var(--chart-5)}
.bf-side.none{opacity:.55}
@media (max-width:720px){.bf-sz .bf-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}

/* Хронология: строки-метрики со скачками к вчера и плитки раскрытого дня (25.09) */
.cev-c.sig{color:#fff;font-size:var(--fs-2xs)}
.cev-c.sig.good{background:var(--good)}.cev-c.sig.bad{background:var(--bad)}
.cev-c.sig.l1{opacity:.45}.cev-c.sig.l2{opacity:.72}.cev-c.sig.l3{opacity:1}
.cev-mi{width:8px;height:8px;border-radius:3px;background:linear-gradient(135deg,var(--good) 50%,var(--bad) 50%);display:inline-block}
.cev-sep{height:1px;background:var(--line);margin:6px 0 3px}
.cev-tiles{margin:8px 0 12px;overflow-x:auto}
/* Числа дня таблицей (26.09): метрика · было · стало · изменение, ширина по
   содержимому — подпись и число рядом, без пустоты между ними. */
.cev-tiles table.cev-mt{width:max-content;min-width:0;max-width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
table.cev-mt th{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);text-align:right;padding:4px 12px;white-space:nowrap}
table.cev-mt th.l{text-align:left;padding-left:8px}
table.cev-mt td{padding:5px 12px;white-space:nowrap;border-top:1px solid var(--line)}
table.cev-mt td.k{color:var(--ink-3);padding-left:8px;border-left:3px solid transparent}
table.cev-mt td.n{text-align:right;font-variant-numeric:normal}
table.cev-mt td.was{color:var(--mute)}
table.cev-mt td.v{font-weight:var(--w-bold);color:var(--ink)}
table.cev-mt td.d{font-weight:var(--w-medium);color:var(--mute-3)}
table.cev-mt td.d.up{color:var(--good)}table.cev-mt td.d.down{color:var(--bad)}
table.cev-mt tr.jump.good td{background:var(--good-faint)}table.cev-mt tr.jump.good td.k{border-left-color:var(--good)}
table.cev-mt tr.jump.bad td{background:var(--bad-faint)}table.cev-mt tr.jump.bad td.k{border-left-color:var(--bad)}

/* ══ Разведка: группы, неделя к неделе, строка конкурента (25.09) ══════════
   Андрей: «чтобы не хотелось убежать… всё аккуратно, по фактам, в своём
   поле». Правила блока: подписи чисел — один раз (шапкой) там, где строки
   одинаковые; числа табличные и под числами; цвет только у изменения и
   только когда оно больше шума; своя карточка отмечена звездой и тёплой
   подложкой, как везде на сайте. Классы групп — ig-*, строки списка — ir-*. */

/* Тон изменения: что оно значит для владельца. */
.ig-d{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);font-variant-numeric:normal;white-space:nowrap}
.ig-d.ig-good,.ig-good.ig-d{color:var(--good)}.ig-d.ig-bad,.ig-bad.ig-d{color:var(--bad)}
.ig-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--dim);flex:none}
.ig-dot.ig-good{background:var(--good)}.ig-dot.ig-bad{background:var(--bad)}
.ig-cap{display:inline-block;margin-left:10px;font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--mute);font-variant-numeric:normal;white-space:nowrap}
.ig-note{color:var(--mute);font-size:var(--fs-sm);line-height:1.45}
.ig-warn{margin:0 0 10px;padding:9px 12px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-sm);line-height:1.4}
.ig-none{color:var(--mute);font-size:var(--fs-sm);padding:4px 0}
.ig-mine{color:var(--warn);font-weight:var(--w-bold)}

/* Карточка в строке: фото, название целыми словами, бренд и артикул. */
.ig-who{display:flex;align-items:center;gap:10px;min-width:0}
.ig-who img,.ig-who .ph{width:30px;height:40px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none;display:block}
.ig-who-t{min-width:0;line-height:1.25}
.ig-who-t a,.ig-who-t > b{display:block;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--ink);text-decoration:none;overflow-wrap:anywhere}
.ig-who-t a:hover{color:var(--accent)}
.ig-who-t .m{font-size:var(--fs-xs);color:var(--mute);margin-top:2px;font-variant-numeric:normal}

/* ── Раздел «Группы» над списком ─────────────────────────────────────── */
.ig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.ig-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card);color:inherit;text-decoration:none;transition:border-color .12s,box-shadow .12s;min-width:0}
.ig-card:hover{border-color:var(--accent-line);box-shadow:0 6px 20px var(--accent-shadow)}
.ig-card.paused{background:var(--surface-2)}
.ig-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.ig-gname{font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink);overflow-wrap:anywhere}
.ig-when{font-size:var(--fs-sm);color:var(--mute);white-space:nowrap}
.ig-card-mid{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ig-pics{display:flex;gap:4px}
.ig-pic{position:relative;display:block}
.ig-pic img,.ig-pic .ph{width:32px;height:42px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);display:block}
.ig-pic.ig-own img,.ig-pic.ig-own .ph{box-shadow:0 0 0 2px var(--star)}
.ig-next{font-size:var(--fs-sm);color:var(--ink-3);font-variant-numeric:normal}
.ig-due{color:var(--warn-ink);font-weight:var(--w-medium)}
.ig-next .pill,.ig-sub .pill,.intel-list .pill{font-size:var(--fs-xs)}
.ig-k{min-width:0}
.ig-k .k{display:block;font-size:var(--fs-xs);color:var(--mute);white-space:nowrap}
.ig-k b{display:block;font-size:var(--fs-lg);font-weight:var(--w-bold);letter-spacing:-.01em;line-height:1.25;font-variant-numeric:normal;white-space:nowrap}
.ig-add{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;min-height:120px;padding:14px 16px;border:1.5px dashed var(--accent-line);border-radius:var(--r-lg);background:var(--accent-faint);color:var(--accent);font:inherit;text-align:left;cursor:pointer;transition:background .12s,border-color .12s}
.ig-add:hover,.ig-add:focus-visible{border-color:var(--accent);background:var(--accent-bg);outline:none}
.ig-add b{font-size:var(--fs-base)}.ig-add span{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.4}

/* ── Строка конкурента: таблица без таблицы ─────────────────────────────
   Одна сетка у шапки и у строк: подписи один раз, числа под числами. */
@media (max-width:1180px){
}
@media (max-width:720px){
}

/* ── Страница группы ───────────────────────────────────────────────────── */
.ig-head{display:flex;align-items:center;justify-content:space-between;gap:10px 18px;flex-wrap:wrap;padding:12px 18px;margin-bottom:12px}
.ig-head-t{min-width:0}
.ig-sched{font-size:var(--fs-md);color:var(--ink-2)}
.ig-sub{font-size:var(--fs-sm);color:var(--mute);margin-top:3px;font-variant-numeric:normal}
.ig-sub b{color:var(--ink-2);font-weight:var(--w-medium)}
.ig-head-act{display:flex;gap:8px}
.ig-err{flex-basis:100%;color:var(--bad);font-size:var(--fs-sm);font-weight:var(--w-medium)}.ig-err:empty{display:none}
.ig-run-msg{flex-basis:100%;color:var(--ink-2);font-size:var(--fs-sm)}.ig-run-msg:empty{display:none}
.ig-weekbar{display:flex;align-items:center;justify-content:space-between;gap:10px 18px;flex-wrap:wrap;padding:10px 14px;margin-bottom:12px}
.ig-wk{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ig-step{width:32px;height:32px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--ink-2);font-size:var(--fs-lg);line-height:1;cursor:pointer}
.ig-step:hover:not(:disabled){border-color:var(--accent-line);color:var(--accent);background:var(--accent-bg)}
.ig-step:disabled{opacity:.35;cursor:default}
.ig-wk-l{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--mute);font-weight:var(--w-medium)}
.ig-wk-sel{height:34px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--ink);padding:0 8px;font-weight:var(--w-bold);font-size:var(--fs-base);font-variant-numeric:normal;cursor:pointer}
.ig-wk-vs{font-size:var(--fs-md);color:var(--ink-3);font-variant-numeric:normal}
.ig-legend{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;font-size:var(--fs-xs);color:var(--mute)}
.ig-legend span{display:inline-flex;align-items:center;gap:6px}
.ig-legend-n{color:var(--mute-3)}
.ig-empty{padding:22px 22px;margin-bottom:12px}.ig-empty-t{font-size:var(--fs-lg);font-weight:var(--w-bold);margin-bottom:6px}.ig-empty p{margin:0;color:var(--ink-3);line-height:1.5;max-width:720px}
.ig-two{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;margin-bottom:12px;align-items:start}
.ig-two > .sec{margin-bottom:0}
@media (max-width:1180px){.ig-two{grid-template-columns:minmax(0,1fr)}}
.ig-scroll{overflow-x:auto;max-width:100%}

/* «Неделя к неделе»: метрики × карточки. */
table.ig-t{--igm:236px;--igc:172px;width:calc(var(--igm) + var(--n,5) * var(--igc));min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0}
table.ig-t col.ig-col-m{width:var(--igm)}table.ig-t col.ig-col-c{width:var(--igc)}
@media (min-width:1300px){table.ig-t{--igc:200px}}
table.ig-t th,table.ig-t td{border-bottom:1px solid var(--surface-3)}
table.ig-t thead th{vertical-align:bottom;text-transform:none;letter-spacing:0;font-size:var(--fs-xs);color:var(--ink);cursor:default;padding:10px 12px;background:var(--card)}
table.ig-t thead th.ig-mh{color:var(--mute);font-weight:var(--w-medium)}
table.ig-t th.ig-ch{text-align:center;font-weight:var(--w-regular);white-space:normal}
table.ig-t th.ig-ch .ig-who{flex-direction:column;align-items:center;gap:6px;text-align:center}
table.ig-t th.ig-ch .ig-who img,table.ig-t th.ig-ch .ig-who .ph{width:34px;height:45px}
table.ig-t .ig-days{margin-top:5px;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--warn-ink);white-space:nowrap}
/* Названия метрик липнут к левому краю, когда таблица едет вбок (планшет,
   телефон, окно уже пяти карточек). */
table.ig-t th.ig-mh,table.ig-t td.ig-mn{position:sticky;left:0;z-index:2;background:var(--card)}
table.ig-t td.ig-mn{box-shadow:4px 0 8px -6px rgba(0,0,0,.14)}
/* Заголовок раздела метрик плашкой на всю ширину (04.10): как ld-g в сравнении. */
table.ig-t tr.ig-grp td{padding:16px 0 0;border:none;background:none}
table.ig-t tr.ig-grp td span{position:sticky;left:0;display:block;padding:7px 12px;border-radius:10px 10px 0 0;background:var(--accent-faint);border-left:3px solid var(--accent);color:var(--accent-2);font-size:var(--fs-sm);font-weight:var(--w-bold)}
table.ig-t tbody:first-of-type tr.ig-grp td{padding-top:8px}
table.ig-t td.ig-mn{font-size:var(--fs-sm);color:var(--ink-2);padding:8px 12px;line-height:1.3}
table.ig-t td.ig-mn .u{color:var(--mute)}
table.ig-t td.ig-has-tip{cursor:help;text-decoration:underline dotted var(--dim);text-underline-offset:3px}
table.ig-t td.ig-v{text-align:center;padding:7px 10px;white-space:nowrap}
table.ig-t td.ig-v b{display:block;font-size:var(--fs-md);font-weight:var(--w-medium);font-variant-numeric:normal;line-height:1.3}
table.ig-t td.ig-v b small{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute)}
table.ig-t td.ig-v .ig-d{display:block;margin-top:1px;cursor:help}
table.ig-t td.ig-best b{font-weight:var(--w-bold)}
table.ig-t td.ig-best{background:color-mix(in srgb,var(--accent-bg) 75%,transparent)}
table.ig-t .ig-own{background:color-mix(in srgb,var(--warn-bg) 55%,transparent)}
table.ig-t td.ig-own.ig-best{background:color-mix(in srgb,var(--accent-bg) 60%,var(--warn-bg))}
table.ig-t td.ig-none{color:var(--dim);text-align:center}
table.ig-t tbody tr:not(.ig-grp):hover td{background:var(--accent-faint)}
table.ig-t tbody tr:not(.ig-grp):hover td.ig-best{background:color-mix(in srgb,var(--accent-bg) 85%,transparent)}

/* «За счёт чего изменились заказы»: карточка = множители в строку. */
.ig-drs,.ig-shs{display:flex;flex-direction:column}
.ig-dr{display:grid;grid-template-columns:minmax(170px,2.1fr) repeat(4,minmax(64px,1fr));column-gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--surface-3)}
.ig-dr:last-child{border-bottom:none}
.ig-dr-h{padding:0 0 8px;border-bottom:1px solid var(--line);font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);line-height:1.2}
.ig-dr-h span{text-align:center}
.ig-dr .op{text-align:center;color:var(--mute-3);font-size:var(--fs-md);font-weight:var(--w-medium)}
.ig-dr.ig-own,.ig-sh.ig-own{background:color-mix(in srgb,var(--warn-bg) 55%,transparent);border-radius:var(--r-md);margin:2px -8px;padding-left:8px;padding-right:8px;border-bottom-color:transparent}
.ig-f{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0}
.ig-f .k{display:none}
.ig-f b{font-size:var(--fs-md);font-weight:var(--w-bold);font-variant-numeric:normal}
.ig-f b.ig-d{font-size:var(--fs-md)}
.ig-f.main b{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}
.ig-f[data-f="orders_pct"] b{font-size:var(--fs-base);font-weight:var(--w-bold)}
.ig-bar{position:relative;display:block;width:100%;max-width:92px;height:6px;border-radius:3px;background:var(--surface-3)}
.ig-bar::after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--dim)}
.ig-bar > i{position:absolute;top:0;bottom:0;border-radius:3px;background:var(--mute-3)}
.ig-bar.ig-good > i{background:var(--good)}.ig-bar.ig-bad > i{background:var(--bad)}

/* «Доли в группе»: доля недели полосой, чёрточка — прошлая. */
.ig-sh{display:grid;grid-template-columns:minmax(170px,1.7fr) repeat(3,minmax(84px,1fr));column-gap:14px;align-items:center;padding:9px 0;border-bottom:1px solid var(--surface-3)}
.ig-sh-h{padding:0 0 8px;border-bottom:1px solid var(--line);font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute)}
.ig-s{display:grid;grid-template-columns:auto 1fr;align-items:baseline;column-gap:6px;row-gap:5px;min-width:0;cursor:help}
.ig-s .k{display:none}
.ig-s b{font-size:var(--fs-md);font-weight:var(--w-bold);font-variant-numeric:normal;white-space:nowrap}
.ig-s .ig-d{text-align:right}
.ig-sbar{grid-column:1/-1;position:relative;display:block;height:6px;border-radius:3px;background:var(--surface-3)}
.ig-sbar > i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--accent-light)}
.ig-sh.ig-own .ig-sbar > i{background:var(--star)}
.ig-sbar > u{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--ink-3);border-radius:1px}

/* «По неделям»: тепловая карта, первый столбец липкий. */
.ig-heat-bar{display:flex;align-items:center;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;margin:0 0 10px}
.ig-hms{display:flex;flex-wrap:wrap;gap:6px}
.ig-wins{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-xs);color:var(--mute)}
.ig-wins span{margin-right:4px}
.ig-win{min-width:34px;height:28px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--ink-3);font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer}
.ig-win.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent)}
table.ig-heat{width:100%;min-width:0;table-layout:auto;border-collapse:separate;border-spacing:0}
table.ig-heat th{text-transform:none;letter-spacing:0;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);cursor:default;padding:6px 8px;white-space:nowrap;text-align:center;font-variant-numeric:normal;background:var(--card)}
table.ig-heat th.l{text-align:left;color:var(--ink-3)}
table.ig-heat .ig-hw-n{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--warn-ink)}
table.ig-heat td.ig-hn,table.ig-heat th.l{position:sticky;left:0;z-index:2;background:var(--card);min-width:230px;max-width:230px;box-shadow:4px 0 8px -4px rgba(0,0,0,.10)}
table.ig-heat td.ig-hn{padding:6px 12px 6px 0}
table.ig-heat td.ig-hc{min-width:74px;padding:9px 8px;text-align:center;font-variant-numeric:normal;font-size:var(--fs-sm);white-space:nowrap;cursor:help;border-bottom:2px solid var(--card)}
table.ig-heat td.ig-hc small{display:block;font-size:var(--fs-xs);color:var(--warn-ink);font-weight:var(--w-medium);line-height:1.1}
table.ig-heat td.ig-none{color:var(--dim);background:transparent}
table.ig-heat .ig-part{background-image:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--card) 55%,transparent) 6px 9px)}
table.ig-heat th.ig-sel{color:var(--accent)}
table.ig-heat td.ig-sel{box-shadow:inset 2px 0 0 var(--accent),inset -2px 0 0 var(--accent)}
table.ig-heat thead th.ig-sel{box-shadow:inset 2px 0 0 var(--accent),inset -2px 0 0 var(--accent),inset 0 2px 0 var(--accent);border-radius:var(--r-sm) var(--r-sm) 0 0}
table.ig-heat:not(:has(tfoot)) tbody tr:last-child td.ig-sel,table.ig-heat tfoot td.ig-sel{box-shadow:inset 2px 0 0 var(--accent),inset -2px 0 0 var(--accent),inset 0 -2px 0 var(--accent)}
table.ig-heat tr.ig-own td.ig-hn{background:color-mix(in srgb,var(--warn-bg) 70%,var(--card))}
table.ig-heat tfoot td{padding:8px 8px;text-align:center;font-variant-numeric:normal;font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink-3);border-top:1px solid var(--line-2)}
table.ig-heat tfoot td.ig-hn{text-align:left}
table.ig-heat tfoot td.ig-hn b{font-size:var(--fs-sm)}table.ig-heat tfoot .m{font-size:var(--fs-xs);color:var(--mute);font-weight:var(--w-regular)}

/* «События недели»: колонка на карточку. */
.ig-evg{display:grid;grid-template-columns:repeat(auto-fill,minmax(236px,1fr));gap:12px;align-items:start}
.ig-evc{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;min-width:0}
.ig-evc.ig-own{background:color-mix(in srgb,var(--warn-bg) 45%,transparent)}
.ig-ev-none{margin-top:8px;font-size:var(--fs-sm);color:var(--mute)}

/* ── Форма группы ─────────────────────────────────────────────────────── */
.ig-form{width:min(620px,100%)}
.ig-fbody{gap:14px}
.ig-fl{display:flex;flex-direction:column;gap:6px;min-width:0}
.ig-fk{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink-3)}
.ig-cnt{font-weight:var(--w-medium);color:var(--mute);margin-left:6px}
.ig-name,.ig-own-nm,.ig-find{height:38px;border:1px solid var(--line-2);border-radius:var(--r-md);padding:0 12px;font-size:var(--fs-md);color:var(--ink);background:var(--card);min-width:0}
.ig-name:focus,.ig-own-nm:focus,.ig-find:focus,.ig-wd:focus,.ig-dn:focus{outline:none;border-color:var(--accent)}
.ig-add-row{display:flex;gap:8px}.ig-add-row input{flex:1}
.ig-add-row .xbtn{height:38px}
.ig-own-list{display:flex;flex-direction:column;gap:6px}
.ig-opt{display:flex;align-items:center;gap:10px;width:100%;padding:6px 10px 6px 6px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.ig-opt:hover{border-color:var(--accent-line);background:var(--accent-faint)}
.ig-opt.on{border-color:var(--accent);background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent)}
.ig-opt img,.ig-opt .ph,.ig-chip img,.ig-chip .ph{width:28px;height:37px;border-radius:6px;object-fit:cover;background:var(--ph-bg);flex:none;display:block}
.ig-opt-t{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}
.ig-opt-t b{font-size:var(--fs-sm);font-weight:var(--w-medium);overflow-wrap:anywhere}
.ig-opt-t small{font-size:var(--fs-xs);color:var(--mute);font-variant-numeric:normal}
.ig-plus{margin-left:auto;font-size:var(--fs-lg);font-weight:var(--w-medium);color:var(--accent);padding:0 4px}
.ig-chosen{display:flex;flex-direction:column;gap:6px}
.ig-chip{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 6px;border-radius:var(--r-md);background:var(--surface-2);min-width:0}
.ig-chip-x{margin-left:auto;width:30px;height:30px;border:none;border-radius:var(--r-sm);background:transparent;color:var(--mute);font-size:var(--fs-lg);line-height:1;cursor:pointer;flex:none}
.ig-chip-x:hover{background:var(--bad-bg);color:var(--bad)}
.ig-sugg{display:flex;flex-direction:column;gap:6px}
.ig-sugg:empty{display:none}
.ig-sugg-h{font-size:var(--fs-xs);color:var(--mute);font-weight:var(--w-medium);margin-top:2px}
.ig-radio{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-md);color:var(--ink-2);min-height:38px}
.ig-radio input[type=radio]{width:18px;height:18px;accent-color:var(--accent);margin:0}
.ig-wd{height:36px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--card);color:var(--ink);padding:0 8px;font-size:var(--fs-md)}
.ig-dn{width:72px;height:36px;border:1px solid var(--line-2);border-radius:var(--r-sm);padding:0 10px;font-weight:var(--w-medium);font-size:var(--fs-md);color:var(--ink);background:var(--card)}
.ig-fhint{font-size:var(--fs-sm);color:var(--mute);line-height:1.45}
.ig-chk{display:flex;align-items:center;gap:10px;font-size:var(--fs-md);color:var(--ink-2)}
.ig-chk input{width:18px;height:18px;accent-color:var(--accent);margin:0}
.ig-ffoot{padding:12px 22px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.ig-ferr{color:var(--bad);font-size:var(--fs-sm);font-weight:var(--w-medium);line-height:1.4}.ig-ferr:empty{display:none}
.ig-fbtns{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ig-add-row[hidden]{display:none}
.ig-sp{flex:1}
.ig-fbtns .bar-go{height:38px;border-radius:var(--r-md);font-size:var(--fs-md)}
.ig-del-box{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.ig-del{color:var(--bad)}.ig-del:hover{border-color:var(--bad-line);background:var(--bad-bg);color:var(--bad)}
.ig-del-q{font-size:var(--fs-sm);color:var(--bad);font-weight:var(--w-medium)}
.ig-del-yes{color:var(--on-color);background:var(--bad);border-color:var(--bad)}.ig-del-yes:hover{background:var(--bad);color:var(--on-color);filter:brightness(1.08)}

/* ── Телефон ──────────────────────────────────────────────────────────── */
@media (max-width:720px){
  .ig-grid{grid-template-columns:minmax(0,1fr);gap:10px}
  .ig-card{padding:12px 12px}
  .ig-k b{font-size:var(--fs-base)}
  .ig-head{padding:12px 12px}.ig-head-act{width:100%}.ig-head-act .xbtn{flex:1;justify-content:center;height:36px}
  .ig-weekbar{padding:10px 10px}.ig-wk{width:100%;justify-content:space-between}.ig-wk-vs{order:5;width:100%;text-align:center;font-size:var(--fs-sm)}
  .ig-wk-sel{font-size:var(--fs-base)}
  .ig-legend{width:100%;justify-content:center}
  .ig-cap{margin-left:6px;font-size:var(--fs-sm)}
  .ig-scroll{margin:0 -12px;padding:0 0 2px}
  .sec-body:has(.ig-scroll){overflow-x:hidden}
  table.ig-t{--igm:120px;--igc:104px;min-width:0!important}
  /* Правый край таблицы недели тает: видно, что карточки есть и дальше. */
  .sec[data-sec="ig-w2w"] .ig-scroll{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent)}
  table.ig-t td.ig-mn,table.ig-t th.ig-mh{padding-left:12px;font-size:var(--fs-sm)}
  table.ig-t tr.ig-grp td span{padding-left:10px}
  table.ig-t thead th{padding:8px 8px}table.ig-t td.ig-v{padding:7px 8px}
  .ig-dr,.ig-dr.ig-own{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:8px;column-gap:6px}
  .ig-dr > .ig-who{grid-column:1/-1}
  .ig-dr .op,.ig-dr-h{display:none}
  .ig-f{align-items:flex-start;padding:6px 8px;border-radius:var(--r-sm);background:var(--surface-2)}
  .ig-dr.ig-own .ig-f{background:var(--card)}
  .ig-f .k{display:block;font-size:var(--fs-xs);color:var(--mute);line-height:1.2;white-space:normal}
  .ig-bar{max-width:none}
  .ig-sh,.ig-sh.ig-own{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:8px;column-gap:10px}
  .ig-sh > .ig-who{grid-column:1/-1}
  .ig-sh-h{display:none}
  .ig-s .k{display:block;grid-column:1/-1;font-size:var(--fs-xs);color:var(--mute)}
  .ig-heat-bar{flex-direction:column;align-items:stretch}
  table.ig-heat td.ig-hn,table.ig-heat th.l{min-width:136px;max-width:136px;padding-left:12px}
  table.ig-heat td.ig-hn .ig-who img,table.ig-heat td.ig-hn .ig-who .ph{display:none}
  .ig-evg{grid-template-columns:minmax(0,1fr)}
  .ig-fbody{gap:12px}
  .ig-name,.ig-own-nm,.ig-find,.ig-wd,.ig-dn{font-size:var(--fs-base)}
  .ig-ffoot{padding:10px 16px 12px}
  .ig-fbtns .btn,.ig-fbtns .bar-go{flex:1;min-height:42px}
  .ig-sp{display:none}
  .ig-del-box{width:100%}
}
/* Почему группа ждёт замера (wait_reason) и интервал чаще недели. */
.ig-wait{color:var(--warn-ink);font-weight:var(--w-medium)}
.ig-rare{text-decoration:underline dotted var(--warn-line);text-underline-offset:3px;cursor:help}
.ig-dn-hint.ig-rare-on{color:var(--warn-ink);font-weight:var(--w-medium)}
.ig-nw{white-space:nowrap}

/* Кнопка «выдача WB» у ключа (25.09): маленькая, в цвете WB, открывает поиск
   wildberries.ru по этому запросу в новой вкладке. */
.wbq{display:inline-flex;align-items:center;justify-content:center;height:18px;padding:0 5px;margin-left:6px;border-radius:6px;font-size:var(--fs-xs);font-weight:var(--w-bold);letter-spacing:-.01em;line-height:1;text-decoration:none;vertical-align:1px;color:#cb11ab;background:color-mix(in srgb,#cb11ab 9%,var(--card));border:1px solid color-mix(in srgb,#cb11ab 28%,transparent);opacity:.8;transition:opacity .12s,background .12s}
.wbq:hover{opacity:1;background:#cb11ab;color:#fff}
/* 26.09 (Андрей): кнопка мельче текста и не отрывается от него. Строчная, а
   не блочная: между словом и кнопкой нет пробела, и строка не может
   разорваться между ними — «WB» едет вместе с последним словом. */
.wbq{display:inline;height:auto;padding:1px 3px;margin-left:5px;border-radius:4px;font-size:9px;line-height:1;vertical-align:2px;white-space:nowrap;letter-spacing:.02em}
/* Андрей 26.09: «ещё меньше, чуть меньше запроса» — 9 на широком экране; на
   телефоне пол кегля 11.4 (тест пола), поэтому 11.5 с узкими полями. */
@media (max-width:720px){.wbq{font-size:11.5px;padding:0 3px}}

/* ── Свои имена сравнений (Андрей 25.09): карандаш у плитки и у заголовка ── */
/* Карандаш тихий: проявляется при наведении на плитку или заголовок и по
   фокусу с клавиатуры; на сенсорных экранах наведения нет — виден всегда. */
.rn-t{overflow-wrap:anywhere}
/* Строка даты плитки — один кусок текста: имя, «· обновлено», карандаш
   переносятся словами рядом с отметкой, а не прыгают под неё по одному. */
.run .when{flex-wrap:nowrap}
.rn-line{flex:1 1 auto;min-width:0}
.rn-line .upd-at{margin-left:4px}
/* Строчный, чтобы не отрываться от последнего слова; поле нажатия ~24 px — отступами. */
.rn-pen{display:inline;margin-left:2px;padding:4px 5.5px;border-radius:var(--r-sm);color:var(--mute);font-size:var(--fs-base);font-weight:var(--w-regular);line-height:1;letter-spacing:0;white-space:nowrap;cursor:pointer;user-select:none;opacity:0;transition:opacity .12s,background-color .12s,color .12s}
.page-head h1 .rn-pen{margin-left:4px;font-size:var(--fs-base);vertical-align:2px}
.run:hover .rn-pen,.run:focus-within .rn-pen,.page-head h1:hover .rn-pen,.rn-pen:focus-visible{opacity:1}
.rn-pen:hover{background:var(--hover);color:var(--ink)}
.rn-pen:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media (hover:none){.rn-pen{opacity:.7}}
/* Под своим именем — то, что оно заслонило: дата и число карточек. */
.page-head .rn-sub{color:var(--mute);font-size:var(--fs-sm);margin-top:4px}
/* Правка на месте заголовка: поле того же кегля, строка не прыгает. */
.rn-editing .rn-t,.rn-editing .rn-pen,.rn-editing .rn-line .upd-at,.page-head.rn-editing h1 .badge{display:none}
.run.rn-editing .when{flex:1 1 auto}
.rn-input{display:inline-block;vertical-align:middle;width:100%;max-width:440px;height:30px;margin:-4px 0;padding:0 9px;border:1px solid var(--accent-line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font-family:inherit;font-size:var(--fs-base);font-weight:var(--w-medium);outline:none;box-shadow:0 0 0 3px var(--accent-shadow)}
.rn-input::placeholder{color:var(--mute);font-weight:var(--w-medium);opacity:1}
.page-head h1 .rn-input{width:min(560px,calc(100vw - 48px));max-width:none;height:40px;margin:-4px 0 -4px -10px;font-size:var(--fs-2xl);font-weight:var(--w-bold);letter-spacing:-.01em}
/* Телефон: период данных уходит строкой ниже, имени достаётся вся ширина
   плитки (до 25.09 дата и та ломалась в две строки рядом с периодом). */
@media (max-width:720px){
  .run-head{flex-wrap:wrap;row-gap:2px}
  .run-head .when{flex:1 1 220px;min-width:0}
  .run .rn-input{max-width:none}
  .page-head h1 .rn-input{width:calc(100vw - 20px);height:36px;margin-left:0;font-size:var(--fs-lg)}
}

/* ── Гипотезы (вид 25.09, Андрей: «не кучка текста, как современный
   дизайнер»): дата отдельным полем слева, справа — ярлык и предмет,
   следствие крупно с плашкой процента, факты ровными плитками одной
   ширины, вывод — выделенной строкой. Цвета — как во всей разведке. ── */
.intel-hyp{padding-left:0;list-style:none;gap:10px}
.intel-hyp li.hyp-card{display:grid;grid-template-columns:54px minmax(0,1fr);column-gap:14px;padding:14px 16px;border-radius:var(--r-lg);background:var(--surface-2);border:1px solid var(--line);cursor:default;line-height:1.35}
.intel-hyp li.hyp-card:hover{border-color:var(--accent-line)}
.hyp-date{display:flex;flex-direction:column;align-items:center;padding-top:1px;color:var(--mute);border-right:1px solid var(--line);padding-right:12px}
.hyp-date b{font-size:var(--fs-2xl);font-weight:var(--w-bold);line-height:1;color:var(--ink);font-variant-numeric:normal}
.hyp-date span{font-size:var(--fs-xs);margin-top:3px}
.hyp-main{min-width:0;display:flex;flex-direction:column;gap:9px}
.intel-hyp li.hyp-card .hyp-top,.intel-hyp li.hyp-card .hyp-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}
.intel-hyp li.hyp-card .hyp-x{margin-left:auto}
.hyp-subj{font-size:var(--fs-sm);color:var(--mute)}
.intel-hyp li.hyp-card .hyp-key{font-size:var(--fs-md);font-weight:var(--w-bold)}
.intel-hyp li.hyp-card .hyp-eff,.intel-hyp li.hyp-card .hyp-t{margin:0;font-size:var(--fs-md);font-weight:var(--w-medium);color:var(--ink-2)}
.intel-hyp li.hyp-card .hyp-eff b{font-size:var(--fs-xl);font-weight:var(--w-bold);letter-spacing:-.01em}
.intel-hyp li.hyp-card .hyp-t .hyp-m{font-weight:var(--w-bold);color:var(--ink)}
.intel-hyp li.hyp-card .hyp-facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0}
.intel-hyp li.hyp-card .hf{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 12px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);font-size:var(--fs-sm)}
.intel-hyp li.hyp-card .hf .k{font-size:var(--fs-xs);color:var(--mute)}
.intel-hyp li.hyp-card .hf .v{font-variant-numeric:normal;white-space:nowrap}
.intel-hyp li.hyp-card .hf.same{opacity:.75}
.intel-hyp li.hyp-card .hyp-verdict{margin:0;padding:7px 12px;border-left:3px solid var(--accent);border-radius:0 var(--r-md) var(--r-md) 0;background:color-mix(in srgb,var(--accent) 7%,transparent);font-size:var(--fs-sm);color:var(--ink-2)}
.intel-hyp li.hyp-card .hyp-why{margin:0;font-size:var(--fs-sm);color:var(--ink-3)}
.intel-hyp li.hyp-card .hyp-full{margin:0}
@media (max-width:720px){.intel-hyp li.hyp-card{grid-template-columns:42px minmax(0,1fr);column-gap:10px;padding:12px}.hyp-date{padding-right:8px}.hyp-date b{font-size:var(--fs-xl)}.intel-hyp li.hyp-card .hyp-facts{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Разведка: цвет по знаку (25.09) — рост зелёный, падение красный. */
.intel-week .iw.sg-up{border-color:var(--good-line);color:var(--good)}.intel-week .iw.sg-dn{border-color:var(--bad-line);color:var(--bad)}
.diff.sg-up{color:var(--good)}.diff.sg-dn{color:var(--bad)}

/* ── Кластеры запросов WB (Андрей 25.09) ─────────────────────────────────
   «Ключи против конкурентов»: справа в строке «Фильтры» — выключатель «По
   кластерам WB» и загрузка состава из кабинета WB; строки-заголовки групп;
   ярлык кластера под ключом (он же в блоках карточки). Тихо: серый текст,
   ни одной цветной плашки; цвет — у включённого выключателя и у итога загрузки. */
.gk-clx{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;min-width:0;max-width:100%}
.gk-clms{flex:1 0 100%;display:flex;flex-direction:column;align-items:flex-end;gap:1px;margin:-6px 0 2px}
.gk-clt{display:inline-flex;align-items:center;gap:8px;border:none;background:transparent;padding:4px 0;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--ink-3);cursor:pointer;white-space:nowrap}
.gk-clt i{position:relative;flex:none;width:28px;height:16px;border-radius:999px;background:var(--line-2);transition:background .15s}
.gk-clt i::after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform .15s}
.gk-clt:hover{color:var(--accent)}
.gk-clt.on{color:var(--ink)}
.gk-clt.on i{background:var(--accent)}
.gk-clt.on i::after{transform:translateX(12px)}
.gk-clt:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}
.gk-clu i{font-style:normal;font-size:var(--fs-sm);line-height:1;color:var(--accent)}
.gk-clu:disabled{opacity:.55;cursor:default}
/* Кластеры уже есть — загрузка нужна раз в месяц: без рамки, серым. */
.gk-clu.quiet{height:auto;padding:4px 0;border:none;background:transparent;color:var(--mute);font-weight:var(--w-medium)}
.gk-clu.quiet:hover{background:transparent;color:var(--accent)}
.gk-clu.quiet i{color:inherit}
.gk-clm{font-size:var(--fs-xs);line-height:1.4;color:var(--mute);text-align:right;max-width:100%}
.gk-clm.ok{color:var(--good);font-weight:var(--w-medium)}
.gk-clm.busy{color:var(--ink-3)}
ul.gk-clm{margin:0;padding:0;list-style:none;color:var(--bad)}
/* Ярлык кластера под текстом ключа — как «кластер: …» у ключей в разведке. */
.gk-cl{display:block;margin-top:2px;font-size:var(--fs-xs);font-weight:var(--w-regular);line-height:1.3;color:var(--mute);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:help}
.gk-cl.main{color:var(--ink-3)}
.gk-cl.main::before{content:"";display:inline-block;width:5px;height:5px;margin-right:5px;border-radius:50%;background:var(--accent);vertical-align:2px}
/* Строка-заголовок группы: ровная подложка на всю ширину, над ней черта;
   не раскрывается и на наведение не отвечает. Строки ключей — с отступом. */
.keys-table table.gk-t tbody tr.gk-g td{background:var(--surface-3);border-top:1px solid var(--line-2);padding-top:9px;padding-bottom:9px;cursor:default}
.keys-table table.gk-t tbody tr.gk-g td.n b{font-weight:var(--w-medium);color:var(--ink-2);font-variant-numeric:normal}
.keys-table table.gk-t tbody tr.gk-g td.gk-freq{font-weight:var(--w-medium);color:var(--ink-2)}
.keys-table table.gk-t tbody tr.gk-g td.gk-gc .m{color:var(--dim)}
table.gk-t td.gk-gc.own{border-left:2px solid var(--accent)}
.gk-g-n{font-weight:var(--w-bold);color:var(--ink)}
.gk-g-c{margin-left:8px;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);white-space:nowrap}
tr.gk-g0 .gk-g-n,.km-gh.gk-g0 .gk-g-n{color:var(--ink-3);font-weight:var(--w-medium)}
.keys-table table.gk-t tbody tr.gk-in td.l{padding-left:24px}
/* Профиль, «Кластеры WB»: состояние строками вплотную, итог загрузки под кнопкой. */
.who-cl .cl-state{margin-bottom:8px}.who-cl .cl-state .m,.who-cl .cl-res .m{margin-bottom:2px}
.who-cl .cl-res{margin-top:8px}.who-cl .cl-res:empty{display:none}
.who-cl .cl-ok,.who-cl .cl-bad{font-size:var(--fs-xs);line-height:1.4;margin-top:4px}
.who-cl .cl-ok{color:var(--good);font-weight:var(--w-medium)}.who-cl .cl-bad{color:var(--bad)}
/* Подсказка «?» держит строки: у блока ключей строка про кластеры — отдельная. */
.tip{white-space:pre-line}
/* Телефон: список вместо таблицы — заголовок группы строкой над её ключами. */
@media (max-width:720px){
  .gk-clx{margin-left:0;width:100%;justify-content:flex-start;gap:4px 14px}
  .gk-clms{align-items:flex-start;margin-top:-4px}
  /* Длинная подпись кнопки на 360 точках переносится, а не режется. */
  .gk-clu{height:auto;min-height:30px;padding-top:6px;padding-bottom:6px;white-space:normal;text-align:left;line-height:1.3}
  .gk-clu.quiet{padding:4px 0}
  .gk-clm{text-align:left}
  /* Заголовок группы: имя и своя сумма строкой, под ними счёт и частота. */
  .km-gh{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:10px;row-gap:2px;margin:12px -12px 0;padding:8px 12px;background:var(--surface-3);border-top:1px solid var(--line-2)}
  .km-gh.fold{display:none}
  .unfolded .km-gh.fold{display:grid}
  .km-gh-own{grid-column:2;text-align:right;white-space:nowrap}
  .km-gh-own .k{font-size:var(--fs-xs);color:var(--mute)}
  .km-gh-own b{font-size:var(--fs-md);font-weight:var(--w-medium);color:var(--ink-2);font-variant-numeric:normal}
  .km-gh-m{grid-column:1 / -1;font-size:var(--fs-xs);color:var(--mute)}
  .km .gk-cl{margin:1px 0 0}
}

/* ══ Единый стиль платформы (26.09, по главной WB Partners) ══════════════════
   Андрей 26.09: «на WB глазу приятно находиться… перенять шрифты, стиль,
   размеры» — и чтобы обе темы, светлая и тёмная. Сняли с их CSS (главная
   home-page-front 5.41.2 и виджеты): шрифт WB Hauss (коммерческий ALS Hauss —
   брать нельзя; ближе всех из свободных Onest, OFL, лежит у нас в fonts/),
   начертания 440/560/680, кегли 13/16/18/24 (у нас шкала 11–28 под плотные таблицы), скругления 16/12/8, карточки
   плоские без теней, плитки внутри карточек — серая заливка без рамки, подписи
   обычным регистром серым. Все кегли, начертания и скругления в файле сведены
   к токенам ниже (нормализация 26.09) — новый блок пишите ими же. */
@font-face{font-family:"Onest";src:url(fonts/onest.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{--font:"Onest",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
 --w-regular:440;--w-medium:560;--w-bold:680;
 --fs-2xs:11px;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-base:16px;--fs-lg:18px;--fs-xl:20px;--fs-2xl:24px;--fs-3xl:28px;
 --r-xs:4px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r:var(--r-lg);
 /* Светлая тема — цвета главной WB: фон #F7F7FA, плитки #F0F0F3, вторичный
    текст #767386, фирменный фиолетовый #9A41FE. */
 --ink:#111114;--mute:#767386;--mute-2:#86849a;--bg:#f7f7fa;--surface-2:#fafafc;--surface-3:#f0f0f3;
 --line:#e8e8ee;--line-2:#dcdce4;
 --accent:#9a41fe;--accent-2:#b36bff;--accent-deep:#660ec8;--accent-light:#c9a0ff;--accent-bg:#f4ebff;
 --accent-soft:#f8f2ff;--accent-faint:#fcf9ff;--accent-mid:#e8d7ff;--accent-line:#dcc2ff;
 --accent-shadow:rgba(154,65,254,.10);--heat:154,65,254;--chart-1:#9a41fe}
html[data-theme=dark]{
 --accent:#b98aff;--accent-2:#cda8ff;--accent-deep:#d6b8ff;--accent-light:#cda8ff;--accent-bg:#2c2146;
 --accent-soft:#241c38;--accent-faint:#1e1a2c;--accent-mid:#3d2c66;--accent-line:#533c8c;
 --accent-shadow:rgba(185,138,255,.14);--heat:185,138,255;--chart-1:#b98aff}
body{font-family:var(--font);font-size:var(--fs-md);font-weight:var(--w-regular);letter-spacing:0;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
button,input,select,textarea{font-family:inherit}
b,strong{font-weight:var(--w-bold)}
/* Графики: подписи осей кеглем шкалы (атрибут font-size в SVG перебивается CSS). */
svg text{font-family:var(--font)}
/* Заголовок блока — как у виджетов WB: 18, среднее начертание. */
.sec-head{font-size:var(--fs-lg);font-weight:var(--w-medium)}
@media (max-width:720px){.sec-head{font-size:var(--fs-base)}}
/* Поверхности. Плитка внутри карточки — второй уровень (у WB #F0F0F3), и он
   один: до 26.09 плитки лежали на двух заливках — почти белой (surface-2) и
   серой (surface-3), на одной странице это выглядело двумя разными вещами.
   surface-3 — на ступень темнее: кнопки и переключатели на плитке. */
:root{--surface-2:#f0f0f3;--surface-3:#e9e9ef;--hover:#e2e2e9}
html[data-theme=dark]{--surface-2:#252a33;--surface-3:#2c313c;--hover:#343a46}
/* Заголовки таблиц — 12, среднее, серым: таблицы плотные, а шрифт шире
   прежнего («Заказов/день» резался на 13). */
th{font-size:var(--fs-xs);font-weight:var(--w-medium)}
/* Групповые строки («Деньги», «Воронка») — заметнее подписей колонок: без
   капса их выделяет вес. */
.cmp-n tr.cmp-g th,.ldm tr.ldm-g th,.bf-grp h4{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink-3)}
/* Группы в матрице лидеров и в таблице сравнения — заголовком раздела, а
   метрики под ним — на ступень внутрь и тише (Андрей 26.09: «Воронка» и
   «Деньги» сливались с названиями метрик). */
.ldm tr.ldm-g th,.cmp-n tr.cmp-g th{font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink);padding-top:22px;padding-bottom:8px;border-bottom:1px solid var(--line-2)}
.ldm tbody tr.ldm-g:first-child th,.cmp-n tbody tr.cmp-g:first-child th{padding-top:10px}
.ldm td.ldm-k{padding-left:16px;color:var(--ink-3)}
.cmp-n td.k{padding-left:22px}
@media (max-width:720px){.cmp-n td.k{padding-left:12px}}
/* Подзаголовок «Итогов» — приглушён и мельче подписи плитки (25.09), жирный вместо капса.
   11 — только на широком экране: на телефоне пол 12 (правило подписей выше). */
.tot-gt{font-weight:var(--w-bold);color:var(--mute)}
@media (min-width:721px){.tot-gt{font-size:var(--fs-2xs)}}
/* Шеврон раскрытия блока — под 18-й заголовок. */
.sec-head .chev{font-size:var(--fs-xl);line-height:1;align-self:center}
/* «Помощь» и «Профиль» — тише меню разделов. */
.help-btn,.who-btn{font-weight:var(--w-regular)}
/* Фильтры-«таблетки»: невыбранные обычным, выбранная — средним. */
.cat-chip{font-weight:var(--w-regular)}.cat-chip.on{font-weight:var(--w-medium)}
/* Выбранная метрика графика — жирнее остальных пунктов списка. */
.chb-side button.on{font-weight:var(--w-bold)}
/* Подписи настроек разведки — обычным, как текст, а не как кнопки. */
.intel-set-row label{font-weight:var(--w-regular)}
/* «обновлено …» у сравнения — обычным: средний вес с новым шрифтом переносил строку. */
.upd-at{font-weight:var(--w-regular)}
/* Легенда хронологии: подпись обычным, число — жирным (как было задумано). */
.cev-chip{font-weight:var(--w-regular)}.cev-chip b{font-weight:var(--w-bold)}
/* Поле периода — как поле ввода, без полужирного. */
.dp-btn{font-weight:var(--w-regular)}
/* Третий серый (единицы, пояснения) — читаемее: #A1A1AA давал 2,5:1 на белом. */
:root{--mute-3:#8e8ca0}
/* Вторичные кнопки — как у WB: серая заливка без рамки; наведение — акцентом.
   Кнопка-раскрывашка остаётся одна на всю платформу (20.09), меняется только вид. */
.xbtn,.cat-dir,.intel-act button{border-color:transparent;background:var(--surface-3)}
.xbtn:hover,.cat-dir:hover,.intel-act button:hover{background:var(--accent-bg);border-color:transparent;color:var(--accent)}
button.ico{background:var(--surface-3)}button.ico:hover{background:var(--hover)}
/* «Цена против конверсии»: заголовки узких колонок переносятся, а не наезжают друг на друга. */
table.cx-pr th{white-space:normal;line-height:1.2;vertical-align:bottom}
/* «Ключи: на чём держится»: строка кластера под ключом — многоточием, а не
   распором таблицы (26.09: с новым шрифтом «Место» уезжало за край плитки). */
.ck-tb td.l{width:100%;max-width:0}
.ck-tb .gk-cl{overflow:hidden;text-overflow:ellipsis}
/* Липкая шапка таблицы внутри плитки — цвета плитки, а не белой карточки. */
.ck-c .scroll-y thead th,.cx-col .scroll-y thead th{background:var(--surface-2)}
/* Название карточки в ячейке (каталог, таблица сравнения, телефон) — две строки
   с многоточием, а не обрез посреди буквы (QA 26.09: «за собако», «рубашко»).
   Блок названия сжимается по колонке (min-width:0), поэтому и бренд строкой
   ниже ужимается многоточием, а артикул остаётся целым. */
.card .t{min-width:0;flex:1 1 auto}
.card .tt > a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;max-height:none;overflow:hidden}
/* Телефон: «Размеры бок о бок» шире экрана, а .sec-body режет лишнее —
   правые колонки были недоступны (QA 26.09). Листается, как «Склады». */
@media (max-width:720px){.sec[data-sec="cx-sizes"] .sec-body{overflow-x:auto}}
/* Шапка сравнения в списке: флажок и заголовок — по первой строке, когда
   «обновлено …» переносится (телефон, QA 26.09); время не отрывается от «в». */
.run .when{align-items:flex-start}.run .when .run-pick{margin-top:2px}
/* Блоки сравнения по карточке: пять плиток в ряд на широком экране, а не
   четыре и одна сиротой (QA 26.09). */
.cx-cols{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
/* Неактивная главная кнопка («Сравнить отмеченные» до двух отметок) — серая с
   серым текстом, а не полупрозрачный фиолетовый с белым (1,6:1, QA 26.09). */
.bar-go:disabled{opacity:1;background:var(--surface-3);color:var(--mute-2);cursor:default}
/* Кнопки-ссылки и кнопки одного вида центрируют подпись одинаково: у <a> и
   <button> разная базовая линия, текст ссылки сидел на 5 px выше (телефон). */
.btn{display:inline-flex;align-items:center;justify-content:center}
/* «Данные с … по …» — по одной линии с заголовком страницы. */
.lstate.range{padding-left:0}
/* Телефон, «На слежке»: подпись плитки в одну высоту на всех — значения в ряд,
   даже когда «Цена покупателя» переносится на две строки. */
@media (max-width:720px){.intel-list .ir-m .k{min-height:2.4em}}
table.cards .card .tt > a{display:block;-webkit-line-clamp:unset;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Ярлык кластера под ключом — тише самого ключа (Андрей 26.09: «главный
   запрос кластера» не должен отвлекать от названия ключа): 11 px, серым,
   точка меньше и бледнее. На телефоне — пол 12. */
.gk-cl{font-size:var(--fs-2xs);color:var(--mute-2)}
.gk-cl.main{color:var(--mute-2)}
.gk-cl.main::before{width:4px;height:4px;margin-right:4px;background:var(--accent-light);vertical-align:1px}
@media (max-width:720px){.gk-cl{font-size:var(--fs-xs)}}
/* Кластеры раскрывашками (Андрей 26.09): заголовок — строка с шевроном, суммами
   по карточкам и отступом от соседнего кластера; запросы внутри — сдвинуты и
   помечены полосой слева, чтобы было видно, чьи они. */
.keys-table table.gk-t tbody tr.gk-g{cursor:pointer}
.keys-table table.gk-t tbody tr.gk-g td{background:var(--surface-2);border-top:6px solid var(--card);padding-top:11px;padding-bottom:11px}
.keys-table table.gk-t tbody tr.gk-g:hover td,.keys-table table.gk-t tbody tr.gk-g:focus-visible td{background:var(--hover)}
.keys-table table.gk-t tbody tr.gk-g:focus-visible{outline:none}
.gk-g-chev{display:inline-block;width:14px;margin-right:6px;font-style:normal;font-size:var(--fs-lg);line-height:1;color:var(--accent);transition:transform .15s}
tr.gk-g.open .gk-g-chev,.km-gh.open .gk-g-chev{transform:rotate(90deg)}
.keys-table table.gk-t tbody tr.gk-g .gk-g-n{font-size:var(--fs-base)}
.keys-table table.gk-t tbody tr.gk-in td.l{padding-left:46px;box-shadow:inset 3px 0 0 var(--accent-mid)}
tr.gk-in.gk-hid,.km.gk-hid{display:none}
.km-gh{cursor:pointer}
/* Длинное имя кластера переносится ровной колонкой справа от шеврона. */
.keys-table table.gk-t tbody tr.gk-g td.l{padding-left:32px}
.keys-table table.gk-t tbody tr.gk-g .gk-g-chev{position:absolute;left:12px;top:12px}
/* Телефон: шеврон кластера — отдельной колонкой слева от имени. */
@media (max-width:720px){.km-gh{grid-template-columns:auto minmax(0,1fr) auto}.km-gh .gk-g-chev{grid-row:1;align-self:center}.km-gh .km-gh-m{grid-column:2 / -1}.km-gh .km-gh-own{grid-column:3}}
/* «Бабочка» без полосок: лучшее — зелёной плашкой, другое — красным. */
.bf-row{grid-template-columns:minmax(0,1fr) 200px minmax(0,1fr)}
.bf-v{padding:3px 10px;border-radius:var(--r-sm)}
.bf-side.win .bf-v{color:var(--good);background:var(--good-bg);font-weight:var(--w-bold)}
.bf-side.lose .bf-v{color:var(--bad);background:var(--bad-bg)}
.ckw td.ckw-c.zero{background:transparent!important;border:none!important;outline:none!important;color:var(--mute);font-weight:var(--w-regular)}
/* Итог складов плитками; «обновлено … в 00:00» в каталоге — одной строкой. */
.ofc-tiles{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0 0}
.ofc-t{background:var(--surface-2);border-radius:var(--r-md);padding:8px 14px;min-width:140px}
.ofc-t .k{display:block;font-size:var(--fs-sm);color:var(--mute)}
.ofc-t b{display:block;font-size:var(--fs-lg);font-weight:var(--w-bold);color:var(--ink);margin-top:2px}
.cat-meta span,.cat-meta{white-space:nowrap}
@media (max-width:720px){
  .gk-det-s table.gk-dt th,.gk-det-s table.gk-dt td{padding:5px 7px}
  .gk-det-s table.gk-dt tbody th{white-space:normal;min-width:84px;max-width:96px}
  .gk-det-s table.gk-dt thead th.gk-dc{max-width:120px}
}
.ck-c.all .ck-scroll thead th{position:sticky;top:0;z-index:2;background:var(--surface-2)}
/* Плитки сводки ключей — кнопки: под ними список ключей за числом (26.09). */
button.ck-kpi{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border:0;font:inherit;color:inherit;cursor:pointer;box-shadow:inset 0 0 0 1px transparent;transition:background .12s,box-shadow .12s}
button.ck-kpi:hover{background:var(--surface-3)}
button.ck-kpi[aria-expanded="true"]{background:var(--accent-bg);box-shadow:inset 0 0 0 1px var(--accent-line)}
.ck-kpi .ck-kpi-x{position:absolute;top:8px;right:10px;font-style:normal;color:var(--accent);transition:transform .15s}
button.ck-kpi{position:relative;padding-right:28px}
.ck-kpi[aria-expanded="true"] .ck-kpi-x{transform:rotate(90deg)}
.ck-kpi .s{max-width:200px;overflow:hidden;text-overflow:ellipsis}
.ckt{margin-top:10px;background:var(--surface-2);border-radius:var(--r-md);padding:10px 12px}
.ckt-why{font-size:var(--fs-sm);color:var(--ink);margin-bottom:6px}
.ckt-scroll{max-height:420px;overflow:auto}
.ckt-scroll thead th{position:sticky;top:0;z-index:2;background:var(--surface-2)}
.ckt-tb td.ckt-i{color:var(--mute);width:1%;padding-right:2px}
.ckt-tb td.ckt-cum{color:var(--mute)}
/* Параметры из отчёта WB — вторым рядом паспорта (26.09). */
.card-pass .facts.params{margin-top:6px}
.card-pass .facts.params{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 18px}
.card-pass .facts.params .param{background:none;border-radius:0;padding:6px 0;border-top:1px solid var(--surface-3);min-width:0}
.card-pass .facts.params .param .k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-pass .facts.params .param .v{font-size:var(--fs-base);font-weight:var(--w-bold);line-height:1.3}
.card-pass .facts.params .chips-cnt{gap:4px 8px;font-size:var(--fs-base)}
.card-pass .facts.params .chips-cnt .xbtn{font-size:var(--fs-xs);padding:2px 8px;min-height:0}
.card-pass .facts.params .chip-s{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:720px){.card-pass .facts.params{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.card-pass .facts.params .param .v{font-size:var(--fs-md)}}
/* День в хронологии сравнения: колонка на карточку, изменение мелким. */
.cev-tiles table.cxm th{max-width:200px;overflow:hidden;text-overflow:ellipsis}
.cev-tiles table.cxm td.n.win{color:var(--good);background:var(--good-faint)}
.cxm-d{font-style:normal;font-size:var(--fs-2xs);font-weight:var(--w-medium);margin-left:6px;color:var(--mute-3)}
.cxm-d.up{color:var(--good)}.cxm-d.down{color:var(--bad)}
@media (max-width:720px){.cxm-d{font-size:var(--fs-xs)}}
.cev-tiles table.cev-mt td.k,.cev-tiles table.cev-mt th.l{position:sticky;left:0;z-index:1;background:var(--surface-2)}
/* Ключи пары: половина на карточку (26.09). */
.cxk .cx-col-h{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.cxk-sum{font-size:var(--fs-sm);color:var(--mute);margin:2px 0 6px}.cxk-sum b{color:var(--ink)}
.cxk-half.all .cx-k{display:block;max-height:460px;overflow:auto}
.cxk-pick{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.cxk table.cx-k{width:100%;table-layout:auto}.cxk table.cx-k td.l{white-space:normal}
.cxk table.cx-k th:not(.l),.cxk table.cx-k td.n{white-space:nowrap;padding-left:14px}
.cxk-pick .chip{border:1px solid var(--line-2);background:var(--card)}.cxk-pick .chip.on{background:var(--accent-bg);border-color:var(--accent)}
/* «Поисковые запросы» карточки по кластерам WB (26.09): тот же вид групп,
   что в «Ключах против конкурентов». */
.intel-keys-bar .pk-clt{margin-left:auto}
table.intel-pos tbody tr.pk-g td{background:var(--surface-3);border-top:1px solid var(--line-2);cursor:pointer;font-weight:var(--w-medium)}
table.intel-pos tbody tr.pk-g:hover td{background:var(--hover)}
table.intel-pos tbody tr.pk-g td.l b{font-weight:var(--w-bold)}
table.intel-pos tbody tr.pk-g .gk-g-chev{font-style:normal;display:inline-block;width:14px;color:var(--accent);transition:transform .15s}
table.intel-pos tbody tr.pk-g.open .gk-g-chev{transform:rotate(90deg)}
table.intel-pos tbody tr.qrow.qin td.l{padding-left:28px}
table.intel-pos tbody tr.pk-g td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.intel-pos tbody tr.pk-g td.l .m{font-weight:var(--w-regular);margin-left:4px}
table.intel-pos tbody tr.qin .qcluster{display:none}
/* «Ключи по неделям» по кластерам (26.09). */
.ckw-bar{display:flex;justify-content:flex-end;margin:-4px 0 6px}
.ckw-scroll .ckw-grp{display:none}.ckw-scroll.grp .ckw-grp{display:table-row-group}.ckw-scroll.grp .ckw-flat{display:none}
.ckw tr.ckw-g td{background:var(--surface-3);cursor:pointer;font-weight:var(--w-medium)}
.ckw tr.ckw-g:hover td{background:var(--hover)}
/* 30.09: nowrap при ширине 230 px выталкивал «N запросов» в первую неделю */
.ckw tr.ckw-g td.l{white-space:normal;overflow:hidden}.ckw tr.ckw-g td.l .m{white-space:nowrap}
.ckw tr.ckw-g td.l .m{font-weight:var(--w-regular)}
.ckw tr.ckw-g.open .gk-g-chev{transform:rotate(90deg)}
.ckw tr.ckw-in td.l{padding-left:26px}
.ckw tr.ckw-in .gk-cl{display:none}
.ckw tr.ckw-g td.l b{display:inline;white-space:nowrap}
.ckw tr.ckw-g td.l{padding-top:8px;padding-bottom:8px}
.ckw tr.ckw-g td.ckw-gc{background:none;border-radius:0;cursor:default;font-weight:var(--w-bold);color:var(--ink-2);padding:8px}
/* День хронологии: скачки метрик строками «было → стало · изменение» (26.09). */
.cev-g li.cev-mv .w{color:var(--ink-3);font-size:var(--fs-sm);white-space:nowrap}
.cev-g li.cev-mv b{font-weight:var(--w-bold)}
.cev-g li.cev-mv.good b{color:var(--good)}.cev-g li.cev-mv.bad b{color:var(--bad)}
.cev-rest{margin-top:8px}
.cev-rest summary{cursor:pointer;font-size:var(--fs-xs);color:var(--mute);list-style:none}
.cev-rest summary::-webkit-details-marker{display:none}
.cev-rest summary::after{content:" ›";color:var(--accent)}
.cev-rest[open] summary::after{content:" ‹"}
.cev-rest ul{margin-top:6px}
.cev-c.sig.flat{background:var(--surface-3);color:var(--mute)}
.cev-c.on.sigday{opacity:.45}
ul.cev-mvl{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm)}
/* 01.10: сетка сжимала подпись уже текста — «Выручка» наезжала на число в узкой колонке сравнения. Ряд с переносом. */
ul.cev-mvl li.kv{display:flex;flex-wrap:wrap;justify-content:flex-start;column-gap:10px;row-gap:2px;align-items:baseline}
ul.cev-mvl li.cev-mv .w{color:var(--ink-3);white-space:nowrap}ul.cev-mvl li.cev-mv b{font-weight:var(--w-bold)}
ul.cev-mvl li.cev-mv.good b{color:var(--good)}ul.cev-mvl li.cev-mv.bad b{color:var(--bad)}
.cev-c.on.sigday{opacity:1;background:var(--surface-3) radial-gradient(circle,var(--c) 0 3px,transparent 3.5px)}
/* Сравнение двух карточек подблоками (Андрей 26.09: «тяжело глазу… разделить
   деньги, воронка и так далее»): каждая группа — своя плитка, по две в ряд. */
.bf{max-width:1240px}
.bf-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
.bf-groups .bf-grp{margin:0;background:var(--surface-2);border-radius:var(--r-lg);padding:10px 14px 6px}
.bf-groups .bf-grp h4{text-align:left;font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink);margin:0 0 4px}
.bf-groups .bf-row{grid-template-columns:minmax(0,1fr) 130px minmax(0,1fr);padding:6px 0}
.bf-groups .bf-row+.bf-row{border-top:1px solid var(--line)}
@media (max-width:1100px){.bf-groups{grid-template-columns:1fr}}
@media (max-width:720px){.bf-groups .bf-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
/* Разведка: события — своей строкой под метриками, через линию (Андрей 26.09:
   «событие залазит на метрики — метрики своё, события своё»). */
@media (max-width:720px){.intel-list .intel-row .ir-evs,.intel-list .intel-row .ir-main.none{padding-left:0}}
table.intel-pos tbody tr.pk-g td.l b,table.intel-pos tbody tr.pk-g td.l .m{display:inline}
table.intel-pos tbody tr.pk-g td.l .gk-g-chev{display:inline-block;margin-right:6px}
table.intel-pos tbody tr.pk-g td{padding-top:8px;padding-bottom:8px}
.gk-part{font-style:normal;color:var(--warn);margin-left:1px}
/* Полнота данных за период в паспорте (28.09). */
.pass-cov:empty{display:none}
.pass-cov{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;font-size:var(--fs-xs)}
.pass-cov .pc-k{color:var(--mute);margin-right:2px}
.pass-cov .pc-i{padding:2px 8px;border-radius:999px;font-weight:var(--w-medium);white-space:nowrap}
.pass-cov .pc-i.ok{background:var(--good-bg);color:var(--good)}
.pass-cov .pc-i.part{background:var(--warn-bg);color:var(--warn)}

/* Подсказка «листайте вбок» над широкими таблицами на телефоне (01.10) */
.side-hint{font-size:var(--fs-xs);color:var(--mute);text-align:right;margin:2px 4px 4px}

/* Сравнение на телефоне — блок на метрику, карточки столбиком (01.10) */
.cmv-g h4{margin:14px 0 6px;font-size:var(--fs-md);font-weight:var(--w-bold)}
.cmv-m{padding:8px 0;border-bottom:1px solid var(--line)}
.cmv-k{font-size:var(--fs-sm);color:var(--mute);margin-bottom:4px}
.cmv-r{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:8px;padding:3px 6px;border-radius:var(--r-sm)}
.cmv-r .cmp-bar{grid-column:1 / -1;height:4px;margin:2px 0 0;width:var(--w)}
.cmv-r.own{background:color-mix(in srgb,var(--star) 14%,transparent)}
.cmv-r.win .cmv-v{color:var(--good);font-weight:var(--w-bold)}
.cmv-who{display:flex;align-items:center;gap:6px;min-width:0;color:inherit;text-decoration:none;font-size:var(--fs-sm)}
.cmv-who img,.cmv-who .ph{width:22px;height:29px;border-radius:4px;object-fit:cover;flex:none;background:var(--ph-bg)}
.cmv-who span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmv-v{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:var(--w-medium)}
.ldp-me{font-size:var(--fs-sm);color:var(--mute);padding:2px 6px}.ldp-me .dn{color:var(--bad)}
.cpr-ph{font-size:var(--fs-xs);color:var(--mute);padding:0 6px}

/* Видимость по дням (01.10) */
.vis-box{margin-top:18px}
.vis-t{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:8px}
.vis-scroll{overflow-x:auto;max-width:100%}
table.mini.vis{table-layout:auto;border-collapse:separate;border-spacing:2px 2px;min-width:0}
table.vis th,table.vis td{white-space:nowrap;font-variant-numeric:tabular-nums;padding:5px 7px}
table.vis .vis-k{position:sticky;left:0;z-index:2;background:var(--card);min-width:220px;max-width:260px;overflow:hidden;text-overflow:ellipsis}
table.vis .vis-k .m{display:block;font-size:var(--fs-2xs);color:var(--mute)}
table.vis th.vis-d{font-size:var(--fs-xs);color:var(--mute);text-align:center}
table.vis tr.vis-sum td{color:var(--ink-3);font-size:var(--fs-sm);background:var(--surface-2)}
table.vis td.vis-c{text-align:center;border-radius:6px}
table.vis td.vis-c i{display:block;font-style:normal;font-size:var(--fs-2xs);line-height:1}
table.vis td.vis-c i.up{color:var(--good)}table.vis td.vis-c i.dn{color:var(--bad)}
table.vis td.h1{background:color-mix(in srgb,var(--good) 30%,transparent)}
table.vis td.h2{background:color-mix(in srgb,var(--good) 16%,transparent)}
table.vis td.h3{background:color-mix(in srgb,var(--good) 7%,transparent)}
.vis-more{margin-top:8px}
.vis-mr{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line)}
.vis-mk{min-width:0;font-size:var(--fs-sm)}.vis-mk span{display:block;color:var(--mute);font-size:var(--fs-xs)}
.vis-mk i{font-style:normal}.vis-mk i.up{color:var(--good)}.vis-mk i.dn{color:var(--bad)}
.vis-spark{flex:none}

/* Плитки итогов наверху карточки (01.10) */

/* Данные по дням под графиком (01.10) */
.dtab{margin-top:12px}.dtab>summary{cursor:pointer;color:var(--accent);font-weight:var(--w-medium);font-size:var(--fs-sm)}
.dtab-scroll{overflow-x:auto;max-height:520px;overflow-y:auto;margin-top:8px}
table.mini.dtab-t{table-layout:auto;min-width:0}
table.dtab-t th,table.dtab-t td{white-space:nowrap;font-variant-numeric:tabular-nums}
table.dtab-t thead th{position:sticky;top:0;background:var(--card);z-index:1}
table.dtab-t tfoot td{font-weight:var(--w-bold);background:var(--surface-2)}
.dtab-r{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm)}
.dtab-r .m{font-size:var(--fs-xs);color:var(--mute)}.dtab-sum{font-weight:var(--w-bold)}

/* Мини-график заказов в каталоге (01.10) */
td.cat-sp{width:132px;vertical-align:middle}.spark{display:block}
.cat-sp-m{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 0}
.cat-sp-m .k{font-size:var(--fs-xs);color:var(--mute)}

/* Кольца складов (01.10) */
.dn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:4px 0 14px}
.dn-box{background:var(--surface-2);border-radius:var(--r-lg,16px);padding:12px 14px}
.dn-t{font-weight:var(--w-bold);font-size:var(--fs-sm);margin-bottom:6px}
.dn-body{display:flex;align-items:center;gap:14px}.dn{flex:none}
.dn-l{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.dn-r{display:grid;grid-template-columns:10px minmax(0,1fr) auto auto;gap:8px;align-items:center;font-size:var(--fs-sm)}
.dn-r i{width:10px;height:10px;border-radius:50%}.dn-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dn-p{color:var(--mute);font-variant-numeric:tabular-nums}.dn-r b{font-variant-numeric:tabular-nums;min-width:44px;text-align:right}
@media (max-width:720px){.dn-row{grid-template-columns:1fr}.dn-body{flex-direction:column;align-items:stretch}.dn{align-self:center}}

/* ════ Стеклянная тёмная тема (01.10, Андрей: «стиль как Admin Dashboard V7,
   но под глаза человека, шрифты WB, колонка сбоку, акцент цветами WB»).
   Принципы читаемости: текст #f3f0fa на фоне ≈#15121c — контраст >14:1;
   карточки полупрозрачные, но таблицы и плавающие окна — на сплошном фоне,
   чтобы цифры не просвечивали; акцент — фиолетовый и малиновый WB. ════ */
html[data-theme=dark]{
  --bg:#13111a;--card:#1d1a26;--surface-2:#2c2739;--surface-3:#332d42;--hover:#3a3349;--ph-bg:#2c2739;
  --line:#2c2838;--line-2:#3b3549;
  --ink:#f3f0fa;--ink-2:#e6e1f0;--ink-3:#cbc4d9;--mute:#aaa3bb;--mute-2:#a19ab3;--mute-3:#9b94ad;--dim:#7d768d;--dim-2:#6a6479;
  --accent:#a66cff;--accent-2:#cb11ab;--accent-deep:#8b4dff;--accent-light:#c9a5ff;--accent-bg:#2f2547;--accent-soft:#29213d;
  --accent-faint:#221d31;--accent-mid:#3f2f63;--accent-line:#5b3f91;--accent-shadow:#3a2a5c;
  --good:#4ade80;--good-bg:#1c3328;--good-faint:#1a2621;--bad:#ff6b81;--bad-bg:#3a2029;--bad-faint:#261b22;
  --star:#fbbf24;--chart-1:#a66cff;--chart-2:#ff4fb8;--heat:166,108,255;--chart-grid:#2a2636;--chart-grid-2:#221f2c;
  --glass:rgba(29,26,38,.78);--r:20px}
html[data-theme=dark] body{background:
  radial-gradient(1100px 620px at 8% -12%,rgba(166,108,255,.20),transparent 62%),
  radial-gradient(900px 560px at 105% -5%,rgba(203,17,171,.14),transparent 60%),
  radial-gradient(800px 700px at 50% 120%,rgba(90,60,200,.12),transparent 60%),#13111a;background-attachment:fixed}
html[data-theme=dark] .box,html[data-theme=dark] .run,html[data-theme=dark] .tile,html[data-theme=dark] .cat-i{
  /* Без backdrop-filter: он делает карточку опорой для position:fixed, и
     плавающие меню внутри неё (столбцы, календарь) уезжали (01.10). */
  background:var(--glass);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:0 10px 30px rgba(0,0,0,.28)}
html[data-theme=dark] .run,html[data-theme=dark] .tile{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
html[data-theme=dark] .run:hover,html[data-theme=dark] .tile:hover{transform:translateY(-3px);border-color:var(--accent-line);box-shadow:0 14px 36px rgba(0,0,0,.34),0 0 0 1px var(--accent-shadow)}
/* Первая плитка итогов — градиентом WB, как главная в образце */
/* Таблицы и плавающие окна — сплошной фон: цифры не просвечивают */
html[data-theme=dark] table{background:transparent}
html[data-theme=dark] .who-menu,html[data-theme=dark] .help-menu,html[data-theme=dark] .pop,html[data-theme=dark] .dp,html[data-theme=dark] .ch-tip,html[data-theme=dark] .peek,html[data-theme=dark] .cols-menu,html[data-theme=dark] .cmodal{background:#221e2d;box-shadow:0 18px 50px rgba(0,0,0,.5)}
html[data-theme=dark] table.mini tbody tr:hover td{background:rgba(166,108,255,.07)}
html[data-theme=dark] .btn,html[data-theme=dark] .xbtn{transition:background .15s ease,transform .15s ease}
html[data-theme=dark] .btn:active{transform:scale(.97)}

/* ── Колонка навигации слева (компьютер) ── */
@media (min-width:1025px){
  html[data-theme] body{padding-left:96px}
  html[data-theme] .top{position:fixed;left:14px;top:14px;bottom:14px;width:72px;height:auto;flex-direction:column;align-items:center;justify-content:flex-start;gap:10px;padding:14px 0;border-radius:24px;border:1px solid var(--line);z-index:20}
  /* Без backdrop-filter: он делает колонку опорой для position:fixed, и
     выбор периода прилипал к ней, а не к окну. */
  html[data-theme=dark] .top{background:#1b1824}
  html[data-theme] .top .brand{font-size:0;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#8b4dff,#cb11ab);margin:0 0 8px;display:flex;align-items:center;justify-content:center}
  html[data-theme] .top .brand::after{content:"С";font-size:20px;font-weight:800;color:#fff}
  html[data-theme] .top .menu{flex-direction:column;gap:6px;width:100%;align-items:center}
  html[data-theme] .top .mi{display:flex;flex-direction:column;align-items:center;gap:3px;width:60px;padding:9px 0;border-radius:14px;font-size:10px;line-height:1.1;text-align:center}
  html[data-theme] .top .mi svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
  html[data-theme] .top .mi.on,html[data-theme] .top .mi[aria-current]{background:var(--accent-bg);color:var(--accent-light)}
  html[data-theme] .top .help{margin-top:auto}
  html[data-theme] .top .help-btn{font-size:0;width:44px;height:44px;border-radius:14px}
  html[data-theme] .top .help-btn::after{content:"?";font-size:18px;font-weight:700}
  html[data-theme] .top .help-menu{left:84px;right:auto;bottom:0;top:auto}
  html[data-theme] .top .who .who-txt,html[data-theme] .top .who .who-chev{display:none}
  html[data-theme] .top .who-menu{left:84px;right:auto;bottom:0;top:auto}
  html[data-theme] .top .period{position:fixed;top:14px;right:24px;z-index:21}
  html[data-theme] #app{padding-top:58px}
}
@media (max-width:1024px){html[data-theme] .top .mi svg{display:none}}

/* График сравнения: несколько метрик (01.10) */
.chb-hint{font-size:var(--fs-2xs);color:var(--mute);padding:0 10px 6px}
.chb-side button{display:flex;align-items:center;gap:8px}
.chb-dash{flex:none}
.chb-key{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:var(--fs-sm);margin:4px 0 6px;color:var(--ink-3)}
.chb-key span{display:inline-flex;align-items:center;gap:6px}
.chb-legend .lg i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px}

/* Лестница воронки: две карточки (01.10) */
/* Лестница двух карточек (02.10, Андрей): ширина по содержанию, а не на весь
   экран — метрика и цифры рядом; линия между карточками и перед разницей;
   разница — мягкой плашкой: зелёная «лучше», красная «хуже», без «◀ отставание»;
   заголовки групп — акцентной полосой, чтобы не сливались с метриками. */
table.mini.ld-t{width:100%;max-width:860px;margin:0 auto;table-layout:fixed;border-collapse:separate;border-spacing:0}
table.ld-t col.ld-ck{width:34%}table.ld-t col.ld-cv{width:33%}
table.ld-t th{font-weight:var(--w-medium)}
table.ld-t thead th:nth-child(2),table.ld-t thead th:nth-child(3),table.ld-t td.n{text-align:center}
table.ld-t td.n{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:var(--w-medium)}
table.ld-t td,table.ld-t thead th{border-bottom:1px solid var(--line)}
table.ld-t td:nth-child(2),table.ld-t thead th:nth-child(2){border-left:1px solid var(--line-2)}
table.ld-t td:nth-child(3),table.ld-t thead th:nth-child(3){border-left:1px solid var(--accent-line)}
table.ld-t tbody tr:not(.ld-g):hover td{background:var(--surface-2)}
table.ld-t tr.ld-g th{text-align:left;padding:16px 0 0;border:none;background:none}
table.ld-t tr.ld-g th span{display:block;padding:7px 12px;border-radius:10px 10px 0 0;background:var(--accent-faint);border-left:3px solid var(--accent);color:var(--accent-2);font-size:var(--fs-sm);font-weight:var(--w-bold)}
table.ld-t td.n>span{display:inline-block;padding:2px 10px;border-radius:999px}
table.ld-t td.ld-w>span{color:var(--good);background:var(--good-bg)}
table.ld-t td.ld-l>span{color:var(--bad);background:var(--bad-bg)}
table.ld-t .cmp-who{justify-content:center}
@media (max-width:720px){table.mini.ld-t{table-layout:auto}table.ld-t td.n>span{padding:1px 6px}table.ld-t .cmp-who img{display:none}}

/* Вход через Telegram: ожидание подтверждения (02.10) */
.tg-state{display:inline-flex;flex-direction:column;gap:6px;align-items:flex-start}
.tg-wait{display:inline-flex;align-items:center;gap:8px;color:var(--ink)}
.tg-wait::before{content:"";width:12px;height:12px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:tg-spin .8s linear infinite}
@keyframes tg-spin{to{transform:rotate(360deg)}}
.tg-open{text-decoration:none}
/* Шапка профиля: имя магазина, ID кабинета — только «скопировать» (02.10) */
.who-cab{color:var(--mute);font-size:var(--fs-xs);line-height:1.4}
.who-cab .who-uid{display:inline;color:var(--accent);text-decoration:underline dotted;text-underline-offset:2px}
/* Ключи против конкурентов (02.10): таблица на всю ширину блока, без пустоты
   справа; колонки карточек делят остаток, цифры и шапки по центру, между
   карточками тонкая линия. */
table.gk-t th.gk-col{text-align:center}
table.gk-t th.gk-col .th-ph{margin:0 auto 4px}
table.gk-t td.gk-c .gk-val{align-items:center}
table.gk-t td.gk-c:not(.own),table.gk-t th.gk-col:not(.own){border-left:1px solid var(--line-2)}

table.gk-t th.gk-col{width:auto}
/* Поисковые запросы (02.10): «Ключ» и «Частота» — своей подложкой и линией
   справа, чтобы читались отдельно от метрик. */
.intel-pos thead th:nth-child(-n+2),.intel-pos tr.qrow td:nth-child(-n+2),.intel-pos tr.pk-g td:nth-child(-n+2){background:var(--surface-2)}
.intel-pos thead th:nth-child(2),.intel-pos tr.qrow td:nth-child(2),.intel-pos tr.pk-g td:nth-child(2){border-right:1px solid var(--accent-line)}
.intel-pos tr.qrow.on td:nth-child(-n+2){background:var(--accent-faint)}
.intel-pos tr.qdry td:nth-child(-n+2){background:var(--warn-bg)}
/* Хронология: раскрытый день — плитки всех метрик (02.10). Крупно значение
   дня, под ним изменение к предыдущему дню и «было»; скачок — рамкой. */
.cev-mt{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:10px 0 12px}
.cev-t{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.cev-t.jump{border-color:var(--accent-line);box-shadow:0 0 0 1px var(--accent-line)}
.cev-t .k{font-size:var(--fs-xs);color:var(--mute)}
.cev-t .v{font-size:var(--fs-lg,18px);font-weight:var(--w-bold);margin-top:2px;font-variant-numeric:tabular-nums;white-space:nowrap}
.cev-t .d{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:var(--fs-xs)}
.cev-t .d .pill{padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--mute)}
.cev-t.good .d .pill{background:var(--good-bg);color:var(--good)}
.cev-t.bad .d .pill{background:var(--bad-bg);color:var(--bad)}
@media (max-width:720px){.cev-mt{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Настройки слежки свёрнуты над группами (04.10): в шапке — как настроено сейчас. */
.intel-set .intel-set-now{margin-left:10px;font-weight:var(--w-regular);font-size:var(--fs-sm)}
/* События периода по дням (04.10): день → плашки групп метрик → «было → стало». */
.ig-evf{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.ig-evf-b,.ig-dchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line-2);background:var(--card);color:var(--ink-3);border-radius:999px;padding:4px 10px;font-weight:var(--w-medium);font-size:var(--fs-sm);cursor:pointer;line-height:1.3}
.ig-evf-b.on{color:var(--ink);border-color:var(--accent);background:var(--accent-faint)}
.ig-dchip span{color:var(--mute);font-variant-numeric:tabular-nums}
.ig-dchip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dim)}
.ig-dchip.ig-good::before{background:var(--good)}.ig-dchip.ig-bad::before{background:var(--bad)}
.ig-dchip.on{color:var(--ink);border-color:var(--accent);background:var(--accent-faint)}
.ig-days-l{display:flex;flex-direction:column;margin-top:8px}
.ig-day{padding:7px 0;border-top:1px solid var(--surface-3)}
.ig-day-h{display:grid;grid-template-columns:62px minmax(0,1fr);gap:8px;align-items:start}
.ig-day-h .d{color:var(--mute);white-space:nowrap;font-size:var(--fs-sm);padding-top:4px}
.ig-day-c{display:flex;flex-wrap:wrap;gap:5px}
.ig-day-det:empty{display:none}
.ig-day-det{margin:8px 0 2px 0;display:flex;flex-direction:column;gap:8px}
.ig-dg{border-left:3px solid var(--accent);background:var(--accent-faint);border-radius:0 8px 8px 0;padding:6px 10px}
.ig-dg-h{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--accent-2);margin-bottom:4px}
.ig-dg ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.ig-dg li{display:grid;grid-template-columns:8px minmax(0,1fr);gap:8px;align-items:baseline;font-size:var(--fs-sm);line-height:1.35;color:var(--ink-2);overflow-wrap:anywhere}
.ig-dg li .ig-dot{align-self:start;margin-top:5px}
.ig-dg li.ig-good .ig-dot{background:var(--good)}.ig-dg li.ig-bad .ig-dot{background:var(--bad)}
.ig-dg li b{font-weight:var(--w-bold);color:var(--ink);font-variant-numeric:tabular-nums}
.ig-dg li .ig-dd{color:var(--mute);white-space:nowrap}

/* ── Графики по дням на странице группы разведки (group_series.js, 04.10) ──
   Чипы метрик, легенда карточек с фото (клик прячет линию), подписи колец
   событий, график и «было → стало» под ним. Цвета только из токенов: обе
   темы берут их сами; без backdrop-filter. */
.gs-chips{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 12px}
.gs-chips button{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:5px 12px;font:inherit;font-size:var(--fs-sm);font-weight:var(--w-medium);cursor:pointer;white-space:nowrap}
.gs-chips button:hover{border-color:var(--accent-line);color:var(--accent)}
.gs-chips button.on{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.gs-legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.gs-lg{display:flex;align-items:center;gap:8px;min-width:0;max-width:100%;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:5px 10px 5px 8px;font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.gs-lg:hover:not([disabled]){border-color:var(--accent-line)}
.gs-lg.own{border-color:var(--accent-line);background:var(--accent-faint)}
.gs-lg.off{opacity:.45}.gs-lg.off .gs-sw{background:var(--dim)!important}
.gs-lg[disabled]{cursor:default;opacity:.7}.gs-lg[disabled] .gs-sw{background:var(--dim)!important}
.gs-lg img,.gs-lg .ph{width:24px;height:32px;border-radius:6px;object-fit:cover;background:var(--ph-bg);flex:none;display:block}
.gs-lg-t{display:flex;flex-direction:column;min-width:0;line-height:1.2}
.gs-lg-t b{font-size:var(--fs-sm);font-weight:var(--w-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px}
.gs-lg-t span,.gs-lg-t em{font-size:var(--fs-xs);color:var(--mute);font-style:normal;font-variant-numeric:tabular-nums}
.gs-lg-t em{color:var(--warn)}
.gs-sw{width:12px;height:12px;border-radius:4px;flex:none;display:inline-block}
.gs-key{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--fs-xs);color:var(--mute);margin:0 0 4px}
.gs-key span{display:inline-flex;align-items:center;gap:6px}
.gs-ring{width:10px;height:10px;border-radius:50%;border:2px solid var(--mute);background:var(--card);display:inline-block}
.gs-chart{min-width:0;overflow:hidden}
.gs-svg .gs-mk{pointer-events:none}
.gs-empty{padding:14px 2px;color:var(--mute);font-size:var(--fs-sm);line-height:1.45}
.gs-was{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.gs-was-h{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink-3);margin-bottom:6px}
.gs-was-r{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 8px;border-radius:10px;font-size:var(--fs-sm)}
.gs-was-r.own{background:var(--accent-faint)}.gs-was-r.na .gs-sw{background:var(--dim)!important}
.gs-was-w{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gs-was-v{display:inline-flex;align-items:baseline;gap:6px;flex:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.gs-was-v .ig-d{min-width:44px;text-align:right;font-weight:var(--w-medium)}
.gs-arr{font-style:normal;color:var(--mute)}
.gs-none{color:var(--mute)}
.gs-place{margin-top:8px;font-size:var(--fs-sm);color:var(--ink-3)}
@media (max-width:720px){
  .gs-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
  .gs-chips::-webkit-scrollbar{display:none}
  .gs-lg{flex:1 1 calc(50% - 8px)}
  .gs-lg-t b{max-width:100px}
  .gs-was-r{flex-wrap:wrap;gap:2px 10px}
}
/* ── Ключи группы разведки: своя против конкурентов (04.10, group_keys.js) ──
   Плитки сводки, полоса «выше / вровень / ниже / вас нет», матрица
   «запрос × карточка» с прокруткой внутри блока (телефон не переполняется),
   раскрытая строка — график мест по дням. Цвета — токенами обеих тем. */
.gq-wait,.gq-none{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.gq-none b{color:var(--ink)}
.gq-line{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:10px;line-height:1.5}
.gq-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.gq-tile{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;min-width:0}
.gq-tk{font-size:var(--fs-xs);color:var(--mute)}
.gq-tv{font-size:var(--fs-2xl);font-weight:var(--w-bold);font-variant-numeric:tabular-nums;margin-top:2px}
.gq-ts{font-size:var(--fs-xs);color:var(--mute);margin-top:2px}
.gq-tile.good .gq-tv{color:var(--good)}.gq-tile.bad .gq-tv{color:var(--bad)}.gq-tile.warn .gq-tv{color:var(--warn)}
.gq-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;margin:10px 0 2px;background:var(--surface-3);gap:2px}
.gq-bar i{display:block;min-width:4px}
.gq-bar i.good{background:var(--good)}.gq-bar i.bad{background:var(--bad)}.gq-bar i.warn{background:var(--warn)}.gq-bar i.mid{background:var(--mute-3)}
.gq-lag{margin-top:10px;font-size:var(--fs-sm);line-height:1.5}
.gq-wt{font-weight:var(--w-medium);margin-bottom:2px}
.gq-lag ul{margin:0;padding-left:18px}
.gq-how{font-size:var(--fs-xs);color:var(--mute);margin:12px 0 8px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.gq-lg{padding:1px 8px;border-radius:999px}.gq-lg.good{background:var(--good-bg);color:var(--good)}.gq-lg.bad{background:var(--bad-bg);color:var(--bad)}
.gq-fs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.gq-fb{border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:999px;padding:5px 12px;font-size:var(--fs-sm);cursor:pointer}
.gq-fb.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent-deep)}
.gq-scroll{overflow-x:auto;max-width:100%}
table.gq-t{--gqq:220px;--gqf:110px;--gqc:128px;width:calc(var(--gqq) + var(--gqf) + var(--n,5) * var(--gqc));min-width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}
table.gq-t th,table.gq-t td{border-bottom:1px solid var(--surface-3);padding:8px 10px;vertical-align:middle}
table.gq-t thead th{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);text-transform:none;letter-spacing:0;background:var(--card);vertical-align:bottom}
table.gq-t th.gq-q,table.gq-t td.gq-q{width:var(--gqq);position:sticky;left:0;z-index:1;background:var(--card);text-align:left}
table.gq-t th.gq-f,table.gq-t td.gq-f{width:var(--gqf);text-align:right;background:var(--surface-2)}
table.gq-t th.gq-ch{width:var(--gqc);text-align:center;color:var(--ink);border-left:1px solid var(--line)}
table.gq-t th.gq-ch a{display:flex;flex-direction:column;align-items:center;gap:3px;color:inherit;text-decoration:none}
table.gq-t th.gq-ch img,table.gq-t th.gq-ch .ph{width:30px;height:40px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);display:block}
table.gq-t th.gq-ch b{font-weight:var(--w-medium);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.gq-t th.gq-ch.own{box-shadow:inset 0 3px 0 var(--accent)}
.gq-own-l{color:var(--accent)}
.gq-nm{color:var(--mute);font-variant-numeric:tabular-nums}
.gq-sub{display:block;font-size:var(--fs-xs);color:var(--mute);font-weight:var(--w-regular)}
table.gq-t tr.gq-row{cursor:pointer}
table.gq-t tr.gq-row:hover td,table.gq-t tr.gq-row.on td{background:var(--accent-faint)}
table.gq-t tr.gq-row.gq-miss td.gq-q{box-shadow:inset 3px 0 0 var(--warn)}
.gq-qt{font-weight:var(--w-medium);overflow-wrap:anywhere}
.gq-chev{display:inline-block;color:var(--mute);margin-right:6px;transition:transform .15s}
tr.gq-row.on .gq-chev{transform:rotate(90deg)}
td.gq-q .wbq{margin-left:6px}
.gq-tag{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;font-size:var(--fs-xs);white-space:nowrap}
.gq-tag.warn{background:var(--warn-bg);color:var(--warn-ink)}.gq-tag.good{background:var(--good-bg);color:var(--good)}
td.gq-c{text-align:center;border-left:1px solid var(--line);font-variant-numeric:tabular-nums}
td.gq-c b{font-size:var(--fs-md);font-weight:var(--w-bold)}
td.gq-c .gq-u{margin-left:4px;font-size:var(--fs-xs);color:var(--mute)}
td.gq-c .gq-o,td.gq-c .gq-gap{display:block;font-size:var(--fs-xs);color:var(--mute)}
td.gq-c .gq-gap{color:var(--bad)}
td.gq-c.gq-best{background:var(--good-bg)}td.gq-c.gq-best b{color:var(--good)}
td.gq-c.gq-worst{background:var(--bad-bg)}td.gq-c.gq-worst b{color:var(--bad)}
.gq-nd{font-size:var(--fs-xs);color:var(--mute)}
td.gq-off{color:var(--mute)}
tr.gq-det td{background:var(--surface-2);padding:10px 12px}
.gq-chart{position:sticky;left:0;max-width:min(760px,calc(100vw - 64px))}
.gq-svg{width:100%;height:auto;display:block}
.gq-gl{stroke:var(--chart-grid);stroke-width:1}
.gq-ax{fill:var(--mute);font-size:12px}
.gq-ln path{stroke-width:2;stroke-linejoin:round;stroke-linecap:round;opacity:.85}
.gq-ln.own path{stroke-width:3.2;opacity:1}
.gq-leg{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:6px;font-size:var(--fs-xs);color:var(--ink-3)}
.gq-li i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.gq-foot{font-size:var(--fs-xs);color:var(--mute);margin-top:8px;line-height:1.5}
.gq-all{margin-top:10px}
@media (max-width:720px){
  .gq-tiles{grid-template-columns:1fr;gap:6px}
  .gq-tile{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:8px 12px}
  .gq-tv{font-size:var(--fs-xl);margin:0}
  table.gq-t{--gqq:150px;--gqf:92px;--gqc:112px}
}

/* ── Группа разведки: «Витрина, контент и отзывы» (04.10, group_showcase.js) ──
   Карточки группы колонками, своя первой; на телефоне колонки едут внутри
   блока (.gsc-scroll), страница вбок не уезжает. Кегли не ниже 12 (пол
   мобильных проверок), фон колонок — фон карточки: серый вторичный текст
   на плитке не добирал контраста. */
.gsc-note{margin:0 0 10px;color:var(--mute);font-size:var(--fs-sm);line-height:1.45}
.gsc-empty{margin:0 0 12px;padding:10px 12px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-sm);line-height:1.45}
.gsc-h{margin:18px 0 8px;font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink)}
.gsc-facts{margin:0 0 12px;padding:10px 12px 10px 28px;border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.gsc-facts li+li{margin-top:2px}
.gsc-bars,.gsc-chart{margin:0 0 14px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md)}
.gsc-bars-t{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink);margin-bottom:8px}
.gsc-bar{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr) auto;gap:10px;align-items:center;padding:3px 0;font-size:var(--fs-sm)}
.gsc-bar-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)}
.gsc-bar.own .gsc-bar-n{color:var(--warn);font-weight:var(--w-bold)}
.gsc-bar-l{height:10px;border-radius:999px;background:var(--surface-3);overflow:hidden}
.gsc-bar-l i{display:block;height:100%;border-radius:999px;background:var(--chart-1)}
.gsc-bar.own .gsc-bar-l i{background:var(--star)}
.gsc-bar b{font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.gsc-scroll{overflow-x:auto;max-width:100%;margin:0 0 14px;-webkit-overflow-scrolling:touch}
.gsc-cols{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;align-items:stretch}
.gsc-col{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;min-width:0;display:flex;flex-direction:column;gap:8px}
.gsc-col.ig-own{background:color-mix(in srgb,var(--warn-bg) 45%,transparent);border-color:var(--warn-line)}
.gsc-top{display:flex;flex-direction:column;gap:4px}
.gsc-mine{color:var(--warn);font-weight:var(--w-bold);font-size:var(--fs-sm)}
.gsc-rival{color:var(--mute);font-size:var(--fs-sm)}
.gsc-ph{display:flex;flex-direction:column;align-items:center;gap:6px}
.gsc-ph > img,.gsc-ph > .ph{width:120px;height:160px;object-fit:cover;border-radius:var(--r-sm);background:var(--ph-bg);display:block}
.gsc-ph > img.gone{opacity:.3}
.gsc-phc{font-size:var(--fs-xs);color:var(--ink-3);display:flex;align-items:center;flex-wrap:wrap;gap:4px;justify-content:center}
.gsc-phc .ph-pair{margin-left:0}
.gsc-rows{display:flex;flex-direction:column}
.gsc-r{display:flex;flex-direction:column;gap:2px;padding:6px 0;border-top:1px solid var(--line)}
.gsc-r .k{font-size:var(--fs-xs);color:var(--mute)}
.gsc-r .v{font-size:var(--fs-sm);color:var(--ink);overflow-wrap:anywhere;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}
.gsc-r .v b{font-size:var(--fs-md);font-variant-numeric:tabular-nums}
.gsc-r .w{font-size:var(--fs-xs);color:var(--mute);font-variant-numeric:tabular-nums}
.gsc-d{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);white-space:nowrap}
.gsc-d.gsc-up{color:var(--good)}.gsc-d.gsc-dn{color:var(--bad)}
.gsc-vs{font-size:var(--fs-xs);color:var(--ink-3)}
.gsc-s{color:var(--mute)}
.gsc-disc{font-size:var(--fs-xs);padding:1px 8px;border-radius:999px;background:var(--accent-bg);color:var(--accent-deep)}
.gsc-off{font-size:var(--fs-xs);padding:1px 8px;border-radius:999px;background:var(--bad-bg);color:var(--bad-ink)}
.gsc-zs{display:flex;flex-wrap:wrap;gap:4px}
.gsc-z{display:inline-block;min-width:28px;padding:2px 6px;border-radius:var(--r-xs);border:1px solid var(--line-2);font-size:var(--fs-xs);text-align:center;color:var(--ink)}
.gsc-z.out{color:var(--mute);text-decoration:line-through;border-style:dashed}
.gsc-z.lost{border-color:var(--bad);color:var(--bad);border-style:solid}
.gsc-z.back{border-color:var(--good);color:var(--good)}
.gsc-zn{font-size:var(--fs-xs);color:var(--mute)}
.gsc-nd{color:var(--mute);font-size:var(--fs-sm);line-height:1.45}
.gsc-nd-i{color:var(--mute);font-size:var(--fs-sm)}
.gsc-foot{margin-top:auto;padding-top:6px;border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--mute);line-height:1.4}
/* Цена по дням: линии без текста внутри SVG (на телефоне ужались бы ниже пола). */
.gsc-ch-w{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:stretch}
.gsc-ch-y{display:flex;flex-direction:column;justify-content:space-between;font-size:var(--fs-xs);color:var(--mute);text-align:right;white-space:nowrap}
.gsc-chart svg{width:100%;height:140px;display:block;border-left:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.gsc-ch-x{display:flex;justify-content:space-between;font-size:var(--fs-xs);color:var(--mute);margin:4px 0 0 56px}
.gsc-lg{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:8px;font-size:var(--fs-xs);color:var(--ink-2)}
.gsc-lg span{display:inline-flex;align-items:center;gap:6px}
.gsc-lg i{width:12px;height:4px;border-radius:2px;display:inline-block}
/* Лента правок: день, чья карточка, что было и что стало. */
.gsc-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.gsc-feed li{display:grid;grid-template-columns:64px minmax(0,190px) minmax(0,1fr);gap:10px;align-items:start;padding:8px 0;border-top:1px solid var(--line);font-size:var(--fs-sm);line-height:1.4}
.gsc-feed li[hidden]{display:none}
.gsc-feed li .d{color:var(--mute);white-space:nowrap}
.gsc-feed li .x{min-width:0;overflow-wrap:anywhere;color:var(--ink-2)}
.gsc-feed li .x > b{color:var(--ink)}
.gsc-who{display:flex;align-items:center;gap:8px;min-width:0;color:var(--ink-2)}
.gsc-who > span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gsc-feed li.own .gsc-who > span{color:var(--warn);font-weight:var(--w-bold)}
.gsc-who img,.gsc-who .ph{width:24px;height:32px;border-radius:var(--r-xs);object-fit:cover;background:var(--ph-bg);flex:none;display:block}
.gsc-dl{margin-top:4px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}
.gsc-dm{margin-top:4px;font-size:var(--fs-xs);color:var(--mute)}
.gsc-del{text-decoration:line-through;color:var(--bad-ink);background:var(--bad-bg);border-radius:var(--r-xs);padding:0 4px}
.gsc-ins{text-decoration:none;color:var(--ink);background:var(--good-bg);border-radius:var(--r-xs);padding:0 4px}
.gsc-ar{color:var(--mute)}
.gsc-lbl{font-size:var(--fs-xs);color:var(--mute)}
.gsc-none{color:var(--mute)}
.gsc-et{color:var(--ink-2)}
/* Отзывы 1–3★: счётчик, полоса по звёздам, пять свежих. */
.gsc-rv-n{margin-top:8px;font-size:var(--fs-sm);color:var(--ink-2)}
.gsc-rv-bar{display:flex;height:6px;border-radius:999px;overflow:hidden;margin-top:6px;background:var(--surface-3)}
.gsc-rv-bar i{display:block;height:100%}
.gsc-rv-bar i.s1{background:var(--bad)}.gsc-rv-bar i.s2{background:var(--chart-orange)}.gsc-rv-bar i.s3{background:var(--star)}
.gsc-rvl{list-style:none;margin:8px 0 0;padding:0}
.gsc-rvl li{padding:8px 0;border-top:1px solid var(--line);font-size:var(--fs-sm);line-height:1.45;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.gsc-rvl li .d{color:var(--mute);font-size:var(--fs-xs)}
.gsc-st{color:var(--star);letter-spacing:1px;font-size:var(--fs-sm)}
.gsc-st0{color:var(--line-2)}
.gsc-rv-t{flex-basis:100%;color:var(--ink-2);overflow-wrap:anywhere}
.gsc-rv-x{border:0;background:none;padding:0;color:var(--accent);font-size:var(--fs-sm);cursor:pointer;text-decoration:underline dotted;text-underline-offset:2px}
@media (max-width:720px){
  .gsc-cols{grid-auto-columns:260px}
  .gsc-bar{grid-template-columns:minmax(0,96px) minmax(0,1fr) auto;gap:8px}
  .gsc-feed li{grid-template-columns:minmax(0,1fr);gap:4px}
  .gsc-ch-x{margin-left:0}
}

/* ── «Главное за период» группы разведки (group_insights.js, 04.10) ──────
   Первый блок под шапкой группы. Плитки — серой подложкой второго уровня,
   как остальные блоки группы; цвет только у знака изменения и у плашки
   уверенности (зелёная — только «сильная»). Кегль не ниже 12: на телефоне
   пол подписей 12. Обе темы — на переменных, без своих цветов. */
.gin-host{margin-bottom:12px}
.gin-host > .sec{margin-bottom:0}
.gin-wait{padding:14px 16px;color:var(--mute);font-size:var(--fs-sm)}
.gin-place{padding:8px 12px;margin-bottom:10px;border-radius:var(--r-md);background:var(--surface-2);border-left:3px solid var(--warn);font-size:var(--fs-md);line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere;cursor:help}
.gin-place.gin-first{border-left-color:var(--good)}
.gin-place b{color:var(--ink)}
.gin-cards{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.gin-card{padding:10px 14px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);min-width:0}
.gin-card.ig-own{border-color:var(--accent-line);background:var(--accent-faint)}
.gin-top{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;min-width:0}
.gin-top > .ig-who{flex:1 1 220px;min-width:0}
.gin-num{flex:none;font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.gin-num b{margin-left:4px}
.gin-lv{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-3);white-space:nowrap;cursor:help}
.gin-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--dim-2)}
.gin-lv-strong .gin-dot{background:var(--good)}
.gin-lv-likely .gin-dot,.gin-lv-not_found .gin-dot{background:var(--info)}
.gin-lv-coincidence .gin-dot{background:var(--warn)}
.gin-rows{display:grid;grid-template-columns:60px minmax(0,1fr);gap:3px 12px;margin:8px 0 0;font-size:var(--fs-sm);line-height:1.45}
.gin-rows dt{color:var(--ink-3);font-weight:var(--w-medium)}
.gin-rows dd{margin:0;color:var(--ink-2);overflow-wrap:anywhere}
.gin-more{margin-top:6px}
.gin-more > summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-3);font-weight:var(--w-medium)}
.gin-viz{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;margin-top:8px}
.gin-lines{margin:10px 0 0;min-width:0}
.gin-lines p{margin:0 0 4px;font-size:var(--fs-sm);line-height:1.45;color:var(--ink-3);overflow-wrap:anywhere}
.gin-proof{margin-top:8px}
@media (max-width:480px){.gin-rows{grid-template-columns:1fr;gap:0}.gin-rows dt{margin-top:4px}.gin-viz{grid-template-columns:minmax(0,1fr)}.gin-proof li{grid-template-columns:1.4em minmax(0,1fr)}.gin-proof li span:last-child{grid-column:2}}
.gin-none{color:var(--mute);font-size:var(--fs-sm);line-height:1.45;padding:4px 0}
.gin-pane{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;min-width:0}
.gin-pt{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);margin-bottom:6px}
.gin-ps{font-size:var(--fs-xs);color:var(--mute);margin-top:6px;line-height:1.35;overflow-wrap:anywhere}
.gin-spark{display:block;width:100%;height:72px}
.gin-spark .gin-past{fill:var(--line-2)}
.gin-spark .gin-cur{fill:var(--accent)}
.gin-spark .gin-nod{fill:var(--dim)}
.gin-spark .gin-norm{stroke:var(--mute);stroke-width:1.2;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}
.gin-wf,.gin-mk{display:grid;grid-template-columns:minmax(0,9.5em) minmax(40px,1fr) auto;align-items:center;gap:8px;padding:3px 0;cursor:help}
.gin-wf .k,.gin-mk .k{font-size:var(--fs-xs);color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gin-wf b,.gin-mk b{font-size:var(--fs-sm);text-align:right;min-width:3.2em}
.gin-wf-sum{border-top:1px solid var(--line);margin-top:4px;padding-top:6px;cursor:default}
.gin-wf-sum .k{font-weight:var(--w-bold);color:var(--ink)}
.gin-wb{position:relative;display:block;height:8px;border-radius:999px;background:var(--surface-3)}
.gin-wb::after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;width:1px;background:var(--line-2)}
.gin-wb > i{position:absolute;top:0;bottom:0;border-radius:999px;background:var(--mute-3)}
.gin-wb.ig-good > i{background:var(--good)}
.gin-wb.ig-bad > i{background:var(--bad)}
.gin-proof summary{cursor:pointer;font-size:var(--fs-sm);color:var(--accent);font-weight:var(--w-medium)}
.gin-proof ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.gin-proof li{display:grid;grid-template-columns:1.4em minmax(0,11em) minmax(0,1fr);gap:8px;align-items:baseline;font-size:var(--fs-sm);line-height:1.4}
.gin-proof li b{font-weight:var(--w-medium);color:var(--ink)}
.gin-proof li span:last-child{color:var(--ink-3);overflow-wrap:anywhere}
.gin-ok{color:var(--good);font-weight:var(--w-bold)}
.gin-no{color:var(--bad);font-weight:var(--w-bold)}
.gin-na{color:var(--mute);font-weight:var(--w-bold)}
@media (max-width:720px){
  .gin-proof li{grid-template-columns:1.4em minmax(0,1fr)}
  .gin-proof li span:last-child{grid-column:2}
}
/* Места по ключам за день таблицей (04.10). */
.ig-pos-sum{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:6px}
.ig-pos-sum .ig-good{color:var(--good)}.ig-pos-sum .ig-bad{color:var(--bad)}
.ig-pos-t{width:100%;min-width:0;border-collapse:collapse;font-size:var(--fs-sm);table-layout:fixed}
.ig-pos-t th{font-weight:var(--w-medium);color:var(--mute);text-align:right;padding:2px 0 4px 6px;width:52px}
.ig-pos-t th:first-child{text-align:left;width:auto;padding-left:0}
.ig-pos-t td{padding:4px 0 4px 6px;border-top:1px solid var(--line);vertical-align:top}
.ig-pos-t td.pq{padding-left:0;color:var(--ink-2);overflow-wrap:anywhere}
.ig-pos-t td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--ink)}
.ig-pos-t tr.ig-good td.dd{color:var(--good)}.ig-pos-t tr.ig-bad td.dd{color:var(--bad)}
table.ig-t td.ig-v .ig-d .ig-was{color:var(--mute)}
/* ── Год к году, деньги на переход и «Сезон» (group_season.js, 04.10) ── */
.gsn-cmp{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:10px 14px;min-width:0}
.gsn-cmp-t{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;padding:2px;gap:2px;background:var(--surface-2)}
.gsn-cb{border:0;background:transparent;color:var(--ink-3);font:inherit;font-size:var(--fs-sm);font-weight:var(--w-medium);padding:6px 12px;border-radius:999px;cursor:pointer;white-space:nowrap}
.gsn-cb.on{background:var(--accent);color:var(--on-accent)}
.gsn-cb:disabled{opacity:.6;cursor:wait}
.gsn-cmp-s,.gsn-cmp-n{font-size:var(--fs-sm);color:var(--mute);overflow-wrap:anywhere;min-width:0}
.gsn-cmp-n{color:var(--warn-ink)}
.gsn-err{font-size:var(--fs-sm);color:var(--bad)}
.gsn-err:empty{display:none}
.ig-settle{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);white-space:nowrap;cursor:help}
.gsn-wait{color:var(--mute);font-size:var(--fs-sm);line-height:1.45;padding:6px 2px}
.gsn-legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:var(--fs-xs);color:var(--mute);margin-bottom:8px}
.gsn-k{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-2px}
.gsn-k.cur{background:var(--accent-mid)}.gsn-k.yoy{background:var(--line-2)}
.gsn-rows{display:flex;flex-direction:column;gap:4px}
.gsn-row{display:grid;grid-template-columns:minmax(0,170px) minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px 8px;border-radius:10px;min-width:0}
.gsn-row.own{background:var(--accent-faint)}
.gsn-row.na{grid-template-columns:minmax(0,170px) minmax(0,1fr);opacity:.75}
.gsn-who{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden}
.gsn-who b{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gsn-who.own b{color:var(--accent)}
.gsn-nm{font-size:var(--fs-xs);color:var(--mute);font-variant-numeric:tabular-nums}
.gsn-sw{width:12px;height:12px;border-radius:4px;flex:none;display:inline-block}
.gsn-line{min-width:0;overflow:hidden}
.gsn-spark{display:block;width:100%;height:40px}
.gsn-b-cur{fill:var(--accent-mid);opacity:.7}.gsn-b-yoy{fill:var(--line-2);opacity:.8}
.gsn-vals{display:inline-flex;flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:2px 10px;font-size:var(--fs-xs);color:var(--mute);font-variant-numeric:tabular-nums;text-align:right;cursor:help}
.gsn-vals b{font-size:var(--fs-sm);color:var(--ink)}
.gsn-vals .ig-d{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink-3)}
.gsn-none{font-size:var(--fs-sm);color:var(--mute)}
.gsn-mean{margin-top:10px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}
.gsn-mean-h{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);margin-bottom:4px}
.gsn-mean p{margin:4px 0 0;font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere}
.gsn-est{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);cursor:help}
@media (max-width:640px){
  .gsn-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who vals" "line line";gap:4px 10px}
  .gsn-row .gsn-who{grid-area:who}.gsn-row .gsn-vals{grid-area:vals}.gsn-row .gsn-line{grid-area:line}
  .gsn-row.na{grid-template-columns:minmax(0,1fr);grid-template-areas:"who" "line"}
  .gsn-row .gsn-none{grid-area:line}
  .gsn-cb{padding:6px 10px}
}
/* ── Блок группы «Поиск: видимость и ключи» (group_search.js, 04.10) ── */
.gsr-wait,.gsr-none{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.gsr-none b{color:var(--ink)}
.gsr-sec{padding:4px 0 14px}
.gsr-sec+.gsr-sec{border-top:1px solid var(--line);padding-top:14px}
.gsr-h{font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink);margin-bottom:4px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gsr-line{font-size:var(--fs-sm);color:var(--ink-3);margin:4px 0 8px;line-height:1.5}
.gsr-st{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink);margin:12px 0 6px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gsr-est{display:inline-block;padding:0 8px;border-radius:999px;background:var(--info-bg);color:var(--info);font-size:var(--fs-xs);font-weight:var(--w-medium);white-space:nowrap}
.gsr-vis,.gsr-dep{display:flex;flex-direction:column;gap:6px}
.gsr-vr,.gsr-dr{display:grid;grid-template-columns:minmax(0,180px) minmax(0,1fr) minmax(0,auto);gap:6px 12px;align-items:center;padding:6px 8px;border-radius:var(--r-md);background:var(--surface-2);min-width:0}
.gsr-dr{grid-template-columns:minmax(0,180px) minmax(0,1fr)}
.gsr-vr.own,.gsr-dr.own{box-shadow:inset 3px 0 0 var(--accent)}
.gsr-vr.off,.gsr-dr.off{opacity:.7}
.gsr-who{display:flex;align-items:baseline;gap:6px;min-width:0;font-size:var(--fs-sm)}
.gsr-who b{font-weight:var(--w-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.gsr-who b.gsr-own{color:var(--accent)}
.gsr-nm{color:var(--mute);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.gsr-bar{display:block;height:10px;border-radius:999px;background:var(--surface-3);overflow:hidden;min-width:0}
.gsr-bar i{display:block;height:100%;border-radius:999px}
.gsr-vv{display:flex;align-items:baseline;gap:4px 8px;flex-wrap:wrap;font-variant-numeric:tabular-nums;font-size:var(--fs-sm);color:var(--ink-3);justify-content:flex-end}
.gsr-vv b{font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink)}
.gsr-vr>.gsr-nd{grid-column:2 / -1}
.gsr-u,.gsr-sh,.gsr-was,.gsr-sub{font-size:var(--fs-xs);color:var(--mute)}
.gsr-was i{font-style:normal;font-weight:var(--w-medium)}
.gsr-was i.gsr-up{color:var(--good)}.gsr-was i.gsr-down{color:var(--bad)}
.gsr-nd{font-size:var(--fs-xs);color:var(--mute)}
.gsr-dv{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;font-size:var(--fs-sm);color:var(--ink-3);min-width:0}
.gsr-dv b{color:var(--ink);font-weight:var(--w-bold);font-variant-numeric:tabular-nums}
.gsr-dv .gsr-sub{flex-basis:100%;overflow-wrap:anywhere}
.gsr-tag{display:inline-block;padding:0 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:var(--w-medium);white-space:nowrap}
.gsr-tag.bad{background:var(--bad-bg);color:var(--bad)}.gsr-tag.warn{background:var(--warn-bg);color:var(--warn-ink)}.gsr-tag.good{background:var(--good-bg);color:var(--good)}
.gsr-gaps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.gsr-gaps li{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;background:var(--card);min-width:0}
.gsr-gq{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:var(--fs-sm)}
.gsr-gq b{font-weight:var(--w-medium);color:var(--ink);overflow-wrap:anywhere}
.gsr-gd{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:4px;font-size:var(--fs-sm);color:var(--ink-3);overflow-wrap:anywhere}
.gsr-gd b{color:var(--ink);font-weight:var(--w-medium)}
.gsr-gd .gsr-gap{color:var(--bad);font-weight:var(--w-medium)}
.gsr-curve,.gsr-all{margin-top:10px}
.gsr-curve summary,.gsr-all summary{cursor:pointer;font-size:var(--fs-sm);color:var(--accent);font-weight:var(--w-medium)}
.gsr-cb{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
.gsr-cb li{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;background:var(--surface-2);border-radius:var(--r-sm);padding:6px 8px;font-size:var(--fs-sm);color:var(--ink-3)}
.gsr-cb b{color:var(--ink);font-variant-numeric:tabular-nums}
.gsr-scroll{overflow-x:auto;max-width:100%;margin-top:6px}
table.gsr-t{min-width:0;width:calc(220px + 80px + var(--n,5) * 104px);table-layout:fixed;border-collapse:collapse;font-size:var(--fs-sm)}
table.gsr-t th{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);text-align:center;background:var(--card);padding:6px;white-space:normal;overflow:hidden;text-overflow:ellipsis;cursor:default}
table.gsr-t td{padding:6px;border-top:1px solid var(--line);text-align:center;vertical-align:middle;color:var(--ink);background:var(--card)}
table.gsr-t .gsr-tq{width:220px;text-align:left;position:sticky;left:0;background:var(--card);overflow-wrap:anywhere;z-index:1}
table.gsr-t th:nth-child(2),table.gsr-t td.gsr-tn{width:80px;text-align:right;font-variant-numeric:tabular-nums}
table.gsr-t .gsr-tq .gsr-sub{display:block}
.gsr-mean{margin-top:12px;border-radius:var(--r-md);background:var(--accent-faint);border:1px solid var(--accent-line);padding:10px 12px}
.gsr-mt{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--accent-deep);margin-bottom:4px}
.gsr-mean ul{margin:0;padding-left:18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink)}
.gsr-mean li+li{margin-top:2px}
@media (max-width:720px){
  .gsr-vr,.gsr-dr{grid-template-columns:minmax(0,1fr)}
  .gsr-vr .gsr-vv{justify-content:flex-start}
  .gsr-vr>.gsr-nd{grid-column:auto}
  table.gsr-t{width:calc(160px + 70px + var(--n,5) * 96px)}
  table.gsr-t .gsr-tq{width:160px}
}

/* ── Группа разведки: «Остатки и доставка» (04.10, group_stock.js) ──────────
   Две таблицы карточек (своя первой) и таблица регионов × карточки. Общее
   правило table{min-width:1180px} здесь не годится: ширина — своя
   (--gst-min), на телефоне таблицы едут внутри .gst-scroll, страница вбок не
   уезжает. Кегли не ниже 12 (пол мобильных проверок). */
.gst-part+.gst-part{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.gst-h{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 8px;font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink)}
.gst-est{font-size:var(--fs-xs);font-weight:var(--w-medium);padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);cursor:help}
.gst-note{margin:0 0 10px;color:var(--ink-3);font-size:var(--fs-sm);line-height:1.45}
.gst-note.gst-warn{color:var(--bad-ink);background:var(--bad-bg);padding:8px 12px;border-radius:var(--r-md)}
.gst-empty{margin:0 0 10px;padding:10px 12px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-sm);line-height:1.45}
.gst-scroll{overflow-x:auto;max-width:100%;margin:0 0 10px;-webkit-overflow-scrolling:touch}
table.gst-t{width:100%;min-width:var(--gst-min,760px);table-layout:auto;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}
table.gst-t th,table.gst-t td{padding:8px 10px;border-bottom:1px solid var(--surface-3);vertical-align:top;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
table.gst-t thead th{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--ink-3);text-transform:none;letter-spacing:0;vertical-align:bottom;background:var(--card)}
table.gst-t thead th[data-tip]{cursor:help}
table.gst-t th:first-child{position:sticky;left:0;z-index:1;background:var(--card);text-align:left;width:190px;min-width:150px;max-width:220px;overflow:hidden}
table.gst-t tbody th{font-weight:var(--w-medium);color:var(--ink-2)}
table.gst-t td b{font-weight:var(--w-bold)}
table.gst-t tbody td{white-space:nowrap}
table.gst-t tr.gst-own td,table.gst-t tr.gst-own th{background:var(--warn-faint)}
table.gst-t thead th.gst-own{color:var(--ink)}
.gst-who{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;min-width:0}
.gst-who img,.gst-who .ph{width:30px;height:40px;flex:none;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);display:block}
.gst-who > span{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.gst-who{max-width:100%}.gst-who > span{flex:1 1 auto}
.gst-who b{display:block}
.gst-who b,table.gst-reg thead th{overflow-wrap:anywhere;word-break:break-word}
.gst-own-l{color:var(--warn)}
.gst-nm{display:block;font-size:var(--fs-xs);color:var(--ink-3);font-weight:var(--w-regular,400)}
.gst-sub{display:block;font-size:var(--fs-xs);color:var(--ink-3);font-weight:var(--w-regular,400);white-space:nowrap}
.gst-nd{font-size:var(--fs-xs);color:var(--ink-3)}
.gst-na{color:var(--ink-3);text-align:center}
td.gst-na[colspan]{text-align:left;font-size:var(--fs-xs)}
.gst-bad{color:var(--bad)}
td.gst-gap{background:var(--bad-bg)}
td.gst-gap b{color:var(--bad-ink)}
td.gst-gap .gst-sub{color:var(--bad-ink)}
.gst-sz{margin:0 0 10px;padding:0 0 0 18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.gst-sz li+li{margin-top:3px}
.gst-tag{display:inline-block;font-size:var(--fs-xs);padding:0 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-3)}
.gst-tag.bad{background:var(--bad-bg);color:var(--bad-ink)}
.gst-mean{margin:4px 0 0;padding:10px 12px;border:1px solid var(--warn-line);border-radius:var(--r-md);background:var(--warn-faint)}
.gst-mean-t{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);margin-bottom:4px}
.gst-mean ul{margin:0;padding:0 0 0 18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.gst-mean li+li{margin-top:3px}
@media (max-width:720px){
  table.gst-t th:first-child{width:130px;min-width:110px;max-width:130px}
  .gst-who img,.gst-who .ph{display:none}
}
/* ── Цена и скидки на странице группы (group_price.js, 04.10) ── */
.igp-wait,.igp-empty{color:var(--mute);font-size:var(--fs-sm);line-height:1.45;padding:6px 2px}
.igp-part{padding:2px 0 14px}
.igp-part + .igp-part{border-top:1px solid var(--line);padding-top:14px}
.igp-h{font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink);margin-bottom:8px;line-height:1.35}
.igp-cap{display:block;font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);margin-top:2px}
.igp-rows{display:flex;flex-direction:column;gap:2px}
.igp-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 8px;border-radius:10px;font-size:var(--fs-sm);min-width:0}
.igp-row.own{background:var(--accent-faint)}
.igp-row.na{opacity:.75}
.igp-who{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden}
.igp-who b{font-weight:var(--w-bold);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}
.igp-who.own b{color:var(--accent)}
.igp-nm{font-size:var(--fs-xs);color:var(--mute);font-variant-numeric:tabular-nums}
.igp-sw{width:12px;height:12px;border-radius:4px;flex:none;display:inline-block}
.igp-vals{display:inline-flex;align-items:baseline;flex-wrap:wrap;justify-content:flex-end;gap:4px 12px;font-variant-numeric:tabular-nums;text-align:right}
.igp-pr{color:var(--ink-3);white-space:nowrap}
.igp-pr i{font-style:normal;color:var(--mute);margin:0 4px}
.igp-spp{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}
.igp-spp b,.igp-el b{font-size:var(--fs-md);color:var(--ink)}
.igp-el{white-space:nowrap;color:var(--ink-3)}
.igp-el .ig-d{font-weight:var(--w-medium)}
.igp-el .ig-d.ig-good{color:var(--good)}.igp-el .ig-d.ig-bad{color:var(--bad)}
.igp-sub{font-size:var(--fs-xs);color:var(--mute);white-space:nowrap}
.igp-none{font-size:var(--fs-sm);color:var(--mute)}
.igp-key{font-size:var(--fs-xs);color:var(--mute);margin:10px 0 4px}
.igp-chart{min-width:0;overflow:hidden}
.igp-mean{margin-top:10px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}
.igp-mean-h{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);margin-bottom:4px}
.igp-mean p{margin:4px 0 0;font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere}
.igp-est{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);cursor:help}
.igp-eps{margin-top:8px}
.igp-eps summary{cursor:pointer;font-size:var(--fs-sm);color:var(--accent);font-weight:var(--w-medium)}
.igp-ep-h,.igp-ep{display:grid;grid-template-columns:56px minmax(0,1.5fr) minmax(0,1.4fr) 76px minmax(0,1fr);gap:4px 10px;align-items:baseline;font-size:var(--fs-sm);padding:5px 0}
.igp-ep-h{color:var(--mute);font-size:var(--fs-xs);font-weight:var(--w-medium);border-bottom:1px solid var(--line);margin-top:6px}
.igp-ep{border-bottom:1px solid var(--line);color:var(--ink-2);font-variant-numeric:tabular-nums}
.igp-ep em{font-style:normal;color:var(--mute)}
.igp-ep-d{font-weight:var(--w-medium);color:var(--ink)}
.igp-ep-n{grid-column:2 / -1;font-size:var(--fs-xs);color:var(--warn-ink)}
.igp-l{display:none;font-style:normal;color:var(--mute)}
@media (max-width:720px){
  .igp-row{flex-wrap:wrap;align-items:flex-start}
  .igp-vals{justify-content:flex-start;text-align:left;width:100%;padding-left:20px}
  .igp-who b{max-width:150px}
  .igp-ep-h{display:none}
  .igp-ep{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .igp-ep-d{grid-column:1 / -1}
  .igp-ep-n{grid-column:1 / -1}
  .igp-l{display:inline}
}
/* Группа: «Отзывы: о чём жалуются» (group_reviews.js, 04.10). Своя таблица —
   min-width:0 против глобального table{min-width:1180px}; классы с префиксом grv-. */
.grv-wait,.grv-none{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.grv-none b{color:var(--ink)}
.grv-facts{background:var(--accent-faint);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:10px 14px;margin-bottom:10px}
.grv-ft{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:4px;color:var(--ink)}
.grv-facts ul{margin:0;padding-left:18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.grv-notes{margin:0 0 10px;padding-left:18px;font-size:var(--fs-sm);line-height:1.5;color:var(--warn-ink)}
.grv-fs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.grv-fb{border:1px solid var(--line-2);background:var(--card);color:var(--ink);border-radius:999px;padding:5px 12px;font-size:var(--fs-sm);cursor:pointer}
.grv-fb.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--ink);font-weight:var(--w-medium)}
.grv-scroll{overflow-x:auto;max-width:100%}
table.grv-t{--grvk:190px;--grvc:132px;min-width:0;width:calc(var(--grvk) + var(--n,5) * var(--grvc));table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}
table.grv-t th,table.grv-t td{border-bottom:1px solid var(--surface-3);padding:8px 10px;vertical-align:middle}
table.grv-t thead th{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--mute);background:var(--card);vertical-align:bottom;white-space:normal;cursor:default}
table.grv-t th.grv-k,table.grv-t td.grv-k{width:var(--grvk);position:sticky;left:0;z-index:1;background:var(--card);text-align:left;color:var(--ink)}
table.grv-t th.grv-ch{width:var(--grvc);text-align:center;color:var(--ink);border-left:1px solid var(--line)}
table.grv-t th.grv-ch a{display:flex;flex-direction:column;align-items:center;gap:3px;color:inherit;text-decoration:none}
table.grv-t th.grv-ch img,table.grv-t th.grv-ch .ph{width:30px;height:40px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);display:block}
table.grv-t th.grv-ch b{font-weight:var(--w-medium);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.grv-t th.grv-ch.own{box-shadow:inset 0 3px 0 var(--accent)}
.grv-own-l{color:var(--accent)}
.grv-nm{color:var(--mute);font-variant-numeric:tabular-nums}
.grv-sub{display:block;font-size:var(--fs-xs);color:var(--mute);font-weight:var(--w-regular)}
td.grv-c{text-align:center;border-left:1px solid var(--line);font-variant-numeric:tabular-nums}
td.grv-c b{font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink)}
/* Вторичный текст клеток — ink-3, не mute: клетка бывает на подложке (лучшая/худшая, открытая строка). */
td.grv-c .grv-s,td.grv-c .grv-was{display:block;font-size:var(--fs-xs);color:var(--ink-3)}
td.grv-c.grv-hi{background:var(--bad-bg)}td.grv-c.grv-hi b{color:var(--bad-ink)}
td.grv-c.grv-few b{color:var(--ink-3);font-weight:var(--w-medium)}
td.grv-off{color:var(--mute)}
.grv-nd{font-size:var(--fs-xs);color:var(--ink-3)}
.grv-est{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium)}
.grv-bar{display:block;height:6px;border-radius:999px;background:var(--surface-3);margin:4px auto 2px;max-width:90px;overflow:hidden}
.grv-bar i{display:block;height:100%;background:var(--bad);opacity:.75}
table.grv-t tr.grv-row{cursor:pointer}
table.grv-t tr.grv-row:hover td,table.grv-t tr.grv-row.on td{background:var(--accent-faint)}
table.grv-t tr.grv-row:hover td.grv-hi,table.grv-t tr.grv-row.on td.grv-hi{background:var(--bad-bg)}
.grv-tn{font-weight:var(--w-medium)}
.grv-chev{display:inline-block;color:var(--mute);margin-right:6px;transition:transform .15s}
tr.grv-row.on .grv-chev{transform:rotate(90deg)}
tr.grv-det td{background:var(--surface-2);padding:10px 12px}
.grv-exs{position:sticky;left:0;max-width:min(900px,calc(100vw - 64px))}
.grv-exg{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.grv-exc{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px;min-width:0}
.grv-exh{font-weight:var(--w-medium);margin-bottom:4px;color:var(--ink)}
.grv-ex{padding:6px 0;border-top:1px solid var(--line);font-size:var(--fs-sm);line-height:1.45}
.grv-ex:first-of-type{border-top:0}
.grv-st{color:var(--star);letter-spacing:1px}.grv-st i{font-style:normal;color:var(--dim)}
.grv-exd{color:var(--mute);font-size:var(--fs-xs)}
.grv-ext{color:var(--ink-2);overflow-wrap:anywhere;white-space:normal}
.grv-foot{font-size:var(--fs-xs);color:var(--mute);margin-top:8px}
@media (max-width:720px){
  table.grv-t{--grvk:128px;--grvc:112px}
  .grv-exg{grid-template-columns:minmax(0,1fr)}
  .grv-exs{max-width:calc(100vw - 56px)}
}

/* ── Страница группы: строка доверия и метрики таблицы карточек (04.10, group_cardcols.js) ── */
table.ig-t .gcc-trust{margin-top:5px;font-size:var(--fs-xs);color:var(--ink-3);line-height:1.35;white-space:normal;overflow-wrap:anywhere;cursor:help}
table.ig-t .gcc-low{display:inline-block;margin-top:4px;padding:1px 7px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);line-height:1.35;white-space:normal;cursor:help}
.gcc-est{display:inline-block;margin-left:4px;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);vertical-align:middle;cursor:help}
.gcc-snap{display:block;margin-top:2px;font-size:var(--fs-xs);color:var(--mute);cursor:help}

/* ── Группа разведки: «Что сделать на этой неделе» (group_actions.js, 04.10) ──
   Первый блок под шапкой группы: до трёх действий с оценкой ₽ в неделю.
   Префикс gac-; без таблиц — на телефоне строки переносятся, вбок не едет. */
.gac-list{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:10px}
.gac-item{padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);min-width:0}
.gac-item:first-child{border-color:var(--accent-line);background:var(--accent-faint)}
.gac-top{display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 10px;min-width:0}
.gac-n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:999px;background:var(--accent-bg);color:var(--ink);font-size:var(--fs-sm);font-weight:var(--w-bold)}
.gac-t{flex:1 1 220px;min-width:0;font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink);overflow-wrap:anywhere;word-break:break-word}
.gac-rub{flex:none;margin-left:auto;padding:2px 10px;border-radius:999px;background:var(--accent-bg);color:var(--ink);font-size:var(--fs-base);font-weight:var(--w-bold);font-variant-numeric:tabular-nums;white-space:nowrap;cursor:help}
.gac-rub.gac-minus{background:var(--bad-bg);color:var(--bad-ink)}
.gac-why{margin:6px 0 8px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2);overflow-wrap:anywhere}
.gac-foot{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font-size:var(--fs-xs)}
.gac-est,.gac-conf{padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-weight:var(--w-medium);cursor:help}
.gac-conf.gac-c-low{background:var(--warn-bg);color:var(--warn-ink)}
.gac-go{margin-left:auto;padding:2px 0;border:none;background:none;color:var(--ink-2);text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:3px;font:inherit;font-size:var(--fs-xs);font-weight:var(--w-medium);cursor:pointer;text-align:left;overflow-wrap:anywhere}
.gac-go:hover{color:var(--ink)}
.gac-note{margin:0 0 10px;color:var(--ink-3);font-size:var(--fs-sm);line-height:1.45}
.gac-note.gac-warn{color:var(--bad-ink);background:var(--bad-bg);padding:8px 12px;border-radius:var(--r-md)}
.gac-empty{margin:0 0 10px;padding:10px 12px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-sm);line-height:1.45}
.gac-more{font-size:var(--fs-sm);color:var(--ink-2)}
.gac-more summary{cursor:pointer;color:var(--ink-3);font-weight:var(--w-medium)}
.gac-more ul{margin:6px 0 0;padding:0 0 0 18px;line-height:1.5}
.gac-more li+li{margin-top:3px}
.gac-more b{color:var(--ink);font-weight:var(--w-medium)}
@media (max-width:720px){
  .gac-item{padding:10px 12px}
  .gac-rub{margin-left:34px}
  .gac-go{margin-left:0}
}

/* ── «Остатки и доставка»: размерная сетка и запас по размеру × складу (04.10,
   group_stock.js gstGridHtml/gstCoverHtml). Таблицы — те же table.gst-t со
   своей шириной (--gst-min), едут внутри .gst-scroll; кегли не ниже 12. */
.gst-sub-h{margin:0 0 4px;font-size:var(--fs-sm);color:var(--ink-2)}
table.gst-grid th:first-child,table.gst-cover th:first-child{width:110px;min-width:90px;max-width:160px;overflow-wrap:anywhere}
table.gst-t td.gst-tags{white-space:normal;text-align:left;min-width:120px}
table.gst-t .gst-szc{text-align:left}table.gst-t td.gst-szc{font-weight:var(--w-medium)}
table.gst-t tr.gst-ship td,table.gst-t tr.gst-ship th{background:var(--bad-faint)}
.gst-tag.info{background:var(--info-bg);color:var(--info)}
.gst-tag.warn{background:var(--warn-bg);color:var(--warn-ink)}
.gst-tag[data-tip]{cursor:help}
.gst-mk{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 10px;font-size:var(--fs-sm);color:var(--ink-2)}
.gst-mk-t{color:var(--ink-3)}
.gst-chip{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);font-size:var(--fs-xs)}
.gst-chip b{color:var(--ink);font-weight:var(--w-bold)}
.gst-rivals{display:flex;flex-direction:column;gap:6px;margin:0 0 10px}
.gst-more{border:1px solid var(--line);border-radius:var(--r-md);padding:6px 10px;font-size:var(--fs-sm);color:var(--ink-2);min-width:0}
.gst-more summary{cursor:pointer;color:var(--ink);font-weight:var(--w-medium);overflow-wrap:anywhere}
.gst-more summary .gst-sub{display:inline;margin-left:8px}
.gst-more[open] summary{margin-bottom:8px}
.gst-more-off{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:720px){
  .gst-more summary .gst-sub{display:block;margin-left:0;white-space:normal}
}

/* ── Ключи группы: «Что делать с запросами», место × конверсия (04.10) ──
   group_keys.js gqqDraw. Четыре карточки 2×2, на телефоне в столбик. */
.gqq-host{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.gqq-t{font-weight:var(--w-bold);font-size:var(--fs-base);margin-bottom:4px}
.gqq-how{font-size:var(--fs-sm);color:var(--ink-3);line-height:1.5;margin-bottom:10px}
.gqq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.gqq-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;min-width:0;border-top:3px solid var(--mute-3)}
.gqq-card.good{border-top-color:var(--good)}.gqq-card.bad{border-top-color:var(--bad)}.gqq-card.accent{border-top-color:var(--accent)}
.gqq-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.gqq-h b{font-weight:var(--w-bold)}
.gqq-n{font-size:var(--fs-xl);font-weight:var(--w-bold);font-variant-numeric:tabular-nums}
.gqq-card.good .gqq-n{color:var(--good)}.gqq-card.bad .gqq-n{color:var(--bad)}.gqq-card.accent .gqq-n{color:var(--accent)}.gqq-card.mid .gqq-n{color:var(--mute)}
.gqq-act{font-size:var(--fs-sm);color:var(--ink-3);margin-bottom:6px}
.gqq-sum{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--accent);margin-bottom:6px}
.gqq-sum i,.gqq-pot i{font-style:normal;font-weight:var(--w-regular);font-size:var(--fs-xs);color:var(--mute);margin-left:4px}
.gqq-l{list-style:none;margin:0;padding:0}
.gqq-i{padding:6px 0;border-top:1px solid var(--surface-3);font-size:var(--fs-sm);line-height:1.4;min-width:0}
.gqq-qt{font-weight:var(--w-medium);overflow-wrap:anywhere}
.gqq-i .wbq{margin-left:6px}
.gqq-pot{display:inline-block;margin-left:6px;padding:0 8px;border-radius:999px;background:var(--accent-bg);color:var(--accent-deep);font-size:var(--fs-xs);font-weight:var(--w-medium);white-space:nowrap}
.gqq-pot.na{background:var(--surface-3);color:var(--mute);font-weight:var(--w-regular)}
.gqq-nums{display:block;font-size:var(--fs-xs);color:var(--mute);font-variant-numeric:tabular-nums}
.gqq-empty{font-size:var(--fs-sm);color:var(--mute);padding:6px 0}
.gqq-more{margin-top:6px}
.gqq-few{margin-top:10px;font-size:var(--fs-sm);color:var(--ink-3)}
.gqq-few summary{cursor:pointer;color:var(--mute)}
.gqq-few ul{margin:6px 0 0;padding-left:18px;line-height:1.5}
@media (max-width:720px){
  .gqq-grid{grid-template-columns:minmax(0,1fr)}
}

/* ── Группа: «Что дали правки карточек» (05.10) ──
   group_edits.js. Префикс ged-; своя таблица с min-width:0 — глобальный
   table{min-width:1180px} её не растягивает, на 390px таблица в своей прокрутке. */
.ged-note{font-size:var(--fs-sm);color:var(--mute);padding:6px 0}
.ged-warn{color:var(--bad)}
.ged-mean{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);margin-bottom:12px}
.ged-mean-h{font-weight:var(--w-bold);margin-bottom:4px}
.ged-mean p{margin:4px 0;font-size:var(--fs-sm);line-height:1.5;overflow-wrap:anywhere}
.ged-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.ged-item{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);min-width:0}
.ged-item.own{border-color:var(--accent-line)}
.ged-top{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-width:0}
.ged-top .ph-pair{margin-left:0}
.ged-d{font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:var(--fs-sm)}
.ged-who{font-weight:var(--w-bold);overflow-wrap:anywhere}
.ged-nm{font-size:var(--fs-xs);color:var(--mute)}
.ged-what{font-size:var(--fs-xs);padding:0 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-3)}
.ged-texts{margin:6px 0;padding-left:18px;font-size:var(--fs-sm);line-height:1.45;color:var(--ink-3)}
.ged-texts li{overflow-wrap:anywhere}
.ged-v{font-weight:var(--w-medium);font-size:var(--fs-sm);margin:4px 0}
.ged-good{color:var(--good)}.ged-bad{color:var(--bad)}.ged-mid{color:var(--ink-3)}.ged-wait{color:var(--mute)}
.ged-est{display:inline-block;margin-left:6px;padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--mute);font-size:var(--fs-xs);font-weight:var(--w-regular);cursor:help}
.ged-mix{font-size:var(--fs-xs);color:var(--warn);margin:2px 0 4px}
.ged-tw{max-width:100%;overflow-x:auto}
.ged-t{min-width:0;width:auto;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
.ged-t,.ged-t thead,.ged-t tr,.ged-t th,.ged-t td{background:transparent}
.ged-t th,.ged-t td{padding:3px 10px 3px 0;text-align:right;white-space:nowrap;border:0;position:static}
.ged-t thead th{font-weight:var(--w-regular);color:var(--mute);font-size:var(--fs-xs)}
.ged-t tbody th{text-align:left;font-weight:var(--w-regular);color:var(--ink-3)}
.ged-r.ged-main th,.ged-r.ged-main td{font-weight:var(--w-bold);color:var(--ink)}
.ged-sub{font-size:var(--fs-xs);color:var(--mute);margin-top:4px}

/* ── Группа: «Растущий спрос без вас» (group_rising.js, 05.10) ──────────────
   Префикс grz-. Глобальный table{min-width:1180px} перебит своим min-width;
   на телефоне таблица едет внутри .grz-scroll, страница вбок не уезжает. */
.grz-part+.grz-part{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}
.grz-h{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 6px;font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink)}
.grz-note{margin:0 0 10px;color:var(--ink-3);font-size:var(--fs-sm);line-height:1.45;overflow-wrap:anywhere}
.grz-note.grz-warn{color:var(--bad-ink);background:var(--bad-bg);padding:8px 12px;border-radius:var(--r-md)}
.grz-empty{margin:0 0 10px;padding:10px 12px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-sm);line-height:1.45}
.grz-est{font-size:var(--fs-xs);font-weight:var(--w-medium);padding:1px 8px;border-radius:999px;background:var(--surface-3);color:var(--ink-2);cursor:help;white-space:nowrap}
.grz-scroll{overflow-x:auto;max-width:100%;margin:0 0 10px;-webkit-overflow-scrolling:touch}
table.grz-t{width:100%;min-width:860px;table-layout:auto;border-collapse:separate;border-spacing:0;font-size:var(--fs-sm)}
table.grz-t th,table.grz-t td{padding:8px 10px;border-bottom:1px solid var(--surface-3);vertical-align:top;text-align:right;color:var(--ink);font-variant-numeric:tabular-nums}
table.grz-t thead th{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--ink-3);vertical-align:bottom;background:var(--card)}
table.grz-t thead th[data-tip]{cursor:help}
table.grz-t th:first-child{position:sticky;left:0;z-index:1;background:var(--card);text-align:left;min-width:150px;max-width:230px}
table.grz-t tbody th{font-weight:var(--w-medium);color:var(--ink)}
table.grz-t tbody td{white-space:nowrap}
table.grz-t td.grz-who,table.grz-t td.grz-miss{text-align:left;white-space:normal;min-width:140px}
.grz-q{display:block;overflow-wrap:anywhere}
.grz-sub{display:block;font-size:var(--fs-xs);color:var(--ink-3);font-weight:var(--w-regular,400)}
.grz-pl{display:block;overflow-wrap:anywhere}
.grz-up{color:var(--ink-2);font-size:var(--fs-xs)}
.grz-bad{color:var(--bad)}
.grz-nd{font-size:var(--fs-xs);color:var(--ink-3)}
.grz-ok{font-size:var(--fs-xs);color:var(--ink-2)}
.grz-w{display:inline-block;margin:0 4px 2px 0;padding:0 8px;border-radius:999px;background:var(--bad-bg);color:var(--bad-ink);font-size:var(--fs-xs)}
.grz-mean{margin:4px 0 0;padding:10px 12px;border:1px solid var(--warn-line);border-radius:var(--r-md);background:var(--warn-faint)}
.grz-mean-t{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);margin-bottom:4px}
.grz-mean ul{margin:0;padding:0 0 0 18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.grz-mean li{overflow-wrap:anywhere}
.grz-mean li+li{margin-top:3px}

/* ── Группа: «Рейтинг: сколько до шага» (group_rating.js, 05.10). Свои классы grt-,
   плитки переносятся — на 390px без переполнения. */
.grt-wait,.grt-none{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.grt-none b{color:var(--ink)}
.grt-facts{background:var(--accent-faint);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:10px 14px;margin-bottom:10px}
.grt-ft{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:4px;color:var(--ink)}
.grt-facts ul{margin:0;padding-left:18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.grt-list{display:flex;flex-direction:column;gap:10px}
.grt-card{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;background:var(--card);min-width:0}
.grt-card.own{box-shadow:inset 3px 0 0 var(--accent)}
.grt-h{display:flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;margin-bottom:8px;min-width:0}
.grt-h img,.grt-h .ph{width:24px;height:32px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none}
.grt-h b{font-weight:var(--w-medium);margin-right:6px;overflow-wrap:anywhere}
.grt-own-l{color:var(--accent)}
.grt-nm{color:var(--mute);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.grt-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.grt-tile{background:var(--surface-2);border-radius:var(--r-sm);padding:8px 10px;min-width:0;font-variant-numeric:tabular-nums}
.grt-tile b{display:block;font-size:var(--fs-lg);font-weight:var(--w-bold);color:var(--ink)}
.grt-tile.grt-bad{background:var(--bad-bg)}
.grt-tile.grt-bad b{color:var(--bad-ink)}
.grt-l{display:block;font-size:var(--fs-xs);color:var(--ink-3)}
.grt-s{display:block;font-size:var(--fs-xs);color:var(--ink-3);overflow-wrap:anywhere}
.grt-nd{display:block;font-size:var(--fs-xs);color:var(--ink-3)}
.grt-est{display:inline-block;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium)}
.grt-flag{display:inline-block;margin-top:4px;padding:0 6px;border-radius:999px;background:var(--card);color:var(--bad-ink);font-size:var(--fs-xs);font-weight:var(--w-medium)}
.grt-note{margin-top:6px;font-size:var(--fs-xs);color:var(--ink-3);line-height:1.4}
.grt-note:empty{display:none}

/* ── Переключатель кабинетов в шапке (этап 5, 05.10): виден, только когда
   у человека больше одного кабинета. Меню — как у профиля. ── */
.cab[hidden]{display:none}
.cab{position:relative}
.cab-btn{display:flex;align-items:center;gap:6px;height:38px;max-width:220px;padding:0 10px;border:none;border-radius:var(--r-md);background:var(--surface-3);cursor:pointer;font-weight:var(--w-medium);font-size:var(--fs-sm);color:var(--ink)}
.cab-btn:hover{background:var(--hover)}
.cab-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cab-menu{position:absolute;right:0;top:46px;width:300px;max-height:60vh;overflow:auto;background:var(--card);border-radius:var(--r-lg);box-shadow:0 16px 48px rgba(0,0,0,.16);padding:6px;z-index:61}
.cab-it{display:grid;grid-template-columns:1fr auto;gap:0 8px;width:100%;text-align:left;padding:9px 10px;border:none;border-radius:var(--r-md);background:transparent;color:var(--ink);cursor:pointer;font-size:var(--fs-md)}
.cab-it:hover{background:var(--hover)}.cab-it.on{background:var(--accent-bg)}
.cab-it-n{font-weight:var(--w-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cab-it-id{grid-column:1;color:var(--mute);font-size:var(--fs-xs)}
.cab-on{grid-column:2;grid-row:1 / span 2;align-self:center;font-style:normal;color:var(--accent)}
html[data-theme=dark] .cab-menu{background:#221e2d;border:1px solid var(--line-2);box-shadow:0 18px 50px rgba(0,0,0,.5)}
@media (max-width: 720px){
  .cab-btn{max-width:150px;height:44px}
  html[data-theme] .top .cab-btn{max-width:60px;width:60px;padding:0 4px;justify-content:center;font-size:10px;border-radius:14px}
  html[data-theme] .top .cab-btn .who-chev{display:none}
  .cab-menu,html[data-theme] .top .cab-menu{position:fixed;top:auto;bottom:0;left:0;right:0;width:auto;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:72vh;padding-bottom:calc(10px + env(safe-area-inset-bottom));z-index:96}
  .top:has(.cab-menu:not([hidden])){z-index:95}
}

/* ── Группа: «Кто у кого забирает заказы» (group_shift.js, 08.10). Префикс gsh-,
   без таблиц: плитки и строки переносятся, на 390px без переполнения. */
.gsh-h{margin:0 0 6px;font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink)}
.gsh-h+.gsh-cards,.gsh-cards{margin-bottom:14px}
.gsh-note{margin:0 0 10px;color:var(--ink-3);font-size:var(--fs-sm);line-height:1.45;overflow-wrap:anywhere}
.gsh-note.gsh-warn{color:var(--bad-ink);background:var(--bad-bg);padding:8px 12px;border-radius:var(--r-md)}
.gsh-empty{margin:0 0 10px;padding:10px 12px;border-radius:var(--r-md);background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-sm);line-height:1.45;overflow-wrap:anywhere}
.gsh-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.gsh-card{background:var(--surface-2);border-radius:var(--r-sm);padding:8px 10px;min-width:0;font-variant-numeric:tabular-nums}
.gsh-card.own{box-shadow:inset 3px 0 0 var(--accent)}
.gsh-n{display:block;font-weight:var(--w-medium);color:var(--ink);overflow-wrap:anywhere}
.gsh-nm{display:block;font-size:var(--fs-xs);color:var(--ink-3)}
.gsh-v{margin-top:4px;min-width:0}
.gsh-v b{display:block;font-size:var(--fs-lg);font-weight:var(--w-bold);color:var(--ink)}
.gsh-s{display:block;font-size:var(--fs-xs);color:var(--ink-3);overflow-wrap:anywhere}
.gsh-nd{display:block;font-size:var(--fs-xs);color:var(--ink-3)}
.gsh-ok{font-size:var(--fs-sm);color:var(--ink-2)}
.gsh-bad{color:var(--bad-ink)}
.gsh-est{display:inline-block;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);cursor:help}
.gsh-pairs{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.gsh-pair{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px;background:var(--card);min-width:0}
.gsh-pair.gsh-link{border-color:var(--bad-ink)}
.gsh-pw{font-weight:var(--w-medium);color:var(--ink);overflow-wrap:anywhere}
.gsh-pv{font-size:var(--fs-sm);line-height:1.45;overflow-wrap:anywhere}
.gsh-eps{margin:4px 0 0;padding:0 0 0 18px;font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2)}
.gsh-eps li{overflow-wrap:anywhere}
.gsh-mean{margin:4px 0 0;padding:10px 12px;border:1px solid var(--warn-line);border-radius:var(--r-md);background:var(--warn-faint)}
.gsh-mean-t{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);margin-bottom:4px}
.gsh-mean ul{margin:0;padding:0 0 0 18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.gsh-mean li{overflow-wrap:anywhere}
.gsh-mean li+li{margin-top:3px}

/* ── Группа: «Дни недели» (group_weekday.js, 08.10). Свои классы gwd-, сетка
   вместо table (глобальный min-width), на 390px имя карточки — над днями. */
.gwd-wait,.gwd-none{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.gwd-none b{color:var(--ink)}
.gwd-facts{background:var(--accent-faint);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:10px 14px;margin-bottom:10px}
.gwd-ft{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:4px;color:var(--ink)}
.gwd-facts ul{margin:0;padding-left:18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.gwd-est-l{font-size:var(--fs-sm);color:var(--ink-2);margin-bottom:8px}
.gwd-est{display:inline-block;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);cursor:help}
.gwd-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:6px}
.gwd-chip{border:1px solid var(--line);background:var(--card);color:var(--ink-2);border-radius:999px;padding:4px 12px;font-size:var(--fs-sm);cursor:pointer}
.gwd-chip.on{background:var(--accent-bg);color:var(--ink);border-color:var(--accent-line);font-weight:var(--w-medium)}
.gwd-cap{font-size:var(--fs-xs);color:var(--ink-3);margin-bottom:6px}
.gwd-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.gwd-r{display:grid;grid-template-columns:minmax(0,1.6fr) repeat(7,minmax(0,1fr));gap:4px;align-items:center;padding:6px 4px;border-bottom:1px solid var(--line);min-width:0}
.gwd-r.own{box-shadow:inset 3px 0 0 var(--accent)}
.gwd-r.grp{background:var(--surface-2);border-radius:var(--r-sm)}
.gwd-hd{font-size:var(--fs-xs);color:var(--ink-3);border-bottom:none}
.gwd-who{display:flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;min-width:0;font-size:var(--fs-sm)}
.gwd-who img,.gwd-who .ph{width:20px;height:27px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none}
.gwd-who b{font-weight:var(--w-medium);margin-right:4px;overflow-wrap:anywhere}
.gwd-own-l{color:var(--accent)}
.gwd-nm{color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.gwd-c{display:flex;flex-direction:column;align-items:center;min-width:0;font-size:var(--fs-xs);color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:center}
.gwd-c.we{color:var(--ink)}
.gwd-c.mk .gwd-v{font-weight:var(--w-bold);color:var(--ink)}
.gwd-bx{display:block;height:30px;width:100%;position:relative}
.gwd-bx::after{content:"";position:absolute;left:20%;right:20%;top:15px;border-top:1px solid var(--line)}
.gwd-bar{display:block;width:10px;border-radius:2px;position:absolute;left:50%;transform:translateX(-50%)}
.gwd-bar.up{bottom:15px;background:var(--accent)}
.gwd-bar.dn{top:16px;background:var(--bad-ink)}
.gwd-v{white-space:nowrap}
.gwd-sd{color:var(--ink-3);font-size:var(--fs-xs);white-space:nowrap}
.gwd-msg{grid-column:2 / -1;font-size:var(--fs-xs);color:var(--ink-3)}
@media (max-width: 560px){
  .gwd-r{grid-template-columns:repeat(7,minmax(0,1fr))}
  .gwd-r .gwd-who{grid-column:1 / -1}
  .gwd-hd .gwd-who{display:none}
  .gwd-msg{grid-column:1 / -1}
}

/* ── Группа: «Прогноз заказов на 2–4 недели с вилкой» (group_forecast.js, 08.10).
   Свои классы gfc-, плитки и строки размеров переносятся — на 390px без переполнения. */
.gfc-wait,.gfc-none{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.gfc-none b{color:var(--ink)}
.gfc-facts{background:var(--accent-faint);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:10px 14px;margin-bottom:10px}
.gfc-ft{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:4px;color:var(--ink)}
.gfc-facts ul{margin:0;padding-left:18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.gfc-facts li{overflow-wrap:anywhere}
.gfc-list{display:flex;flex-direction:column;gap:10px}
.gfc-card{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;background:var(--card);min-width:0}
.gfc-card.own{box-shadow:inset 3px 0 0 var(--accent)}
.gfc-h{display:flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;margin-bottom:8px;min-width:0}
.gfc-h img,.gfc-h .ph{width:24px;height:32px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none}
.gfc-h b{font-weight:var(--w-medium);margin-right:6px;overflow-wrap:anywhere}
.gfc-own-l{color:var(--accent)}
.gfc-nm{color:var(--mute);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.gfc-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
.gfc-tile{background:var(--surface-2);border-radius:var(--r-sm);padding:8px 10px;min-width:0;font-variant-numeric:tabular-nums}
.gfc-tile b{display:block;font-size:var(--fs-lg);font-weight:var(--w-bold);color:var(--ink)}
.gfc-l{display:block;font-size:var(--fs-xs);color:var(--ink-3)}
.gfc-s{display:block;font-size:var(--fs-xs);color:var(--ink-3);overflow-wrap:anywhere}
.gfc-nd{display:block;font-size:var(--fs-xs);color:var(--ink-3);margin-top:6px}
.gfc-est{display:inline-block;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium)}
.gfc-sizes{display:flex;flex-direction:column;gap:4px;margin-top:10px;min-width:0}
.gfc-row{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,.8fr) minmax(0,1.2fr) minmax(0,1.4fr);gap:6px;padding:6px 8px;border-radius:var(--r-sm);background:var(--surface-2);font-size:var(--fs-sm);color:var(--ink-2);font-variant-numeric:tabular-nums;min-width:0}
.gfc-row>span{min-width:0;overflow-wrap:anywhere}
.gfc-head{background:transparent;color:var(--ink-3);font-size:var(--fs-xs);padding-top:0;padding-bottom:0}
.gfc-sz{font-weight:var(--w-medium);color:var(--ink)}
.gfc-row.gfc-bad{background:var(--bad-bg)}
.gfc-row.gfc-bad .gfc-when{color:var(--bad-ink);font-weight:var(--w-medium)}
.gfc-row.gfc-warn .gfc-when{color:var(--warn-ink);font-weight:var(--w-medium)}
.gfc-note{margin-top:6px;font-size:var(--fs-xs);color:var(--ink-3);line-height:1.4}

/* ── Группа: «Карточка против лидера» (group_checklist.js, 08.10). Свои классы gcl-,
   без table: глобальный table{min-width:1180px} растянул бы блок на телефоне. */
.gcl-wait,.gcl-none{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.gcl-none b{color:var(--ink)}
.gcl-facts{background:var(--accent-faint);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:10px 14px;margin-bottom:10px}
.gcl-ft{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:4px;color:var(--ink)}
.gcl-facts ul{margin:0;padding-left:18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2);overflow-wrap:anywhere}
.gcl-lead{display:flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;margin-bottom:10px;min-width:0;font-size:var(--fs-sm);overflow-wrap:anywhere}
.gcl-lead img,.gcl-lead .ph{width:24px;height:32px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none}
.gcl-lead b{font-weight:var(--w-medium)}
.gcl-nm{color:var(--ink-3);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
.gcl-s{color:var(--ink-3);font-size:var(--fs-xs)}
.gcl-list{display:flex;flex-direction:column;gap:8px}
.gcl-row{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px;background:var(--card);min-width:0;box-shadow:inset 3px 0 0 var(--line-2)}
.gcl-row.gcl-red{box-shadow:inset 3px 0 0 var(--bad)}
.gcl-row.gcl-yellow{box-shadow:inset 3px 0 0 var(--warn)}
.gcl-row.gcl-green{box-shadow:inset 3px 0 0 var(--good)}
.gcl-name{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.gcl-name b{font-weight:var(--w-medium);color:var(--ink);overflow-wrap:anywhere}
.gcl-chip{display:inline-block;padding:0 8px;border-radius:999px;font-size:var(--fs-xs);font-weight:var(--w-medium);background:var(--surface-3);color:var(--ink-3)}
.gcl-red .gcl-chip{background:var(--bad-bg);color:var(--bad-ink)}
.gcl-yellow .gcl-chip{background:var(--warn-bg);color:var(--warn-ink)}
.gcl-green .gcl-chip{background:var(--good-bg);color:var(--ink)}
.gcl-gap{font-size:var(--fs-xs);font-weight:var(--w-bold);color:var(--ink-2);font-variant-numeric:tabular-nums}
.gcl-cells{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:6px;font-variant-numeric:tabular-nums}
.gcl-cells span{background:var(--surface-2);border-radius:var(--r-sm);padding:4px 8px;min-width:0;font-weight:var(--w-bold);color:var(--ink);overflow-wrap:anywhere}
.gcl-cells i{display:block;font-style:normal;font-weight:var(--w-regular,400);font-size:var(--fs-xs);color:var(--ink-3)}
.gcl-todo{margin-top:6px;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.45;overflow-wrap:anywhere}
.gcl-note{margin-top:8px;font-size:var(--fs-xs);color:var(--ink-3)}

/* ── Группа: «Радар необычных дней» (group_radar.js, 08.10). Свои классы grd-,
   min-width:0, без backdrop-filter. ── */
.grd-wait,.grd-none,.grd-sub{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.grd-facts{background:var(--accent-faint);border:1px solid var(--accent-line);border-radius:var(--r-md);padding:10px 14px;margin-bottom:10px;min-width:0}
.grd-ft{font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:4px;color:var(--ink)}
.grd-facts ul,.grd-few{margin:0;padding-left:18px;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2);overflow-wrap:anywhere}
.grd-few{margin-top:8px;font-size:var(--fs-xs);color:var(--ink-3)}
.grd-list{display:flex;flex-direction:column;gap:8px;min-width:0}
.grd-row{border:1px solid var(--line);border-radius:var(--r-md);padding:8px 12px;background:var(--card);min-width:0;font-variant-numeric:tabular-nums}
.grd-row.grd-bad{background:var(--bad-faint);border-color:var(--bad-line)}
.grd-row.grd-good{background:var(--good-faint);border-color:var(--good-line)}
.grd-row.grd-mkt{background:var(--surface-2)}
.grd-row.own{box-shadow:inset 3px 0 0 var(--accent)}
.grd-top{display:flex;align-items:center;gap:10px;min-width:0;flex-wrap:wrap}
.grd-date{font-weight:var(--w-bold);color:var(--ink)}
.grd-h{display:flex;align-items:center;gap:6px;color:var(--ink);text-decoration:none;min-width:0}
.grd-h img,.grd-h .ph{width:20px;height:26px;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);flex:none}
.grd-h b{font-weight:var(--w-medium);overflow-wrap:anywhere}
.grd-own-l{color:var(--accent)}
.grd-nm{color:var(--ink-3);font-size:var(--fs-xs)}
.grd-what{margin-top:4px;font-size:var(--fs-sm);color:var(--ink);line-height:1.45;overflow-wrap:anywhere}
.grd-what b{font-weight:var(--w-bold)}
.grd-z{display:inline-block;padding:0 6px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-xs)}
.grd-why{margin-top:2px;font-size:var(--fs-xs);color:var(--ink-2);line-height:1.4;overflow-wrap:anywhere}
.grd-nowhy{color:var(--ink-3)}
.grd-flag{display:inline-block;margin-top:4px;padding:0 6px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);overflow-wrap:anywhere;max-width:100%}
/* «Что сделать»: факт → вывод → сделать (08.10). Подписи слева колонкой,
   уверенность — цветом номера. */
.gac-n.gac-c-high{background:color-mix(in srgb,var(--good) 30%,transparent)}
.gac-n.gac-c-medium{background:color-mix(in srgb,var(--warn) 35%,transparent)}
.gac-n.gac-c-low{background:var(--surface-3)}
.gac-rows{display:grid;grid-template-columns:72px minmax(0,1fr);gap:4px 12px;margin:8px 0 0;font-size:var(--fs-sm);line-height:1.45}
.gac-rows dt{color:var(--ink-3);font-weight:var(--w-medium)}
.gac-rows dd{margin:0;color:var(--ink-2);overflow-wrap:anywhere}
.gac-rows dd .gac-go{margin-left:6px}
@media (max-width:480px){.gac-rows{grid-template-columns:1fr;gap:0 0}.gac-rows dt{margin-top:6px}}

/* Подсказка по строкам (08.10): заголовок жирно, части — строками, воздух между. */
.tip{padding:10px 14px;line-height:1.45;max-width:360px}
.tip .tip-h{display:block;font-weight:var(--w-bold);margin-bottom:4px}
.tip .tip-l{overflow-wrap:break-word}
.tip .tip-l + .tip-l{margin-top:3px}
/* «За счёт чего»: без знаков формулы и ползунков, причина — отдельной меткой (08.10) */
.ig-why{display:inline-block;margin-top:4px;padding:2px 8px;border-radius:var(--r-sm);background:var(--surface-3);color:var(--ink-2);font-weight:var(--w-medium)}
.ig-why.up{background:var(--good-bg);color:var(--good)}
.ig-why.dn{background:var(--bad-bg);color:var(--bad)}
/* было → стало в клетке (08.10): было приглушено и тоньше */
table.ig-t td.ig-v b .ig-was{color:var(--mute);font-weight:var(--w-regular,400)}
/* «Что это значит для вас» плитками (08.10) */
.gsn-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin-top:6px}
.gsn-tile{padding:10px 12px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line)}
.gsn-tile p{margin:0}
.gsn-tile-h{font-size:var(--fs-sm);color:var(--mute);font-weight:var(--w-medium)}
.gsn-vs{display:flex;gap:24px;margin-top:6px}
.gsn-vs span{display:flex;flex-direction:column}
.gsn-vs small{font-size:var(--fs-xs);color:var(--mute)}
.gsn-vs b{font-size:var(--fs-lg,18px);font-weight:var(--w-bold);color:var(--ink)}
.gsn-res{margin-top:8px;font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--bad)}
.gsn-why{margin-top:2px;font-size:var(--fs-xs);color:var(--mute)}
/* «было → стало» под графиком (08.10): компактно, числа колонками рядом с названием */
.gs-was{max-width:620px}
.gs-was-v b{display:inline-block;min-width:64px;text-align:right}
.gs-was-v .ig-d{min-width:52px}
.gsn-hov{fill:transparent;cursor:crosshair}.gsn-hov:hover{fill:color-mix(in srgb,var(--ink) 10%,transparent)}
.gsn-tile-n p{color:var(--mute);font-size:var(--fs-sm)}
.gsn-res{color:var(--ink)}.gsn-res.bad{color:var(--bad)}.gsn-res.good{color:var(--good)}
.gq-lag-t{width:100%;margin-top:6px}
.gq-lag-t td,.gq-lag-t th{padding:6px 8px}
.gq-lag-t td.l{font-weight:var(--w-medium);color:var(--ink)}
.gq-lag-t .gq-me{color:var(--bad);font-weight:var(--w-bold)}
.gq-lag-t .gq-gap{color:var(--bad)}
/* series/search/showcase/reviews/rating/edits — общее: чистая таблица и плитки выводов, читаемый вид 08.10 */
.rd8-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
table.rd8-t{display:table;width:100%;min-width:0;table-layout:auto;border-collapse:collapse;font-size:var(--fs-sm);margin-top:4px}
table.rd8-t th{cursor:default;white-space:normal;text-align:right;font-weight:var(--w-medium);font-size:var(--fs-xs);color:var(--mute);padding:6px 10px;line-height:1.25;background:transparent;border-bottom:1px solid var(--line);vertical-align:bottom}
table.rd8-t td{padding:8px 10px;text-align:right;vertical-align:top;color:var(--ink);border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;line-height:1.35}
table.rd8-t tbody tr:last-child td{border-bottom:none}
table.rd8-t th.l,table.rd8-t td.l{text-align:left}
table.rd8-t td b{font-weight:var(--w-bold);color:var(--ink)}
table.rd8-t td small{display:block;font-size:var(--fs-xs);color:var(--mute);font-weight:var(--w-regular,400);margin-top:2px;line-height:1.3;overflow-wrap:anywhere}
table.rd8-t tr.own td{background:var(--accent-faint)}
table.rd8-t tr.own td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
table.rd8-t tr.off td{color:var(--mute)}
.rd8-was{color:var(--mute);font-weight:var(--w-regular,400);white-space:nowrap}
table.rd8-t td small.rd8-up,.rd8-up{color:var(--good);font-weight:var(--w-medium)}
table.rd8-t td small.rd8-dn,.rd8-dn{color:var(--bad);font-weight:var(--w-medium)}
.rd8-mean{margin-top:12px}
.rd8-mean-h{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);margin-bottom:6px}
.rd8-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}
.rd8-tile{padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);font-size:var(--fs-sm);line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.rd8-tile b{font-weight:var(--w-bold)}
@media (max-width:560px){
  table.rd8-t th,table.rd8-t td{padding:7px 6px}
  .rd8-tiles{grid-template-columns:minmax(0,1fr)}
}
/* search — читаемый вид 08.10 */
.gsr-h .q{margin-left:2px}
.gsr-sec{padding:6px 0 16px}
.gsr-sec+.gsr-sec{padding-top:16px}
.gsr-line{margin:2px 0 6px}
.gsr-who{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;min-width:0;flex-wrap:wrap}
.gsr-who b{white-space:normal}
table.rd8-t td.gsr-nd{text-align:right;color:var(--mute);font-size:var(--fs-sm)}
table.rd8-t .gsr-q{font-weight:var(--w-medium);overflow-wrap:anywhere}
table.rd8-t td.gsr-gap b{color:var(--bad)}
table.rd8-t.gsr-vis th:not(.l),table.rd8-t.gsr-cov th:not(.l){width:28%}
.gsr-more-b{margin-top:8px}
@media (max-width:560px){
  table.rd8-t.gsr-vis th:not(.l),table.rd8-t.gsr-cov th:not(.l){width:auto}
}
/* rating — читаемый вид 08.10 */
.grt-facts.rd8-mean{background:none;border:none;padding:0;margin:0 0 12px}
.grt-list{display:block}
table.grt-t tr.grt-card{border:none;padding:0;background:none;box-shadow:none}
table.grt-t td.l{min-width:120px}
table.grt-t .grt-h{margin:0;align-items:flex-start}
table.grt-t .grt-h span{display:flex;flex-direction:column;min-width:0}
table.grt-t .grt-h b{margin:0}
table.grt-t td b.grt-big{font-size:var(--fs-lg)}
table.grt-t td.grt-bad b{color:var(--bad)}
table.grt-t td small.grt-s{color:var(--ink-3)}
table.grt-t td:nth-child(3) small,table.grt-t td:nth-child(4) small{white-space:nowrap}
table.grt-t td.grt-nd,table.grt-t .grt-nd{display:block;font-size:var(--fs-sm);color:var(--ink-3)}
table.grt-t td.grt-nd{display:table-cell}
table.grt-t .grt-flag{background:var(--bad-bg);color:var(--bad-ink)}
table.grt-t .grt-nm{color:var(--ink-3)}
.grt-note{margin-top:8px;font-size:var(--fs-sm);color:var(--ink-3)}
@media (max-width:560px){
  table.grt-t{min-width:560px}
  table.grt-t td.l,table.grt-t th.l{position:sticky;left:0;z-index:1;background:var(--card)}
  table.grt-t tr.own td.l{background:var(--accent-faint)}
}
/* edits — читаемый вид 08.10 */
.ged-empty p{margin:2px 0;font-size:var(--fs-sm);line-height:1.5;color:var(--ink-2)}
.ged-mean.rd8-mean{padding:0;border:none;background:none;margin:0 0 12px}
.ged-item{background:var(--card)}
.ged-item.own{box-shadow:inset 3px 0 0 var(--accent)}
.ged-texts{margin:6px 0 4px}
.ged-v{font-size:var(--fs-md);margin:6px 0 2px}
.ged-v.ged-good,.ged-v.ged-bad{color:var(--ink);padding-left:8px;border-left:3px solid var(--good)}
.ged-v.ged-bad{border-left-color:var(--bad)}
.ged-main-n{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.ged-main-l{font-size:var(--fs-sm);color:var(--ink-3)}
.ged-main-v b{font-size:var(--fs-lg);font-weight:var(--w-bold);color:var(--ink)}
.ged-main-d{flex-basis:100%;font-size:var(--fs-sm);color:var(--ink-3)}
.ged-more .ged-sub{color:var(--ink-3);font-size:var(--fs-sm)}
.ged-more{margin-top:6px}
.ged-more summary{cursor:pointer;font-size:var(--fs-sm);color:var(--accent);font-weight:var(--w-medium)}
table.rd8-t.ged-t{width:100%;max-width:520px}
table.rd8-t.ged-t td,table.rd8-t.ged-t th{white-space:normal;position:static}
table.rd8-t.ged-t tr.ged-main td{background:var(--surface-2)}
/* reviews — читаемый вид 08.10 */
.grv-facts.rd8-mean{background:none;border:none;padding:0;margin:0 0 12px}
.grv-notes{color:var(--ink-3)}
td.grv-c .grv-was{display:inline;font-size:var(--fs-sm);color:var(--ink-3);font-weight:var(--w-regular,400);white-space:nowrap}
td.grv-c.grv-hi .grv-was{color:var(--bad-ink)}
td.grv-c .grv-s{margin-top:2px;color:var(--ink-3)}
td.grv-c .grv-nd{font-size:var(--fs-sm);color:var(--ink-3)}
.grv-quiet{margin-top:10px;font-size:var(--fs-sm);color:var(--ink-3);line-height:1.45}
.grv-foot{font-size:var(--fs-sm)}
/* series — читаемый вид 08.10 */
.gs-was{max-width:520px}
.gs-was-h{cursor:help}
.gs-was-n{font-weight:var(--w-regular,400);color:var(--ink-3)}
table.gs-was-t tr.gs-was-r{display:table-row;padding:0;border-radius:0}
table.gs-was-t td{padding:6px 8px}
table.gs-was-t td.gs-was-v{display:table-cell;white-space:nowrap}
table.gs-was-t td.gs-was-v b{display:inline;min-width:0}
table.gs-was-t td.gs-was-v small.ig-d{display:block;min-width:0;text-align:right;font-size:var(--fs-xs)}
table.gs-was-t td.gs-was-v small.ig-d.ig-good{color:var(--good)}
table.gs-was-t td.gs-was-v small.ig-d.ig-bad{color:var(--bad)}
table.gs-was-t .gs-was-w{white-space:normal}
table.gs-was-t tr.na .gs-sw{background:var(--dim)!important}
/* showcase — читаемый вид 08.10 */
.gsc-facts.rd8-mean{margin:0 0 14px;padding:0;border:none}
.gsc-facts .rd8-tile b{color:var(--ink)}
.gsc-r .v b .rd8-was,.gsc-r .v .rd8-was{font-size:var(--fs-sm);font-weight:var(--w-regular,400);color:var(--ink-3)}
.gsc-r .w{display:flex;flex-wrap:wrap;gap:2px 8px;color:var(--ink-3)}
.gsc-r .w:empty{display:none}
.gsc-foot{cursor:help;color:var(--ink-3)}
details.gsc-chart{padding:10px 12px}
details.gsc-chart > summary{cursor:pointer;margin:0;color:var(--accent);list-style:revert}
details.gsc-chart[open] > summary{margin-bottom:8px}
.gsc-rv-n{display:flex;flex-direction:column;gap:2px}
.gsc-rv-n[data-tip]{cursor:help}
.gsc-rv-s{font-size:var(--fs-xs);color:var(--ink-3)}
.gsc-rv-s:empty{display:none}
.gsc-nw{white-space:nowrap}
/* плитки «Что это значит» (дни недели, прогноз, чек-лист, растущие, радар) — читаемый вид 08.10 */
:root{--rb-good:#11692f;--rb-bad:#b8222f}
html[data-theme=dark]{--rb-good:var(--good);--rb-bad:var(--bad)}
.gft,.gft.gwd-facts,.gft.gfc-facts,.gft.gcl-facts,.gft.grz-mean,.gft.grd-facts{margin:0 0 12px;padding:0;border:0;background:none}
.gft-t{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);margin-bottom:6px}
.gft-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}
.gft-tile{padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line);min-width:0;cursor:help}
.gft-tile p{margin:0;font-size:var(--fs-sm);line-height:1.45;color:var(--ink-2);overflow-wrap:anywhere}
.gft-n{cursor:default}
.gft-h{font-size:var(--fs-sm);color:var(--ink-3);font-weight:var(--w-medium);line-height:1.35;overflow-wrap:anywhere}
.gft-vs{display:flex;flex-wrap:wrap;gap:6px 20px;margin-top:6px;font-variant-numeric:tabular-nums}
.gft-vs span{display:flex;flex-direction:column;min-width:0}
.gft-vs small{font-size:var(--fs-xs);color:var(--ink-3);overflow-wrap:anywhere}
.gft-vs b{font-size:var(--fs-lg);font-weight:var(--w-bold);color:var(--ink);white-space:nowrap}
.gft-res{margin-top:6px;font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink);line-height:1.4;overflow-wrap:anywhere}
.gft-res.bad{color:var(--rb-bad)}
.gft-res.good{color:var(--rb-good)}
.gft-est{display:inline-block;margin-left:4px;padding:0 7px;border-radius:999px;background:var(--warn-bg);color:var(--warn-ink);font-size:var(--fs-xs);font-weight:var(--w-medium);cursor:help;vertical-align:1px}
/* дни недели — читаемый вид 08.10 */
.gwd-chips{margin-bottom:4px}
.gwd-cap{color:var(--ink-3);margin-bottom:4px}
.gwd-r{padding:7px 4px}
.gwd-c{font-size:var(--fs-sm);color:var(--ink-3)}
.gwd-c.we{color:var(--ink-3)}
.gwd-hd .gwd-c{font-size:var(--fs-xs)}
.gwd-hd .gwd-c.we{color:var(--ink);font-weight:var(--w-medium)}
.gwd-c[data-tip]{cursor:help}
.gwd-c.mk .gwd-v{font-weight:var(--w-bold)}
.gwd-c.mk.up .gwd-v{color:var(--rb-good)}
.gwd-c.mk.dn .gwd-v{color:var(--rb-bad)}
.gwd-r.grp{background:var(--surface-3)}
.gwd-r.grp .gwd-who{flex-direction:column;align-items:flex-start;gap:0}
/* прогноз — читаемый вид 08.10 */
.gfc-sub{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;margin:14px 0 4px;font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink)}
.gfc-cap{font-size:var(--fs-xs);font-weight:var(--w-regular,400);color:var(--ink-3);cursor:help}
table.gfc-t,table.gcl-t{min-width:0;table-layout:auto}
table.gfc-t th,table.gcl-t th{white-space:normal;background:transparent;cursor:default;line-height:1.25}
table.gfc-t{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
table.gfc-t th,table.gfc-t td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;color:var(--ink);vertical-align:middle}
table.gfc-t th{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--ink-3)}
table.gfc-t .l{text-align:left}
table.gfc-t td[data-tip]{cursor:help}
table.gfc-t td.gfc-nd{display:table-cell;margin:0;text-align:left;color:var(--ink-3);font-size:var(--fs-xs)}
.gfc-t .gfc-h{display:flex;align-items:center;gap:6px;margin:0;color:var(--ink);text-decoration:none;min-width:0}
.gfc-t .gfc-h img,.gfc-t .gfc-h .ph{width:20px;height:27px}
.gfc-t .gfc-h b{margin:0;font-weight:var(--w-medium);overflow-wrap:anywhere}
.gfc-szt .gfc-sz{font-weight:var(--w-bold)}
.gfc-szt tr.gfc-bad .gfc-when,.gfc-szt tr.gfc-bad .gfc-todo{color:var(--rb-bad);font-weight:var(--w-bold)}
.gfc-szt tr.gfc-warn .gfc-when,.gfc-szt tr.gfc-warn .gfc-todo{color:var(--warn-ink);font-weight:var(--w-medium)}
.gfc-szt .gfc-todo{white-space:normal}
.gfc-more{margin-top:6px}
.gfc-more>summary,.gcl-more>summary,.grd-more>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);padding:6px 0;overflow-wrap:anywhere}
.gfc-nd{color:var(--ink-3)}
/* карточка против лидера — читаемый вид 08.10 */
.gcl-lead{margin:0 0 6px}
.gcl-list{display:block}
table.gcl-t{width:100%;border-collapse:collapse;font-size:var(--fs-sm);font-variant-numeric:tabular-nums}
table.gcl-t th,table.gcl-t td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;color:var(--ink);vertical-align:middle}
table.gcl-t th{font-size:var(--fs-xs);font-weight:var(--w-medium);color:var(--ink-3)}
table.gcl-t th[data-tip],table.gcl-t tr[data-tip]{cursor:help}
table.gcl-t .l{text-align:left}
.gcl-t tr.gcl-row{border:0;border-radius:0;padding:0;background:none;box-shadow:none}
.gcl-t .gcl-name{font-weight:var(--w-medium);overflow-wrap:anywhere}
.gcl-lb{display:flex;align-items:center;min-width:0}
.gcl-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;margin-right:8px;background:var(--line-2)}
.gcl-red .gcl-dot{background:var(--bad)}
.gcl-yellow .gcl-dot{background:var(--warn)}
.gcl-green .gcl-dot{background:var(--good)}
.gcl-t .gcl-me{font-weight:var(--w-bold)}
.gcl-t .gcl-gap{font-weight:var(--w-bold);color:var(--ink-2)}
.gcl-red .gcl-gap{color:var(--rb-bad)}
.gcl-yellow .gcl-gap{color:var(--warn-ink)}
.gcl-more{margin-top:4px}
@media (max-width: 560px){
  table.gfc-t,table.gcl-t{table-layout:fixed;font-size:var(--fs-xs)}
  table.gfc-t th,table.gfc-t td,table.gcl-t th,table.gcl-t td{padding:6px 3px;overflow-wrap:anywhere}
  table.gfc-t th,table.gcl-t th{overflow-wrap:normal;padding:6px 2px}
  table.gfc-t th:first-child,table.gcl-t th:first-child{width:30%}
  table.gfc-szt th:first-child{width:16%}
  .gcl-dot{margin-right:4px;width:7px;height:7px}
}
/* растущий спрос — читаемый вид 08.10 */
table.grz-t{min-width:0;margin:0 0 8px}
table.grz-t th{white-space:normal;cursor:default;line-height:1.25}
table.grz-t tbody th{font-size:var(--fs-sm);color:var(--ink);background:transparent}
table.grz-t th:first-child{position:static;min-width:0;max-width:none}
table.grz-t td,table.grz-t tbody td{white-space:normal}
.grz-ft{display:block;white-space:nowrap}
.grz-up{display:block;color:var(--rb-good);font-size:var(--fs-xs);font-weight:var(--w-medium)}
table.grz-t td[data-tip]{cursor:help}
.grz-h .q{margin-left:0}
.grz-w{max-width:100%;overflow-wrap:anywhere}
@media (max-width: 720px){
  table.grz-t,table.grz-t tbody,table.grz-t tr,table.grz-t th,table.grz-t td{display:block;width:auto;text-align:left}
  table.grz-t thead{display:none}
  table.grz-t tr{padding:8px 0;border-bottom:1px solid var(--line)}
  table.grz-t th,table.grz-t td{padding:2px 0;border:0}
  table.grz-t tbody th{font-size:var(--fs-md);font-weight:var(--w-bold)}
  table.grz-t td{position:relative;padding-left:42%;min-height:1.4em}
  table.grz-t td::before{content:attr(data-l);position:absolute;left:0;top:3px;width:40%;font-size:var(--fs-xs);color:var(--ink-3);line-height:1.3}
  .grz-ft,.grz-up{display:inline;margin-right:6px}
}
/* радар — читаемый вид 08.10 */
.grd-list{display:flex;flex-direction:column;gap:0}
.grd-r{display:grid;grid-template-columns:52px minmax(0,150px) minmax(0,1.3fr) minmax(0,1fr);gap:4px 12px;align-items:start;padding:8px 4px;border-bottom:1px solid var(--line);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;min-width:0}
.grd-r.own{box-shadow:inset 3px 0 0 var(--accent)}
.grd-hd{font-size:var(--fs-xs);color:var(--ink-3);padding-top:0}
.grd-r .grd-h{display:flex;align-items:center;gap:6px;min-width:0}
.grd-r .grd-date{font-weight:var(--w-bold);color:var(--ink)}
.grd-what{display:flex;flex-direction:column;gap:4px;margin:0;min-width:0;line-height:1.35}
.grd-m{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 8px;cursor:help;min-width:0}
.grd-ml{color:var(--ink-2);min-width:0}
.grd-mv{color:var(--ink);white-space:nowrap}
.grd-mc{font-size:var(--fs-xs);font-weight:var(--w-bold);color:var(--ink-2)}
.grd-m.bad .grd-mc{color:var(--rb-bad)}
.grd-m.good .grd-mc{color:var(--rb-good)}
.grd-r .grd-why{display:flex;flex-direction:column;gap:2px;margin:0;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.35;overflow-wrap:anywhere}
.grd-r .grd-nowhy{color:var(--ink-3)}
.grd-r .grd-flag{margin:0}
.grd-more>summary{padding:8px 4px}
@media (max-width: 720px){
  .grd-hd{display:none}
  .grd-r{grid-template-columns:auto minmax(0,1fr);gap:4px 10px}
  .grd-r .grd-what,.grd-r .grd-why{grid-column:1 / -1}
}
/* доли в группе — читаемый вид 09.10 */
.ig-sh{grid-template-columns:minmax(170px,1.5fr) repeat(3,minmax(96px,1fr))}
.ig-s{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.ig-s .ig-sv{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:4px;font-variant-numeric:tabular-nums}
.ig-s .rd8-was{font-size:var(--fs-sm)}
.ig-s small.ig-d{text-align:left;font-size:var(--fs-xs)}
@media (max-width:640px){
  .ig-sh,.ig-sh.ig-own{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* события периода — читаемый вид 09.10 */
.ig-evs-host .ig-evg{display:flex;flex-direction:column;align-items:stretch;gap:8px}
.ig-evs-host .ig-evc{padding:0;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card);min-width:0}
.ig-evs-host .ig-evc.ig-own{background:var(--card);box-shadow:inset 3px 0 0 var(--accent)}
.ig-evs-host .ig-evc-s,.ig-evs-host .ig-evc-0{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,1.6fr) 16px;gap:6px 14px;align-items:center;padding:10px 12px;list-style:none;cursor:pointer}
.ig-evs-host .ig-evc-0{cursor:default}
.ig-evs-host .ig-evc-s::-webkit-details-marker{display:none}
.ig-evs-host .ig-evc-s:hover .ig-evc-c{color:var(--accent)}
.ig-evc-n{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--fs-sm);color:var(--ink-3);line-height:1.35}
.ig-evc-n b{color:var(--ink);font-weight:var(--w-bold);font-variant-numeric:tabular-nums}
.ig-evc-c{color:var(--mute);font-size:var(--fs-lg);line-height:1;transition:transform .12s;justify-self:end}
details.ig-evc[open] > summary .ig-evc-c{transform:rotate(90deg)}
.ig-evs-host .ig-evc .rd8-scroll{padding:0 12px 8px}
table.rd8-t.ig-evt td{padding:7px 8px;vertical-align:top}
table.rd8-t.ig-evt td.ig-evd{width:72px;white-space:nowrap;color:var(--ink-3);padding-left:0}
.ig-evl{display:grid;grid-template-columns:150px minmax(0,1fr);gap:2px 12px;align-items:baseline}
.ig-evk{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-3);white-space:nowrap}
.ig-evk-0::before{visibility:hidden}
.ig-evk::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--dim);flex:none}
tr.ig-evr.ig-good .ig-evk::before{background:var(--good)}
tr.ig-evr.ig-bad .ig-evk::before{background:var(--bad)}
.ig-evx{display:block;color:var(--ink-2);overflow-wrap:anywhere;line-height:1.4}
.ig-evx b{color:var(--ink)}
.ig-evx small.ig-dd{display:block;font-size:var(--fs-xs);color:var(--mute);margin-top:1px}
tr.ig-evr.ig-good .ig-evx small.ig-dd{color:var(--good)}
tr.ig-evr.ig-bad .ig-evx small.ig-dd{color:var(--bad)}
.ig-pos-d summary{cursor:pointer;list-style:none;color:var(--ink-2)}
.ig-pos-d summary::-webkit-details-marker{display:none}
.ig-pos-d .ig-pos-sum{margin:0;font-size:var(--fs-sm)}
.ig-pos-more{margin-left:8px;color:var(--accent);font-size:var(--fs-sm);font-weight:var(--w-medium);white-space:nowrap}
.ig-pos-more::after{content:" ›"}
.ig-pos-d[open] .ig-pos-more::after{content:" ‹"}
.ig-evs-host table.ig-pos-t{margin-top:6px;width:100%;min-width:0;max-width:460px;table-layout:auto}
table.rd8-t .ig-pos-t th,table.rd8-t .ig-pos-t td{text-align:left;padding:5px 10px 5px 0;border-bottom:none;border-top:1px solid var(--line);background:none;font-size:var(--fs-sm)}
table.rd8-t .ig-pos-t thead th{border-top:none;font-size:var(--fs-xs);color:var(--mute)}
table.rd8-t .ig-pos-t td.n,table.rd8-t .ig-pos-t th:last-child{text-align:right;padding-right:0;white-space:nowrap}
.ig-pos-t th:last-child{width:110px}
.ig-pos-t td.n small.dd{display:block;font-size:var(--fs-xs);margin-top:1px;color:var(--mute)}
.ig-pos-t tr.ig-good td.n small.dd{color:var(--good)}.ig-pos-t tr.ig-bad td.n small.dd{color:var(--bad)}
@media (max-width:640px){
  .ig-evs-host .ig-evc-s,.ig-evs-host .ig-evc-0{grid-template-columns:minmax(0,1fr) 16px;padding:10px}
  .ig-evs-host .ig-evc-n{grid-column:1;grid-row:2}
  .ig-evs-host .ig-evc-c{grid-column:2;grid-row:1}
  .ig-evs-host .ig-evc .rd8-scroll{padding:0 10px 6px}
  table.rd8-t.ig-evt td.ig-evd{width:58px}
  .ig-evl{grid-template-columns:minmax(0,1fr)}
  .ig-evk-0{display:none}
  table.rd8-t.ig-evt td{padding:7px 4px}
}
/* разведка, список групп — читаемый вид 09.10 */
@media (max-width:640px){
  .intel-set .intel-set-now{display:block;margin:2px 0 0}
  .ig-add{min-height:0}
  .ig-card-top{flex-wrap:wrap;row-gap:2px}
}
.ig-evs-host .ig-evm{padding:0 12px 8px}
table.rd8-t.ig-evm-t th{white-space:nowrap}
table.rd8-t.ig-evm-t td{padding:6px 8px;white-space:nowrap}
table.rd8-t.ig-evm-t td.ig-evm-0{color:var(--mute)}
table.rd8-t.ig-evm-t th.l,table.rd8-t.ig-evm-t td.ig-evd{position:sticky;left:0;background:var(--card);z-index:1}
@media (max-width:640px){
  .ig-evs-host .ig-evm{padding:0 10px 6px}
  table.rd8-t.ig-evm-t td{padding:6px 5px}
}
/* перетоки — читаемый вид 09.10 */
.gft.gsh-facts{margin:0 0 12px;padding:0;border:0;background:none}
table.rd8-t.gsh-t,table.rd8-t.gsh-ept{margin:0 0 8px}
.gsh-t .gsh-who{display:flex;align-items:center;gap:8px;min-width:0;color:var(--ink);text-decoration:none}
.gsh-t .gsh-who img,.gsh-t .gsh-who .ph{flex:none;width:22px;height:29px;border-radius:4px;object-fit:cover}
.gsh-t .gsh-n{min-width:0}
.gsh-t .gsh-n b{font-weight:var(--w-medium);overflow-wrap:anywhere}
.gsh-t .gsh-own-l{color:var(--ink);font-weight:var(--w-bold)}
.gsh-t tr.own .rd8-was{color:var(--ink-2)}
table.rd8-t.gsh-t td small.rd8-up{color:var(--rb-good)}
table.rd8-t.gsh-t td small.rd8-dn{color:var(--rb-bad)}
.gsh-t td>span[data-tip]{cursor:help}
table.rd8-t.gsh-t td .gsh-bad,table.rd8-t.gsh-ept td.gsh-bad{color:var(--rb-bad);font-weight:var(--w-bold)}
table.rd8-t.gsh-t td .gsh-ok{color:var(--ink-2);font-weight:var(--w-medium);font-size:inherit}
table.rd8-t.gsh-t td .gsh-nd,table.rd8-t.gsh-t td.gsh-nd{display:inline;font-size:var(--fs-sm);color:var(--ink-3)}
.gsh-t td.gsh-dash{color:var(--ink-3)}
.gsh-ept td.gsh-d{white-space:nowrap;color:var(--ink-3)}
.gsh-more{margin:0 0 8px}
.gsh-more>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);padding:6px 0;overflow-wrap:anywhere}
@media (max-width:560px){
  table.rd8-t.gsh-t,table.rd8-t.gsh-ept{table-layout:fixed}
  table.rd8-t.gsh-t th,table.rd8-t.gsh-t td,table.rd8-t.gsh-ept th,table.rd8-t.gsh-ept td{padding:7px 4px;overflow-wrap:anywhere}
  table.rd8-t.gsh-t th:first-child{width:28%}
  table.rd8-t.gsh-ept th:first-child{width:15%}
  table.rd8-t.gsh-ept th:nth-child(2){width:45%}
  .gsh-t .gsh-who img,.gsh-t .gsh-who .ph{display:none}
  .gsh-t .rd8-was{white-space:normal}
}
/* цена — читаемый вид 09.10 */
.gft.igp-facts{margin:0 0 12px;padding:0;border:0;background:none}
.igp-part[data-part="table"]{padding:0}
table.rd8-t.igp-t,table.rd8-t.igp-ept{margin:0 0 8px}
.igp-t .igp-who{display:flex;align-items:center;gap:8px;min-width:0;overflow:visible}
.igp-t .igp-who b{font-weight:var(--w-medium);color:var(--ink);white-space:normal;overflow-wrap:anywhere;max-width:none}
.igp-t .igp-who.own b{color:var(--ink);font-weight:var(--w-bold)}
.igp-t .igp-sw{width:10px;height:10px;border-radius:3px}
.igp-t td[data-tip],.igp-ept td[data-tip],.igp-nd[data-tip]{cursor:help}
.igp-t tr.own .rd8-was,table.rd8-t.igp-t tr.own td small{color:var(--ink-2)}
table.rd8-t.igp-t td small.igp-pct.rd8-up{color:var(--rb-good)}
table.rd8-t.igp-t td small.igp-pct.rd8-dn{color:var(--rb-bad)}
.igp-nd{font-size:var(--fs-sm);color:var(--ink-3)}
td.igp-nd{color:var(--ink-3)}
.igp-note{margin:0 0 8px;font-size:var(--fs-sm);color:var(--ink-3);line-height:1.45;overflow-wrap:anywhere}
.igp-more{margin:0 0 6px}
.igp-more>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);padding:6px 0;overflow-wrap:anywhere}
.igp-more .igp-key{margin:4px 0;color:var(--ink-3);font-size:var(--fs-xs)}
table.rd8-t.igp-ept tr.igp-grp td{padding-top:12px;font-weight:var(--w-bold);color:var(--ink);border-bottom:1px solid var(--line-2,var(--line))}
.igp-ept td.igp-d{white-space:nowrap;color:var(--ink-2)}
@media (max-width:560px){
  table.rd8-t.igp-t,table.rd8-t.igp-ept{table-layout:fixed}
  table.rd8-t.igp-t th,table.rd8-t.igp-t td,table.rd8-t.igp-ept th,table.rd8-t.igp-ept td{padding:7px 4px;overflow-wrap:anywhere}
  table.rd8-t.igp-t th:first-child{width:27%}
  table.rd8-t.igp-ept th:first-child{width:15%}
  .igp-t .igp-sw{width:8px;height:8px}
  .igp-t .igp-who{gap:5px}
  .igp-t .rd8-was{white-space:normal}
}
/* остатки — читаемый вид 09.10 */
.gft.gst-facts{margin:0 0 12px;padding:0;border:0;background:none}
.gst-host .gst-part+.gst-part{margin-top:14px;padding-top:12px}
.gst-host .gst-h{font-size:var(--fs-md);margin:0 0 6px}
.gst-cap{font-size:var(--fs-xs);font-weight:var(--w-regular,400);color:var(--ink-3);cursor:help;border-bottom:1px dotted var(--line-2,var(--line))}
.gst-host .gst-scroll{margin:0 0 6px}
table.rd8-t.gst-tb{margin:0}
table.rd8-t.gst-tb td[data-tip]{cursor:help}
.gst-tb .gst-who{gap:8px}
.gst-tb .gst-who img,.gst-tb .gst-who .ph{width:22px;height:29px;border-radius:4px}
.gst-tb .gst-who b{font-weight:var(--w-medium);color:var(--ink)}
.gst-tb .gst-own-l,.gst-tb td .gst-own-l{color:var(--ink);font-weight:var(--w-bold)}
table.rd8-t.gst-tb tr.own td small,.gst-tb tr.own .rd8-was{color:var(--ink-2)}
table.rd8-t.gst-tb td b.gst-bad,table.rd8-t.gst-tb td .gst-bad{color:var(--rb-bad)}
table.rd8-t.gst-tb td small.gst-bad-s{color:var(--rb-bad);font-weight:var(--w-medium)}
table.rd8-t.gst-tb .gst-nd{font-size:var(--fs-sm);color:var(--ink-3)}
table.rd8-t.gst-tb td.gst-na{color:var(--ink-3);text-align:left;font-size:var(--fs-sm)}
table.rd8-t.gst-tb td.gst-szc b{font-weight:var(--w-bold)}
table.rd8-t.gst-tb tr.gst-ship td{background:transparent}
table.rd8-t.gst-tb td.gst-todo{white-space:normal}
table.rd8-t.gst-tb tr.gst-ship td.gst-todo b,table.rd8-t.gst-tb tr.gst-ship td.gst-todo small{color:var(--rb-bad)}
table.rd8-t.gst-tb td.gst-tags{white-space:normal;text-align:left}
table.rd8-t.gst-tb td.gst-tags .gst-tag{margin:0 4px 2px 0}
table.rd8-t.gst-tb td.gst-gap{background:var(--bad-bg)}
table.rd8-t.gst-tb td.gst-gap b,table.rd8-t.gst-tb td.gst-gap small{color:var(--bad-ink)}
table.gst-reg{min-width:var(--gst-min,0)}
.gst-tb th.gst-own-h{color:var(--ink)}
.gst-tag{font-size:var(--fs-xs);line-height:1.6}
.gst-det{margin:0 0 6px;min-width:0}
.gst-det>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);padding:6px 0;overflow-wrap:anywhere}
.gst-ok-line{margin:0 0 6px;font-size:var(--fs-sm);color:var(--ink-2);line-height:1.45}
.gst-rv{margin:6px 0 12px}
.gst-rv-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:var(--fs-sm);color:var(--ink);cursor:help}
.gst-rv-h small{font-size:var(--fs-xs);color:var(--ink-3)}
.gst-rv-off{font-size:var(--fs-sm);color:var(--ink-2);margin:4px 0}
.gst-rv-off .gst-nd{font-size:var(--fs-sm)}
@media (max-width:560px){
  table.rd8-t.gst-tb:not(.gst-reg){table-layout:fixed}
  table.rd8-t.gst-tb th,table.rd8-t.gst-tb td{padding:7px 4px;overflow-wrap:anywhere}
  table.rd8-t.gst-tb th:first-child{width:27%}
  table.rd8-t.gst-grid th:first-child{width:16%}
  table.rd8-t.gst-grid th:last-child{width:28%}
  table.rd8-t.gst-cover th:first-child{width:30%}
  table.rd8-t.gst-grid td b{white-space:nowrap}
  .gst-tb .gst-who img,.gst-tb .gst-who .ph{display:none}
  table.gst-reg th:first-child{position:sticky;left:0;background:var(--card);z-index:1}
}
/* «За счёт чего»: было → стало над процентом (09.10) */
.ig-f .ig-fv{font-size:var(--fs-sm);font-weight:var(--w-medium);color:var(--ink);text-align:center;line-height:1.3}
.ig-f .ig-fv .ig-was{color:var(--mute);font-weight:var(--w-regular,400)}
.ig-f .ig-fv + b.ig-d{font-size:var(--fs-sm)}
/* query-conv — 09.10 */
.gqc-wait,.gqc-none{color:var(--mute);font-size:var(--fs-sm);padding:6px 0;line-height:1.5}
.gqc-cap{font-size:var(--fs-xs);color:var(--ink-3);margin:10px 0 4px}
table.rd8-t.gqc-t{min-width:max-content}
table.rd8-t.gqc-t th.gqc-q,table.rd8-t.gqc-t td.gqc-q{position:sticky;left:0;z-index:1;background:var(--card);min-width:150px;max-width:220px;white-space:normal;overflow-wrap:anywhere;text-align:left}
table.rd8-t.gqc-t td.gqc-q b{font-weight:var(--w-medium)}
table.rd8-t.gqc-t th{min-width:110px}
table.rd8-t.gqc-t th.own,table.rd8-t.gqc-t td.own{background:var(--accent-faint)}
.gqc-who{display:inline-flex;align-items:center;gap:6px;color:inherit;text-decoration:none;max-width:150px}
.gqc-who img,.gqc-who .ph{width:24px;height:32px;flex:none;border-radius:var(--r-sm);object-fit:cover;background:var(--ph-bg);display:block}
.gqc-who > span{min-width:0;overflow-wrap:anywhere;text-align:left}
.gqc-who b{color:var(--ink);font-weight:var(--w-medium)}
.gqc-own-l{color:var(--accent)}
[data-theme=dark] .gqc-own-l{color:var(--accent-light)}
table.rd8-t.gqc-t td b.gqc-v{display:block;font-size:var(--fs-base);white-space:nowrap}
.gqc-msg{color:var(--mute);font-size:var(--fs-xs);white-space:nowrap}
@media (max-width:420px){
  table.rd8-t.gqc-t th.gqc-q,table.rd8-t.gqc-t td.gqc-q{min-width:108px;max-width:128px}
  table.rd8-t.gqc-t th{min-width:96px}
  .gqc-who img,.gqc-who .ph{display:none}
  table.rd8-t.gqc-t td b.gqc-v{font-size:var(--fs-md)}
}
table.rd8-t.gqc-t .rd8-was{color:var(--ink-3)}
html:not([data-theme=dark]) table.rd8-t.gqc-t td small.rd8-up{color:#146c38}
/* Раскрытый день «Хронологии двух карточек» таблицей (02.10): строка —
   метрика, у карточки пара колонок «число дня · изменение к прошлому дню».
   Полоска от нуля: вправо рост, влево падение; цветом — только скачок
   (.sig), обычные колебания бледные. Своя обёртка .cxd-wrap: wbui не
   заворачивает её в .scroll-y (липкая шапка там с фоном карточки). */
.cxd-wrap{overflow-x:auto}
table.mini.cxd{width:100%;max-width:1100px;min-width:0;table-layout:fixed;border-collapse:collapse}
table.mini.cxd col.cxd-cl{width:160px}table.mini.cxd col.cxd-cv{width:120px}
table.mini.cxd th,table.mini.cxd td{padding:6px 10px;background:none}
table.mini.cxd th.l,table.mini.cxd td.l{text-align:left;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.mini.cxd tr.cxd-who th{text-align:left;font-size:var(--fs-sm);font-weight:var(--w-bold);padding-bottom:8px;border-bottom:2px solid var(--c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.mini.cxd tr.cxd-sub th{font-size:var(--fs-xs);font-weight:var(--w-regular);color:var(--mute);padding-top:6px}
table.mini.cxd tr.cxd-sub th.n{text-align:right}table.mini.cxd tr.cxd-sub th.dv{text-align:center}
table.mini.cxd td.n{text-align:right;white-space:nowrap;font-variant-numeric:normal;font-weight:var(--w-regular);color:var(--ink)}
table.mini.cxd td.n.sig{font-weight:var(--w-bold)}
table.mini.cxd td.n,table.mini.cxd th.n{border-left:1px solid var(--line)}
table.mini.cxd tr.cxd-g td{padding:14px 10px 4px;font-size:var(--fs-xs);color:var(--mute);border-bottom:1px solid var(--line)}
table.mini.cxd tr.cxd-ev td{vertical-align:top;padding-top:10px;padding-bottom:6px}
table.mini.cxd tr.cxd-ev td:not(.l){border-left:1px solid var(--line)}
table.mini.cxd tr.cxd-ev .cev-d-l li{font-size:var(--fs-sm)}
table.mini.cxd tbody tr.cxd-g:hover td,table.mini.cxd tbody tr.cxd-ev:hover td{background:none}
.cxd-evs{display:none}
.dvb{position:relative;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:20px}
.dvb::before{content:"";position:absolute;left:50%;top:-6px;bottom:-6px;width:1px;background:var(--line-2)}
.dvb .neg,.dvb .pos{display:flex;align-items:center;gap:6px;min-width:0}
.dvb .neg{justify-content:flex-end}.dvb .pos{justify-content:flex-start}
.dvb i{display:block;height:10px;width:calc((100% - 52px) * var(--k));min-width:3px;background:var(--bc);opacity:.35}
.dvb .neg i{border-radius:4px 0 0 4px}.dvb .pos i{border-radius:0 4px 4px 0}
.dvb b{font-size:var(--fs-xs);font-weight:var(--w-regular);color:var(--mute);white-space:nowrap}
.dvb.good{--bc:var(--good)}.dvb.bad{--bc:var(--bad)}.dvb.neu{--bc:var(--mute-3)}
.dvb.sig i{opacity:1}.dvb.sig b{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--ink)}
.dvb.sig.good b{color:var(--good)}.dvb.sig.bad b{color:var(--bad)}
.dvb.none{display:flex;justify-content:center}.dvb.none::before{display:none}
@media (max-width:720px){
  table.mini.cxd col.cxd-cl{width:88px}table.mini.cxd col.cxd-cv{width:64px}
  table.mini.cxd th,table.mini.cxd td{padding:6px 4px}
  table.mini.cxd tr.cxd-who th .cx-ph{display:none}
  .dvb{display:flex;justify-content:center}.dvb::before,.dvb i{display:none}
  .dvb .neg:empty,.dvb .pos:empty{display:none}
  table.mini.cxd td.l{white-space:normal;line-height:1.25}
  table.mini.cxd tr.cxd-ev{display:none}
  .cxd-evs{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
  .cxd-evc{border-left:2px solid var(--c);padding-left:10px}
  .cxd-evc .cx-col-h{margin-bottom:6px}
}
/* query-conv: две метрики WB в клетке (10.10) */
.gqc-t .gqc-l{white-space:nowrap;line-height:1.35}
.gqc-t .gqc-k{color:var(--mute);font-size:var(--fs-xs)}

/* компактно 10.10 — keys */
.gq-tile{padding:8px 12px}
.gq-tv{font-size:var(--fs-xl)}
.gq-line.gq-note{font-size:var(--fs-xs);color:var(--mute);margin:6px 0 0;cursor:help}
details.gq-lagd{margin-top:8px}
details.gq-lagd>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2)}
table.gq-lag-t{width:auto;max-width:640px}
table.gq-lag-t td,table.gq-lag-t th{padding:4px 10px}
.gq-fs{margin:10px 0 8px}
table.gq-t{--gqc:112px;--gqf:96px}
table.gq-t th,table.gq-t td{padding:5px 8px}
table.gq-t th.gq-ch img,table.gq-t th.gq-ch .ph{width:24px;height:32px}
td.gq-c b{font-size:var(--fs-sm)}
td.gq-c .gq-u{display:none}
td.gq-c .gq-o{display:inline;margin-left:6px}
td.gq-c .gq-gap{display:inline-block;margin-left:6px;padding:0 5px;border-radius:999px;background:var(--bad-bg);font-weight:var(--w-medium)}
b.gq-part{border-bottom:1px dotted var(--mute);cursor:help}
.gq-foot{margin-top:4px}
.gq-all{margin-top:6px}
.gqq-host{margin-top:14px;padding-top:10px}
.gqq-t.ig-has-tip{cursor:help;margin-bottom:8px}
.gqq-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.gqq-card{padding:8px 10px}
.gqq-act{font-size:var(--fs-xs);color:var(--mute);margin-bottom:4px;cursor:help}
.gqq-sum{font-size:var(--fs-xs);margin-bottom:4px}
.gqq-l{margin:0;padding:0;list-style:none}
.gqq-i{display:block;padding:4px 0;border-top:1px solid var(--line);font-size:var(--fs-sm);line-height:1.35}
.gqq-nums{display:block;font-size:var(--fs-xs);color:var(--mute)}
.gqq-empty{font-size:var(--fs-xs);color:var(--mute)}
.gqq-more{margin-top:4px;font-size:var(--fs-xs)}
@media (max-width:1100px){.gqq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.gqq-grid{grid-template-columns:minmax(0,1fr)}}

/* компактно 10.10 — query-conv */
table.rd8-t.gqc-t{min-width:0;width:auto}
table.rd8-t.gqc-t th{min-width:0;width:200px}
table.rd8-t.gqc-t td{padding:6px 10px;vertical-align:middle}
table.rd8-t.gqc-t td b.gqc-v{display:inline;font-size:var(--fs-sm)}
.gqc-t .gqc-l{display:flex;align-items:baseline;justify-content:flex-end;gap:6px}
.gqc-t .gqc-l small{display:inline;margin:0;min-width:38px;text-align:right}
.gqc-t .gqc-k{margin-right:auto}
.gqc-t small.gqc-pm{font-size:var(--fs-xs)}
.gqc-cap{margin:6px 0 0;color:var(--mute);cursor:help}
@media (max-width:640px){table.rd8-t.gqc-t th{width:auto;min-width:150px}}
table.rd8-t.gqc-t td:not(.gqc-q){width:200px}
.gqc-t .gqc-l{line-height:1.5}

/* компактно 10.10 — search */
.gsr-facts{margin-bottom:10px}
.gsr-main .gsr-st{margin-top:0}
table.rd8-t.gsr-gaps{max-width:820px}
table.rd8-t.gsr-gaps td{padding:6px 10px}
details.gsr-fold{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}
details.gsr-fold>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
details.gsr-fold>summary b{font-weight:var(--w-bold)}
details.gsr-fold .gsr-fs{color:var(--ink-3);font-size:var(--fs-sm)}
details.gsr-fold>summary .gsr-est{font-size:var(--fs-xs)}
table.rd8-t.gsr-vis,table.rd8-t.gsr-dep,table.rd8-t.gsr-cov{max-width:720px}
details.gsr-fold .gsr-line{font-size:var(--fs-xs);color:var(--mute);margin:4px 0}

/* компактно 10.10 — stock */
details.gst-fold{margin-top:8px;border-top:1px solid var(--line);padding-top:8px}
details.gst-fold>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
details.gst-fold>summary b{font-weight:var(--w-bold)}
details.gst-fold .gst-fs{color:var(--ink-3);font-size:var(--fs-sm)}
.gst-part-cover table.rd8-t.gst-cover{max-width:640px}
table.rd8-t.gst-loss,table.rd8-t.gst-wh:not(.gst-wh-aggr){max-width:820px}
table.rd8-t.gst-wh.gst-wh-aggr,table.rd8-t.gst-grid{max-width:720px}
.gst-cover td.gst-szc{white-space:nowrap}
.gst-cover td.gst-szc small{display:inline;margin-left:6px}

/* компактно 10.10 — price */
table.rd8-t.igp-t{max-width:860px}
table.rd8-t.igp-ept{max-width:820px}
.igp-more>summary .igp-fs{margin-left:10px;color:var(--ink-3);font-size:var(--fs-sm);font-weight:var(--w-regular)}
.igp-note{font-size:var(--fs-sm);color:var(--ink-3)}
/* компактно 10.10 — reviews */
table.grv-t{--grvk:170px;--grvc:104px}
table.grv-t th,table.grv-t td{padding:6px 8px}
table.grv-t th.grv-ch img,table.grv-t th.grv-ch .ph{width:24px;height:32px}
td.grv-c b{font-size:var(--fs-sm)}
td.grv-c .grv-s{font-size:var(--fs-xs);margin-top:0}
.grv-cov{color:var(--warn-ink);cursor:help}
.grv-quiet{margin-top:6px;font-size:var(--fs-xs)}
@media (max-width:720px){table.grv-t{--grvk:118px;--grvc:92px}}
table.grv-t{--grvk:200px}
table.grv-t td.grv-k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:720px){table.grv-t{--grvk:128px}table.grv-t td.grv-k{white-space:normal}}
/* компактно 10.10 — rating */
.gft.grt-facts{margin:0 0 12px;padding:0;border:0;background:none}
table.grt-t{width:auto}
table.grt-t td b{white-space:nowrap}
@media (max-width:720px){table.grt-t th,table.grt-t td{padding:6px 8px}}
table.grt-t th,table.grt-t td{padding:6px 12px}
table.grt-t td[data-tip]{cursor:help}
.grt-more{margin-top:6px}
.grt-more>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);padding:6px 0}
ul.grt-note{margin:4px 0 0;padding-left:18px}
/* компактно 10.10 — weekday */
.gwd-chips{align-items:center}
.gwd-chips .gwd-cap{margin:0 0 0 6px;cursor:help;border-bottom:1px dotted var(--ink-3)}
.gwd-t{max-width:820px}
/* компактно 10.10 — forecast */
table.gfc-t{width:auto;min-width:min(100%,520px)}
table.gfc-t th,table.gfc-t td{padding:7px 14px}
.gfc-riv{margin-top:10px}
@media (min-width:721px){.gfc-list>table.gfc-t{align-self:flex-start}}
.gfc-riv>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);padding:6px 0;overflow-wrap:anywhere}
@media (max-width:720px){table.gfc-t{width:100%}table.gfc-t th,table.gfc-t td{padding:7px 6px}}
/* компактно 10.10 — checklist */
@media (min-width:721px){table.gcl-t{width:auto;min-width:640px}table.gcl-t th,table.gcl-t td{padding:7px 14px}}
table.gcl-t td.l,table.gcl-t td.l *{overflow-wrap:break-word;word-break:normal}
@media (max-width:720px){table.gcl-t th,table.gcl-t td{padding:7px 4px}table.gcl-t td.l{hyphens:auto}}
/* компактно 10.10 — edits */
.gft.ged-mean{margin:0 0 12px;padding:0;border:0;background:none}
table.ged-tab{width:auto;min-width:0;font-variant-numeric:tabular-nums}
table.ged-tab th,table.ged-tab td{padding:7px 12px;vertical-align:middle}
table.ged-tab td{text-align:right}
table.ged-tab .l{text-align:left}
table.ged-tab tr.own td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
table.ged-tab tr.ged-x{display:none}
table.ged-tab .ged-d{white-space:nowrap;color:var(--ink-3)}
table.ged-tab .ged-own-l{color:var(--accent)}
table.ged-tab .ged-tn{display:inline-flex;flex-direction:column;align-items:flex-end;cursor:help;white-space:nowrap}
table.ged-tab .ged-tn small{font-size:var(--fs-xs)}
table.ged-tab .ged-v{margin:0;font-size:var(--fs-sm);white-space:nowrap;cursor:help}
table.ged-tab .ged-nd{color:var(--ink-3)}
.ged-showmore{margin-top:6px}
.ged-all{margin-top:8px}
.ged-all>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);padding:6px 0;overflow-wrap:anywhere}
.ged-all .ged-list{margin-top:6px}
@media (max-width:720px){table.ged-tab th,table.ged-tab td{padding:6px 6px}table.ged-tab .ged-what-c{min-width:90px}}
table.ged-tab .ged-v.ged-good,table.ged-tab .ged-v.ged-bad{border:0;padding:0}table.ged-tab .ged-v.ged-good{color:var(--rb-good)}table.ged-tab .ged-v.ged-bad{color:var(--rb-bad)}
@media (max-width:720px){table.ged-tab .ged-v{white-space:normal}table.ged-tab th,table.ged-tab td{padding:6px 4px}}
/* компактно 10.10 — rising */
table.grz-t tr.grz-x{display:none}
.grz-showmore{margin:0 0 8px}
.grz-more>summary{cursor:pointer;font-size:var(--fs-sm);color:var(--ink-2);padding:6px 0;overflow-wrap:anywhere}
.grz-more[open]>summary{margin-bottom:6px}
@media (min-width:721px){table.grz-t{width:auto;max-width:100%}table.grz-t td.grz-who,table.grz-t td.grz-miss{min-width:120px}}
/* компактно 10.10 — shift */
table.rd8-t.gsh-t td.gsh-nd{display:table-cell;text-align:left;vertical-align:middle}
@media (min-width:721px){table.rd8-t.gsh-t,table.rd8-t.gsh-ept{width:auto;min-width:640px}table.rd8-t.gsh-t th,table.rd8-t.gsh-t td{padding-left:14px;padding-right:14px}}
.gsh-more>summary{overflow-wrap:anywhere}
/* компактно 10.10 — radar */
.grd-more>summary .grd-sub{display:inline;margin:0;color:var(--ink-3)}
.grd-wmore{display:inline-block;color:var(--ink-3);cursor:help;border-bottom:1px dotted var(--ink-3)}
.grd-wmore{width:fit-content}
@media (min-width:721px){.grd-r{grid-template-columns:52px minmax(0,150px) minmax(0,360px) minmax(0,420px)}}
/* шлифовка 11.10 — keys */
.gq-ss{align-items:center;margin-top:-4px}
.gq-sl{font-size:var(--fs-xs);color:var(--mute);margin-right:2px}
.gq-sb{border:1px solid var(--line-2);background:transparent;color:var(--ink-3);border-radius:999px;padding:4px 11px;font-size:var(--fs-xs);cursor:pointer}
.gq-sb.on{background:var(--accent-bg);border-color:var(--accent-line);color:var(--accent-deep)}
.gqq-i{display:flex;align-items:baseline;white-space:nowrap;overflow:hidden;padding:4px 0}
.gqq-i .gqq-qt{flex:0 100 auto;min-width:5ch;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.gqq-i .gqq-nums{display:block;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-xs);color:var(--mute)}
.gqq-i .gqq-pot{flex:0 0 auto;margin-left:6px}
.gqq-i .wbq{display:none}
.gqq-card{display:flex;flex-direction:column}
.gqq-card .gqq-more{align-self:flex-start;margin-top:4px}
.gqq-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:720px){.gqq-grid{grid-template-columns:minmax(0,1fr)}}
/* шлифовка 11.10 — radar */
.grd-r .grd-ev{display:block}
.grd-ev>summary{list-style:none;cursor:pointer;width:fit-content;color:var(--ink-2);border-bottom:1px dotted var(--ink-3)}
.grd-ev>summary::-webkit-details-marker{display:none}
.grd-ev .grd-evc{font-style:normal;display:inline-block;margin-left:2px;transition:transform .15s}
.grd-ev[open] .grd-evc{transform:rotate(90deg)}
.grd-evl{display:flex;flex-direction:column;gap:2px;margin-top:4px}
/* шлифовка 11.10 — rising */
.grz-pls{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:2px 0;white-space:nowrap}
.grz-pls .grz-pl{display:inline;overflow-wrap:normal;color:var(--ink-2);cursor:help}
.grz-pls .grz-pl b{color:var(--ink);font-variant-numeric:tabular-nums}
.grz-pls .grz-dot{font-style:normal;color:var(--mute);margin:0 5px}
table.grz-t td.grz-who{min-width:0}
table.grz-t td.grz-who .grz-nd{color:var(--mute)}
@media (min-width:721px){table.grz-t td.grz-who{white-space:nowrap}.grz-pls{flex-wrap:nowrap}}
/* шлифовка 11.10 — checklist */
.gcl-scroll{overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
table.gcl-t{width:auto;min-width:0;table-layout:auto}
table.gcl-t th,table.gcl-t td{white-space:nowrap;overflow-wrap:normal}
table.gcl-t .gcl-sticky{position:sticky;left:0;z-index:1;background:var(--card);white-space:normal;min-width:150px;max-width:240px}
table.gcl-t th.gcl-rv{color:var(--ink-2);max-width:96px;overflow:hidden;text-overflow:ellipsis}
table.gcl-t td.gcl-rv{color:var(--ink-2)}
table.gcl-t .gcl-ld{background:var(--surface-2)}
table.gcl-t td.gcl-ld{color:var(--ink)}
.gcl-star{font-style:normal;color:var(--warn-ink);margin-right:3px}
table.gcl-t .gcl-med{color:var(--ink-3)}
table.gcl-t th.gcl-medh,table.gcl-t td.gcl-med{border-left:1px solid var(--line)}
@media (min-width:721px){table.gcl-t th,table.gcl-t td{padding:7px 12px}}
@media (max-width:720px){
  table.gcl-t{table-layout:auto;font-size:var(--fs-xs)}
  table.gcl-t th,table.gcl-t td{padding:6px 6px}
  table.gcl-t th:first-child{width:auto}
  table.gcl-t .gcl-sticky{min-width:118px;max-width:132px;box-shadow:4px 0 8px -4px rgba(0,0,0,.25)}
  table.gcl-t td.l.gcl-sticky{hyphens:auto;overflow-wrap:break-word}
}
/* Таблица периода (11.10, Андрей: «закрепить фотки карточек»): своя прокрутка
   в блоке, шапка с карточками и колонка метрик стоят на месте. */
.sec[data-sec="ig-w2w"] .ig-scroll{max-height:calc(100vh - 120px);overflow:auto;overscroll-behavior:contain}
.sec[data-sec="ig-w2w"] table.ig-t thead th{position:sticky;top:0;z-index:3;background:var(--card);box-shadow:0 1px 0 var(--line)}
.sec[data-sec="ig-w2w"] table.ig-t thead th.ig-mh{left:0;z-index:4}
.sec[data-sec="ig-w2w"] table.ig-t thead th.ig-own{background:color-mix(in srgb,var(--warn-bg) 55%,var(--card))}
.sec[data-sec="ig-w2w"] table.ig-t td.ig-own{background:color-mix(in srgb,var(--warn-bg) 55%,var(--card))}
.sec[data-sec="ig-w2w"] table.ig-t td.ig-own.ig-best{background:color-mix(in srgb,var(--accent-bg) 60%,var(--warn-bg))}
/* Ключевые запросы и конверсия по запросам (11.10): шапка с карточками и
   «Запрос» стоят на месте, строки листаются внутри блока — как в таблице периода. */
.gq-scroll,.gqc-scroll{max-height:calc(100vh - 120px);overflow:auto;overscroll-behavior:contain}
table.gq-t thead th,table.rd8-t.gqc-t thead th{position:sticky;top:0;z-index:3;box-shadow:0 1px 0 var(--line)}
table.gq-t thead th{background:var(--card)}
table.gq-t thead th.gq-f{background:var(--surface-2)}
table.gq-t thead th.gq-q,table.rd8-t.gqc-t thead th.gqc-q{left:0;z-index:4}
table.rd8-t.gqc-t thead th{background:var(--card)}
table.rd8-t.gqc-t thead th.own{background:linear-gradient(var(--accent-faint),var(--accent-faint)),var(--card)}
/* ключи 11.10 */
td.gq-c{text-align:left;vertical-align:top;line-height:1.3;min-width:92px}
td.gq-c.gq-best,td.gq-c.gq-worst{background:transparent}
td.gq-c.gq-best{box-shadow:inset 3px 0 0 var(--good)}td.gq-c.gq-worst{box-shadow:inset 3px 0 0 var(--bad)}
td.gq-c .gq-pl{display:block;white-space:nowrap}
td.gq-c .gq-pl b{font-size:var(--fs-base);font-weight:var(--w-bold);color:var(--ink)}
td.gq-c.gq-best .gq-pl b{color:var(--good)}td.gq-c.gq-worst .gq-pl b{color:var(--bad)}
td.gq-c .gq-u{display:inline;margin-left:0;font-size:var(--fs-xs);color:var(--mute)}
td.gq-c .gq-o{display:block;margin:0;font-size:var(--fs-xs);color:var(--mute);white-space:nowrap}
td.gq-c .gq-dy{display:flex;flex-wrap:wrap;gap:0 8px;font-size:var(--fs-xs);white-space:nowrap}
td.gq-c .gq-dp,td.gq-c .gq-do{color:var(--mute);font-variant-numeric:tabular-nums}
td.gq-c .gq-dp.up,td.gq-c .gq-do.up{color:var(--good)}td.gq-c .gq-dp.down,td.gq-c .gq-do.down{color:var(--bad)}
td.gq-c .gq-gap{display:inline-block;margin:2px 0 0;padding:0 6px;border-radius:999px;background:var(--bad-bg);color:var(--bad);font-size:var(--fs-xs);font-weight:var(--w-medium);white-space:nowrap}
td.gq-c.gq-na,td.gq-c.gq-off{vertical-align:middle;color:var(--mute)}
td.gq-c .gq-nd{font-size:var(--fs-xs);color:var(--mute)}
.gqq-h{display:flex;align-items:center;gap:8px}
.gqq-h b{flex:1 1 auto;min-width:0}
.gqq-h .gqq-n{flex:none;font-size:var(--fs-2xl);line-height:1}
.gqq-h .gqq-sum{flex:none;margin:0;padding:1px 8px;border-radius:999px;background:var(--accent-bg);color:var(--accent-deep);font-size:var(--fs-xs);font-weight:var(--w-medium);white-space:nowrap;cursor:help}
.gqq-act{font-size:var(--fs-xs);color:var(--mute);margin:2px 0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.gqq-tb{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;font-size:var(--fs-xs);font-variant-numeric:tabular-nums}
table.gqq-tb th{font-weight:var(--w-regular);color:var(--mute);text-align:left;padding:2px 4px 4px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-bottom:1px solid var(--line)}
table.gqq-tb th.n,table.gqq-tb td.n{text-align:right;padding-left:6px}
table.gqq-tb th:nth-child(2){width:52px}table.gqq-tb th:nth-child(3){width:118px}table.gqq-tb th:nth-child(4){width:124px}
.gqq-tw{overflow-x:auto;max-width:100%}
@media (max-width:520px){table.gqq-tb th:nth-child(2){width:52px}table.gqq-tb th:nth-child(3){width:102px}table.gqq-tb th:nth-child(4){width:104px}table.gqq-tb:has(th:nth-child(4)){min-width:340px}}
table.gqq-tb tr.gqq-i{display:table-row;overflow:visible;padding:0}
table.gqq-tb td{padding:4px 4px 4px 0;border-top:1px solid var(--surface-3);white-space:nowrap;vertical-align:baseline;font-size:var(--fs-xs)}
table.gqq-tb tbody tr:first-child td{border-top:none}
table.gqq-tb td.gqq-qt{overflow:hidden;text-overflow:ellipsis;font-weight:var(--w-medium);color:var(--ink);font-size:var(--fs-sm)}
table.gqq-tb td.gqq-nums{display:table-cell;color:var(--ink-2);cursor:help;overflow:hidden;text-overflow:ellipsis}
table.gqq-tb .gqq-un{display:block;font-style:normal;color:var(--mute);font-size:var(--fs-xs)}
table.gqq-tb td.gqq-pc .gqq-pot{margin:0;padding:0 6px}
.gqq-est{font-style:normal;margin-left:3px;padding:0 4px;border-radius:4px;background:var(--surface-3);color:var(--mute);font-size:var(--fs-xs)}
/* ключи 11.10, вид как в таблице периода: «было → стало» по центру, строка ниже спокойная */
td.gq-c{text-align:center}
td.gq-c.gq-best,td.gq-c.gq-worst{box-shadow:none;background:transparent}
td.gq-c .gq-pv{font-size:var(--fs-md);line-height:1.3;white-space:nowrap}
td.gq-c .gq-pv b{font-weight:var(--w-bold);color:var(--ink)}
td.gq-c .gq-pv .gq-was{color:var(--mute);font-weight:var(--w-regular,400)}
td.gq-c.gq-best .gq-pv b{color:var(--good)}td.gq-c.gq-worst .gq-pv b{color:var(--bad)}
td.gq-c .gq-sub{margin-top:2px;font-size:var(--fs-xs);color:var(--mute);white-space:nowrap}
td.gq-c .gq-sub .gq-do{font-weight:var(--w-medium)}
td.gq-c .gq-sub .gq-do.up{color:var(--good)}td.gq-c .gq-sub .gq-do.down{color:var(--bad)}
/* ключи 11.10: «Мало данных» таблицей */
.gqq-few>summary{cursor:pointer;padding:8px 0;color:var(--ink-2);font-size:var(--fs-sm);outline:none}
table.gqq-few-t{max-width:820px;margin-top:4px}
table.gqq-few-t td,table.gqq-few-t th{padding:6px 10px}
table.gqq-few-t td.gqq-why{color:var(--mute)}

/* витрина 11.10 */
/* «Коротко»: плитка — заголовок мелко, кто, число крупно, сравнение */
.gsc-facts .rd8-tile.gsc-ft{display:flex;flex-direction:column;gap:3px;padding:12px 14px}
.gsc-ft-h{font-size:var(--fs-xs);color:var(--ink-2);font-weight:var(--w-medium)}
.gsc-ft-who{font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink);margin-top:2px}
.gsc-ft-n{font-size:var(--fs-2xl);font-weight:var(--w-bold);color:var(--ink);line-height:1.15;font-variant-numeric:tabular-nums}
.gsc-ft-c{font-size:var(--fs-sm);color:var(--ink)}
.gsc-ft-f{font-size:var(--fs-xs);color:var(--ink-2)}
.gsc-ft-l{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;padding:5px 0;border-top:1px solid var(--line);font-size:var(--fs-sm)}
.gsc-ft-h+.gsc-ft-l{border-top:none;padding-top:4px}
.gsc-ft-lw{font-weight:var(--w-bold);color:var(--ink)}
.gsc-ft-lz{color:var(--ink)}
/* лента правок: фото «было → стало» по местам */
.gsc-pps{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.gsc-pp{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:4px 6px;border:1px solid var(--line);border-radius:var(--r-sm,6px);background:var(--surface-2);color:var(--ink);cursor:zoom-in;font:inherit}
.gsc-pp:hover{border-color:var(--accent)}
.gsc-pp-n{font-size:var(--fs-xs);color:var(--ink-2);line-height:1.2}
.gsc-pp-i{display:inline-flex;align-items:center;gap:4px}
.gsc-pp-i img,.gsc-pp-i .ph-none{width:36px;height:48px;object-fit:cover;border-radius:4px;background:var(--surface-3);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);font-size:var(--fs-sm)}
.gsc-pp-i i{font-style:normal;color:var(--ink-2);font-size:var(--fs-xs)}
.gsc-big{position:fixed;inset:0;z-index:1000;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px}
.gsc-big-in{background:var(--card);color:var(--ink);border-radius:var(--r-md);padding:12px 14px;max-width:100%;max-height:100%;overflow:auto}
.gsc-big-h{display:flex;justify-content:space-between;align-items:center;gap:12px;font-weight:var(--w-bold);font-size:var(--fs-md);margin-bottom:8px}
.gsc-big-x{border:none;background:none;color:var(--ink-2);font-size:24px;line-height:1;cursor:pointer;padding:0 4px}
.gsc-big-r{display:flex;align-items:center;gap:10px}
.gsc-big-r i{font-style:normal;color:var(--ink-2)}
.gsc-big figure{margin:0;display:flex;flex-direction:column;align-items:center;gap:4px}
.gsc-big figcaption{font-size:var(--fs-xs);color:var(--ink-2)}
.gsc-big img,.gsc-big .ph-none{width:min(246px,38vw);aspect-ratio:3/4;height:auto;object-fit:cover;border-radius:6px;background:var(--surface-3);display:flex;align-items:center;justify-content:center;color:var(--ink-2);font-size:var(--fs-lg)}
/* цена по дням: интерактивный график как в «Динамике» */
.gsc-chart .gsc-ch{min-width:0}
.gsc-chart .gsc-ch svg{border:none;width:100%}
.gsc-chart .gsc-lg{font-size:var(--fs-sm);gap:6px 16px}
.gsc-chart .gsc-lg i{width:14px;height:4px}
/* Вход (11.10): карточка по центру, один главный путь */
.login-card{max-width:440px;margin:8vh auto 0;padding:28px 28px 22px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);text-align:center}
.login-brand{font-size:var(--fs-sm);font-weight:var(--w-bold);color:var(--accent-2);letter-spacing:.02em}
.login-title{margin:6px 0 14px;font-size:22px;font-weight:var(--w-bold);color:var(--ink)}
.login-why{margin:-6px 0 14px;color:var(--bad);font-size:var(--fs-sm)}
.login-tg button,.login-tg .xbtn{width:100%;padding:12px 16px;font-size:var(--fs-md);font-weight:var(--w-bold);background:var(--accent);color:var(--on-accent);border-radius:var(--r-md);border:0}
.login-sub{margin-top:8px;font-size:var(--fs-xs)}
.login-or{display:flex;align-items:center;gap:10px;margin:18px 0 12px;color:var(--mute);font-size:var(--fs-xs)}
.login-or::before,.login-or::after{content:"";flex:1;height:1px;background:var(--line)}
.login-card .key-login .own-any{display:flex;gap:8px}
.login-card .key-login input{flex:1;min-width:0}
.login-card .key-login-hint{margin-top:8px;font-size:var(--fs-xs);text-align:left}
.login-card .team-err{margin-top:8px;color:var(--bad);min-height:1em}
.login-new{margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--mute);text-align:left;line-height:1.45}
.login-new a{color:var(--accent-2)}
.login-tg .tg-state{display:block;margin:8px 0 0 !important;font-size:var(--fs-xs)}
#app:has(> .login-card) > .page-head{display:none}  /* вход (11.10): без заголовка раздела и «обновить» */
/* Инструкция (11.10): по центру, шаги и разделы карточками */
#app:has(> .hp) > .page-head{display:none}
.hp{max-width:860px;margin:4vh auto 40px}
.hp-title{font-size:26px;font-weight:var(--w-bold);text-align:center;margin:0 0 22px;color:var(--ink)}
.hp-start{padding:20px 24px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);margin-bottom:18px}
.hp-start h2,.hp-card h3{margin:0 0 10px;font-size:var(--fs-md);font-weight:var(--w-bold);color:var(--ink)}
.hp-start ol{margin:0;padding-left:22px;display:grid;gap:10px;font-size:var(--fs-sm);line-height:1.55;color:var(--ink-2)}
.hp-start li::marker{color:var(--accent-2);font-weight:var(--w-bold)}
.hp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.hp-card{padding:16px 18px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}
.hp-card p{margin:0;font-size:var(--fs-sm);line-height:1.6;color:var(--ink-2)}
/* Гость (11.10): стартовая без бокового меню, вход поверх */
body.guest .top{display:none}
html[data-theme] body.guest{padding-left:0}
body.guest #app:has(> .gl) > .page-head{display:none}
#app:has(> .login-solo) > .page-head{display:none}
.gl{max-width:1120px;margin:0 auto;padding:10px 4px 30px}
.gl h2{font-size:26px;font-weight:var(--w-bold);margin:0 0 18px;color:var(--ink);text-align:center}
.gl section{margin:56px 0}
.gl-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;margin-top:28px!important}
.gl-badge{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--accent-bg);color:var(--accent-2);font-size:var(--fs-xs);font-weight:var(--w-bold)}
.gl-hero h1{font-size:40px;line-height:1.12;margin:14px 0 14px;font-weight:800;color:var(--ink)}
.gl-hero p{font-size:var(--fs-md);line-height:1.6;color:var(--ink-2);margin:0}
.gl-cta{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.gl-btn{padding:13px 22px;border-radius:var(--r-md);border:0;background:var(--accent);color:var(--on-accent);font-size:var(--fs-md);font-weight:var(--w-bold);cursor:pointer}
.gl-btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2)}
.gl-note{margin-top:12px;font-size:var(--fs-xs);color:var(--mute)}
.gl-mock{padding:18px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);box-shadow:0 20px 50px -20px rgba(124,58,237,.35)}
.gl-mock-h{font-size:var(--fs-xs);color:var(--mute);margin-bottom:10px;font-weight:var(--w-medium)}
.gl-mock-row{display:grid;grid-template-columns:1fr auto;gap:2px 10px;padding:10px 12px;border-radius:var(--r-md)}
.gl-mock-row.own{background:var(--accent-faint)}
.gl-mock-row span{font-weight:var(--w-bold);color:var(--ink)}
.gl-mock-row b{text-align:right;color:var(--ink)}
.gl-mock-row small{grid-column:1/-1;color:var(--mute);font-size:var(--fs-xs)}
.gl em{font-style:normal;font-weight:var(--w-bold)}
.gl em.up{color:var(--good)}.gl em.dn{color:var(--bad)}
.gl-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gl-card{padding:20px;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}
.gl-card b{display:block;font-size:var(--fs-md);color:var(--ink);margin-bottom:8px}
.gl-card p{margin:0;font-size:var(--fs-sm);line-height:1.55;color:var(--ink-2)}
.gl-n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-weight:var(--w-bold);margin-bottom:10px}
.gl-feat{display:grid;grid-template-columns:1fr 1fr;gap:36px;align-items:center;margin:26px 0}
.gl-feat.rev > div:first-child{order:2}
.gl-feat h3{font-size:22px;margin:0 0 10px;color:var(--ink)}
.gl-feat p{margin:0;font-size:var(--fs-md);line-height:1.6;color:var(--ink-2)}
.gl-spark{display:flex;align-items:flex-end;gap:6px;height:110px}
.gl-spark i{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(var(--accent-2),var(--accent))}
.gl-ev{padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink)}
.gl-ev .d{display:inline-block;width:52px;color:var(--mute)}
.gl-q{display:grid;grid-template-columns:70px 1fr auto;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:var(--fs-sm);color:var(--ink)}
.gl-q span,.gl-q small{color:var(--mute)}
.gl-q.warn{display:block;color:var(--bad);font-weight:var(--w-bold);border:0}
.gl-todo{padding:10px 12px;border-radius:var(--r-md);background:var(--surface-2);margin-bottom:8px}
.gl-todo b{display:block;color:var(--ink);font-size:var(--fs-sm)}
.gl-todo span{color:var(--mute);font-size:var(--fs-xs)}
.gl-faq{max-width:760px;margin-left:auto!important;margin-right:auto!important}
.gl-faq details{padding:14px 18px;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line);margin-bottom:10px}
.gl-faq summary{cursor:pointer;font-weight:var(--w-bold);color:var(--ink)}
.gl-faq p{margin:10px 0 0;color:var(--ink-2);line-height:1.55;font-size:var(--fs-sm)}
.gl-final{text-align:center;padding:36px 20px;border-radius:var(--r-lg);background:linear-gradient(135deg,var(--accent-bg),transparent);border:1px solid var(--line)}
.gl-foot{display:flex;gap:20px;justify-content:center;flex-wrap:wrap;padding-top:22px;border-top:1px solid var(--line);font-size:var(--fs-xs);color:var(--mute)}
.gl-foot a{color:var(--ink-2)}
/* вход поверх стартовой */
.login-wrap{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:rgba(10,8,20,.6);backdrop-filter:none;padding:16px}
.login-wrap[hidden]{display:none}
.login-wrap .login-card,.login-solo .login-card{margin:0 auto;position:relative;width:100%}
.login-solo{padding-top:8vh}
.login-x{position:absolute;top:10px;right:12px;background:none;border:0;color:var(--mute);font-size:22px;cursor:pointer}
.login-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;margin:14px 0 18px;border-radius:var(--r-md);background:var(--surface-2)}
.login-tabs button{padding:9px;border:0;border-radius:calc(var(--r-md) - 2px);background:transparent;color:var(--mute);font-weight:var(--w-bold);cursor:pointer}
.login-tabs button.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.2)}
.login-key{margin-top:16px;text-align:left}
.login-key summary{cursor:pointer;color:var(--ink-2);font-size:var(--fs-sm)}
.login-key .key-login{margin-top:10px}
.login-steps{text-align:left;margin:0;padding-left:22px;display:grid;gap:12px}
.login-steps li::marker{color:var(--accent-2);font-weight:var(--w-bold)}
.login-steps b{display:block;color:var(--ink);font-size:var(--fs-sm)}
.login-steps span{color:var(--mute);font-size:var(--fs-xs);line-height:1.45}
.login-help{display:inline-block;margin-top:14px;color:var(--accent-2);font-size:var(--fs-sm)}
@media (max-width:860px){.gl-hero,.gl-feat{grid-template-columns:1fr}.gl-feat.rev > div:first-child{order:0}.gl-grid3{grid-template-columns:1fr}.gl-hero h1{font-size:30px}}
/* переносы (11.10): без висячих коротких слов и одиноких последних слов */
.gl p,.gl h1,.gl h2,.gl h3,.gl b,.login-card,.hp p,.hp li{text-wrap:pretty}
.gl h1,.gl h2,.hp-title{text-wrap:balance}
.key-login-hint a{white-space:nowrap}
.login-dl,.gl-dl{display:inline-flex;align-items:center;gap:6px;margin-top:10px;padding:9px 14px;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent)!important;font-weight:var(--w-bold);font-size:var(--fs-sm);text-decoration:none}
.login-dl::before,.gl-dl::before{content:"⤓"}
.login-steps li .login-dl{display:inline-flex}
.login-help{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:8px 14px;border-radius:999px;border:1px solid var(--line-2);color:var(--ink)!important;font-size:var(--fs-sm);text-decoration:none}
.login-help:hover{border-color:var(--accent);color:var(--accent-2)!important}
.hp-back{display:inline-block;margin-bottom:8px;color:var(--ink-2);font-size:var(--fs-sm);text-decoration:none}
