/* HTML-SPLIT-008: migrated from index.html inline <style> */
:root {
      --bg: #0b1220; --panel: #111827; --border: rgba(255, 255, 255, 0.06);
      --text: #e2e8f0; --accent: #3b82f6; --success: #22c55e;
      --danger: #ef4444; --warn: #f59e0b; --muted: #94a3b8;
      --panel-2: #161f2e; --panel-3: #1a2436; --hover: #202b40;
      --radius-sm: 10px; --radius-md: 14px; --shadow-card: 0 8px 24px rgba(0, 0, 0, 0.25);
    }
    * { box-sizing: border-box; margin: 0; }
    body { font-family: Inter, "Segoe UI", system-ui, sans-serif; background: var(--bg); color: var(--text); min-height: 100vh;
      overscroll-behavior-x: none; }
    html { overscroll-behavior-x: none; }
    :root { --app-gutter-x: 1rem; }
    .container { max-width: 100%; margin: 0 auto; padding: 0.5rem var(--app-gutter-x); }
    /* index SPA: нижняя граница только у .mp-tech-nav / .header-bar — без второй полоски под вкладками */
    .public-header-spa { border-bottom: none; padding: 0.14rem 0 0.08rem; background: linear-gradient(180deg, #0a101d 0%, #0b1220 100%); }
    .public-header-spa .public-container { align-items: center; }
    .public-header-spa + #mp-tech-section .mp-tech-nav { padding-top: 0.28rem; }
    .cabinet-content { padding-top: 0; }
    .header-bar {
      display: flex; align-items: center; justify-content: space-between; gap: 0.65rem;
      padding: 0.32rem 0.45rem; border: 1px solid var(--border); border-radius: var(--radius-md);
      background: var(--panel); margin-bottom: 0.35rem; box-shadow: var(--shadow-card);
    }
    .header-left { display: flex; align-items: center; gap: 0.5rem; min-width: 0; }
    .header-right { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; justify-content: flex-end; }
    .sub-warn { position: relative; display: inline-flex; }
    .sub-warn-btn { background: transparent; border: 0; padding: 0.15rem; cursor: pointer; line-height: 0; }
    .sub-warn-pop { display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 80; width: 240px; padding: 0.65rem 0.75rem; background: #1e293b; color: #f8fafc; border: 1px solid #e11d48; border-radius: 8px; font-size: 0.82rem; box-shadow: 0 8px 24px rgba(0,0,0,.35); }
    .sub-warn:hover .sub-warn-pop, .sub-warn.is-open .sub-warn-pop { display: block; }
    .sub-warn-pop a { color: #93c5fd; }
    .sub-expired-modal { position: fixed; inset: 0; z-index: 900; background: rgba(2,6,23,.55); display: flex; align-items: center; justify-content: center; padding: 1rem; }
    .sub-expired-card { max-width: 420px; background: #0f172a; color: #f8fafc; border: 1px solid #e11d48; border-radius: 12px; padding: 1.1rem 1.2rem; }
    .sub-expired-card a { color: #93c5fd; }
    .sub-expired-card button { margin-top: 0.8rem; }
    .header-right .user-name { font-size: 0.82rem; color: var(--muted); }
    /* Выравнивание шапок по левому краю контента */
    .public-container { padding-left: var(--app-gutter-x) !important; padding-right: var(--app-gutter-x) !important; }
    /* Mp.Tech в шапке: чуть компактнее */
    #logo-mptech.public-logo { font-size: 0.96rem; letter-spacing: 0.1px; margin-left: 0; color: #f8fafc; }
    .cabinet-dropdown { position: relative; z-index: 1; }
    .cabinet-dropdown.open { z-index: 50; }
    .cabinet-dropdown .cabinet-trigger { display: flex; align-items: center; gap: 0.25rem; padding: 0.35rem 0.55rem; font-size: 0.76rem; background: var(--panel-2); border: 1px solid var(--border); border-radius: var(--radius-sm); cursor: pointer; color: var(--text); max-width: 240px; }
    .cabinet-dropdown .cabinet-trigger:hover { border-color: var(--accent); color: var(--accent); }
    .cabinet-dropdown .cabinet-panel { display: none; position: absolute; top: 100%; left: 0; margin-top: 4px; min-width: 240px; max-height: 320px; overflow-y: auto; background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius-md); box-shadow: 0 12px 28px rgba(0,0,0,0.42); z-index: 200; padding: 0.4rem 0; }
    .cabinet-dropdown.open .cabinet-panel { display: block; }
    .cabinet-dropdown .cabinet-panel label { display: flex; align-items: center; gap: 0.5rem; padding: 0.4rem 0.75rem; cursor: pointer; font-size: 0.82rem; }
    .cabinet-dropdown .cabinet-panel label:hover { background: var(--bg); }
    .cabinet-dropdown .cabinet-panel input[type=checkbox] { width: 1rem; height: 1rem; }
    .cabinet-dropdown .cabinet-panel .cabinet-panel-all { border-bottom: 1px solid var(--border); margin-bottom: 0.25rem; }
    /* Режим инкогнито: только визуальный блюр идентификаторов (данные и клики без изменений) */
    body.privacy-incognito td.td-privacy-sensitive,
    body.privacy-incognito #cabinet-trigger,
    body.privacy-incognito #cabinet-panel .cabinet-panel-all,
    body.privacy-incognito #cabinet-panel label,
    body.privacy-incognito #cabinets-list table tbody td:nth-child(-n+2),
    body.privacy-incognito #lamoda-cabinets-list table tbody td:nth-child(-n+2),
    body.privacy-incognito #cab-name, body.privacy-incognito #cab-token, body.privacy-incognito #cab-management-token,
    body.privacy-incognito #lamoda-cab-name, body.privacy-incognito #lamoda-client-id, body.privacy-incognito #lamoda-client-secret,
    body.privacy-incognito #lamoda-login-main, body.privacy-incognito #lamoda-password-main, body.privacy-incognito #lamoda-login-ads, body.privacy-incognito #lamoda-password-ads,
    body.privacy-incognito #ext-cabinet-id, body.privacy-incognito #ext-cabinet-select,
    body.privacy-incognito #agent-nmid, body.privacy-incognito #art-nm-input, body.privacy-incognito #ctr-nmid,
    body.privacy-incognito #ads-keys-nm,
    body.privacy-incognito td[data-col="stk0"], body.privacy-incognito td[data-col="stk1"], body.privacy-incognito td[data-col="stk2"],
    body.privacy-incognito td[data-col="stk3"], body.privacy-incognito td[data-col="stk4"], body.privacy-incognito td[data-col="stk5"],
    body.privacy-incognito td[data-col="stk6"], body.privacy-incognito td[data-col="stk7"], body.privacy-incognito td[data-col="stk8"] {
      filter: blur(6px);
      -webkit-user-select: none;
      user-select: none;
    }
    body:not(.abc-global-on) :where(td, th)[data-col="abc_combo"] { display: none; }
    #page-finance-abc :where(td, th)[data-col="abc_combo"] { display: table-cell; }
    body.abc-global-on #btn-global-abc,
    #btn-global-abc.active {
      background: var(--accent);
      color: var(--bg);
      border-color: var(--accent);
      font-weight: 600;
    }
    .abc-help-dialog {
      max-width: 36rem;
      background: var(--panel, #121a2b);
      color: var(--text, #e8eef8);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 1rem 1.1rem 0.85rem;
    }
    .abc-help-dialog::backdrop { background: rgba(0, 0, 0, 0.45); }
    .abc-help-dialog h2 { margin: 0 0 0.5rem; font-size: 1.05rem; }
    .abc-help-dialog p, .abc-help-dialog li { font-size: 0.85rem; line-height: 1.45; margin: 0.35rem 0; }
    .abc-help-dialog ul { margin: 0.2rem 0 0.4rem 1.1rem; padding: 0; }
    body.privacy-incognito .privacy-incognito-btn.active {
      background: var(--accent);
      color: var(--bg);
      border-color: var(--accent);
      font-weight: 600;
    }
    /* ID РК и артикул в заголовках/подписях — только эти span блюрим */
    body.privacy-incognito .privacy-blur-id {
      filter: blur(6px);
      -webkit-user-select: none;
      user-select: none;
      display: inline-block;
    }
    nav { display: flex; gap: 0.14rem; padding: 0.12rem 0; border-bottom: 1px solid var(--border); margin-bottom: 0.28rem; flex-wrap: wrap; align-items: center; }
    /* Небольшой воздух под строкой периода/тулбаром — внутри липкого блока (фон и sticky), не у контента ниже */
    .page-header-sticky { position: sticky; top: calc(var(--public-header-height, 48px) + var(--header-nav-height, 72px)); z-index: 25; background: linear-gradient(180deg, #0b1220 0%, #0a101d 100%); padding-bottom: 0.48rem; margin-bottom: 0; border-bottom: 1px solid var(--border); }
    /* Flex-страницы AB: header-nav уже липкий выше — без второго sticky-offset (~--header-nav-height пустоты с градиентом) */
    :is(
      #page-rnp, #page-article, #page-subject, #page-imt, #page-brand, #page-cabinet,
      #page-heatmap, #page-unit, #page-orders, #page-shipments6, #page-stocksPage,
      #page-equilibrium, #page-search-queries, #page-ads, #page-health, #page-photos,
      #page-reviews, #page-lamoda-daily, #page-lamoda-dynamics, #page-lamoda-heatmap
    ).page.active .page-header-sticky {
      top: 0;
    }
    .page-header-sticky .toolbar:last-child { margin-bottom: 0; }
    .header-nav-sticky { position: sticky; top: var(--public-header-height, 48px); z-index: 40; background: linear-gradient(180deg, #0b1220 0%, #0a101d 100%); padding-bottom: 0.12rem; }
    nav a { color: var(--accent); text-decoration: none; padding: 0.12rem 0.32rem; border-radius: 4px; font-size: 0.72rem; white-space: nowrap; }
    #nav-main { display: flex; flex-wrap: wrap; gap: 0.14rem; align-items: center; }
    nav a:hover, nav a.active { background: var(--panel); font-weight: 600; }
    .health-badge { display:inline-flex;align-items:center;border-radius:999px;padding:0.08rem 0.38rem;font-weight:700;background:rgba(134,142,150,0.16);color:var(--text);white-space:nowrap; }
    .health-badge.warn { background:rgba(252,196,25,0.16);color:var(--warn); }
    .health-badge.bad { background:rgba(255,107,107,0.16);color:var(--danger); }
    .menu-beta-badge {
      display: inline-block;
      margin-left: 0.3rem;
      padding: 0.06rem 0.38rem;
      font-size: 0.62rem;
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.05em;
      line-height: 1.25;
      border-radius: 4px;
      background: rgba(251, 191, 36, 0.22);
      color: #fbbf24;
      vertical-align: middle;
    }
    .health-priority { min-width:220px;line-height:1.25;margin:0.08rem 0; }
    .health-rev-heat { font-size:0.62rem; letter-spacing:0.04em; line-height:1.2; margin-top:0.15rem; white-space:normal; word-break:break-all; max-width:12rem; }
    .health-agent-btn.health-agent-hot { border-color:var(--danger);color:var(--danger);font-weight:700;box-shadow:0 0 0 1px rgba(255,107,107,0.25) inset; }
    /* Заголовки разделов: единый стиль как у РНП */
    h1 { font-size: 1.16rem; margin: 0 0 0.34rem; font-weight: 650; color: #f8fafc; letter-spacing: -0.02em; line-height: 1.15; }

    /* Левое выезжающее меню */
    .side-menu-overlay {
      position: fixed; inset: 0; background: rgba(0,0,0,0.45);
      display: none; z-index: 120;
    }
    .side-menu-overlay.open { display: block; }
    .side-menu {
      position: fixed; top: 0; left: 0; height: 100vh; width: min(320px, 86vw);
      background: #0a101d; border-right: 1px solid var(--border);
      transform: translateX(-102%); transition: transform 0.18s ease;
      z-index: 130; display: flex; flex-direction: column;
    }
    .side-menu.open { transform: translateX(0); box-shadow: 0 18px 42px rgba(0, 0, 0, 0.42); }
    .side-menu-header { display: flex; align-items: center; justify-content: space-between; padding: 0.7rem 0.75rem; border-bottom: 1px solid var(--border); background: #0b1220; }
    .side-menu-title { font-weight: 700; color: #f8fafc; font-size: 0.9rem; }
    .side-menu-close { border: none; background: transparent; color: var(--muted); font-size: 1.2rem; cursor: pointer; line-height: 1; padding: 0.1rem 0.25rem; }
    .side-menu-close:hover { color: var(--accent); }
    .side-menu-list { padding: 0.55rem 0.35rem 0.95rem; overflow: auto; }
    .side-menu-item {
      display: flex; width: 100%;
      background: transparent; border: 1px solid transparent; color: var(--muted);
      padding: 0.48rem 0.65rem; border-radius: var(--radius-sm);
      cursor: pointer; text-align: left; font-size: 0.82rem;
    }
    .side-menu-item:hover { background: #161f2e; border-color: var(--border); color: #e2e8f0; }
    .side-menu-item.active { background: rgba(59,130,246,0.13); border-color: rgba(59,130,246,0.45); color: #60a5fa; font-weight: 700; }

    /* РНП: тайтл-строка как Mp.Tech + справа управление */
    #page-rnp .rnp-title-row { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.25rem; }
    #page-rnp .rnp-title {
      /* Как у WB Analytics в шапке */
      font-weight: 600;
      font-size: 0.82rem;
      letter-spacing: 0;
      color: var(--accent);
      margin: 0;
      line-height: 1.1;
    }
    #page-rnp .rnp-title-right { margin-left: auto; display: inline-flex; align-items: center; gap: 0.4rem; }
    #page-rnp #btn-rnp-collapse { border: none; background: transparent; color: var(--muted); cursor: pointer; padding: 0.1rem 0.25rem; font-size: 1rem; line-height: 1; }
    #page-rnp #btn-rnp-collapse:hover { color: var(--accent); }
    #page-rnp .rnp-title-row #sync-data-banner.sync-data-banner--top { margin-left: 0.15rem; }

    /* Скрываем старые строки навигации (меню теперь слева) */
    #nav-top, #nav-main, #nav-main-lamoda { display: none !important; }
    .scope-chip {
      display: inline-flex; align-items: center; gap: 0.35rem;
      padding: 0.12rem 0.42rem;
      border: 1px solid var(--border);
      border-radius: 999px;
      background: rgba(255,255,255,0.03);
      color: var(--text);
      font-size: 0.72rem;
      line-height: 1.1;
      white-space: nowrap;
      vertical-align: middle;
    }
    .scope-chip .scope-chip__k { color: var(--muted); font-weight: 600; }
    .scope-chip.scope-chip--cabinet { border-color: rgba(77,171,247,0.35); }
    .scope-chip.scope-chip--campaign { border-color: rgba(81,207,102,0.35); }
    .scope-chip .scope-chip__v { font-weight: 600; }
    .kpi-good { color: var(--success) !important; }
    .kpi-bad { color: var(--danger) !important; }
    .kpi-neutral { color: var(--text) !important; }
    .toolbar-group { display: inline-flex; align-items: center; gap: 0.28rem; flex-wrap: wrap; }
    .toolbar-sep { width: 1px; height: 1.35rem; background: var(--border); opacity: 0.85; margin: 0 0.12rem; }
    .toolbar-group-label { font-size: 0.72rem; color: var(--muted); font-weight: 700; margin-right: 0.1rem; }
    body.ads-density-comfort #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-row th { padding: 6px 8px !important; }
    body.ads-density-comfort #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-filter-row td { padding: 4px 6px !important; }
    body.ads-density-comfort #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-filter-row input.filter-quick { height: 24px; padding: 3px 6px; }
    body.ads-density-comfort #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-filter-row button.filter-btn { height: 24px; min-height: 24px; line-height: 22px; }
    body.ads-density-comfort #page-ads .ads-campaign-text-slot { line-height: 1.15; }
    body.ads-density-comfort #page-ads .ads-campaign-text-slot.ads-campaign-lines { gap: 3px; }
    /* Simple custom tooltip */
    .ux-tooltip {
      position: fixed;
      z-index: 9999;
      max-width: min(420px, calc(100vw - 24px));
      padding: 8px 10px;
      border-radius: 8px;
      border: 1px solid rgba(255,255,255,0.12);
      background: rgba(20, 22, 27, 0.96);
      color: var(--text);
      font-size: 0.76rem;
      line-height: 1.35;
      box-shadow: 0 8px 22px rgba(0,0,0,0.4);
      pointer-events: none;
      opacity: 0;
      transform: translateY(2px);
      transition: opacity 90ms ease, transform 90ms ease;
      white-space: pre-wrap;
    }
    .ux-tooltip--show { opacity: 1; transform: translateY(0); }
    #page-ads .funnel-sep {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0 0.35rem;
      min-width: 2.4rem;
      color: var(--muted);
      font-size: 0.7rem;
      font-weight: 700;
      border-left: 1px solid var(--border);
      border-right: 1px solid var(--border);
      border-radius: 8px;
      background: rgba(255,255,255,0.02);
    }
    #page-ads .funnel-sep small { display:block; font-size:0.62rem; font-weight:600; color: var(--muted); margin-top:0.1rem; }
    .page { display: none; }
    .page.active { display: block; }
    /* Дашборды: окно таблицы растягивается по высоте экрана (скролл внутри .tbl-wrap) */
    #page-rnp.page.active,
    #page-article.page.active,
    #page-subject.page.active,
    #page-imt.page.active,
    #page-brand.page.active,
    #page-cabinet.page.active,
    #page-heatmap.page.active,
    #page-unit.page.active,
    #page-il-irp.page.active,
    #page-orders.page.active,
    #page-shipments6.page.active,
    #page-stocksPage.page.active,
    #page-equilibrium.page.active,
    #page-search-queries.page.active,
    #page-ads.page.active,
    #page-health.page.active,
    #page-photos.page.active,
    #page-reviews.page.active,
    #page-lamoda-daily.page.active,
    #page-lamoda-dynamics.page.active,
    #page-lamoda-heatmap.page.active {
      display: flex;
      flex-direction: column;
      /* Высота экрана минус шапка/навигация и padding контейнера, чтобы низ окна был у края монитора. */
      height: calc(100vh - var(--public-header-height, 48px) - var(--header-nav-height, 72px) - 24px);
      min-height: 0;
    }

    #page-rnp .page-header-sticky,
    #page-article .page-header-sticky,
    #page-subject .page-header-sticky,
    #page-imt .page-header-sticky,
    #page-brand .page-header-sticky,
    #page-cabinet .page-header-sticky,
    #page-heatmap .page-header-sticky,
    #page-unit .page-header-sticky,
    #page-orders .page-header-sticky,
    #page-shipments6 .page-header-sticky,
    #page-stocksPage .page-header-sticky,
    #page-hourly .page-header-sticky,
    #page-equilibrium .page-header-sticky,
    #page-search-queries .page-header-sticky,
    #page-ads .page-header-sticky,
    #page-health .page-header-sticky,
    #page-photos .page-header-sticky,
    #page-reviews .page-header-sticky,
    #page-lamoda-daily .page-header-sticky,
    #page-lamoda-dynamics .page-header-sticky,
    #page-lamoda-heatmap .page-header-sticky { flex: 0 0 auto; }

    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) > [id^="page-mount-"] {
      flex: 1 1 0;
      min-width: 0;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) > [id^="page-mount-"] > .page-header-sticky,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) > [id^="page-mount-"] > .art-catalog-panel,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) > [id^="page-mount-"] > .art-page-scroll {
      width: 100%;
      min-width: 0;
      box-sizing: border-box;
    }

    #page-rnp > .dash-box.dash-box-tbl,
    #page-article > .art-page-scroll > .art-section .dash-box.dash-box-tbl,
    #page-article > .dash-box.dash-box-tbl,
    #page-subject > [id^="page-mount-"] > .art-catalog-panel,
    #page-imt > [id^="page-mount-"] > .art-catalog-panel,
    #page-brand > [id^="page-mount-"] > .art-catalog-panel,
    #page-cabinet > [id^="page-mount-"] > .art-catalog-panel,
    #page-subject > .art-catalog-panel,
    #page-imt > .art-catalog-panel,
    #page-brand > .art-catalog-panel,
    #page-cabinet > .art-catalog-panel,
    #page-subject > .dash-box.dash-box-tbl,
    #page-cabinet > .dash-box.dash-box-tbl,
    #page-heatmap > .dash-box.dash-box-tbl,
    #page-unit > .dash-box.dash-box-tbl,
    #page-orders > .dash-box.dash-box-tbl,
    /* Отгрузки: панель — вертикальный скролл справа; каждая таблица ~ высота окна */
    #page-shipments6 > #ship-panel-analytics,
    #page-shipments6 > #ship-panel-calc {
      flex: 1 1 0;
      min-height: 0;
      min-width: 0;
      display: flex;
      flex-direction: column;
      --ship-table-body-min-h: max(22rem, calc(100dvh - var(--public-header-height, 48px) - var(--header-nav-height, 72px) - 13.5rem));
    }
    #page-shipments6 > #ship-panel-calc > #ship-plan-scroll-host {
      flex: 1 1 auto;
      min-height: 0;
      min-width: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      overscroll-behavior: contain;
    }
    #page-shipments6 > #ship-panel-calc > #ship-plan-scroll-host > .dash-box.dash-box-tbl {
      flex: 1 1 auto;
      min-height: var(--ship-table-body-min-h);
      min-width: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      margin-bottom: 0 !important;
    }
    #page-shipments6 .ship-plan-fo-group { background: rgba(127,168,255,0.08); font-weight: 700; font-size: 0.76rem; line-height: 1.25; vertical-align: bottom; }
    #page-shipments6 .ship-plan-supply-hdr { cursor: pointer; user-select: none; white-space: normal; max-width: 4.75rem; line-height: 1.18; font-size: 0.72rem; }
    #page-shipments6 .ship-plan-supply-off { opacity: 0.52; text-decoration: line-through; }
    #page-shipments6 .ship-plan-wh-mini-line { font-size: 0.68rem; line-height: 1.25; opacity: 0.95; }
    #page-shipments6 .ship-plan-product-sub { opacity: 0.88; }
    /* Метагруппа ФО: ЛКМ — столбцы складов справа; ПКМ — справочный список */
    #page-shipments6 #ship-plan-table thead .meta-header-cell.ship-plan-meta-fo-hdr {
      cursor: pointer;
      outline: none;
      background: rgba(127,168,255,0.06);
    }
    #page-shipments6 #ship-plan-table thead .meta-header-cell.ship-plan-meta-fo-hdr:hover {
      background: rgba(127,168,255,0.12);
      color: var(--text);
    }
    /* Метагруппа склада под ФО: ПКМ — исключить из расчёта */
    #page-shipments6 #ship-plan-table thead .meta-header-cell.ship-plan-meta-wh-hdr {
      cursor: context-menu;
      outline: none;
      background: rgba(180, 160, 255, 0.07);
      max-width: 12rem;
    }
    #page-shipments6 #ship-plan-table thead .meta-header-cell.ship-plan-meta-wh-hdr:hover {
      background: rgba(180, 160, 255, 0.14);
      color: var(--text);
    }
    /* Компактный режим расчёта плана отгрузок (ещё уже — пользовательским «Высота строк» / масштабом таблицы) */
    #page-shipments6 #ship-plan-table.ship-plan-calc-compact .tbl-cell-data { font-size: 0.71rem; line-height: 1.22; padding: 1px 3px; }
    #page-shipments6 #ship-plan-table.ship-plan-calc-compact thead tr.header-filter-row input.filter-quick {
      padding: 1px 3px;
      font-size: 0.69rem;
    }
    #page-shipments6 #ship-plan-table.ship-plan-calc-compact thead tr.meta-header-row th.meta-header-cell { font-size: 0.58rem !important; line-height: 1.1; }
    #page-shipments6 #ship-plan-table.ship-plan-calc-compact thead tr.header-row th .th-title { font-size: 0.56rem !important; line-height: 1.1; }
    #page-shipments6 #ship-plan-table.ship-plan-calc-compact thead tr.header-row th .th-unit { font-size: 0.54rem !important; line-height: 1.08; }
    #page-shipments6 #ship-plan-table.ship-plan-calc-compact thead tr.header-row th .th-inner { padding: 2px 3px; }
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_product"] .tbl-cell-data,
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_photo_fmt"] .tbl-cell-data {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      max-width: 100%;
      overflow: visible;
    }
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_product"] .art-cell,
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_photo_fmt"] .art-cell {
      display: inline-flex;
      align-items: center;
      gap: 3px;
      min-width: 0;
    }
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_product"] .art-photo-wrap,
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_photo_fmt"] .art-photo-wrap {
      width: calc((var(--tbl-row-h, 28px) - 4px) * var(--tbl-zoom, 1));
      height: calc((var(--tbl-row-h, 28px) - 4px) * var(--tbl-zoom, 1));
      flex-shrink: 0;
    }
    #page-shipments6 > #ship-panel-analytics {
      overflow-y: auto;
      overflow-x: auto;
      scrollbar-gutter: stable;
      -webkit-overflow-scrolling: touch;
    }
    #page-shipments6 #ship-panel-analytics > .dash-box.dash-box-tbl.ship-main-table,
    #page-shipments6 #ship-panel-analytics > .dash-box.dash-box-tbl.ship-warehouse-analytics-box {
      flex: 0 0 auto;
      min-height: 0;
      min-width: 0;
      display: flex;
      flex-direction: column;
      overflow: visible;
    }
    #page-shipments6 #ship-panel-analytics > .dash-box.dash-box-tbl.ship-warehouse-analytics-box {
      margin-bottom: 0.75rem;
    }
    #page-shipments6 .ship-main-table > h3 { flex: 0 0 auto; }
    #page-shipments6 .ship-main-table .warehouse-storage-wrap {
      flex: 0 0 auto;
      min-height: 0;
      display: flex;
      flex-direction: column;
      margin-bottom: 0;
    }
    #page-shipments6 .ship-main-table .warehouse-storage-wrap > .toolbar.toolbar-dashboard { flex: 0 0 auto; }
    #page-shipments6 .ship-main-table .warehouse-storage-wrap > .dash-box.dash-box-tbl {
      flex: 0 0 auto;
      min-height: var(--ship-table-body-min-h);
      display: flex;
      flex-direction: column;
      margin-top: 0 !important;
      overflow: visible;
    }
    #page-shipments6 .ship-main-table .warehouse-storage-wrap > .dash-box.dash-box-tbl > .ship-tbl-scroll-host {
      flex: 1 1 auto;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-width: 0;
    }
    #page-shipments6 .ship-warehouse-analytics-box > h3 { flex: 0 0 auto; }
    #page-shipments6 .ship-warehouse-analytics-box .warehouse-storage-wrap {
      flex: 0 0 auto;
      min-height: 0;
      display: flex;
      flex-direction: column;
      margin-bottom: 0;
    }
    #page-shipments6 .ship-warehouse-analytics-box .warehouse-storage-wrap > .toolbar.toolbar-dashboard { flex: 0 0 auto; }
    #page-shipments6 .ship-warehouse-analytics-box .warehouse-storage-wrap > .dash-box.dash-box-tbl {
      flex: 0 0 auto;
      min-height: var(--ship-table-body-min-h);
      display: flex;
      flex-direction: column;
      margin-top: 0 !important;
      overflow: visible;
    }
    #page-shipments6 .ship-warehouse-analytics-box .warehouse-storage-wrap > .dash-box.dash-box-tbl > .ship-tbl-scroll-host {
      flex: 1 1 auto;
      min-height: 0;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      min-width: 0;
    }
    /* Скролл по обеим осям на корне таблицы: горизонтальная полоса у нижнего края видимой области; thead sticky относительно этого же блока */
    #page-shipments6 #ship-table,
    #page-shipments6 #ship-wh-warehouse-table,
    #page-shipments6 #ship-plan-table {
      flex: 1 1 auto;
      min-height: 0;
      min-width: 0;
      overflow: auto;
      overscroll-behavior: contain;
    }
    #page-shipments6 #ship-table .tbl-wrap,
    #page-shipments6 #ship-wh-warehouse-table .tbl-wrap,
    #page-shipments6 #ship-plan-table .tbl-wrap {
      display: block;
      max-height: none;
      min-height: 0;
      overflow: visible;
      height: auto;
    }
    #page-shipments6 #ship-table .tbl-wrap table.dashboard-tbl-zoom,
    #page-shipments6 #ship-wh-warehouse-table .tbl-wrap table.dashboard-tbl-zoom {
      margin-bottom: 0;
    }
    /* ФО и склад в отгрузках: до 3 строк, только целые слова; «федеральный округ» сокращается в тексте через formatShipFoNameForUi */
    #page-shipments6 .ship-cell-name-lines {
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 3;
      overflow: hidden;
      word-break: normal;
      overflow-wrap: normal;
      word-wrap: normal;
      hyphens: none;
      line-height: 1.22;
      text-align: left;
    }
    #page-shipments6 .dest-fo-cell .dest-fo-col--name .ship-cell-name-lines {
      -webkit-line-clamp: 2;
    }
    #page-shipments6 #ship-table tbody td[data-col="fo"],
    #page-shipments6 #ship-table tbody td[data-col="warehouse_name"],
    #page-shipments6 #ship-slot-table tbody td[data-col="fo"],
    #page-shipments6 #ship-slot-table tbody td[data-col="warehouse_name"] {
      vertical-align: top;
      text-align: left;
    }
    #page-shipments6 #ship-wh-warehouse-table thead .rnp-range-meta-cell .ship-cell-name-lines,
    #page-shipments6 #ship-wh-warehouse-table thead .rnp-range-cell .ship-cell-name-lines {
      text-align: center;
      margin-left: auto;
      margin-right: auto;
      max-width: 100%;
    }
    #page-shipments6 #ship-table .tbl-resizable thead tr.header-row,
    #page-shipments6 #ship-wh-warehouse-table .tbl-resizable thead tr.header-row,
    #page-shipments6 #ship-plan-table .tbl-resizable thead tr.header-row {
      position: static;
    }
    /* Доп. горизонтальная прокрутка у нижнего края окна (JS: ship-vp-hscroll-bar--active) */
    .ship-vp-hscroll-bar {
      position: fixed;
      bottom: 0;
      left: 0;
      width: 120px;
      height: 14px;
      max-height: 14px;
      z-index: 44;
      overflow-x: auto;
      overflow-y: hidden;
      background: var(--panel);
      border-top: 1px solid var(--border);
      box-shadow: 0 -4px 14px rgba(0, 0, 0, 0.38);
      scrollbar-width: thin;
      scrollbar-color: #aaa #222;
      box-sizing: border-box;
      opacity: 0;
      visibility: hidden;
      pointer-events: none;
      transition: opacity 0.12s ease, visibility 0.12s ease;
    }
    .ship-vp-hscroll-bar.ship-vp-hscroll-bar--active {
      opacity: 1;
      visibility: visible;
      pointer-events: auto;
    }
    .ship-vp-hscroll-bar::-webkit-scrollbar { height: 12px; }
    .ship-vp-hscroll-bar::-webkit-scrollbar-thumb { background: #aaa; border-radius: 6px; }
    .ship-vp-hscroll-inner { height: 1px; pointer-events: none; }

    #page-shipments6 #ship-panel-analytics > .dash-box.dash-box-tbl,
    #page-stocksPage > .dash-box.dash-box-tbl,
    #page-equilibrium > .dash-box.dash-box-tbl,
    #page-search-queries > .dash-box.dash-box-tbl,
    #page-ads > .dash-box.dash-box-tbl,
    #page-health > .dash-box.dash-box-tbl,
    #page-photos > .dash-box.dash-box-tbl,
    #page-reviews > .dash-box.dash-box-tbl,
    #page-lamoda-daily > .dash-box.dash-box-tbl,
    #page-lamoda-dynamics > .dash-box.dash-box-tbl,
    #page-lamoda-heatmap > .dash-box.dash-box-tbl {
      flex: 1 1 auto;
      min-height: 0;
      padding-bottom: 2px;
      margin-bottom: 0;
      margin-right: 0;
    }

    /* Flex-страницы: таблица заполняет остаток экрана, скролл на .dash-box (как реклама .ads-main-table-scroll) */
    #page-rnp.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-heatmap.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-unit.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-orders.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-stocksPage.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-equilibrium.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-search-queries.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-health.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-health.page.active > .dash-box.dash-box-tbl:has(.table-core-host),
    #page-health.page.active #page-mount-health > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-health.page.active #page-mount-health > .dash-box.dash-box-tbl:has(.table-core-host),
    #page-photos.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-reviews.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-lamoda-daily.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-lamoda-dynamics.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-lamoda-heatmap.page.active > .dash-box.dash-box-tbl:has(.tbl-wrap) {
      flex: 1 1 0;
      min-height: 0;
      max-height: none;
      overflow: auto;
      overflow-x: auto;
      overflow-y: auto;
      scrollbar-gutter: stable;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
    }
    /* Контейнер таблицы и .tbl-wrap — без вложенного скролла (скролл на dash-box / dash-table-scroll) */
    .dash-box.dash-box-tbl:has(.tbl-wrap) > div[id],
    #page-equilibrium #eq-table-scroll-host > div[id] {
      height: auto !important;
      min-height: 0;
      flex: 0 0 auto;
    }
    .dash-box.dash-box-tbl:has(.tbl-wrap) .tbl-wrap,
    #page-equilibrium #eq-table-scroll-host .tbl-wrap {
      max-height: none !important;
      height: auto !important;
      overflow-x: visible !important;
      overflow-y: visible !important;
    }
    #page-shipments6 #ship-panel-analytics > .dash-box.dash-box-tbl > div,
    #page-shipments6 #ship-panel-analytics > .dash-box.dash-box-tbl > .ship-tbl-scroll-host > div[id] { height: auto; }

    #page-rnp #rnp-table .tbl-wrap,
    #page-article .art-catalog-panel { margin-bottom: 0; }
    .art-catalog-chart-active {
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem 0.55rem;
      margin: 0 0 0.45rem;
      max-height: none;
      overflow: visible;
    }
    #page-article #art-catalog-chart-active.art-chart-legend {
      max-height: 9.5rem;
      overflow-y: auto;
    }
    .art-catalog-chart-active-item {
      display: inline-flex;
      align-items: flex-start;
      gap: 0.3rem;
      padding: 0.2rem 0.45rem;
      border-radius: 4px;
      background: rgba(255,255,255,0.04);
      border: 1px solid var(--border);
      font-size: 0.72rem;
      line-height: 1.2;
      cursor: pointer;
      color: inherit;
      font-family: inherit;
      text-align: left;
    }
    .art-catalog-chart-active-item.is-off {
      opacity: 0.45;
      border-style: dashed;
    }
    .art-catalog-chart-active-item.is-off .art-catalog-chart-active-swatch {
      background: var(--muted) !important;
    }
    .ab-sm-metric-label { font-size: 0.82rem; color: var(--muted); margin: 0; }
    .ab-sm-metric-select { margin-left: 0.35rem; max-width: 14rem; }
    .ab-sm-chart-hint { font-size: 0.78rem; color: var(--muted); margin: 0 0 0.35rem; }
    .art-catalog-chart-active-swatch {
      width: 8px;
      height: 8px;
      border-radius: 2px;
      flex: 0 0 auto;
      margin-top: 0.2rem;
    }
    .art-catalog-chart-active-lines { min-width: 0; }
    .art-catalog-chart-active-vendor {
      font-weight: 600;
      color: var(--text);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 12rem;
    }
    .ge-photo-stack { display: inline-flex; flex-wrap: wrap; gap: 2px; max-width: min(320px, 42vw); vertical-align: middle; margin-right: 0.35rem; }
    .ge-photo-stack .art-photo-wrap { width: calc(var(--tbl-photo-size, 28px) * 0.92); height: calc(var(--tbl-photo-size, 28px) * 0.92); }
    .ge-info-photos { max-width: 100%; }
    .ge-catalog-line1 { display: block; font-weight: 600; line-height: 1.25; }
    .ge-catalog-line2 { display: block; font-size: 0.72rem; color: var(--muted); line-height: 1.2; margin-top: 0.1rem; }
    .art-catalog-chart-active-sku {
      color: var(--muted);
      font-size: 0.68rem;
      white-space: nowrap;
    }
    #page-article.art-mode-detail .art-catalog-panel { display: none !important; }
    #page-article.art-mode-detail .art-tabs { display: flex; }
    #page-article.art-mode-detail .art-page-scroll { display: block; }
    #page-article.art-mode-catalog .art-tabs { display: none !important; }
    #page-article.art-mode-catalog .art-page-scroll { display: none !important; }
    #page-subject.ge-mode-detail .art-catalog-panel,
    #page-imt.ge-mode-detail .art-catalog-panel,
    #page-brand.ge-mode-detail .art-catalog-panel,
    #page-cabinet.ge-mode-detail .art-catalog-panel,
    #page-subject.art-mode-detail .art-catalog-panel,
    #page-imt.art-mode-detail .art-catalog-panel,
    #page-brand.art-mode-detail .art-catalog-panel,
    #page-cabinet.art-mode-detail .art-catalog-panel { display: none !important; }
    #page-subject.ge-mode-detail .art-tabs,
    #page-imt.ge-mode-detail .art-tabs,
    #page-brand.ge-mode-detail .art-tabs,
    #page-cabinet.ge-mode-detail .art-tabs,
    #page-subject.art-mode-detail .art-tabs,
    #page-imt.art-mode-detail .art-tabs,
    #page-brand.art-mode-detail .art-tabs,
    #page-cabinet.art-mode-detail .art-tabs { display: flex; }
    #page-subject.ge-mode-detail .art-page-scroll,
    #page-imt.ge-mode-detail .art-page-scroll,
    #page-brand.ge-mode-detail .art-page-scroll,
    #page-cabinet.ge-mode-detail .art-page-scroll,
    #page-subject.art-mode-detail .art-page-scroll,
    #page-imt.art-mode-detail .art-page-scroll,
    #page-brand.art-mode-detail .art-page-scroll,
    #page-cabinet.art-mode-detail .art-page-scroll { display: block; }
    #page-subject.ge-mode-catalog .art-tabs,
    #page-imt.ge-mode-catalog .art-tabs,
    #page-brand.ge-mode-catalog .art-tabs,
    #page-cabinet.ge-mode-catalog .art-tabs,
    #page-subject.art-mode-catalog .art-tabs,
    #page-imt.art-mode-catalog .art-tabs,
    #page-brand.art-mode-catalog .art-tabs,
    #page-cabinet.art-mode-catalog .art-tabs { display: none !important; }
    #page-subject.ge-mode-catalog .art-page-scroll,
    #page-imt.ge-mode-catalog .art-page-scroll,
    #page-brand.ge-mode-catalog .art-page-scroll,
    #page-cabinet.ge-mode-catalog .art-page-scroll,
    #page-subject.art-mode-catalog .art-page-scroll,
    #page-imt.art-mode-catalog .art-page-scroll,
    #page-brand.art-mode-catalog .art-page-scroll,
    #page-cabinet.art-mode-catalog .art-page-scroll { display: none !important; }
    #page-subject .art-tabs,
    #page-imt .art-tabs,
    #page-brand .art-tabs,
    #page-cabinet .art-tabs {
      display: flex; flex-wrap: wrap; gap: 0.35rem; padding: 0.35rem 0; margin-bottom: 0.5rem;
      border-bottom: 1px solid var(--border); flex: 0 0 auto;
    }
    #page-subject.art-mode-detail .art-tabs,
    #page-imt.art-mode-detail .art-tabs,
    #page-brand.art-mode-detail .art-tabs,
    #page-cabinet.art-mode-detail .art-tabs {
      position: sticky; top: 0; z-index: 6;
      background: var(--bg);
      padding: 0.25rem 0 0.5rem;
    }
    #page-subject .art-page-scroll .art-section,
    #page-imt .art-page-scroll .art-section,
    #page-brand .art-page-scroll .art-section,
    #page-cabinet .art-page-scroll .art-section {
      scroll-margin-top: 2.75rem;
      margin-bottom: 1.25rem;
    }
    #page-subject .art-page-scroll .art-section-title,
    #page-imt .art-page-scroll .art-section-title,
    #page-brand .art-page-scroll .art-section-title,
    #page-cabinet .art-page-scroll .art-section-title {
      font-size: 1rem; font-weight: 600; margin: 0 0 0.65rem;
      padding-bottom: 0.35rem; border-bottom: 1px solid var(--border);
    }
    #page-subject .art-tab-btn,
    #page-imt .art-tab-btn,
    #page-brand .art-tab-btn,
    #page-cabinet .art-tab-btn {
      padding: 0.35rem 0.85rem; border-radius: 6px;
      border: 1px solid var(--border); background: var(--panel);
      color: var(--text); font-size: 0.85rem; cursor: pointer;
    }
    #page-subject .art-tab-btn.active,
    #page-imt .art-tab-btn.active,
    #page-brand .art-tab-btn.active,
    #page-cabinet .art-tab-btn.active {
      background: var(--accent); color: var(--bg); border-color: var(--accent);
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .ge-health-summary {
      display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: 0.5rem; margin-bottom: 0.85rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .ge-health-stat {
      padding: 0.5rem 0.6rem; border-radius: 8px; border: 1px solid var(--border); background: var(--panel); font-size: 0.82rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .ge-health-stat strong { display: block; font-size: 1.15rem; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .ge-health-worst { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .ge-health-worst th,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .ge-health-worst td { padding: 0.35rem 0.5rem; border-bottom: 1px solid var(--border); text-align: left; }
    #page-subject .art-page-scroll,
    #page-imt .art-page-scroll,
    #page-brand .art-page-scroll,
    #page-cabinet .art-page-scroll {
      flex: 1 1 0; min-height: 0; overflow-y: auto; overflow-x: auto;
      padding-right: 0.15rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-general-layout {
      display: flex; gap: 0.85rem; align-items: stretch;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-panel {
      flex: 0 0 min(300px, 34%);
      max-width: 320px;
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 0.7rem 0.8rem;
      font-size: 0.8rem;
      line-height: 1.35;
      position: sticky;
      top: 0;
      align-self: flex-start;
      z-index: 2;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-general-main {
      flex: 1 1 0; min-width: 0; display: flex; flex-direction: column;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-grid {
      margin-bottom: 0.75rem;
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0.65rem;
      align-items: stretch;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-card {
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 0.75rem 0.85rem;
      min-height: 5.5rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-card--fin-pie { min-height: 13rem; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-card--funnel { min-height: 0; padding: 0.55rem 0.65rem; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-card--chart {
      min-height: 12.5rem;
      display: flex;
      flex-direction: column;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-pie-wrap {
      display: flex; flex-wrap: wrap; gap: 0.65rem; align-items: flex-start; flex: 1 1 auto; min-height: 0;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-pie-canvas {
      flex: 0 0 min(140px, 40%); max-width: 168px; min-height: 140px; position: relative;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-pie-canvas canvas {
      width: 100% !important; height: 140px !important;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-legend {
      flex: 1 1 12rem; min-width: 10rem; font-size: 0.72rem; line-height: 1.35;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-legend-row {
      display: flex; align-items: baseline; justify-content: space-between; gap: 0.45rem;
      padding: 0.18rem 0; border-bottom: 1px solid rgba(255,255,255,0.04);
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-legend-row:last-child { border-bottom: none; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-legend-k {
      display: inline-flex; align-items: center; gap: 0.35rem; color: var(--muted); min-width: 0;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-legend-dot {
      width: 8px; height: 8px; border-radius: 2px; flex: 0 0 auto;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-legend-v {
      color: var(--text); font-weight: 600; white-space: nowrap; text-align: right;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-fin-base {
      font-size: 0.72rem; color: var(--muted); margin: 0 0 0.45rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-funnel {
      display: flex; flex-direction: column; gap: 0.12rem; flex: 0 0 auto;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-funnel-row {
      display: grid; grid-template-columns: 5.2rem 1fr auto; align-items: center; gap: 0.35rem;
      padding: 0.14rem 0.2rem; border-radius: 4px; line-height: 1.2;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-funnel-row:nth-child(odd) {
      background: rgba(255,255,255,0.03);
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-funnel-label {
      font-size: 0.68rem; color: var(--muted); font-weight: 600;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-funnel-num {
      font-size: 0.82rem; font-weight: 650; color: var(--accent); text-align: right; white-space: nowrap;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-funnel-pct {
      font-size: 0.68rem; font-weight: 600; color: rgba(77,171,247,0.8); white-space: nowrap;
      min-width: 2.8rem; text-align: right;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-metric { margin-bottom: 0.55rem; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-metric:last-child { margin-bottom: 0; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-label {
      display: flex; align-items: center; gap: 0.25rem;
      font-size: 0.72rem; color: var(--muted); margin-bottom: 0.2rem; line-height: 1.25;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-label .art-kpi-hint {
      display: inline-flex; align-items: center; justify-content: center;
      width: 0.95rem; height: 0.95rem; border-radius: 50%;
      border: 1px solid var(--border); font-size: 0.62rem; color: var(--muted); cursor: help;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-value-row {
      display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.35rem 0.5rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-value {
      font-size: 1.35rem; font-weight: 700; line-height: 1.15; color: var(--text);
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-value--sm { font-size: 1.05rem; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-trend {
      font-size: 0.78rem; font-weight: 600; white-space: nowrap;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-trend-down { color: #e03131; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-trend-up { color: #51cf66; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-card-head {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: 0.35rem; font-size: 0.85rem; font-weight: 600;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) #art-kpi-hour-chart {
      flex: 1 1 auto; min-height: 7rem; max-height: 9rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-panel h3 {
      margin: 0 0 0.5rem; font-size: 0.95rem; font-weight: 700;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-sku {
      display: flex; align-items: center; justify-content: space-between;
      gap: 0.35rem; margin-bottom: 0.5rem; font-size: 0.78rem; color: var(--muted);
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-photo {
      width: 100%; max-height: 140px; object-fit: contain; border-radius: 6px;
      background: #fff; margin-bottom: 0.5rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-photos-grid {
      display: grid;
      grid-template-columns: repeat(5, minmax(0, 1fr));
      gap: 4px;
      width: 100%;
      max-height: 140px;
      margin-bottom: 0.5rem;
      overflow: hidden;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-photo-tile {
      display: block;
      width: 100%;
      padding: 0;
      border: none;
      border-radius: 4px;
      background: #fff;
      overflow: hidden;
      cursor: pointer;
      aspect-ratio: 3 / 4;
      min-height: 0;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-photo-tile img {
      width: 100%;
      height: 100%;
      object-fit: contain;
      display: block;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-photo-tile:hover {
      outline: 1px solid var(--accent);
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-row {
      display: flex; justify-content: space-between; gap: 0.5rem;
      padding: 0.28rem 0; border-bottom: 1px dotted var(--border);
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-row:last-child { border-bottom: none; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-label { color: var(--muted); flex: 0 0 48%; }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-value {
      text-align: right; flex: 1 1 auto; word-break: break-word;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-tags {
      display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.35rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-tag {
      background: var(--bg); border: 1px solid var(--border); border-radius: 4px;
      padding: 0.12rem 0.4rem; font-size: 0.72rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-info-comment {
      width: 100%; min-height: 3.5rem; margin-top: 0.35rem; padding: 0.35rem 0.45rem;
      border-radius: 6px; border: 1px solid var(--border); background: var(--bg);
      color: var(--text); font-size: 0.78rem; resize: vertical;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-general"] .art-chart-panel {
      flex: 0 0 auto;
      margin-bottom: 0.65rem;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-general"] .art-rnp-table-block {
      width: 100%;
      min-width: 0;
      min-height: min(28rem, 55vh);
      display: flex;
      flex-direction: column;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-general"] .art-table-toolbar {
      flex: 0 0 auto;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.65rem;
      padding: 0.4rem 0.55rem;
      border-bottom: 1px solid var(--border);
      background: var(--panel);
      border-radius: 10px 10px 0 0;
    }
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-general"] .art-rnp-table-block > [id$="-detail-table"] {
      flex: 1 1 auto;
      min-height: 22rem;
      min-width: 0;
    }
    @media (max-width: 1100px) {
      :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 640px) {
      :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-kpi-grid { grid-template-columns: 1fr; }
      :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .art-general-layout { flex-direction: column; }
    }
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet).art-mode-catalog .art-catalog-panel,
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet).ge-mode-catalog .art-catalog-panel {
      flex: 1 1 auto;
      min-height: 0;
      display: flex;
      flex-direction: column;
      margin-bottom: 0;
    }
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet).art-mode-catalog .art-catalog-panel > .dash-box.dash-box-tbl,
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet).ge-mode-catalog .art-catalog-panel > .dash-box.dash-box-tbl {
      flex: 1 1 auto;
      min-height: min(64vh, calc(100dvh - var(--public-header-height, 48px) - var(--header-nav-height, 72px) - 13rem));
      display: flex;
      flex-direction: column;
      overflow: auto;
      overflow-x: auto;
      overflow-y: auto;
      scrollbar-gutter: stable;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
    }
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet).art-mode-catalog .art-catalog-panel > .dash-box.dash-box-tbl > [id$="-catalog-table"],
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet).ge-mode-catalog .art-catalog-panel > .dash-box.dash-box-tbl > [id$="-catalog-table"] {
      flex: 1 1 auto;
      min-height: 0 !important;
    }
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet).art-mode-catalog .art-catalog-panel > .dash-box.dash-box-tbl > [id$="-catalog-table"] .tbl-wrap,
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet).ge-mode-catalog .art-catalog-panel > .dash-box.dash-box-tbl > [id$="-catalog-table"] .tbl-wrap {
      height: 100%;
      max-height: none;
    }
    .ab-catalog-chart { flex: 0 0 auto; margin-top: 0.75rem; }
    .ab-sm-chart-head-actions {
      display: flex;
      align-items: center;
      gap: 0.5rem;
      flex-wrap: wrap;
    }
    #page-article .art-page-scroll {
      flex: 1 1 0;
      min-height: 0;
      overflow-y: auto;
      overflow-x: auto;
      padding-right: 0.15rem;
    }
    #page-article .art-tabs {
      display: flex; flex-wrap: wrap; gap: 0.35rem;
      margin: 0 0 0.5rem; flex: 0 0 auto;
      position: sticky; top: 0; z-index: 6;
      background: var(--bg);
      padding: 0.25rem 0 0.5rem;
      border-bottom: 1px solid var(--border);
    }
    #page-article .art-tab-btn {
      padding: 0.35rem 0.85rem; border-radius: 6px;
      border: 1px solid var(--border); background: var(--panel);
      color: var(--text); font-size: 0.85rem; cursor: pointer;
    }
    #page-article .art-tab-btn.active { background: var(--accent); color: var(--bg); border-color: var(--accent); }
    #page-article .art-section-title-link {
      background: none; border: none; padding: 0; margin: 0;
      font: inherit; font-weight: 700; color: var(--accent);
      cursor: pointer; text-decoration: underline;
      text-underline-offset: 0.2em;
    }
    #page-article .art-section-title-link:hover { opacity: 0.85; }
    #page-article .art-section { scroll-margin-top: 2.75rem; margin-bottom: 1.25rem; }
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet) .dash-box.ab-table-host-loading,
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet) .dash-box.table-load-host-loading {
      position: relative;
    }
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet) .ab-table-host-loading-overlay,
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet) .table-load-host-overlay {
      position: absolute;
      inset: 0;
      z-index: 25;
      display: flex;
      align-items: center;
      justify-content: center;
      background: rgba(17, 24, 39, 0.55);
      pointer-events: none;
      border-radius: inherit;
    }
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet) .ab-table-host-loading-text,
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet) .table-load-host-text {
      color: var(--muted);
      font-size: 0.85rem;
    }
    #page-article .art-section-title {
      font-size: 1rem; font-weight: 600; margin: 0 0 0.65rem;
      padding-bottom: 0.35rem; border-bottom: 1px solid var(--border);
    }
    #page-article .art-kpi-grid {
      margin-bottom: 0.75rem;
      flex: 0 0 auto;
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0.65rem;
      align-items: stretch;
    }
    #page-article .art-kpi-card--fin-pie { min-height: 13rem; }
    #page-article .art-kpi-card--funnel { min-height: 0; padding: 0.55rem 0.65rem; }
    #page-article .art-kpi-fin-pie-wrap {
      display: flex; flex-wrap: wrap; gap: 0.65rem; align-items: flex-start; flex: 1 1 auto; min-height: 0;
    }
    #page-article .art-kpi-fin-pie-canvas { flex: 0 0 min(140px, 40%); max-width: 168px; min-height: 140px; position: relative; }
    #page-article .art-kpi-fin-pie-canvas canvas { width: 100% !important; height: 140px !important; }
    #page-article .art-kpi-fin-legend { flex: 1 1 12rem; min-width: 10rem; font-size: 0.72rem; line-height: 1.35; }
    #page-article .art-kpi-fin-legend-row {
      display: flex; align-items: baseline; justify-content: space-between; gap: 0.45rem;
      padding: 0.18rem 0; border-bottom: 1px solid rgba(255,255,255,0.04);
    }
    #page-article .art-kpi-fin-legend-row:last-child { border-bottom: none; }
    #page-article .art-kpi-fin-legend-k { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--muted); min-width: 0; }
    #page-article .art-kpi-fin-legend-dot { width: 8px; height: 8px; border-radius: 2px; flex: 0 0 auto; }
    #page-article .art-kpi-fin-legend-v { color: var(--text); font-weight: 600; white-space: nowrap; text-align: right; }
    #page-article .art-kpi-fin-base { font-size: 0.72rem; color: var(--muted); margin: 0 0 0.45rem; }
    #page-article .art-kpi-funnel { display: flex; flex-direction: column; gap: 0.12rem; flex: 0 0 auto; }
    #page-article .art-kpi-funnel-row {
      display: grid; grid-template-columns: 5.2rem 1fr auto; align-items: center; gap: 0.35rem;
      padding: 0.14rem 0.2rem; border-radius: 4px; line-height: 1.2;
    }
    #page-article .art-kpi-funnel-row:nth-child(odd) { background: rgba(255,255,255,0.03); }
    #page-article .art-kpi-funnel-label { font-size: 0.68rem; color: var(--muted); font-weight: 600; }
    #page-article .art-kpi-funnel-num { font-size: 0.82rem; font-weight: 650; color: var(--accent); text-align: right; white-space: nowrap; }
    #page-article .art-kpi-funnel-pct { font-size: 0.68rem; font-weight: 600; color: rgba(77,171,247,0.8); white-space: nowrap; min-width: 2.8rem; text-align: right; }
    @media (max-width: 1100px) {
      #page-article .art-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 640px) {
      #page-article .art-kpi-grid { grid-template-columns: 1fr; }
      #page-article #art-section-general .art-general-layout { flex-direction: column; }
      #page-article #art-section-general .art-info-sticky-col {
        flex: 0 0 auto;
        max-width: none;
        width: 100%;
        position: static;
        justify-content: flex-start;
      }
    }
    #page-article .art-kpi-card {
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 0.75rem 0.85rem;
      min-height: 5.5rem;
    }
    #page-article .art-kpi-card--chart {
      min-height: 12.5rem;
      display: flex;
      flex-direction: column;
    }
    #page-article .art-kpi-card--health.art-kpi-health-mini {
      min-height: 12.5rem;
      display: flex;
      flex-direction: column;
    }
    #page-article .art-health-more-link {
      font-size: 0.72rem;
      font-weight: 600;
      color: var(--accent);
      text-decoration: none;
      margin-left: auto;
    }
    #page-article .art-health-more-link:hover { text-decoration: underline; }
    #page-article .art-health-mini-body {
      display: flex;
      gap: 0.55rem;
      align-items: flex-start;
      flex: 1 1 auto;
      min-height: 0;
    }
    #page-article .art-health-mini-score {
      flex: 0 0 auto;
      text-align: center;
      padding: 0.35rem 0.5rem;
      border-radius: 8px;
      background: rgba(134, 142, 150, 0.12);
      min-width: 3.5rem;
    }
    #page-article .art-health-mini-score.bad { background: rgba(255, 107, 107, 0.14); color: var(--danger); }
    #page-article .art-health-mini-score.warn { background: rgba(252, 196, 25, 0.14); color: var(--warn); }
    #page-article .art-health-mini-score-num { display: block; font-size: 1.45rem; font-weight: 800; line-height: 1.1; }
    #page-article .art-health-mini-score-lbl { display: block; font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.02em; margin-top: 0.15rem; }
    #page-article .art-health-mini-main { flex: 1 1 auto; min-width: 0; }
    #page-article .art-health-mini-action { font-size: 0.78rem; font-weight: 650; line-height: 1.25; margin-bottom: 0.2rem; }
    #page-article .art-health-mini-reason { font-size: 0.7rem; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
    #page-article .art-health-mini-extra { font-size: 0.68rem; line-height: 1.25; margin-top: 0.2rem; }
    #page-article #art-section-health .art-health-hero {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
      align-items: flex-start;
      padding: 0.75rem 0.85rem;
      margin-bottom: 0.75rem;
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 10px;
    }
    #page-article #art-section-health .art-health-hero-score {
      text-align: center;
      padding: 0.5rem 0.75rem;
      border-radius: 10px;
      background: rgba(134, 142, 150, 0.12);
      min-width: 5rem;
    }
    #page-article #art-section-health .art-health-hero-score.bad { background: rgba(255, 107, 107, 0.14); color: var(--danger); }
    #page-article #art-section-health .art-health-hero-score.warn { background: rgba(252, 196, 25, 0.14); color: var(--warn); }
    #page-article #art-section-health .art-health-hero-score-num { font-size: 2rem; font-weight: 800; line-height: 1; }
    #page-article #art-section-health .art-health-hero-main { flex: 1 1 16rem; min-width: 0; }
    #page-article #art-section-health .art-health-hit-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 0.5rem;
      margin-bottom: 0.75rem;
    }
    @media (max-width: 1100px) {
      #page-article #art-section-health .art-health-hit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    #page-article #art-section-health .art-health-hit-card {
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 8px;
      padding: 0.5rem 0.6rem;
      font-size: 0.74rem;
      line-height: 1.35;
      min-height: 4.5rem;
    }
    #page-article #art-section-health .art-health-hit-card.is-bad { border-color: rgba(255, 107, 107, 0.45); }
    #page-article #art-section-health .art-health-hit-card.is-warn { border-color: rgba(252, 196, 25, 0.45); }
    #page-article #art-section-health .art-health-hit-title { font-weight: 700; font-size: 0.72rem; margin-bottom: 0.25rem; color: var(--muted); }
    #page-article #art-section-health .art-health-detail-cols {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 0.75rem;
      margin-bottom: 0.75rem;
    }
    @media (max-width: 900px) {
      #page-article #art-section-health .art-health-detail-cols { grid-template-columns: 1fr; }
    }
    #page-article #art-section-health .art-health-panel {
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 0.65rem 0.75rem;
    }
    #page-article #art-section-health .art-health-panel h4 {
      margin: 0 0 0.45rem;
      font-size: 0.82rem;
      font-weight: 700;
    }
    #page-article #art-section-health .art-health-metric-row {
      display: flex;
      justify-content: space-between;
      gap: 0.5rem;
      padding: 0.22rem 0;
      border-bottom: 1px dotted var(--border);
      font-size: 0.76rem;
    }
    #page-article #art-section-health .art-health-metric-row:last-child { border-bottom: none; }
    #page-article #art-section-health .art-health-priority-item {
      padding: 0.35rem 0;
      border-bottom: 1px solid var(--border);
      font-size: 0.76rem;
    }
    #page-article #art-section-health .art-health-priority-item:last-child { border-bottom: none; }
    #page-article #art-section-health .art-health-pri-chip {
      display: inline-block;
      font-size: 0.62rem;
      font-weight: 700;
      text-transform: uppercase;
      padding: 0.05rem 0.3rem;
      border-radius: 4px;
      margin-right: 0.25rem;
      background: rgba(134, 142, 150, 0.2);
    }
    #page-article #art-section-health .art-health-pri-chip.critical { background: rgba(255, 107, 107, 0.2); color: var(--danger); }
    #page-article #art-section-health .art-health-pri-chip.high { background: rgba(252, 196, 25, 0.2); color: var(--warn); }
    #page-article #art-section-general {
      display: flex;
      flex-direction: column;
      gap: 0.75rem;
    }
    #page-article #art-section-general .art-general-layout {
      display: flex;
      gap: 0.85rem;
      align-items: stretch;
      flex: 0 0 auto;
    }
    #page-article #art-section-general .art-info-sticky-col {
      flex: 0 0 min(300px, 34%);
      max-width: 320px;
      display: flex;
      flex-direction: column;
      justify-content: flex-start;
      align-self: stretch;
      z-index: 2;
    }
    #page-article #art-section-general .art-info-panel {
      position: sticky;
      top: 0;
      z-index: 2;
    }
    #page-article #art-section-general .art-general-main {
      flex: 1 1 0;
      min-width: 0;
      display: flex;
      flex-direction: column;
    }
    #page-article #art-section-general .art-general-main > .art-chart-panel {
      flex: 0 0 auto;
      margin-bottom: 0;
    }
    #page-article #art-section-general > .art-rnp-table-block {
      flex: 0 0 auto;
      width: 100%;
      min-width: 0;
      min-height: min(28rem, 55vh);
      display: flex;
      flex-direction: column;
    }
    #page-article #art-section-general .art-general-main > .chart-wrap { flex: 0 0 auto; margin-bottom: 0.75rem; }
    #page-article #art-section-general .art-table-toolbar {
      flex: 0 0 auto;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.65rem;
      padding: 0.4rem 0.55rem;
      border-bottom: 1px solid var(--border);
      background: var(--panel);
      border-radius: 10px 10px 0 0;
    }
    #page-article #art-section-general .art-table-toolbar .art-grain-label {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      font-size: 0.85rem;
      color: var(--muted);
    }
    #page-article #art-section-general .art-table-toolbar #art-grain {
      min-width: 120px;
      padding: 0.25rem 0.5rem;
      border-radius: 4px;
      border: 1px solid var(--border);
      background: var(--bg);
      color: var(--text);
    }
    #page-article #art-section-general .art-rnp-table-block > #art-table {
      flex: 1 1 auto;
      min-height: 22rem;
      min-width: 0;
      width: 100%;
    }
    #page-article #art-section-general .art-rnp-table-block .table-core-scroll {
      max-height: none;
      flex: 1 1 auto;
      min-height: 18rem;
    }
    /* По артикулу (каталог): типографика TC4 compact — как «Расчёт отгрузок» (#ship6-calc-table) */
    #page-article #art-catalog-table .table-core4.table-core-density-compact .data-table {
      font-size: 0.72rem;
      line-height: 1.2;
    }
    #page-article #art-catalog-table .table-core4.table-core-density-compact .data-table th,
    #page-article #art-catalog-table .table-core4.table-core-density-compact .data-table td {
      padding: 0.22rem 0.32rem;
    }
    #page-article #art-catalog-table .table-core4.table-core-density-compact .data-table th {
      min-height: 1.65rem;
      font-size: 0.64rem;
    }
    #page-article #art-catalog-table .table-core4.table-core-density-compact .data-table__meta-row th {
      font-size: 0.66rem;
      padding: 0.16rem 0.32rem;
    }
    #page-article #art-catalog-table .table-core4.table-core-density-compact .data-table__subtitle {
      font-size: 0.62rem;
    }
    #page-article #art-section-visibility > .dash-box.dash-box-tbl {
      display: flex;
      flex-direction: column;
      flex: 0 1 auto;
      min-height: 0;
    }
    #page-article #art-section-visibility > .dash-box.dash-box-tbl > div {
      flex: 0 1 auto;
      min-height: 0;
    }
    #page-article .art-wh-hm-dual {
      display: inline-flex;
      justify-content: space-between;
      align-items: center;
      gap: 0.25rem;
      width: 100%;
      line-height: 1.05;
      font-size: inherit;
      padding: 0;
      font-variant-numeric: tabular-nums;
    }
    #page-article #art-wh-hm-table .art-wh-hm-dual {
      padding: 0 0.3rem;
    }
    #page-article .art-wh-hm-dual--cell { min-width: 100%; }
    #page-article .art-wh-hm-stock { text-align: left; flex: 1 1 auto; font-weight: 600; }
    #page-article .art-wh-hm-orders { text-align: right; flex: 0 0 auto; font-weight: 700; }
    #page-article #art-wh-hm-table th[data-col="_product"],
    #page-article #art-wh-hm-table td[data-col="_product"] {
      font-size: 70%;
    }
    #page-article #art-wh-hm-table td[data-col="_product"].table-core-cell-wrap > .table-core-cell-body {
      align-items: flex-start;
    }
    #page-article #art-wh-hm-table td[data-col="_product"] .table-core-product-cell {
      align-items: flex-start;
    }
    #page-article #art-section-sizes .art-size-hm-dash-box,
    #page-article #art-section-warehouses .art-wh-hm-dash-box {
      display: flex;
      flex-direction: column;
      flex: 0 1 auto;
      min-height: 0;
    }
    #page-article #art-section-sizes .art-size-hm-dash-box > div,
    #page-article #art-section-warehouses .art-wh-hm-dash-box > div {
      flex: 0 1 auto;
      min-height: 0;
    }
    #page-article .art-kpi-metric { margin-bottom: 0.55rem; }
    #page-article .art-kpi-metric:last-child { margin-bottom: 0; }
    #page-article .art-kpi-label {
      display: flex; align-items: center; gap: 0.25rem;
      font-size: 0.72rem; color: var(--muted); margin-bottom: 0.2rem; line-height: 1.25;
    }
    #page-article .art-kpi-label .art-kpi-hint {
      display: inline-flex; align-items: center; justify-content: center;
      width: 0.95rem; height: 0.95rem; border-radius: 50%;
      border: 1px solid var(--border); font-size: 0.62rem; color: var(--muted); cursor: help;
    }
    #page-article .art-kpi-value-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.35rem 0.5rem; }
    #page-article .art-kpi-value { font-size: 1.35rem; font-weight: 700; line-height: 1.15; color: var(--text); }
    #page-article .art-kpi-value--sm { font-size: 1.05rem; }
    #page-article .art-kpi-trend { font-size: 0.78rem; font-weight: 600; white-space: nowrap; }
    #page-article .art-kpi-trend-down { color: #e03131; }
    #page-article .art-kpi-trend-up { color: #51cf66; }
    #page-article .art-chart-panel,
    #page-imt .art-chart-panel,
    #page-subject .art-chart-panel,
    #page-brand .art-chart-panel,
    #page-cabinet .art-chart-panel {
      margin-bottom: 0.65rem;
      padding: 0.55rem 0.65rem 0.45rem;
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 8px;
    }
    .art-chart-panel .art-chart-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      flex-wrap: wrap;
      margin-bottom: 0.4rem;
    }
    .art-chart-panel .art-chart-title { font-size: 0.95rem; font-weight: 700; margin: 0; }
    .art-chart-panel .art-chart-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 0.35rem 0.55rem;
      margin-bottom: 0.45rem;
    }
    .art-chart-panel .art-chart-legend-toggle {
      font-size: 0.78rem;
      color: var(--accent);
      cursor: pointer;
      border: none;
      background: none;
      padding: 0;
      margin: 0 0 0.35rem;
      text-decoration: underline;
    }
    .art-chart-panel .art-chart-legend-chip {
      display: inline-flex;
      flex-direction: column;
      align-items: stretch;
      gap: 0.2rem;
      padding: 0.35rem 0.45rem 0.3rem;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: var(--bg);
      color: var(--text);
      font-size: 0.72rem;
      font-weight: 500;
      cursor: pointer;
      user-select: none;
      min-width: 7.5rem;
      max-width: 11rem;
      text-align: left;
      transition: border-color 0.12s, box-shadow 0.12s, opacity 0.12s;
    }
    .art-chart-panel .art-chart-legend-chip:hover {
      filter: none;
      border-color: var(--accent);
      background: rgba(77, 171, 247, 0.06);
    }
    .art-chart-panel .art-chart-legend-chip.is-on {
      border-color: var(--art-chip-color, var(--accent));
      box-shadow: 0 0 0 1px var(--art-chip-color, var(--accent));
    }
    .art-chart-panel .art-chart-legend-chip.is-off { opacity: 0.62; }
    .art-chart-panel .art-chart-legend-chip.is-off .art-chart-legend-chip-label,
    .art-chart-panel .art-chart-legend-chip.is-off .art-chart-swatch { opacity: 0.45; }
    .art-chart-panel .art-chart-legend-chip.is-off .art-chart-mini-spark { opacity: 0.3; }
    .art-chart-panel .art-chart-legend-chip.not-added {
      opacity: 0.5;
      border-style: dashed;
      min-width: auto;
      max-width: none;
      padding: 0.25rem 0.4rem;
    }
    .art-chart-panel .art-chart-legend-chip.not-added .art-chart-mini-spark-wrap { display: none; }
    .art-chart-panel .art-chart-legend-chip.not-added .art-chart-legend-range { display: none; }
    .art-chart-panel .art-chart-legend-chip-head {
      display: flex;
      align-items: center;
      gap: 0.28rem;
      line-height: 1.2;
    }
    .art-chart-panel .art-chart-legend-chip .art-chart-swatch {
      width: 0.55rem;
      height: 0.55rem;
      border-radius: 2px;
      flex-shrink: 0;
    }
    .art-chart-panel .art-chart-legend-chip-label {
      flex: 1;
      min-width: 0;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
    }
    .art-chart-panel .art-chart-mini-spark-wrap {
      position: relative;
      height: 28px;
      border-radius: 4px;
      background: rgba(0,0,0,0.15);
      border: 1px solid var(--border);
      overflow: hidden;
    }
    .art-chart-panel .art-chart-mini-spark {
      display: block;
      width: 100%;
      height: 100%;
    }
    .art-chart-panel .art-chart-mini-spark-fill {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 0;
      opacity: 0.22;
      pointer-events: none;
    }
    .art-chart-panel .art-chart-legend-range {
      display: flex;
      justify-content: space-between;
      font-size: 0.62rem;
      color: var(--muted);
      line-height: 1.1;
    }
    .art-chart-panel .art-chart-legend-range strong {
      color: var(--text);
      font-weight: 600;
    }
    #page-article .art-chart-body-wrap,
    #page-imt .art-chart-body-wrap,
    #page-subject .art-chart-body-wrap,
    #page-brand .art-chart-body-wrap,
    #page-cabinet .art-chart-body-wrap { position: relative; height: 320px; min-height: 220px; }
    #page-article .art-chart-body-wrap canvas,
    #page-imt .art-chart-body-wrap canvas,
    #page-subject .art-chart-body-wrap canvas,
    #page-brand .art-chart-body-wrap canvas,
    #page-cabinet .art-chart-body-wrap canvas { width: 100% !important; height: 100% !important; }
    .art-chart-panel .art-chart-empty {
      position: absolute;
      inset: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      color: var(--muted);
      font-size: 0.85rem;
      text-align: center;
      padding: 1rem;
      pointer-events: none;
    }
    .art-chart-panel .art-chart-empty[hidden] {
      display: none !important;
    }
    .art-chart-modal-overlay {
      display: none;
      position: fixed;
      inset: 0;
      background: rgba(0,0,0,0.55);
      z-index: 200;
      align-items: center;
      justify-content: center;
      padding: 1rem;
    }
    .art-chart-modal-overlay.open { display: flex; }
    .art-chart-modal {
      width: min(720px, 96vw);
      max-height: min(88vh, 720px);
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 10px;
      display: flex;
      flex-direction: column;
      box-shadow: 0 12px 40px rgba(0,0,0,0.45);
    }
    .art-chart-modal-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0.75rem 1rem;
      border-bottom: 1px solid var(--border);
    }
    .art-chart-modal-head h3 { margin: 0; font-size: 1rem; }
    .art-chart-modal-body { overflow: auto; padding: 0.5rem 0.75rem; flex: 1; }
    .art-chart-modal-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
    .art-chart-modal-table th,
    .art-chart-modal-table td { padding: 0.35rem 0.4rem; border-bottom: 1px solid var(--border); vertical-align: middle; }
    .art-chart-modal-table th { color: var(--muted); font-weight: 600; text-align: left; }
    .art-chart-modal-table select {
      width: 100%;
      min-width: 7rem;
      padding: 0.22rem 0.35rem;
      font-size: 0.78rem;
    }
    .art-chart-color-opt-used { color: var(--muted); font-size: 0.72rem; margin-left: 0.25rem; }
    .art-chart-modal-foot {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 0.5rem;
      padding: 0.65rem 1rem;
      border-top: 1px solid var(--border);
      flex-wrap: wrap;
    }
    #page-article .art-kpi-card-head {
      display: flex; align-items: center; justify-content: space-between;
      margin-bottom: 0.35rem; font-size: 0.85rem; font-weight: 600;
    }
    #page-article .art-kpi-card-head a { font-size: 0.78rem; font-weight: 500; color: var(--accent); text-decoration: none; }
    #page-article .art-kpi-card-head a:hover { text-decoration: underline; }
    #page-article #art-kpi-hour-chart { flex: 1 1 auto; min-height: 7rem; max-height: 9rem; }
    #page-article .art-general-layout { display: flex; gap: 0.85rem; align-items: stretch; }
    #page-article .art-info-panel {
      flex: 0 0 auto;
      width: 100%;
      max-width: none;
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 0.7rem 0.8rem;
      font-size: 0.8rem;
      line-height: 1.35;
    }
    #page-article .art-color-wrap { position: relative; }
    #page-article .art-color-trigger {
      display: inline-flex; align-items: center; gap: 0.35rem; max-width: 100%;
      padding: 0.12rem 0.35rem; border-radius: 6px; border: 1px solid var(--border);
      background: var(--bg); color: var(--accent); font-size: 0.8rem; font-weight: 600;
      cursor: pointer; text-align: left;
    }
    #page-article .art-color-trigger:hover { border-color: var(--accent); }
    #page-article .art-color-trigger__chev { color: var(--muted); font-size: 0.65rem; margin-left: auto; }
    #page-article .art-color-popover {
      display: none; position: absolute; left: 0; right: 0; top: calc(100% + 3px);
      z-index: 40; background: var(--panel); border: 1px solid var(--border);
      border-radius: 8px; box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
      flex-direction: column; max-height: min(320px, 55vh); overflow: hidden;
    }
    #page-article .art-color-popover.is-open { display: flex; }
    #page-article .art-color-popover-head {
      display: flex; align-items: center; gap: 0.35rem; padding: 0.45rem 0.5rem;
      border-bottom: 1px solid var(--border); flex: 0 0 auto;
    }
    #page-article .art-color-search {
      flex: 1 1 auto; min-width: 0; padding: 0.3rem 0.45rem 0.3rem 1.65rem;
      border-radius: 6px; border: 1px solid var(--border); background: var(--bg);
      color: var(--text); font-size: 0.78rem;
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23868e96' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3-3'/%3E%3C/svg%3E");
      background-repeat: no-repeat; background-position: 0.45rem center;
    }
    #page-article .art-color-list-label {
      padding: 0.35rem 0.55rem 0.2rem; font-size: 0.72rem; color: var(--muted); font-weight: 600;
      border-bottom: 1px solid var(--border); flex: 0 0 auto;
    }
    #page-article .art-color-list {
      flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 0.2rem 0;
    }
    #page-article .art-color-item {
      display: flex; align-items: center; gap: 0.45rem; width: 100%;
      padding: 0.35rem 0.55rem; border: none; background: transparent; color: var(--text);
      font-size: 0.78rem; text-align: left; cursor: pointer;
    }
    #page-article .art-color-item:hover { background: rgba(77, 171, 247, 0.12); }
    #page-article .art-color-item.is-current { background: rgba(77, 171, 247, 0.18); }
    #page-article .art-color-item img {
      width: 28px; height: 36px; object-fit: contain; border-radius: 4px; background: #fff; flex: 0 0 auto;
    }
    #page-article .art-color-item__name { flex: 1 1 auto; min-width: 0; line-height: 1.25; }
    #page-article .art-color-item__sub { display: block; font-size: 0.68rem; color: var(--muted); margin-top: 0.1rem; }
    #page-article .art-color-empty { padding: 0.65rem 0.55rem; color: var(--muted); font-size: 0.78rem; }
    #page-article .art-info-panel h3 { margin: 0 0 0.5rem; font-size: 0.95rem; font-weight: 700; }
    #page-article .art-info-sku { display: flex; align-items: center; justify-content: space-between; gap: 0.35rem; margin-bottom: 0.5rem; font-size: 0.78rem; color: var(--muted); }
    #page-article .art-info-photo { width: 100%; max-height: 140px; object-fit: contain; border-radius: 6px; background: #fff; margin-bottom: 0.5rem; }
    #page-article .art-info-row { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.28rem 0; border-bottom: 1px dotted var(--border); }
    #page-article .art-info-row:last-child { border-bottom: none; }
    #page-article .art-info-label { color: var(--muted); flex: 0 0 48%; }
    #page-article .art-info-value { text-align: right; flex: 1 1 auto; word-break: break-word; }
    #page-article .art-info-value a { color: var(--accent); text-decoration: none; }
    #page-article .art-info-value a:hover { text-decoration: underline; }
    #page-article .art-info-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.35rem; }
    #page-article .art-info-tag { background: var(--bg); border: 1px solid var(--border); border-radius: 4px; padding: 0.12rem 0.4rem; font-size: 0.72rem; }
    #page-article .art-info-comment { width: 100%; min-height: 3.5rem; margin-top: 0.35rem; padding: 0.35rem 0.45rem; border-radius: 6px; border: 1px solid var(--border); background: var(--bg); color: var(--text); font-size: 0.78rem; resize: vertical; }
    #page-article .art-info-comment-actions { display: flex; gap: 0.35rem; align-items: center; flex-shrink: 0; }
    #page-article .art-info-comment-actions .secondary { padding: 0.15rem 0.45rem; font-size: 0.72rem; }
    .art-comments-modal-overlay {
      display: none; position: fixed; inset: 0; z-index: 12000; background: rgba(0,0,0,0.55);
      align-items: center; justify-content: center; padding: 1rem;
    }
    .art-comments-modal-overlay.open { display: flex; }
    .art-comments-modal {
      width: min(520px, 96vw); max-height: min(70vh, 520px); display: flex; flex-direction: column;
      background: var(--panel); border: 1px solid var(--border); border-radius: 10px; overflow: hidden;
    }
    .art-comments-modal-head {
      display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
      padding: 0.55rem 0.75rem; border-bottom: 1px solid var(--border);
    }
    .art-comments-modal-head h3 { margin: 0; font-size: 0.95rem; }
    .art-comments-modal-body { overflow: auto; padding: 0.5rem 0.75rem; flex: 1; }
    .art-comment-list-item {
      display: grid; grid-template-columns: auto 1fr auto; gap: 0.45rem 0.55rem; align-items: start;
      padding: 0.45rem 0; border-bottom: 1px solid var(--border);
    }
    .art-comment-list-item:last-child { border-bottom: none; }
    .art-comment-list-date { font-size: 0.72rem; color: var(--muted); white-space: nowrap; line-height: 1.35; padding-top: 0.05rem; }
    .art-comment-list-text { font-size: 0.8rem; line-height: 1.35; word-break: break-word; color: var(--text); }
    .art-comment-list-del {
      border: none; background: none; color: var(--muted); cursor: pointer; font-size: 1rem; line-height: 1;
      padding: 0.1rem 0.25rem; border-radius: 4px;
    }
    .art-comment-list-del:hover { color: var(--danger, #ff6b6b); background: rgba(255,107,107,0.12); }
    .art-comments-empty { color: var(--muted); font-size: 0.8rem; margin: 0.5rem 0; }
    #page-article .art-general-main { flex: 1 1 0; min-width: 0; }
    #page-article #art-section-reviews > .dash-box.dash-box-tbl,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-reviews"] .ge-section-body > .dash-box.dash-box-tbl,
    #page-article #art-section-visibility > .dash-box.dash-box-tbl,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-visibility"] .ge-section-body > .dash-box.dash-box-tbl,
    #page-article #art-section-ads > .dash-box.dash-box-tbl,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-ads"] .ge-section-body > .dash-box.dash-box-tbl,
    #page-article #art-section-sizes > .dash-box.dash-box-tbl,
    #page-article #art-section-sizes .art-size-hm-dash-box,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-sizes"] .ge-section-body > .dash-box.dash-box-tbl,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-sizes"] .ge-section-body > .ge-size-hm-dash-box,
    #page-article #art-section-warehouses > .dash-box.dash-box-tbl,
    #page-article #art-section-warehouses .art-wh-hm-dash-box,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-warehouses"] .ge-section-body > .dash-box.dash-box-tbl,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) [id$="-section-warehouses"] .ge-section-body > .ge-wh-hm-dash-box {
      flex: 0 1 auto;
      min-height: 0;
      height: auto;
    }
    #page-article #art-reviews-table .tbl-wrap { max-height: none; height: 100%; }
    #page-hourly .chart-wrap.ads-chart-panel { display: flex; flex-direction: column; padding: 0.45rem; margin-bottom: 0.5rem; max-width: none; width: 100%; }
    #page-hourly .ads-chart-body { position: relative; height: 320px; min-height: 260px; max-height: none; width: 100%; }
    #page-hourly .ads-chart-body canvas { max-height: none !important; height: 100% !important; width: 100% !important; }
    #page-hourly .hr-hourly-timeline-wrap { display: block; width: 100%; margin-top: 0.25rem; }
    #page-hourly .hr-hourly-timeline-wrap .chart-wrap.ads-chart-panel { min-width: 100% !important; max-width: none; width: 100%; padding: 0.45rem; }
    #page-hourly .hr-hourly-timeline-wrap .ads-campaign-timeline-body { position: relative; height: min(320px, 42vh); min-height: 220px; width: 100%; }
    #page-hourly .hr-hourly-timeline-wrap .ads-campaign-timeline-body canvas { height: 100% !important; width: 100% !important; }
    #page-article .art-pinned-reviews { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 0.65rem; margin-bottom: 0.75rem; flex: 0 0 auto; }
    #page-article .art-pinned-card { background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 0.65rem 0.75rem; font-size: 0.85rem; }
    #page-article .art-pinned-card h4 { margin: 0 0 0.35rem; font-size: 0.8rem; color: var(--muted); font-weight: 600; }
    /* Карточки групп / артикула: таблицы в секциях — тот же скролл-контейнер */
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet) .art-general-main > .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-article #art-section-general .art-rnp-table-block:has(.table-core-shell),
    :is(#page-article, #page-imt, #page-subject, #page-brand, #page-cabinet) .art-section .dash-box.dash-box-tbl:has(.tbl-wrap) {
      max-height: min(64vh, calc(100dvh - 200px));
      overflow: auto;
      overflow-x: auto;
      overflow-y: auto;
      scrollbar-gutter: stable;
    }
    /* Реклама: воронка — отдельные карточки со скруглением со всех сторон; графики — общая шапка + фикс. высота области. */
    #page-ads #ads-funnel { gap: 0.35rem !important; align-items: stretch; }
    #page-ads .funnel-step {
      padding: 0.45rem 0.65rem; min-width: 118px;
      border-radius: 8px;
      display: flex; flex-direction: column; align-items: center; justify-content: center;
      text-align: center;
    }
    #page-ads .funnel-step .funnel-val { font-size: 1.05rem; line-height: 1.2; width: 100%; }
    #page-ads .funnel-step .funnel-label { font-size: 0.75rem; margin-top: 0.15rem; line-height: 1.2; width: 100%; }
    #page-ads .funnel-step .funnel-sublabel { font-size: 0.62rem; color: var(--muted); margin-top: 0.2rem; line-height: 1.25; width: 100%; max-width: 11rem; }
    #page-ads .kpi-blue { color: #4dabf7 !important; }
    #page-ads .funnel-split-card { display: flex; flex-direction: column; border: 1px solid var(--border); border-radius: 8px; min-width: 138px; max-width: 200px; overflow: hidden; background: var(--panel); }
    #page-ads .funnel-split-card .funnel-split-row { padding: 0.4rem 0.5rem; text-align: center; border-bottom: 1px solid var(--border); }
    #page-ads .funnel-split-card .funnel-split-row:last-child { border-bottom: none; }
    #page-ads .funnel-split-card .funnel-val { font-size: 1.02rem; }
    #page-ads .funnel-split-card .funnel-label { font-size: 0.7rem; margin-top: 0.12rem; }
    #page-ads .ads-funnel-aside { max-width: 15rem; }
    #page-ads .funnel-econ-bundle .funnel-econ-row { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; text-align: left; padding: 0.35rem 0.5rem; border-top: 1px solid var(--border); }
    #page-ads .funnel-econ-bundle .funnel-econ-row:first-of-type { border-top: none; padding-top: 0.4rem; }
    #page-ads .funnel-econ-bundle .funnel-econ-row .funnel-econ-k { font-size: 0.68rem; color: var(--muted); flex: 1; min-width: 0; }
    #page-ads .funnel-econ-bundle .funnel-econ-row .funnel-econ-v { font-size: 0.95rem; font-weight: 600; color: var(--accent); white-space: nowrap; }
    #page-ads .funnel-arrow { padding: 0 0.2rem; font-size: 0.75rem; }
    #page-ads .funnel-arrow .funnel-conv { font-size: 0.82rem; }
    #page-ads .funnel-arrow .funnel-label { font-size: 0.75rem !important; }
    /* Реклама: новая компоновка воронки (5 блоков) */
    #page-ads .ads-funnel-grid {
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem;
      align-items: stretch;
      width: 100%;
    }
    #page-ads .ads-funnel-block {
      background: var(--panel);
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 0.5rem 0.6rem;
      min-width: min(240px, 100%);
      flex: 1 1 240px;
      overflow: hidden;
    }
    #page-ads .ads-funnel-block--narrow { flex: 0 1 210px; min-width: min(210px, 100%); }
    #page-ads .ads-funnel-block--wide { flex: 1 1 320px; min-width: min(320px, 100%); }
    #page-ads .ads-funnel-title {
      font-size: 0.74rem;
      color: var(--muted);
      font-weight: 800;
      letter-spacing: 0.2px;
      margin-bottom: 0.45rem;
      display: flex;
      align-items: baseline;
      justify-content: space-between;
      gap: 0.4rem;
      text-transform: none;
    }
    #page-ads .ads-funnel-title .ads-funnel-title-sub { font-size: 0.68rem; color: rgba(255,255,255,0.45); font-weight: 600; }
    #page-ads .ads-funnel-stack { display: flex; flex-direction: column; gap: 0.35rem; }
    /* Двухколоночные строки: слева метрика, справа KPI; низ выравниваем по baseline чисел */
    #page-ads .ads-funnel-stepRow { display: grid; grid-template-columns: 1fr auto; align-items: end; column-gap: 0.55rem; }
    #page-ads .ads-funnel-stepMain { display: flex; flex-direction: column; gap: 0.12rem; min-width: 0; }
    #page-ads .ads-funnel-stepLabel { font-size: 0.72rem; color: var(--muted); font-weight: 700; }
    #page-ads .ads-funnel-num { font-size: 1.12rem; font-weight: 650; color: var(--accent); line-height: 1.1; letter-spacing: 0.1px; }
    #page-ads .ads-funnel-num--major { font-size: 1.2rem; font-weight: 680; }
    #page-ads .ads-funnel-num--profit { color: var(--success); }
    #page-ads .ads-funnel-side { font-size: 0.8rem; font-weight: 650; color: rgba(77,171,247,0.85); white-space: nowrap; }
    #page-ads .ads-funnel-side--profit { color: rgba(81,207,102,0.9); }
    /* KPI справа: значение на строке с числом, подпись на строке с конверсией */
    #page-ads .ads-funnel-sideKpi { display:flex; flex-direction:column; align-items:flex-end; gap: 0.18rem; min-width: 6.5rem; }
    #page-ads .ads-funnel-sideKpi .ads-funnel-sideVal { color: var(--accent); }
    #page-ads .ads-funnel-sideKpi .ads-funnel-sideLbl { font-size:0.68rem; color: rgba(255,255,255,0.55); font-weight:700; white-space:nowrap; }
    #page-ads .ads-funnel-sideLbl--shift-left { transform: translateX(-45%); display: inline-block; }
    #page-ads .ads-funnel-arrowDown { justify-content: space-between; }
    #page-ads .ads-funnel-arrowDown .left { display:inline-flex; align-items:center; gap:0.4rem; min-width: 0; }
    #page-ads .ads-funnel-subRow { display: flex; justify-content: space-between; gap: 0.45rem; margin-top: 0.15rem; }
    #page-ads .ads-funnel-subItem { font-size: 0.66rem; color: rgba(255,255,255,0.45); white-space: nowrap; }
    #page-ads .ads-funnel-subItem strong { color: var(--accent); font-weight: 700; }
    #page-ads .ads-funnel-subItem strong.profit { color: var(--success); }
    #page-ads .ads-funnel-divider { height: 1px; background: var(--border); margin: 0.35rem 0; opacity: 0.9; }
    /* Стрелки воронки = переход шага, не «рост/падение» → нейтральный цвет (не success/green). */
    #page-ads .ads-funnel-arrowDown {
      display: flex;
      align-items: center;
      gap: 0.4rem;
      margin: 0.05rem 0 0.05rem;
      color: rgba(255, 255, 255, 0.72);
      font-weight: 800;
      font-size: 0.72rem;
      opacity: 0.95;
    }
    #page-ads .ads-funnel-arrowDown .a { font-size: 0.9rem; line-height: 1; color: rgba(255, 255, 255, 0.55); }
    #page-ads .ads-funnel-arrowDown .t { color: rgba(255,255,255,0.55); font-weight: 700; margin-left: 0.2rem; }
    #page-ads .ads-funnel-arrowRight {
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
      color: rgba(255, 255, 255, 0.72);
      font-weight: 800;
      font-size: 0.74rem;
      margin: 0.35rem 0 0.1rem;
      opacity: 0.95;
    }
    #page-ads .ads-funnel-metricsList { display: flex; flex-direction: column; gap: 0.28rem; }
    #page-ads .ads-funnel-metricLine { display: flex; align-items: baseline; justify-content: space-between; gap: 0.55rem; }
    #page-ads .ads-funnel-metricLine .k { font-size: 0.72rem; color: var(--muted); font-weight: 700; }
    #page-ads .ads-funnel-metricLine .v { font-size: 0.9rem; font-weight: 650; color: var(--accent); white-space: nowrap; }
    #page-ads .ads-funnel-metricLine .v.profit { color: var(--success); }
    #page-ads .ads-funnel-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 0.35rem 0.55rem; }
    #page-ads .ads-funnel-kpiCell { padding: 0.2rem 0; }
    #page-ads .ads-funnel-kpiCell .k { font-size: 0.68rem; color: rgba(255,255,255,0.45); font-weight: 700; }
    #page-ads .ads-funnel-kpiCell .v { font-size: 0.98rem; font-weight: 700; color: var(--accent); }
    #page-ads .ads-funnel-kpiCell .v.profit { color: var(--success); }
    #page-ads .ads-charts-row {
      margin-bottom: 0.35rem !important;
      gap: 0.5rem !important;
      display: grid !important;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      align-items: stretch !important;
    }
    @media (max-width: 1180px) {
      #page-ads .ads-charts-row { grid-template-columns: 1fr; }
    }
    #page-ads .ads-charts-row .chart-wrap.ads-chart-panel {
      display: flex;
      flex-direction: column;
      padding: 0.45rem;
      margin-bottom: 0;
      min-width: 0;
      width: 100%;
      min-height: 0;
    }
    #page-ads .ads-charts-row .ads-chart-head {
      flex-shrink: 0;
      min-height: 4.35rem;
      height: auto;
      max-height: none;
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      align-content: center;
      gap: 0.35rem 0.5rem;
      box-sizing: border-box;
      padding-bottom: 0.2rem;
      border-bottom: 1px solid var(--border);
      margin-bottom: 0.35rem;
    }
    #page-ads .ads-chart-head {
      height: 2.85rem; min-height: 2.85rem; max-height: 2.85rem; flex-shrink: 0;
      display: flex; flex-wrap: wrap; align-items: center; align-content: center; gap: 0.35rem 0.5rem;
      box-sizing: border-box; padding-bottom: 0.2rem; border-bottom: 1px solid var(--border); margin-bottom: 0.35rem;
    }
    #page-ads .ads-chart-title { font-size: 0.78rem; color: var(--muted); font-weight: 600; line-height: 1.2; }
    #page-ads .ads-chart-head label { font-size: 0.78rem; color: var(--muted); margin: 0; }
    #page-ads .ads-chart-head select.ads-vs-organic-metric { font-size: 0.78rem; padding: 0.2rem 0.45rem; border-radius: 4px; border: 1px solid var(--border); background: var(--panel); color: var(--text); }
    #page-ads .ads-chart-head.ads-chart-head-vs-organic {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 0.35rem 0.6rem;
    }
    #page-ads .ads-chart-head.ads-chart-head-vs-organic .ads-chart-scope { margin-right: 0 !important; flex-shrink: 0; }
    #page-ads .ads-chart-head.ads-chart-head-vs-organic .ads-vs-organic-controls {
      display: inline-flex;
      align-items: center;
      gap: 0.4rem;
      flex-wrap: wrap;
      min-width: 0;
    }
    #page-ads .ads-spend-head {
      min-height: 4.35rem;
      height: auto;
      max-height: none;
      align-items: flex-start;
      justify-content: space-between;
      gap: 0.45rem 0.7rem;
    }
    #page-ads .ads-spend-metric-tabs {
      display: inline-flex;
      align-items: center;
      gap: 0.18rem;
      padding: 0.18rem;
      border: 1px solid var(--border);
      border-radius: 10px;
      background: #0f172a;
      flex-wrap: wrap;
    }
    #page-ads .ads-spend-tab {
      border: 1px solid transparent;
      border-radius: 8px;
      background: transparent;
      color: var(--muted);
      font-size: 0.78rem;
      padding: 0.26rem 0.52rem;
      font-weight: 600;
    }
    #page-ads .ads-spend-tab.active {
      color: #22c55e;
      background: rgba(34,197,94,0.12);
      border-color: rgba(34,197,94,0.38);
    }
    #page-ads .ads-spend-controls {
      margin-left: auto;
      display: inline-flex;
      align-items: center;
      gap: 0.45rem;
      flex-wrap: wrap;
    }
    #page-ads .ads-spend-grain {
      display: inline-flex;
      border: 1px solid var(--border);
      border-radius: 10px;
      overflow: hidden;
      background: #0f172a;
    }
    #page-ads .ads-spend-grain-btn {
      border: none;
      border-right: 1px solid var(--border);
      border-radius: 0;
      background: transparent;
      color: var(--muted);
      font-size: 0.78rem;
      padding: 0.28rem 0.62rem;
      font-weight: 600;
    }
    #page-ads .ads-spend-grain-btn:last-child { border-right: none; }
    #page-ads .ads-spend-grain-btn.active { background: #111827; color: #f8fafc; }
    #page-ads .ads-spend-view { display: inline-flex; align-items: center; gap: 0.2rem; }
    #page-ads .ads-spend-icon-btn {
      width: 30px;
      height: 30px;
      min-width: 30px;
      min-height: 30px;
      padding: 0;
      border-radius: 8px;
      border: 1px solid var(--border);
      background: #0f172a;
      color: var(--muted);
      font-size: 0.82rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    #page-ads .ads-spend-icon-btn.active {
      color: #93c5fd;
      border-color: rgba(59,130,246,0.5);
      background: rgba(59,130,246,0.12);
    }
    #page-ads .ads-spend-chart-meta {
      margin-top: 0.42rem;
      padding-top: 0.38rem;
      border-top: 1px solid var(--border);
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem 1rem;
      align-items: center;
      font-size: 0.78rem;
      color: var(--muted);
    }
    #page-ads .ads-spend-chart-meta b { color: #f8fafc; font-weight: 650; }
    #page-ads .ads-spend-chart-meta .val-up { color: #22c55e; }
    #page-ads .ads-spend-chart-meta .val-down { color: #ef4444; }
    body.ads-charts-large #page-ads .ads-chart-body { height: 320px; min-height: 260px; max-height: none; }
    body.ads-charts-large #page-ads .ads-charts-row .ads-chart-body { height: auto; min-height: 260px; max-height: none; flex: 1 1 260px; }
    #page-ads .ads-chart-body { position: relative; height: 200px; min-height: 200px; max-height: 200px; flex: 0 0 auto; width: 100%; }
    #page-ads .ads-charts-row .ads-chart-body {
      flex: 1 1 200px;
      height: auto;
      min-height: 200px;
      max-height: none;
    }
    #page-ads .ads-charts-row .ads-chart-foot {
      flex: 0 0 auto;
      min-height: 2.85rem;
      margin-top: 0.35rem;
      box-sizing: border-box;
    }
    #page-ads .ads-charts-row .ads-chart-foot--empty { visibility: hidden; pointer-events: none; }
    #page-ads .ads-charts-row .ads-spend-chart-meta { margin-top: 0; padding-top: 0; border-top: none; min-height: 2.5rem; }
    #page-ads .ads-charts-row .ads-budget-hint { margin-top: 0; min-height: 2.5rem; }
    #page-ads .ads-chart-body canvas { max-height: none !important; height: 100% !important; width: 100% !important; }
    #page-ads .ads-campaign-hourly-timeline-wrap { display: block; width: 100%; margin-top: 0.5rem; flex: 0 0 auto; }
    #page-ads .ads-campaign-hourly-timeline-wrap .chart-wrap.ads-chart-panel { min-width: 100% !important; flex: 1 1 100% !important; max-width: 100%; }
    #page-ads .ads-budget-hint { min-height: 1.1em; font-size: 0.78rem; color: var(--muted); margin-top: 0.25rem; line-height: 1.35; word-break: break-word; white-space: pre-line; }
    #page-ads .ads-budget-spark-wrap { display: flex; flex-direction: column; gap: 4px; min-width: 0; max-width: 100%; }
    #page-ads .ads-budget-spark-summary { font-size: 0.72rem; color: var(--muted); white-space: normal; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.3; max-height: 2.7em; word-break: break-word; }
    #page-ads .ads-budget-spark-bars { display: flex; align-items: flex-end; gap: 2px; height: 22px; min-height: 22px; width: 100%; }
    #page-ads .ads-budget-bar { flex: 1 1 0; min-width: 2px; max-width: 100%; border-radius: 2px 2px 0 0; cursor: pointer; outline: none; }
    #page-ads .ads-budget-bar:focus-visible { box-shadow: 0 0 0 2px var(--accent); }
    #page-ads .ads-budget-bar.ok { background: #51cf66; min-height: 8px; align-self: flex-end; }
    #page-ads .ads-budget-bar.depleted { background: #fa5252; min-height: 14px; align-self: flex-end; }
    #page-ads .ads-budget-bar.refill { background: #fd7e14; min-height: 14px; align-self: flex-end; }
    #page-ads #ads-table td[data-col="budgetDaySpark"] .ads-budget-timeline-cell,
    #page-ads #ads-table td[data-col="budgetDaySpark"] .ads-budget-spark-wrap,
    #page-ads #ads-detail-table td[data-col="budgetDaySpark"] .ads-budget-timeline-cell,
    #page-ads #ads-detail-table td[data-col="budgetDaySpark"] .ads-budget-spark-wrap { min-width: 144px; }
    #page-ads #ads-table td[data-col="budgetDaySpark"] .ads-budget-spark-bars,
    #page-ads #ads-detail-table td[data-col="budgetDaySpark"] .ads-budget-spark-bars { height: 26px; min-height: 26px; }
    /* Единый скролл таблиц (эталон — основная таблица рекламы) */
    .dash-table-scroll,
    #page-ads .ads-main-table-scroll,
    .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-equilibrium #eq-table-scroll-host {
      max-height: min(64vh, calc(100dvh - var(--public-header-height, 48px) - var(--header-nav-height, 72px) - 12rem));
      min-height: min(12rem, 32vh);
      overflow: auto;
      overflow-x: auto;
      overflow-y: auto;
      scrollbar-gutter: stable;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;
      padding-right: 2px;
      background: var(--panel);
    }
    #page-ads .ads-main-table-scroll { margin-bottom: 0.35rem; }
    #page-ads .ads-main-table-scroll .dash-box { margin-right: 0; }
    #page-ads .ads-main-table-scroll .dash-box-tbl,
    .dash-table-scroll .dash-box-tbl {
      margin-bottom: 0;
      overflow: visible;
      max-height: none;
      min-height: 0;
    }
    .dash-table-scroll .tbl-wrap,
    #page-ads .ads-main-table-scroll .tbl-wrap,
    .dash-box.dash-box-tbl:has(.tbl-wrap) .tbl-wrap,
    #page-equilibrium #eq-table-scroll-host .tbl-wrap {
      max-height: none !important;
      overflow-x: visible !important;
      overflow-y: visible !important;
      height: auto !important;
    }
    /* Внутри ads-main-table-scroll внутренний dash-box не дублирует скролл */
    #page-ads .ads-main-table-scroll > .dash-box.dash-box-tbl:has(.tbl-wrap) {
      max-height: none !important;
      overflow: visible !important;
      flex: 0 0 auto;
    }
    #page-ads .ads-campaign-timeline-body { position: relative; height: min(320px, 42vh); min-height: 220px; width: 100%; }
    #page-ads .ads-campaign-timeline-body canvas { height: 100% !important; width: 100% !important; }
    .toolbar { display: flex; align-items: center; gap: 0.35rem; margin-bottom: 0.3rem; flex-wrap: wrap;
      padding: 0.34rem 0.5rem; background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius-sm); }
    .toolbar label { font-size: 0.8rem; color: var(--muted); font-weight: 600; }
    .date-with-cb { display: inline-flex; align-items: center; gap: 0.35rem; }
    .date-with-cb input[type="checkbox"] { flex-shrink: 0; width: 1rem; height: 1rem; cursor: pointer; }
    .compare-delta { font-size: 0.7rem; margin-left: 0.25rem; }
    .compare-delta.compare-good { color: var(--success); }
    .compare-delta.compare-bad { color: var(--danger); }

    .table-core4 .compare-delta.rnp-day-pct {
      display: inline-block;
      font-size: 0.78em;
      font-weight: 600;
      margin-left: 0.25em;
      vertical-align: baseline;
      white-space: nowrap;
    }
    button.secondary.is-active[aria-pressed="true"] {
      border-color: var(--accent);
      color: var(--accent);
    }
    input, select { padding: 0.3rem 0.45rem; background: var(--panel-2); border: 1px solid var(--border); border-radius: var(--radius-sm); color: var(--text); font-size: 0.78rem; }
    input[type="date"] { width: 135px; }
    select { max-width: 300px; }
    button { padding: 0.3rem 0.62rem; background: var(--accent); color: #fff; border: none; border-radius: var(--radius-sm); cursor: pointer; font-size: 0.78rem; font-weight: 600; }
    button:hover { filter: brightness(1.1); }
    button:disabled { opacity: 0.5; cursor: not-allowed; }
    button.secondary { background: var(--panel-2); color: var(--text); border: 1px solid var(--border); font-weight: 500; }
    button.cols-btn { background: rgba(59,130,246,0.14); color: #93c5fd; border: 1px solid rgba(59,130,246,0.45); padding: 0.4rem 0.8rem; font-size: 0.82rem; font-weight: 600; }
    button.cols-btn:hover { background: rgba(59,130,246,0.22); }
    .status { font-size: 0.8rem; color: var(--success); margin-left: 0.5rem; }
    .status.err { color: var(--danger); }
    .form-group { margin-bottom: 0.6rem; }
    .form-group label { display: block; margin-bottom: 0.15rem; font-size: 0.85rem; }
    .form-group input { width: 100%; max-width: 400px; }
    /* Период: подпись снаружи (.toolbar-date-range), в .date-pair — только даты и тире (тёмный блок). */
    .toolbar-date-range { display: inline-flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; }
    .date-pair {
      display: inline-flex; align-items: center; gap: 0.3rem; padding: 0.28rem 0.45rem;
      background: var(--panel-2); border: 1px solid var(--border); border-radius: var(--radius-sm);
    }
    .date-pair .sep { color: #8a919c; font-size: 0.85rem; flex-shrink: 0; }
    .date-pair input[type="date"],
    .date-pair input[type="month"] {
      background: #111827; border: 1px solid rgba(255,255,255,0.08); border-radius: 8px;
      color: var(--text); color-scheme: dark; font-variant-numeric: tabular-nums;
    }
    .date-pair input[type="month"] { width: 140px; max-width: 100%; box-sizing: border-box; }
    .date-pair input[type="date"]::-webkit-calendar-picker-indicator,
    .date-pair input[type="month"]::-webkit-calendar-picker-indicator {
      opacity: 0.55; cursor: pointer;
    }
    .toolbar-ranges-wrap { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 0.35rem;
      padding: 0.34rem 0.5rem; background: var(--panel-2); border: 1px solid var(--border); border-radius: var(--radius-sm); }
    .toolbar-ranges-label { font-size: 0.8rem; color: var(--muted); font-weight: 600; }
    .toolbar-ranges-inner { display: flex; flex-wrap: wrap; gap: 0.2rem; align-items: center; }
    #page-article .toolbar-ranges-wrap,
    #page-subject .toolbar-ranges-wrap { margin-left: 0.5rem; }
    /* Липкий header дашбордов: компактная шкала как на «Реклама» (класс .toolbar-dashboard). Кнопки .zoom-btn отдельно. */
    .page-header-sticky .toolbar.toolbar-dashboard {
      gap: calc(0.28rem * 0.8 * 1.15);
      margin-bottom: calc(0.24rem * 0.8);
      padding: calc(0.2rem * 0.8 * 1.15) calc(0.35rem * 0.8 * 1.15);
      border-radius: calc(6px * 0.8 * 1.05);
    }
    .page-header-sticky .toolbar.toolbar-dashboard label { font-size: calc(0.8rem * 0.8); }
    .page-header-sticky .toolbar.toolbar-dashboard .date-pair {
      gap: calc(0.3rem * 0.8 * 1.15);
      padding: calc(0.3rem * 0.8 * 1.15) calc(0.5rem * 0.8 * 1.15);
      border-radius: calc(5px * 0.8 * 1.05);
    }
    .page-header-sticky .toolbar.toolbar-dashboard .date-pair .sep { font-size: calc(0.85rem * 0.8); }
    .page-header-sticky .toolbar.toolbar-dashboard .toolbar-ranges-wrap {
      gap: calc(0.35rem * 0.8 * 1.15);
      padding: calc(0.3rem * 0.8 * 1.15) calc(0.5rem * 0.8 * 1.15);
      border-radius: calc(5px * 0.8 * 1.05);
    }
    .page-header-sticky .toolbar.toolbar-dashboard .toolbar-ranges-label { font-size: calc(0.8rem * 0.8); }
    .page-header-sticky .toolbar.toolbar-dashboard .toolbar-date-range {
      gap: calc(0.35rem * 0.8 * 1.15);
      align-items: center;
    }
    .page-header-sticky .toolbar.toolbar-dashboard input,
    .page-header-sticky .toolbar.toolbar-dashboard select {
      padding: calc(0.25rem * 0.8) calc(0.4rem * 0.8);
      font-size: calc(0.78rem * 0.8);
    }
    .page-header-sticky .toolbar.toolbar-dashboard input[type="date"] { width: calc(135px * 0.8); }
    .page-header-sticky .toolbar.toolbar-dashboard .date-pair input[type="date"],
    .page-header-sticky .toolbar.toolbar-dashboard .date-pair input[type="month"] {
      background: #181a1f;
      border: 1px solid #3d424c;
      color: #c7cdd6;
    }
    .page-header-sticky .toolbar.toolbar-dashboard .date-pair input[type="month"] { width: calc(140px * 0.8); }
    .page-header-sticky .toolbar.toolbar-dashboard select { max-width: calc(300px * 0.8); }
    .page-header-sticky .toolbar.toolbar-dashboard button:not(.zoom-btn) {
      padding: calc(0.25rem * 0.8) calc(0.6rem * 0.8);
      font-size: calc(0.78rem * 0.8);
      border-radius: calc(4px * 0.8);
    }
    .page-header-sticky .toolbar.toolbar-dashboard button.cols-btn {
      padding: calc(0.4rem * 0.8) calc(0.8rem * 0.8);
      font-size: calc(0.82rem * 0.8);
    }
    .page-header-sticky .toolbar.toolbar-dashboard button.export-btn {
      padding: calc(0.35rem * 0.8) calc(0.65rem * 0.8);
      font-size: calc(0.78rem * 0.8);
    }
    .page-header-sticky .toolbar.toolbar-dashboard .zoom-controls {
      gap: calc(0.2rem * 0.8);
      font-size: calc(0.8rem * 0.8);
      align-items: center;
    }
    .page-header-sticky .toolbar.toolbar-dashboard .zoom-btn {
      box-sizing: border-box;
      width: calc(24px * 0.8);
      height: calc(24px * 0.8);
      min-width: calc(24px * 0.8);
      min-height: calc(24px * 0.8);
      padding: 0;
      font-size: calc(1rem * 0.8);
      line-height: 1;
      border-radius: calc(4px * 0.8);
      display: inline-flex;
      align-items: center;
      justify-content: center;
    }
    .page-header-sticky .toolbar.toolbar-dashboard .zoom-val { min-width: calc(2.5rem * 0.8); font-size: calc(0.78rem * 0.8); line-height: 1.2; }
    .page-header-sticky .toolbar.toolbar-dashboard .status { font-size: calc(0.8rem * 0.8); margin-left: calc(0.5rem * 0.8); }
    .page-header-sticky .toolbar.toolbar-dashboard .toggle-wrap { font-size: calc(0.82rem * 0.8); gap: calc(0.4rem * 0.8); }
    .page-header-sticky .toolbar.toolbar-dashboard .toggle-wrap input[type="checkbox"] {
      width: calc(1rem * 0.8);
      height: calc(1rem * 0.8);
    }
    .page-header-sticky .toolbar.toolbar-dashboard .compare-hint { font-size: calc(0.78rem * 0.8); }
    .dash-box { background: var(--panel); border: 1px solid var(--border); border-radius: var(--radius-md);
      padding: 0; margin-bottom: 0.6rem; margin-right: 0.6rem; overflow: hidden; }
    .dash-box > div { width: 100%; min-width: 0; overflow: hidden; }
    .dash-box-tbl > div { overflow: visible; }
    /* Высота по содержимому; при большом числе строк — скролл внутри, не пустота под малым числом строк */
    .tbl-wrap { display: block; width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; overflow-y: auto; height: auto; max-height: 65vh; min-height: 0; border-radius: 6px;
      scrollbar-width: auto; scrollbar-color: #aaa #222;
      overscroll-behavior-x: contain; overscroll-behavior-y: contain; }
    .tbl-wrap::-webkit-scrollbar { width: 14px; height: 14px; }
    .tbl-wrap::-webkit-scrollbar-track { background: #222; }
    .tbl-wrap::-webkit-scrollbar-thumb { background: #aaa; border-radius: 7px; border: 3px solid #222; }
    .tbl-wrap::-webkit-scrollbar-thumb:hover { background: #ccc; }
    .tbl-wrap::-webkit-scrollbar-corner { background: #222; }
    table { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: 0.76rem; }
    th, td { padding: 0.3rem 0.5rem; border-bottom: 1px solid var(--border); border-right: 1px solid var(--border); text-align: right; white-space: nowrap; }
    th { background: #1a2436; position: sticky; top: 0; z-index: 3; cursor: pointer; user-select: none; font-weight: 650; padding-top: 0.42rem; padding-bottom: 0.42rem; color: #cbd5e1; }
    th:hover { color: var(--accent); }
    td:first-child, th:first-child { text-align: left; position: sticky; left: 0; z-index: 2; background: var(--panel); min-width: 0; }
    th:first-child { background: #1a2436; z-index: 4; }
    tr:hover td { background: #2f3136; }
    tr:hover td:first-child { background: #2f3136; }
    tr.summary-row td { background: #2a2d32; font-weight: 600; border-top: 2px solid var(--accent); }
    tr.ads-keys-shelf-row td { background: #2e3238 !important; font-weight: 500; }
    /* Ключи на вкладке «Реклама» — как артикулы (.wb-link): accent; блок на всю ячейку — клик не только по тексту */
    #page-ads .ads-key-click { color: var(--accent); cursor: pointer; }
    #page-ads .ads-key-click:hover { text-decoration: underline; }
    #page-ads #ads-detail-keys td[data-col="_key"] .ads-key-click,
    #page-ads #ads-khm-table td[data-col="_k"] .ads-key-click {
      display: block;
      width: 100%;
      box-sizing: border-box;
      min-height: calc(var(--tbl-row-h, 28px) - 4px);
    }
    .positive { color: var(--success); }
    .negative { color: var(--danger); }
    .warn { color: var(--warn); }
    .mid { color: #ff922b; }
    .zero { color: var(--muted); }
    th .col-close { display: none !important; }
    /* Место под крестик не резервируем — текст на всю ширину; при наведении × поверх текста */
    th.has-close { padding-right: 0; }
    th .col-pin,
    th .col-drag,
    th .th-drag-row { display: none !important; }
    th .th-inner.th-col-drag {
      cursor: grab;
      user-select: none;
      -webkit-user-drag: element;
    }
    th .th-inner.th-col-drag:active { cursor: grabbing; }
    th.col-pinned .th-inner.th-col-drag {
      color: var(--accent) !important;
      font-weight: 700;
      background: rgba(77, 171, 247, 0.1);
      border-radius: 4px;
    }
    th .col-pin.legacy-hidden {
      display: none !important;
    }
    th.has-pin { padding-left: 2px; position: relative; }
    .tbl-pin-mode td:first-child:not(.col-pinned), .tbl-pin-mode th:first-child:not(.col-pinned) { z-index: 1; }
    .tbl-pin-mode th:first-child:not(.col-pinned) { z-index: 3; }
    td.col-pinned { position: sticky !important; z-index: 2 !important; background: var(--panel); }
    th.col-pinned { position: sticky !important; z-index: 5 !important; background: #1a2436; }
    th.col-pinned .th-inner,
    th.col-pinned .th-main,
    th.col-pinned .th-sublabel,
    th.col-pinned .th-title { color: var(--accent) !important; font-weight: 700; }
    tr.header-filter-row td.col-pinned { z-index: 3 !important; background: #222428; }
    /* Метагруппы скроллятся вместе с таблицей по X (только липкость по Y); иначе «Технические» перекрывают ФО */
    .tbl-wrap thead tr.meta-header-row th.meta-header-cell {
      position: sticky;
      top: 0;
      left: auto !important;
      right: auto !important;
      z-index: 4;
      background: #1a1e22;
    }
    tr:hover td.col-pinned { background: #2f3136; }
    td.col-pinned, th.col-pinned { border-right: none !important; max-width: none !important; }
    td.col-pinned-right, th.col-pinned-right { border-right: none !important; border-left: none !important; left: auto !important; }
    .pin-ctx-menu { position: fixed; z-index: 10000; background: var(--panel); border: 1px solid var(--border); border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,0.5); padding: 4px 0; min-width: 160px; font-size: 0.82rem; }
    .pin-ctx-menu .pin-ctx-item { display: block; width: 100%; padding: 6px 14px; background: none; border: none; color: var(--text); cursor: pointer; text-align: left; white-space: nowrap; }
    .pin-ctx-menu .pin-ctx-item:hover { background: rgba(77,171,247,0.15); color: var(--accent); }
    .pin-ctx-menu .pin-ctx-item .pin-ctx-icon { margin-right: 6px; }
    .pin-ctx-menu.ship-plan-wh-picker { min-width: 220px; max-width: min(24rem, calc(100vw - 1rem)); padding: 0; }
    .ship-plan-wh-picker-head {
      padding: 6px 12px 4px;
      font-size: 0.72rem;
      font-weight: 600;
      color: var(--muted);
      border-bottom: 1px solid var(--border);
      line-height: 1.25;
    }
    .ship-plan-wh-picker-search {
      padding: 6px 8px;
      border-bottom: 1px solid var(--border);
    }
    .ship-plan-wh-picker-search input {
      width: 100%;
      box-sizing: border-box;
      padding: 5px 8px;
      font-size: 0.8rem;
      border: 1px solid var(--border);
      border-radius: 4px;
      background: var(--bg);
      color: var(--text);
    }
    .ship-plan-wh-picker-search input:focus {
      outline: none;
      border-color: var(--accent);
    }
    .ship-plan-wh-picker-list {
      max-height: min(320px, calc(100vh - 6rem));
      overflow-y: auto;
      padding: 4px 0;
    }
    .ship-plan-wh-pick-item {
      display: flex;
      align-items: flex-start;
      gap: 8px;
      width: 100%;
      padding: 5px 12px;
      white-space: normal;
      line-height: 1.25;
      text-align: left;
    }
    .ship-plan-wh-pick-item .ship-plan-wh-chk {
      flex: 0 0 1.1em;
      font-size: 0.85rem;
      color: var(--accent);
      opacity: 0.35;
    }
    .ship-plan-wh-pick-item.is-on .ship-plan-wh-chk { opacity: 1; font-weight: 700; }
    .ship-plan-wh-pick-item .ship-plan-wh-lbl { flex: 1; min-width: 0; word-break: break-word; }
    .ship-plan-wh-picker-nomatch {
      padding: 8px 12px;
      font-size: 0.75rem;
      color: var(--muted);
      text-align: center;
    }
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_product"] .ship-plan-prod-inner {
      display: flex;
      align-items: flex-start;
      gap: 4px;
      min-width: 0;
      max-width: 100%;
    }
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_product"] .ship-plan-prod-photo {
      flex: 0 0 auto;
    }
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_product"] .ship-plan-prod-lines {
      display: flex;
      flex-direction: column;
      gap: 1px;
      min-width: 0;
      flex: 1 1 auto;
      line-height: 1.2;
      font-size: 0.7rem;
    }
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_product"] .ship-plan-prod-line {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      max-width: 100%;
    }
    #page-shipments6 #ship-plan-table tbody td[data-col="sp_product"] .ship-plan-prod-empty {
      color: var(--muted);
    }
    #page-shipments6 .ship-plan-inp-wrap {
      border-radius: 4px;
      padding: 2px;
      box-sizing: border-box;
    }
    #page-shipments6 .ship-plan-inp-wrap--ok {
      background: rgba(46, 160, 67, 0.32);
      box-shadow: inset 0 0 0 1px rgba(46, 160, 67, 0.55);
    }
    #page-shipments6 .ship-plan-inp-wrap--over {
      background: rgba(220, 53, 69, 0.28);
      box-shadow: inset 0 0 0 1px rgba(220, 53, 69, 0.65);
      cursor: help;
    }
    #page-shipments6 .ship-plan-inp-wrap--over .ship-plan-inp {
      color: #ffb4b4;
    }
    /* ПКМ по ячейке (без выделения): полный текст */
    .tbl-cell-expand-pop {
      position: fixed; z-index: 10001; max-width: min(92vw, 720px); max-height: min(78vh, 560px);
      background: var(--panel); border: 1px solid var(--border); border-radius: 8px;
      box-shadow: 0 8px 28px rgba(0,0,0,0.45); display: flex; flex-direction: column; min-width: 200px;
      font-size: 0.88rem; color: var(--text); overflow: hidden;
    }
    .tbl-cell-expand-pop-head {
      display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
      padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--border); flex-shrink: 0;
      background: rgba(0,0,0,0.12);
    }
    .tbl-cell-expand-pop-actions { display: inline-flex; align-items: center; gap: 0.35rem; flex-shrink: 0; }
    .tbl-cell-expand-pop-copy { font-size: 0.72rem; padding: 0.2rem 0.45rem; border-radius: 4px; cursor: pointer; border: 1px solid var(--border); background: var(--bg); color: var(--text); }
    .tbl-cell-expand-pop-copy:hover { border-color: var(--accent); color: var(--accent); }
    .tbl-cell-expand-pop-title { font-weight: 600; color: var(--accent); font-size: 0.8rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; flex: 1; }
    .tbl-cell-expand-pop-close {
      border: none; background: transparent; color: var(--muted); cursor: pointer; font-size: 1.2rem; line-height: 1; padding: 0 0.25rem; border-radius: 4px;
    }
    .tbl-cell-expand-pop-close:hover { color: var(--text); background: rgba(255,255,255,0.06); }
    .tbl-cell-expand-pop-body {
      padding: 0.65rem 0.75rem; overflow: auto; white-space: pre-wrap; word-break: break-word; line-height: 1.45;
      flex: 1; min-height: 0;
    }
    .tbl-resizable table { table-layout: fixed; }
    .tbl-resizable th, .tbl-resizable td { min-width: 0; max-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .tbl-resizable th *, .tbl-resizable td * { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
    .tbl-resizable thead tr.header-row th * { max-width: none; overflow: visible; text-overflow: clip; }
    .tbl-resizable td:first-child, .tbl-resizable th:first-child { min-width: 0; }
    .tbl-resizable.tbl-auto-width table { table-layout: auto; }
    .tbl-resizable.tbl-auto-width th, .tbl-resizable.tbl-auto-width td { max-width: none; overflow: visible; text-overflow: clip; }
    .tbl-resizable.tbl-auto-width th *, .tbl-resizable.tbl-auto-width td * { max-width: none; overflow: visible; text-overflow: clip; }
    .tbl-resizable thead tr.header-row th { vertical-align: middle; text-align: center; white-space: normal; overflow: visible; text-overflow: clip; }
    .tbl-resizable thead tr.header-row th .th-inner { white-space: normal; word-break: break-word; display: block; max-width: none; overflow: visible; }
    .tbl-resizable thead tr.header-row th:has(.th-sublabel) { white-space: normal; }
    .tbl-resizable thead tr.header-row th:has(.th-sublabel) .th-inner { white-space: normal; word-break: break-word; display: block; max-width: none; }
    .tbl-resizable thead tr.header-row { position: relative; }
    .tbl-resizable .header-resize-row { height: 0; padding: 0; border: none; vertical-align: top; }
    .tbl-resizable .header-resize-row td { height: 4px; padding: 0; border: none; line-height: 0; cursor: row-resize; background: transparent; position: sticky; top: var(--tbl-header-row-height); z-index: 2; }
    .tbl-resizable .header-resize-row td::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: transparent; }
    .tbl-resizable .header-resize-row td:hover { background: rgba(255,255,255,0.06); }
    .tbl-wrap { --tbl-header-row-height: 42px; --tbl-header-h: 42px; --tbl-meta-h: 0px; --tbl-rnp-cat-meta-h: 0px; --tbl-row-h: 40px; --tbl-zoom: 1; }
    .tbl-wrap thead th { position: sticky; top: 0; z-index: 3; background: var(--panel); box-shadow: 0 2px 4px rgba(0,0,0,0.25); }
    .tbl-wrap thead tr.meta-header-row th { top: 0; }
    .tbl-wrap thead tr.header-row th { top: var(--tbl-meta-h, 0px); }
    .tbl-groupbar {
      display: flex; flex-wrap: wrap; gap: 6px;
      margin: 0 0 6px 0;
    }
    .tbl-groupbar .tbl-groupbtn {
      border: 1px solid var(--border);
      background: var(--panel);
      color: var(--text);
      border-radius: 999px;
      padding: 2px 10px;
      font-size: 0.75rem;
      cursor: pointer;
      user-select: none;
      opacity: 0.92;
    }
    .tbl-groupbar .tbl-groupbtn:hover { opacity: 1; border-color: rgba(255,255,255,0.22); }
    .tbl-groupbar .tbl-groupbtn.collapsed { color: var(--muted); opacity: 0.8; }
    .tbl-resizable thead tr.meta-header-row th.meta-header-cell { font-size: 0.72rem; color: var(--muted); letter-spacing: 0.02em; text-transform: none; }

    /* EQ: заголовок в 4 строки:
       1) ⋯ (перетаскивание) по центру сверху
       2-3) название (до 2 строк)
       4) единицы измерения
       Текст занимает 90% ширины (по 5% слева/справа). */
    /* Важно: базовые th-стили резервируют место справа под resize/close → визуальный центр уезжает.
       Для eq-table и ship-plan и ship-plan-table уменьшаем эти резервы и центрируем содержимое по "живой" ширине ячейки. */
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize {
      padding-left: 0;
      padding-right: 10px; /* 8px resize + небольшой зазор */
      vertical-align: top;
      padding-top: 3px;
    }
    #eq-table .tbl-wrap,
    #ship-table .tbl-wrap,
    #ship-plan-table .tbl-wrap {
      --th-stack-drag-h: 14px;
      --th-stack-title-h: 2.3em;
      --th-stack-unit-h: 1.08em;
    }
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack {
      display: grid;
      grid-template-columns: 1fr;
      grid-template-rows: var(--th-stack-drag-h) var(--th-stack-title-h) var(--th-stack-unit-h);
      gap: 2px;
      align-content: start;
      justify-items: center;
      width: 100%;
      position: relative;
      box-sizing: border-box;
    }
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-drag-row,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-drag-row,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-drag-row {
      grid-row: 1;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 90%;
      margin: 0;
      line-height: 1;
      min-height: var(--th-stack-drag-h);
      align-self: start;
    }
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .col-drag,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .col-drag,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .col-drag {
      padding: 1px 6px;
      font-size: 14px;
      letter-spacing: 0;
    }
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .col-pin,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .col-pin,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .col-pin {
      position: absolute;
      left: 4px;
      top: 2px;
      transform: none;
      z-index: 2;
    }
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-inner,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-inner,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-inner {
      display: contents;
    }
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-title,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-title,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-title {
      grid-row: 2;
      align-self: start;
      justify-self: center;
      width: 90%;
      margin: 0;
      padding: 0;
      text-align: center;
      display: block;
      white-space: normal;
      word-break: break-word;
      line-height: 1.15;
      min-height: var(--th-stack-title-h);
      box-sizing: border-box;
    }
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-unit,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-unit,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-unit {
      grid-row: 3;
      align-self: start;
      justify-self: center;
      width: 90%;
      margin: 0;
      padding: 0;
      display: block;
      min-height: var(--th-stack-unit-h);
      font-size: 0.7rem;
      font-weight: 500;
      color: var(--muted);
      line-height: 1.1;
      text-align: center;
      box-sizing: border-box;
    }
    #eq-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-unit:empty::before,
    #ship-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-unit:empty::before,
    #ship-plan-table .tbl-wrap thead tr.header-row th.has-close.has-resize .th-header-bar.th-stack .th-unit:empty::before {
      content: '\00a0';
    }
    #eq-table .tbl-wrap thead tr.header-row th .col-close,
    #ship-table .tbl-wrap thead tr.header-row th .col-close,
    #ship-plan-table .tbl-wrap thead tr.header-row th .col-close { right: 1px; top: 6px; transform: none; }
    th.has-resize { position: relative; padding-right: 26px; }
    th .col-resize { position: absolute; right: 0; top: 0; bottom: 0; width: 8px; cursor: col-resize; z-index: 5; }
    th .col-resize:hover { background: rgba(255,255,255,0.08); }
    th .col-resize::after { content: ''; position: absolute; right: 3px; top: 20%; bottom: 20%; width: 1px; background: var(--border); }
    /* Заголовок: flex только на .th-header-bar — не на th (иначе ломается table-cell и sticky). */
    .tbl-resizable thead tr.header-row th.has-close.has-resize {
      vertical-align: middle; padding-left: 2px; padding-right: 26px; box-sizing: border-box; min-width: 0;
    }
    .tbl-resizable thead tr.header-row th.has-close.has-resize .th-header-bar {
      display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start;
      gap: 2px; min-width: 0; width: 100%;
    }
    th .col-drag {
      position: relative; left: auto; top: auto; transform: none;
      flex: 0 0 auto; align-self: center;
      cursor: grab; font-size: 11px; line-height: 1; letter-spacing: -0.5px;
      color: var(--muted); user-select: none; z-index: 6; padding: 2px 1px 2px 0; margin: 0;
      min-width: 12px; -webkit-user-drag: element; pointer-events: auto; white-space: nowrap;
    }
    th .col-drag:active { cursor: grabbing; }
    th .col-drag:hover { color: var(--text); }
    .tbl-resizable thead tr.header-row th.has-close.has-resize .th-header-bar .th-inner {
      flex: 1 1 0; min-width: 0; overflow: visible; text-overflow: clip;
      margin: 0; text-align: center; box-sizing: border-box; display: block;
      white-space: normal; word-break: break-word;
    }
    .tbl-resizable thead tr.header-row th.has-close.has-resize:has(.th-sublabel) .th-header-bar .th-inner { white-space: normal; word-break: break-word; max-width: 100%; }
    thead tr.header-row th.has-pin.has-close.has-resize { min-width: 0; }
    thead tr.header-row th.has-pin.has-close.has-resize .th-inner,
    thead tr.header-row th.hm-date-col.has-close.has-resize:not(.has-pin) .th-inner { display: block; }
    thead tr.header-row th.hm-date-col.has-close.has-resize:not(.has-pin) { min-width: 0; padding-left: 2px; }
    .heatmap-table thead tr.header-row th { vertical-align: middle; text-align: center; }
    th.th-drag-over::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--primary); z-index: 7; border-radius: 2px; }
    th.th-drag-source { opacity: 0.4; background: rgba(255,255,255,0.05); }
    th.th-drag-over.th-drag-after::before { left: auto; right: 0; }
    .chart-wrap { position: relative; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 0.75rem; margin-bottom: 0.75rem; max-width: 900px; }
    .chart-wrap canvas { max-height: 300px; }
    .chart-collapse-btn {
      position: absolute;
      top: 6px;
      right: 8px;
      border: none;
      background: transparent;
      color: var(--muted);
      cursor: pointer;
      padding: 0.1rem 0.25rem;
      font-size: 1rem;
      line-height: 1;
      z-index: 3;
    }
    .chart-collapse-btn:hover { color: var(--accent); }
    .chart-wrap.is-collapsed {
      padding: 0.2rem 0.35rem;
      min-height: 0;
    }
    .chart-wrap.is-collapsed > canvas,
    .chart-wrap.is-collapsed .ads-chart-body,
    .chart-wrap.is-collapsed .ads-campaign-timeline-body,
    .chart-wrap.is-collapsed .ads-khm-body,
    .chart-wrap.is-collapsed .chart-body,
    .chart-wrap.is-collapsed .chart-area,
    .chart-wrap.is-collapsed .chart-container,
    .chart-wrap.is-collapsed .chart-content { display: none !important; }
    .chart-wrap.is-collapsed .chart-collapse-btn { position: static; margin-left: auto; }
    /* Склады: на всю ширину контента, как основная таблица; −40% к шрифтам и контролам */
    .warehouse-storage-wrap {
      --wh-compact: 0.6;
      width: 100%;
      max-width: none;
      box-sizing: border-box;
      margin-bottom: 0.75rem;
    }
    .warehouse-storage-wrap .dash-box-tbl { width: 100%; max-width: none; }
    .warehouse-storage-wrap > .toolbar.toolbar-dashboard {
      width: 100%;
      max-width: none;
      flex-wrap: wrap;
      gap: calc(0.28rem * var(--wh-compact));
      margin-bottom: calc(0.24rem * var(--wh-compact));
      padding: calc(0.2rem * var(--wh-compact)) calc(0.35rem * var(--wh-compact));
      border-radius: calc(6px * var(--wh-compact));
    }
    .warehouse-storage-wrap .toolbar.toolbar-dashboard .zoom-controls {
      gap: calc(0.2rem * var(--wh-compact));
      font-size: calc(0.8rem * var(--wh-compact));
      align-items: center;
    }
    .warehouse-storage-wrap .toolbar.toolbar-dashboard .zoom-btn {
      width: calc(24px * var(--wh-compact));
      height: calc(24px * var(--wh-compact));
      min-width: calc(24px * var(--wh-compact));
      min-height: calc(24px * var(--wh-compact));
      padding: 0;
      font-size: calc(1rem * var(--wh-compact));
      line-height: 1;
      border-radius: calc(4px * var(--wh-compact));
    }
    .warehouse-storage-wrap .toolbar.toolbar-dashboard .zoom-val {
      min-width: calc(2.5rem * var(--wh-compact));
      font-size: calc(0.78rem * var(--wh-compact));
    }
    .warehouse-storage-wrap .toolbar.toolbar-dashboard button:not(.zoom-btn) {
      padding: calc(0.25rem * var(--wh-compact)) calc(0.6rem * var(--wh-compact));
      font-size: calc(0.78rem * var(--wh-compact));
      border-radius: calc(4px * var(--wh-compact));
    }
    .warehouse-storage-wrap .toolbar.toolbar-dashboard button.cols-btn {
      padding: calc(0.4rem * var(--wh-compact)) calc(0.8rem * var(--wh-compact));
      font-size: calc(0.82rem * var(--wh-compact));
    }
    .warehouse-storage-wrap .toolbar.toolbar-dashboard button.export-btn {
      padding: calc(0.35rem * var(--wh-compact)) calc(0.65rem * var(--wh-compact));
      font-size: calc(0.78rem * var(--wh-compact));
    }
    .warehouse-storage-wrap .tbl-wrap {
      --tbl-row-h: calc(28px * var(--wh-compact));
      width: 100%;
      max-width: 100%;
    }
    .warehouse-storage-wrap .tbl-wrap table.dashboard-tbl-zoom { font-size: calc(0.76rem * var(--wh-compact)); }
    .warehouse-storage-wrap .tbl-wrap table.dashboard-tbl-zoom tbody {
      font-size: calc(0.76rem * var(--tbl-zoom, 1) * var(--tbl-row-font-scale, 1) * var(--wh-compact));
    }
    .warehouse-storage-wrap .tbl-wrap .heatmap-table tbody td,
    .warehouse-storage-wrap .tbl-wrap table.dashboard-tbl-zoom tbody td {
      height: var(--tbl-row-h, calc(28px * var(--wh-compact)));
      line-height: calc(var(--tbl-row-h, calc(28px * var(--wh-compact))) - 4px);
    }
    .warehouse-storage-wrap .tbl-wrap thead tr.rnp-range-row td,
    .warehouse-storage-wrap .tbl-wrap thead tr.meta-header-row th {
      font-size: calc(0.78rem * var(--wh-compact));
      padding: calc(0.2rem * var(--wh-compact)) calc(0.35rem * var(--wh-compact));
    }
    .warehouse-storage-wrap .tbl-wrap thead tr.header-row th {
      padding: calc(0.25rem * var(--wh-compact)) calc(0.35rem * var(--wh-compact));
    }
    .warehouse-storage-wrap .tbl-wrap thead tr.header-row th .th-inner { font-size: calc(0.76rem * var(--wh-compact)); }
    .warehouse-storage-wrap .tbl-wrap th .col-drag { font-size: calc(11px * var(--wh-compact)); padding: calc(2px * var(--wh-compact)) calc(1px * var(--wh-compact)); }
    .warehouse-storage-wrap .tbl-wrap th .col-pin { width: calc(16px * var(--wh-compact)); height: calc(16px * var(--wh-compact)); min-width: calc(16px * var(--wh-compact)); font-size: calc(11px * var(--wh-compact)); }
    .warehouse-storage-wrap .tbl-wrap thead tr.header-filter-row td { padding: calc(0.15rem * var(--wh-compact)) calc(0.25rem * var(--wh-compact)); }
    .warehouse-storage-wrap .tbl-wrap .filter-quick {
      font-size: calc(0.76rem * var(--wh-compact));
      padding: calc(0.12rem * var(--wh-compact)) calc(0.2rem * var(--wh-compact));
    }
    .warehouse-storage-wrap .tbl-wrap .filter-btn { font-size: calc(0.85rem * var(--wh-compact)); }
    .warehouse-storage-wrap .tbl-wrap .header-resize-row td { height: calc(4px * var(--wh-compact)); }
    .warehouse-section-toggle {
      margin: 0.5rem 0 0.35rem;
      font-size: 0.95rem;
      font-weight: 600;
      color: var(--accent);
      cursor: pointer;
      user-select: none;
      line-height: 1.35;
    }
    .warehouse-storage-wrap tr.rnp-range-row td.rnp-range-cell {
      white-space: normal !important;
      word-break: break-word;
      overflow: visible !important;
      text-overflow: clip !important;
      max-width: none !important;
      hyphens: auto;
      line-height: 1.35;
      vertical-align: top;
    }
    .warehouse-storage-wrap tr.rnp-range-meta-row td.rnp-range-meta-cell {
      white-space: normal !important;
      word-break: break-word;
      overflow: visible !important;
      text-overflow: clip !important;
      max-width: none !important;
      line-height: 1.2;
      vertical-align: top;
      font-size: calc(0.72rem * var(--wh-compact));
      color: var(--muted);
      background: var(--panel);
      border-bottom: 1px solid var(--border);
      font-weight: 600;
    }
    .warehouse-storage-wrap tr.rnp-range-meta-row td.rnp-range-meta-tech { background: transparent; border-bottom: 0; }
    .warehouse-storage-wrap .dash-box + .dash-box { margin-top: 0.75rem; }
    .rnp-range-cell.range-selected { background: rgba(77,171,247,0.10); color: var(--text); font-weight: 600; }
    .rnp-range-cell.range-clickable { cursor: pointer; }
    .rnp-range-cell.range-clickable:hover { color: var(--accent); }
    .dest-fo-cell {
      line-height: 1.2;
      white-space: normal;
      min-width: 0;
      font-size: 0.72rem;
      border: 1px solid var(--border);
      border-radius: 4px;
      overflow: hidden;
      background: var(--bg);
    }
    .dest-fo-head {
      display: grid;
      grid-template-columns: minmax(2.8rem, 1.05fr) minmax(3.6rem, 0.82fr) minmax(2.5rem, 0.62fr) minmax(2.2rem, 0.52fr) minmax(3rem, 0.72fr);
      gap: 0;
      align-items: stretch;
      background: rgba(127, 127, 127, 0.08);
      border-bottom: 1px solid var(--border);
    }
    .dest-fo-line {
      display: grid;
      grid-template-columns: minmax(2.8rem, 1.05fr) minmax(3.6rem, 0.82fr) minmax(2.5rem, 0.62fr) minmax(2.2rem, 0.52fr) minmax(3rem, 0.72fr);
      gap: 0;
      align-items: stretch;
    }
    .dest-fo-body .dest-fo-line {
      border-bottom: 1px solid var(--border);
    }
    .dest-fo-body .dest-fo-line:last-child {
      border-bottom: none;
    }
    .dest-fo-head .dest-fo-col,
    .dest-fo-line .dest-fo-col {
      padding: 0.2rem 0.32rem;
      border-right: 1px solid var(--border);
      min-width: 0;
      box-sizing: border-box;
      display: flex;
      align-items: center;
    }
    .dest-fo-head .dest-fo-col:last-child,
    .dest-fo-line .dest-fo-col:last-child {
      border-right: none;
    }
    .dest-fo-head .dest-fo-col {
      font-size: 0.62rem;
      font-weight: 600;
      color: var(--muted);
      line-height: 1.15;
    }
    .dest-fo-col-hstack {
      flex-direction: column !important;
      align-items: flex-end !important;
      justify-content: center;
      gap: 0.04rem;
      line-height: 1.08;
    }
    .dest-fo-h-fo {
      align-items: flex-start !important;
    }
    .dest-fo-hmain {
      font-size: 0.62rem;
      font-weight: 600;
      color: var(--muted);
      line-height: 1.05;
    }
    .dest-fo-hsub {
      font-size: 0.54rem;
      font-weight: 500;
      color: var(--muted);
      opacity: 0.92;
      line-height: 1.05;
    }
    .dest-fo-col--name {
      font-weight: 700;
      color: var(--text);
      align-items: flex-start;
    }
    .dest-fo-col--orders {
      flex-direction: column;
      align-items: flex-end;
      justify-content: center;
      gap: 0.04rem;
      line-height: 1.12;
      font-variant-numeric: tabular-nums;
    }
    .dest-fo-ord-n { font-weight: 600; color: var(--text); white-space: nowrap; }
    .dest-fo-ord-p { font-size: 0.65rem; color: var(--muted); white-space: nowrap; }
    .dest-fo-col--atcd,
    .dest-fo-col--buyout,
    .dest-fo-col--price {
      justify-content: flex-end;
      font-variant-numeric: tabular-nums;
      color: var(--muted);
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    .dest-fo-more {
      padding: 0.2rem 0.35rem;
      text-align: center;
      color: var(--muted);
      font-size: 0.68rem;
      border-top: 1px solid var(--border);
      background: rgba(127, 127, 127, 0.04);
    }
    .slot-cell { font-size: 0.75rem; line-height: 1.2; }
    .slot-wh { font-size: 0.7rem; color: var(--muted); margin-top: 0.15rem; }
    #shipments-tabs button.active { background: var(--accent); color: var(--bg); font-weight: 600; border-color: var(--accent); }
    #page-shipments6 .ship-header-line { display: flex; align-items: baseline; gap: 0.45rem; flex-wrap: wrap; margin: 0 0 0.35rem; }
    #page-shipments6 .ship-header-line h1 { margin: 0; }
    #page-shipments6 .ship-article-controls {
      display: flex; flex-direction: column; align-items: flex-start; gap: 0.35rem;
      margin-left: 0; margin-top: 0.05rem;
    }
    #page-shipments6 .ship-article-controls-row { display: flex; flex-wrap: wrap; gap: 0.35rem; align-items: center; }
    #page-shipments6 .ship-sizes-wrap { position: relative; }
    #page-shipments6 .ship-sizes-trigger { font-size: 0.74rem; padding: 0.22rem 0.48rem; }
    #page-shipments6 .ship-sizes-trigger:disabled {
      opacity: 0.5; cursor: not-allowed;
    }
    #page-shipments6 .ship-sizes-popover {
      position: absolute; top: calc(100% + 4px); left: 0; z-index: 80;
      min-width: min(280px, 92vw); max-height: min(260px, 45vh); overflow-y: auto;
      background: var(--panel); border: 1px solid var(--border); border-radius: 6px;
      box-shadow: 0 8px 28px rgba(0, 0, 0, 0.38); padding: 0.28rem;
    }
    #page-shipments6 .ship-sizes-popover[hidden] { display: none !important; }
    #page-shipments6 .ship-sizes-opt {
      padding: 0.38rem 0.52rem; border-radius: 4px; cursor: pointer; font-size: 0.76rem;
      line-height: 1.25; user-select: none;
    }
    #page-shipments6 .ship-sizes-opt:hover { background: rgba(255, 255, 255, 0.06); }
    #page-shipments6 .ship-sizes-opt.ship-sizes-opt--picked {
      background: rgba(77, 171, 247, 0.18); color: var(--accent); font-weight: 600;
    }
    #ship6-subtabs.shipments-subtabs,
    .shipments-subtabs { display: inline-flex; flex-wrap: nowrap; gap: 0.28rem; align-items: baseline; margin: 0; }
    #ship6-subtabs.shipments-subtabs button,
    .shipments-subtabs button {
      border: 0;
      background: transparent;
      color: var(--muted);
      padding: 0.08rem 0.28rem;
      border-radius: 4px;
      font-size: 0.76rem;
      font-weight: 500;
      line-height: 1.2;
      cursor: pointer;
    }
    #ship6-subtabs.shipments-subtabs button.active,
    .shipments-subtabs button.active { color: var(--accent); font-weight: 600; }
    #ship6-subtabs.shipments-subtabs button:not(.active):hover,
    .shipments-subtabs button:not(.active):hover { color: var(--text); }
    #ship6-subtabs.shipments-subtabs .ship-subtab-sep,
    .shipments-subtabs .ship-subtab-sep { color: var(--muted); font-size: 0.76rem; user-select: none; }
    /* Строка сводки + слоты: обычная строка, которую flex-колонка панели не сжимает по высоте. */
    #page-shipments6 #ship-panel-analytics > .ship-analytics-row {
      display: block;
      margin-bottom: 0.45rem;
      flex: 0 0 auto;
      flex-shrink: 0;
      flex-grow: 0;
      min-height: 1px;
      width: 100%;
      white-space: nowrap;
      overflow-x: auto;
    }
    #page-shipments6 .ship-analytics-summary {
      display: inline-grid;
      grid-template-columns: 1fr;
      gap: 0.22rem 0.35rem;
      padding: 0.35rem 0.45rem;
      margin-bottom: 0;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: var(--panel);
      font-size: 0.62rem;
      box-sizing: border-box;
      width: 25%;
      min-width: 220px;
      max-width: 300px;
      vertical-align: top;
      white-space: normal;
      overflow-wrap: break-word;
    }
    #page-shipments6 .ship-slot-coef-dash {
      width: calc(75% - 0.65rem);
      min-width: 260px;
      max-width: calc(100% - 230px);
      min-height: 0;
      max-height: min(22rem, 40vh);
      margin-left: 0.45rem;
      padding: 0.28rem 0.38rem;
      border: 1px solid var(--border);
      border-radius: 6px;
      background: var(--panel);
      box-sizing: border-box;
      display: inline-flex;
      flex-direction: column;
      vertical-align: top;
      white-space: normal;
      overflow: hidden;
    }
    #page-shipments6 .ship-slot-coef-head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 0.35rem 0.5rem;
      margin-bottom: 0.28rem;
      flex-shrink: 0;
    }
    #page-shipments6 .ship-slot-coef-title {
      font-size: 0.82rem;
      font-weight: 700;
      color: var(--text);
      line-height: 1.2;
    }
    #page-shipments6 .ship-slot-mode-bar {
      display: flex;
      flex-wrap: wrap;
      gap: 0.22rem;
      align-items: center;
      justify-content: flex-end;
    }
    #page-shipments6 .ship-slot-mode-btn {
      font-size: 0.62rem;
      line-height: 1.2;
      padding: 0.18rem 0.4rem;
      border-radius: 4px;
      border: 1px solid var(--border);
      background: rgba(255, 255, 255, 0.04);
      color: var(--muted);
      cursor: pointer;
    }
    #page-shipments6 .ship-slot-mode-btn:hover {
      color: var(--text);
      border-color: var(--accent);
    }
    #page-shipments6 .ship-slot-mode-btn.active {
      color: var(--text);
      border-color: var(--accent);
      background: rgba(77, 171, 247, 0.12);
      font-weight: 600;
    }
    #page-shipments6 .ship-slot-coef-dash.ship-slot-coef-dash--off {
      display: none !important;
    }
    #page-shipments6 .ship-slot-dash-scroll {
      flex: 0 1 auto;
      min-height: 0;
      max-height: min(22rem, 40vh);
      overflow: auto;
      scrollbar-width: thin;
    }
    #page-shipments6 #ship-slot-table .tbl-wrap {
      max-height: min(22rem, 40vh);
      min-height: 0;
      border-radius: 6px;
    }
    #page-shipments6 #ship-slot-table table.dashboard-tbl-zoom {
      font-size: 0.55rem;
      line-height: 1.12;
    }
    #page-shipments6 #ship-slot-table table.dashboard-tbl-zoom th,
    #page-shipments6 #ship-slot-table table.dashboard-tbl-zoom td {
      padding: 0.06rem 0.2rem;
    }
    #page-shipments6 #ship-slot-table thead tr.ship-slot-weekday-meta th.ship-slot-weekday-th {
      font-size: 0.62rem;
      font-weight: 600;
      color: var(--muted);
      text-align: center;
      border-bottom: 1px solid var(--border);
      letter-spacing: 0.02em;
    }
    #page-shipments6 #ship-slot-table .header-filter-row input.filter-quick {
      height: 1.05rem;
      min-height: 1.05rem;
      padding: 0.02rem 0.16rem;
      font-size: 0.5rem;
    }
    #page-shipments6 #ship-slot-table .header-filter-row button.filter-btn {
      height: 1.05rem;
      min-height: 1.05rem;
      width: 1.05rem;
      padding: 0;
      font-size: 0.5rem;
      line-height: 1;
    }
    #page-shipments6 #ship-slot-table .header-filter-row td.header-filter-cell--empty {
      padding: 0 !important;
      vertical-align: middle;
    }
    #page-shipments6 #ship-slot-table .header-resize-row td { height: 3px; padding: 0; }
    #page-shipments6 #ship-slot-table .th-header-bar { gap: 0.08rem; }
    #page-shipments6 #ship-slot-table thead th[data-col^="priority_"] .th-inner,
    #page-shipments6 #ship-slot-table thead th[data-col^="slot_"] .th-inner { white-space: nowrap; }
    #page-shipments6 #ship-slot-table .col-drag,
    #page-shipments6 #ship-slot-table .col-pin,
    #page-shipments6 #ship-slot-table .col-close {
      transform: scale(0.75);
      transform-origin: center;
    }
    #page-shipments6 #ship-slot-table .slot-cell { font-size: 0.52rem; line-height: 1.08; }
    #page-shipments6 #ship-slot-table .slot-wh { font-size: 0.48rem; margin-top: 0.04rem; }
    #page-shipments6 .ship-slot-coef-tbl {
      width: max-content;
      min-width: 100%;
      border-collapse: collapse;
      font-size: 0.55rem;
      line-height: 1.15;
      background: var(--panel);
    }
    #page-shipments6 .ship-slot-coef-tbl th,
    #page-shipments6 .ship-slot-coef-tbl td {
      padding: 0.06rem 0.2rem;
      border: 1px solid var(--border);
      vertical-align: top;
      text-align: center;
      white-space: nowrap;
    }
    #page-shipments6 .ship-slot-coef-tbl th {
      position: sticky;
      top: 0;
      z-index: 2;
      background: var(--panel);
      color: var(--muted);
      font-weight: 700;
    }
    #page-shipments6 .ship-slot-coef-tbl tbody tr:nth-child(even) td { background: rgba(255,255,255,0.015); }
    #page-shipments6 .ship-slot-coef-tbl tbody tr:hover td { background: rgba(255,255,255,0.035); }
    #page-shipments6 .ship-slot-coef-tbl th.ship-slot-dash-geo,
    #page-shipments6 .ship-slot-coef-tbl td.ship-slot-dash-geo {
      text-align: left;
      max-width: 5.2rem;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    #page-shipments6 .ship-slot-coef-tbl th.ship-slot-dash-wh,
    #page-shipments6 .ship-slot-coef-tbl td.ship-slot-dash-wh {
      text-align: left;
      max-width: 7rem;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    #page-shipments6 .ship-slot-coef-tbl .slot-cell { font-size: 0.52rem; }
    #page-shipments6 .ship-slot-coef-tbl .slot-wh { font-size: 0.48rem; margin-top: 0.06rem; }
    #page-shipments6 .ship-sum-item { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 0.35rem; }
    #page-shipments6 .ship-sum-lbl { color: var(--muted); font-size: 0.58rem; line-height: 1.15; flex: 1; min-width: 0; text-align: left; }
    #page-shipments6 .ship-sum-val { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--text); font-size: 0.68rem; flex-shrink: 0; }
    #page-shipments6 .ship-sum-note { grid-column: 1 / -1; font-size: 0.55rem; color: var(--muted); line-height: 1.3; margin: 0.15rem 0 0; }
    #page-shipments6 .ship-sum-btn { cursor: pointer; text-align: left; border: 0; background: transparent; padding: 0.06rem 0; margin: 0; font: inherit; width: 100%; min-width: 0; border-radius: 4px; display: flex; align-items: baseline; justify-content: space-between; gap: 0.35rem; }
    #page-shipments6 .ship-sum-btn:hover .ship-sum-lbl, #page-shipments6 .ship-sum-btn:focus-visible .ship-sum-lbl { color: var(--accent); }
    .ship-turnover-aside { position: fixed; inset: 0; z-index: 120; }
    .ship-turnover-aside[hidden] { display: none !important; }
    .ship-turnover-aside-inner { position: absolute; inset: 0; pointer-events: none; }
    .ship-turnover-aside:not([hidden]) .ship-turnover-aside-inner { pointer-events: auto; }
    .ship-turnover-aside-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,0.4); }
    .ship-turnover-aside-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(540px, 96vw); background: var(--panel); border-left: 1px solid var(--border); box-shadow: -6px 0 24px rgba(0,0,0,0.35); display: flex; flex-direction: column; }
    .ship-turnover-aside-header { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0.65rem 0.75rem; border-bottom: 1px solid var(--border); flex-shrink: 0; }
    .ship-turnover-aside-header h3 { margin: 0; font-size: 0.95rem; font-weight: 700; }
    .ship-turnover-aside-body { flex: 1; overflow: auto; padding: 0.5rem 0.75rem 1rem; }
    .ship-lt7-tbl { width: 100%; border-collapse: collapse; font-size: 0.78rem; }
    .ship-lt7-tbl th, .ship-lt7-tbl td { border: 1px solid var(--border); padding: 0.35rem 0.45rem; text-align: right; vertical-align: middle; }
    .ship-lt7-tbl th:first-child, .ship-lt7-tbl td:first-child { text-align: left; }
    .ship-lt7-tbl th { background: var(--bg); color: var(--muted); font-weight: 600; }
    .ship-lt7-prod { display: flex; gap: 0.45rem; align-items: flex-start; min-width: 0; }
    .ship-lt7-prod .art-photo-wrap { flex-shrink: 0; }
    .ship-lt7-prod-meta { min-width: 0; line-height: 1.25; }
    .log-wrap { border: 1px solid var(--border); border-radius: 6px; background: #0d0e10; max-height: 420px; overflow: auto; margin-top: 0.75rem; }
    .log-wrap h3 { margin: 0; padding: 0.4rem 0.75rem; font-size: 0.82rem; border-bottom: 1px solid var(--border); }
    .log-entries { padding: 0.4rem; font-family: Consolas, monospace; font-size: 11px; }
    .log-entry { margin-bottom: 0.3rem; padding: 0.25rem; border-radius: 4px; background: var(--panel); }
    .log-entry time { color: var(--muted); margin-right: 0.4rem; }
    .log-entry.error .msg { color: var(--danger); }
    .col-panel-overlay { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.5); z-index: 100; }
    .col-panel-overlay.open { display: block; }
    .col-panel { position: fixed; top: 0; right: -380px; width: 360px; height: 100vh; background: var(--panel);
      border-left: 2px solid var(--accent); z-index: 101; transition: right 0.25s ease;
      display: flex; flex-direction: column; overflow: hidden; box-shadow: -4px 0 20px rgba(0,0,0,0.5); }
    .col-panel.open { right: 0; }
    .col-panel-header { display: flex; align-items: center; justify-content: space-between; padding: 0.75rem 1rem;
      border-bottom: 1px solid var(--border); background: #2a3a4f; flex-shrink: 0; }
    .col-panel-header h3 { font-size: 1rem; margin: 0; color: var(--accent); }
    .col-panel-search { padding: 0.6rem 1rem; border-bottom: 1px solid var(--border); flex-shrink: 0; }
    .col-panel-search input { width: 100%; padding: 0.4rem 0.6rem; }
    .col-panel-body { flex: 1; overflow-y: auto; padding: 0.5rem 1rem; }
    .col-panel-body::-webkit-scrollbar { width: 8px; }
    .col-panel-body::-webkit-scrollbar-thumb { background: #555; border-radius: 4px; }
    .col-cat-title { font-size: 0.82rem; color: var(--accent); font-weight: 700; margin: 0.7rem 0 0.3rem;
      padding-bottom: 0.15rem; border-bottom: 1px solid var(--border); }
    .col-cat-title:first-child { margin-top: 0; }
    .col-item { display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0.3rem; font-size: 0.82rem; cursor: pointer; border-radius: 3px; }
    .col-item:hover { background: var(--bg); color: var(--accent); }
    .col-item input[type="checkbox"] { accent-color: var(--accent); margin: 0; width: 16px; height: 16px; }
    .col-panel-footer { padding: 0.6rem 1rem; border-top: 1px solid var(--border); flex-shrink: 0; background: #1e1f23; }
    .col-panel-footer .presets { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.5rem; }
    .preset-btn { padding: 0.3rem 0.6rem; font-size: 0.78rem; background: var(--bg); border: 1px solid var(--border);
      color: var(--text); border-radius: 4px; cursor: pointer; }
    .preset-btn.active { border-color: var(--accent); color: var(--accent); background: #1e3a5f; }
    .preset-btn:hover { border-color: var(--accent); }
    /* Agent: z-index выше контекстных меню только когда surface-agent (активная панель) */
    .agent-overlay { position: fixed; top: 0; right: 0; bottom: 0; width: 420px; max-width: 95vw; z-index: 4800; transform: translateX(100%); transition: transform 0.25s ease, opacity 0.2s ease; pointer-events: none; }
    .agent-overlay.open { transform: translateX(0); pointer-events: auto; }
    body.surface-agent .agent-overlay.open { z-index: 10050; }
    body.surface-agent .agent-overlay.open .agent-modal { opacity: 1; }
    body.surface-main .agent-overlay.open .agent-modal { opacity: 0.94; }
    /* CTR wizard — в основной части страницы под шапкой */
    .ctr-wizard-panel { display: none; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 0; margin-bottom: 1rem; overflow: hidden; }
    .ctr-wizard-panel.open { display: block; }
    .ctr-wizard-panel .ctr-wizard-header { display: flex; align-items: center; justify-content: space-between; padding: 0.6rem 1rem; border-bottom: 1px solid var(--border); background: #2a3a4f; }
    .ctr-wizard-panel .ctr-wizard-header h2 { font-size: 1rem; margin: 0; color: var(--accent); }
    .ctr-step-nav-item:hover { background: var(--bg); color: var(--accent); }
    .ctr-step-nav-item .ctr-step-num { display:inline-flex;align-items:center;justify-content:center;width:1.2rem;height:1.2rem;font-size:0.75rem;background:var(--border);border-radius:50%;flex-shrink:0 }
    .ctr-step-nav-item.active .ctr-step-num { background:var(--accent);color:var(--bg) }
    /* overflow: visible — иначе нативный <select> режима/модели обрезается и «скликивает» */
    .agent-modal { width: 100%; height: 100%; background: var(--panel); border-left: 1px solid var(--border); box-shadow: -8px 0 24px rgba(0,0,0,0.4); display: flex; flex-direction: column; overflow: visible; min-height: 0; }
    .agent-header { display: flex; align-items: center; justify-content: space-between; padding: 0.6rem 1rem; border-bottom: 1px solid var(--border); background: #2a3a4f; flex-shrink: 0; }
    .agent-header h2 { font-size: 1rem; margin: 0; color: var(--accent); }
    .agent-dialogs { padding: 0.5rem 1rem; border-bottom: 1px solid var(--border); max-height: 80px; overflow-y: auto; flex-shrink: 0; }
    .agent-dialogs-title { font-size: 0.75rem; color: var(--muted); margin-bottom: 0.3rem; }
    .agent-dialog-list { display: flex; gap: 0.35rem; flex-wrap: wrap; align-items: center; }
    .agent-dialog-item { display: inline-flex; align-items: center; gap: 0.2rem; max-width: 100%; vertical-align: top; }
    .agent-dialog-item .agent-dialog-btn { padding: 0.25rem 0.5rem; font-size: 0.78rem; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; color: var(--text); cursor: pointer; max-width: 160px; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .agent-dialog-btn:hover, .agent-dialog-btn.active { border-color: var(--accent); color: var(--accent); }
    .agent-dialog-del { width: 1.35rem; height: 1.35rem; padding: 0; line-height: 1.15; font-size: 1rem; flex-shrink: 0; border: 1px solid var(--border); border-radius: 4px; background: var(--bg); color: var(--muted); cursor: pointer; opacity: 0; transition: opacity 0.15s; }
    .agent-dialog-item:hover .agent-dialog-del { opacity: 1; }
    .agent-dialog-del:hover { color: var(--danger); border-color: var(--danger); }
    .agent-toolbar { display: flex; align-items: center; gap: 0.5rem; padding: 0.5rem 1rem; border-bottom: 1px solid var(--border); flex-wrap: wrap; flex-shrink: 0; overflow: visible; position: relative; z-index: 30; }
    .agent-toolbar label { font-size: 0.78rem; color: var(--muted); }
    .agent-toolbar input[type=date] { width: 120px; }
    .agent-toolbar select { min-width: 140px; }
    .agent-article-pick, .agent-imt-pick { display: none; }
    .agent-article-pick.visible, .agent-imt-pick.visible { display: flex; align-items: center; gap: 0.4rem; }
    .agent-imt-catalog-panel { display: none; flex-direction: column; flex: 1; min-height: 0; border-bottom: 1px solid var(--border); }
    .agent-imt-catalog-panel.visible { display: flex; }
    .agent-imt-catalog-head { padding: 0.35rem 0.75rem; font-size: 0.75rem; color: var(--muted); flex-shrink: 0; }
    .agent-imt-catalog-panel .dash-box.dash-box-tbl { flex: 1; min-height: 0; margin: 0 0.5rem 0.35rem; }
    .agent-imt-catalog-panel .dash-box.dash-box-tbl > #agent-imt-catalog-table { min-height: 8rem; max-height: 42vh; }
    .agent-messages { flex: 1; min-height: 0; overflow-y: auto; padding: 1rem; font-size: 0.88rem; }
    .agent-messages.with-imt-catalog { flex: 0 1 38%; min-height: 6rem; }
    .agent-msg { margin-bottom: 0.8rem; }
    .agent-msg.user { text-align: right; }
    .agent-msg.user .agent-msg-bubble { background: #2a3a4f; border: 1px solid var(--accent); border-radius: 12px 12px 4px 12px; display: inline-block; padding: 0.5rem 0.8rem; max-width: 85%; }
    .agent-msg.model .agent-msg-bubble { background: var(--bg); border: 1px solid var(--border); border-radius: 12px 12px 12px 4px; padding: 0.5rem 0.8rem; text-align: left; white-space: pre-wrap; }
    .agent-msg-role { font-size: 0.7rem; color: var(--muted); margin-bottom: 0.2rem; }
    .agent-input-row { display: flex; gap: 0.4rem; padding: 0.6rem 1rem; border-top: 1px solid var(--border); flex-shrink: 0; }
    .agent-input-row input { flex: 1; padding: 0.5rem 0.7rem; }
    /* Содержимое ячеек tbody дашбордов: единый маркер; клики/ссылки — доп. класс .tbl-cell-link */
    .tbl-wrap table.dashboard-tbl-zoom tbody td > .tbl-cell-data,
    .tbl-wrap .heatmap-table tbody td > .tbl-cell-data {
      display: block; width: 100%; box-sizing: border-box; font-size: 1em;
    }
    .tbl-cell-link { color: var(--accent); cursor: pointer; text-decoration: none; }
    .tbl-cell-link:hover { text-decoration: underline; }
    .art-cell { cursor: pointer; display: inline-flex; align-items: center; gap: 0.4rem; }
    .art-cell:hover { color: var(--accent); }
    .art-photo-wrap { width: var(--tbl-photo-size, 28px); height: var(--tbl-photo-size, 28px); flex-shrink: 1; position: relative; display: inline-flex; align-items: center; justify-content: center; border-radius: 3px; overflow: hidden; background: var(--border); min-width: 6px; min-height: 6px; }
    .art-photo-wrap.art-photo-sm { width: var(--tbl-photo-size, 24px); height: var(--tbl-photo-size, 24px); }
    .art-photo-wrap .art-photo { width: 100%; height: 100%; object-fit: cover; display: block; }
    .art-photo-wrap.photo-fail .art-photo { display: none; }
    .art-photo-wrap.photo-fail::after { content: '—'; position: absolute; left: 0; top: 0; right: 0; bottom: 0; background: var(--border); display: flex; align-items: center; justify-content: center; font-size: 0.6rem; color: var(--muted); }
    .art-photo-wrap .art-photo-placeholder { width: 100%; height: 100%; background: var(--border); display: flex; align-items: center; justify-content: center; font-size: 0.6rem; color: var(--muted); }
    .art-cell .art-name { font-size: 0.68rem; color: var(--muted); max-width: 120px; overflow: hidden; text-overflow: ellipsis; }
    .wb-link { color: var(--accent); cursor: pointer; text-decoration: none; }
    .wb-link:hover { text-decoration: underline; }
    .ads-campaign-click { cursor: pointer; }
    /* Реклама — «Кампания»: высота строки = --tbl-row-h; доля слота фото ≤30%, при меньшей высоте строки уже (база 28px = ROW_H_DEFAULT) */
    #page-ads .tbl-wrap {
      --ads-camp-row-base: 28px;
      --ads-camp-photo-pct: min(30%, calc(30% * (var(--tbl-row-h, 28px) / var(--ads-camp-row-base, 28px))));
    }
    #page-ads .tbl-wrap table.dashboard-tbl-zoom tbody td[data-col="_article"] {
      padding: 0;
      vertical-align: middle;
      height: var(--tbl-row-h, 28px) !important;
      max-height: var(--tbl-row-h, 28px) !important;
      min-height: 0;
      white-space: normal;
      overflow: hidden;
      box-sizing: border-box;
    }
    #page-ads .tbl-wrap table.dashboard-tbl-zoom tbody td[data-col="_article"] .tbl-cell-data {
      display: block;
      height: 100%;
      max-height: 100%;
      min-height: 0;
      min-width: 0;
      padding: 0;
      box-sizing: border-box;
      overflow: hidden;
    }
    #page-ads .ads-campaign-cell-wrap {
      display: flex;
      flex-direction: row;
      align-items: stretch;
      width: 100%;
      min-width: 0;
      max-width: 100%;
      height: 100%;
      max-height: 100%;
      min-height: 0;
      box-sizing: border-box;
      border-radius: 4px;
      overflow: hidden;
    }
    #page-ads .ads-campaign-cell-wrap.ads-campaign-row-active {
      background: rgba(34, 160, 90, 0.22);
    }
    #page-ads .ads-campaign-cell-wrap.ads-campaign-click:hover:not(.ads-campaign-row-active) {
      background: rgba(255, 255, 255, 0.05);
    }
    #page-ads .ads-campaign-photo-slot {
      flex: 0 0 var(--ads-camp-photo-pct);
      width: var(--ads-camp-photo-pct);
      max-width: 30%;
      min-width: 0;
      display: flex;
      align-items: stretch;
      justify-content: center;
      align-self: stretch;
      background: #2a2d33;
    }
    #page-ads .ads-campaign-photo-slot .art-photo-wrap {
      width: 100% !important;
      height: 100% !important;
      max-width: 100% !important;
      max-height: 100% !important;
      min-width: 0 !important;
      min-height: 0 !important;
      border-radius: 0;
      flex: 1 1 auto;
    }
    #page-ads .ads-campaign-photo-slot .art-photo-wrap .art-photo {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }
    #page-ads .ads-campaign-photo-slot .art-photo-placeholder {
      width: 100%;
      height: 100%;
      min-height: 0;
    }
    #page-ads .ads-campaign-text-slot {
      flex: 1;
      min-width: 0;
      min-height: 0;
      padding: clamp(0px, calc(var(--tbl-row-h, 28px) * 0.06), 4px) clamp(2px, calc(var(--tbl-row-h, 28px) * 0.04), 6px) clamp(0px, calc(var(--tbl-row-h, 28px) * 0.06), 4px) clamp(3px, calc(var(--tbl-row-h, 28px) * 0.08), 8px);
      display: flex;
      flex-direction: column;
      justify-content: center;
      box-sizing: border-box;
      overflow: hidden;
      /* Шрифт как у остальных ячеек (реагирует на --tbl-zoom через tbody). */
      font-size: 1em;
      line-height: 1.06;
    }
    #page-ads .ads-campaign-text-slot.ads-campaign-lines { gap: clamp(0px, calc(var(--tbl-row-h, 28px) * 0.02), 2px); }
    #page-ads .ads-campaign-text-slot .ads-camp-line {
      display: block;
      max-width: 100%;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    #page-ads .ads-campaign-text-slot .ads-camp-line-1 { font-weight: 600; }
    #page-ads .ads-campaign-text-slot .ads-camp-line-5 { color: var(--muted); font-size: 0.92em; }
    .rnp-product-link { display: inline-flex; align-items: center; gap: 0.4rem; color: inherit; text-decoration: none; }
    .rnp-product-link:hover { color: var(--accent); }
    .ads-nm-list { font-size: 0.68rem; line-height: 1.4; }
    .ads-nm-list .wb-link { display: block; }
    .health-ctx-menu {
      max-width: min(34rem, calc(100vw - 1rem));
      max-height: min(70vh, 34rem);
      overflow: auto;
      padding: 0.65rem;
      font-size: 0.78rem;
      line-height: 1.35;
    }
    .health-ctx-menu h4 { margin: 0 0 0.45rem; font-size: 0.9rem; }
    .health-ctx-menu p { margin: 0.2rem 0; }
    .health-ctx-menu ul { margin: 0.35rem 0 0.55rem 1.1rem; padding: 0; }
    .health-ctx-menu hr { border: 0; border-top: 1px solid var(--border); margin: 0.55rem 0; }
    .health-ctx-label { display: block; margin: 0.45rem 0 0.25rem; color: var(--muted); font-size: 0.72rem; }
    .health-ctx-text {
      width: 100%;
      min-height: 5.5rem;
      resize: vertical;
      box-sizing: border-box;
      background: var(--panel);
      color: var(--text);
      border: 1px solid var(--border);
      border-radius: 6px;
      padding: 0.4rem;
      font: inherit;
    }
    .health-ctx-copy { margin-top: 0.4rem; }
    /* Реклама: каждый nm_id на своей строке, без скролла; если много — показываем первые 5 + … */
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom tbody td[data-col="_nmIds"] {
      vertical-align: middle;
      overflow: hidden;
      padding-top: 0;
      padding-bottom: 0;
      box-sizing: border-box;
    }
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom tbody td[data-col="_nmIds"] .tbl-cell-data {
      overflow: hidden;
      line-height: 1.15;
    }
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom tbody td[data-col="_nmIds"] .ads-nm-list {
      display: block;
      max-height: 100%;
      margin: 0;
    }
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom tbody td[data-col="_nmIds"] .ads-nm-list .wb-link {
      display: block;
      margin-right: 0;
      white-space: nowrap;
    }

    /* Реклама: компактные заголовки и фильтры (в 2 раза ниже по высоте). */
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-row th {
      padding: 2px 4px !important;
      line-height: 1.05 !important;
    }
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-row th .th-inner {
      /* Чуть больше данных и реагирует на zoom (как и данные). */
      font-size: calc(1.08em * var(--tbl-zoom, 1));
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
    }
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-filter-row td {
      padding: 1px 3px !important;
    }
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-filter-row .filter-inner {
      gap: 2px;
    }
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-filter-row input.filter-quick {
      font-size: calc(1.02em * var(--tbl-zoom, 1));
      padding: 1px 4px;
      height: 18px;
    }
    #page-ads #ads-table .tbl-wrap table.dashboard-tbl-zoom thead tr.header-filter-row button.filter-btn {
      padding: 0 4px;
      height: 18px;
      min-height: 18px;
      line-height: 16px;
      font-size: calc(1.02em * var(--tbl-zoom, 1));
    }
    #page-ads #ads-khm-table .tbl-wrap .header-filter-row:not(.header-summary-row),
    #page-ads #ads-cmp-khm-table .tbl-wrap .header-filter-row:not(.header-summary-row) {
      display: none !important;
    }
    #page-ads #ads-khm-table .tbl-wrap th .col-close,
    #page-ads #ads-cmp-khm-table .tbl-wrap th .col-close {
      display: none !important;
    }
    th[title] { cursor: help; }
    .date-range-input { width: 100%; max-width: 115px; padding: 0.15rem 0.25rem; font-size: 0.7rem; background: #181a1f; border: 1px solid #3d424c; border-radius: 3px; color: #c7cdd6; color-scheme: dark; font-variant-numeric: tabular-nums; }
    .range-group { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.25rem 0.4rem;
      background: #0e1014; border: 1px solid #353942; border-radius: 6px; margin: 0.15rem 0.2rem; }
    .range-group input[type="date"] {
      background: #181a1f; border: 1px solid #3d424c; border-radius: 4px;
      color: #c7cdd6; color-scheme: dark; font-variant-numeric: tabular-nums;
    }
    .range-group .range-remove { background: none; border: none; color: var(--muted); cursor: pointer; padding: 0 0.25rem; font-size: 1rem; }
    .range-group .range-remove:hover { color: var(--danger); }
    .range-group .sep { color: #8a919c; font-size: 0.8rem; flex-shrink: 0; }
    .rnp-actions-collapse-root {
      position: relative;
      width: auto;
      align-self: center;
      margin-left: auto;
      flex: 0 0 auto;
      display: inline-flex;
      align-items: center;
    }
    /* РНП: кнопка скрытия в заголовке, поэтому тут только контейнер действий */
    /* РНП: в скрытом виде панель (диапазоны + действия) не показываем совсем */
    #page-rnp #rnp-toolbar-row.is-collapsed { display: none !important; }
    /* РНП: общий тулбар во всю ширину */
    #page-rnp .toolbar.toolbar-dashboard { flex-wrap: wrap; align-items: center; width: 100%; }
    #page-rnp .rnp-actions-collapse-body { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
    .rnp-range-chip-outer { display: inline-flex; align-items: center; gap: 0.1rem; }
    .rnp-grain-label { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.78rem; color: var(--muted); margin-left: 0.25rem; }
    .rnp-grain-label select { min-width: 120px; padding: 0.2rem 0.45rem; border-radius: 4px; border: 1px solid var(--border); background: var(--panel); color: var(--text); font-size: 0.78rem; }
    #rnp-ranges.rnp-ranges-chips { max-height: 3.64rem; overflow-y: auto; flex: 1; min-width: 120px; align-content: flex-start; }
    /* РНП: блок диапазонов без искусственного max-width */
    .rnp-ranges-wrap { max-width: 100%; flex: 1 1 520px; }
    .rnp-master-label { font-size: 0.8rem; color: var(--muted); font-weight: 600; margin-bottom: 0.15rem; }
    .rnp-master-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; width: 100%; }
    button.rnp-range-chip {
      display: inline-flex; align-items: center; gap: 0.2rem; padding: 0.15rem 0.45rem 0.15rem 0.5rem; border-radius: 999px;
      border: 1px solid var(--border); background: var(--panel); color: var(--text); font-size: 0.72rem; cursor: pointer; line-height: 1.25;
      max-width: 100%;
    }
    button.rnp-range-chip:hover { border-color: var(--accent); color: var(--accent); }
    .rnp-range-chip-outer .rnp-chip-x { border: none; background: none; color: var(--muted); cursor: pointer; padding: 0 0.15rem; font-size: 0.95rem; line-height: 1; }
    .rnp-range-chip-outer .rnp-chip-x:hover { color: var(--danger); }
    #rnp-range-popover {
      position: fixed; z-index: 200; min-width: 220px; padding: 0.55rem 0.65rem; border-radius: 8px; border: 1px solid var(--border);
      background: var(--panel); box-shadow: 0 8px 28px rgba(0,0,0,0.35); display: none;
    }
    #rnp-range-popover.rnp-range-popover-open { display: block; }
    .rnp-range-popover-inner { display: flex; flex-direction: column; gap: 0.45rem; font-size: 0.82rem; }
    .rnp-range-popover-dates { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem; }
    .rnp-range-popover-dates input[type="date"] { padding: 0.2rem 0.35rem; font-size: 0.78rem; border-radius: 4px; border: 1px solid var(--border); background: var(--bg); color: var(--text); }
    .rnp-range-popover-actions { display: flex; gap: 0.35rem; justify-content: flex-end; flex-wrap: wrap; }
    .analytics-tab:hover { color: var(--accent) !important; }
    .heatmap-table thead tr.header-row th { padding: 0.35rem 0.5rem; white-space: normal; min-width: 0; overflow: visible; text-overflow: clip; }
    .heatmap-table thead tr.header-row th .th-inner { display: block; white-space: normal; word-break: break-word; overflow: visible; text-overflow: clip; }
    .heatmap-table thead tr.header-row th:has(.th-sublabel) { white-space: normal; }
    .heatmap-table thead tr.header-row th:has(.th-sublabel) .th-inner { display: block; white-space: normal; word-break: break-word; }
    .tbl-zoom-wrapper { display: inline-block; min-width: 100%; }
    .tbl-zoom-wrapper .heatmap-table { width: max-content; min-width: 100%; }
    .heatmap-table td { padding: 0.3rem 0.5rem; text-align: center; min-width: 0; }
    /* База шрифта таблицы — шапка, meta, строка фильтров без масштаба; --tbl-zoom только у tbody */
    .tbl-wrap .heatmap-table,
    .tbl-wrap table.dashboard-tbl-zoom { font-size: 0.76rem; }
    .tbl-wrap .heatmap-table tbody,
    .tbl-wrap table.dashboard-tbl-zoom tbody { font-size: calc(0.76rem * var(--tbl-zoom, 1) * var(--tbl-row-font-scale, 1)); }
    /* Вторичный текст и списки — em от масштаба tbody, не фикс. rem */
    .tbl-wrap table.dashboard-tbl-zoom tbody .art-cell .art-name,
    .tbl-wrap .heatmap-table tbody .art-cell .art-name { font-size: 0.9em; color: var(--muted); max-width: 120px; overflow: hidden; text-overflow: ellipsis; }
    .tbl-wrap table.dashboard-tbl-zoom tbody .ads-nm-list,
    .tbl-wrap .heatmap-table tbody .ads-nm-list { font-size: 1em; line-height: 1.4; }
    /* Теплокарта «по предмету»: артикулы в одну строку, полный список — ПКМ */
    .tbl-wrap .heatmap-table tbody td.hm-subj-art-td {
      white-space: nowrap;
      overflow: hidden;
      vertical-align: middle;
      height: var(--tbl-row-h, 28px);
      max-height: var(--tbl-row-h, 28px);
      line-height: calc(var(--tbl-row-h, 28px) - 4px);
    }
    .tbl-wrap .heatmap-table tbody td.hm-subj-art-td .hm-subj-art-preview {
      display: block;
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      max-width: 100%;
    }
    .tbl-wrap table.dashboard-tbl-zoom tbody .art-photo-wrap.photo-fail::after,
    .tbl-wrap table.dashboard-tbl-zoom tbody .art-photo-wrap .art-photo-placeholder,
    .tbl-wrap .heatmap-table tbody .art-photo-wrap.photo-fail::after,
    .tbl-wrap .heatmap-table tbody .art-photo-wrap .art-photo-placeholder { font-size: 0.75em; }
    .tbl-wrap table.dashboard-tbl-zoom tbody .slot-cell,
    .tbl-wrap .heatmap-table tbody .slot-cell { font-size: 0.98em; line-height: 1.2; }
    .tbl-wrap .heatmap-table tbody td,
    .tbl-wrap table.dashboard-tbl-zoom tbody td { height: var(--tbl-row-h, 28px); padding-top: 2px; padding-bottom: 2px; box-sizing: border-box; }
    .tbl-wrap .heatmap-table tbody .art-photo-wrap,
    .tbl-wrap table.dashboard-tbl-zoom tbody .art-photo-wrap {
      width: calc((var(--tbl-row-h, 28px) - 6px) * var(--tbl-zoom, 1));
      height: calc((var(--tbl-row-h, 28px) - 6px) * var(--tbl-zoom, 1));
    }
    /* Дашборды (dashboard-tbl-zoom): без ручных ширин — одна строка, столбец расширяется по ширине; при сохранённых ширинах — перенос и высота строки */
    .tbl-wrap .tbl-resizable.tbl-auto-width:not(.tbl-fixed-cols) table.dashboard-tbl-zoom tbody td {
      white-space: nowrap;
      vertical-align: middle;
      line-height: calc(var(--tbl-row-h, 28px) - 4px);
      overflow: visible;
      text-overflow: clip;
      max-width: none;
    }
    .tbl-wrap .tbl-fixed-cols table.dashboard-tbl-zoom tbody td {
      white-space: normal;
      word-break: break-word;
      vertical-align: top;
      min-height: var(--tbl-row-h, 28px);
      height: auto;
      line-height: 1.35;
      max-width: none;
    }
    /* Lamoda динамика / heatmap с tbl-auto-width: то же; ручная ширина столбца — td-col-sized; многострочные ячейки — :has(br) */
    .tbl-wrap .tbl-resizable.tbl-auto-width:not(.tbl-fixed-cols) table.heatmap-table tbody td:not(.td-col-sized):not(.stock-sizes-cell) {
      white-space: nowrap;
      vertical-align: middle;
      line-height: calc(var(--tbl-row-h, 28px) - 4px);
      overflow: visible;
      text-overflow: clip;
      max-width: none;
    }
    .tbl-wrap .tbl-resizable.tbl-auto-width table.heatmap-table tbody td.td-col-sized {
      white-space: normal;
      word-break: break-word;
      vertical-align: top;
      min-height: var(--tbl-row-h, 28px);
      height: auto;
      line-height: 1.35;
      max-width: none;
    }
    .tbl-wrap .tbl-resizable.tbl-auto-width table.heatmap-table tbody td.hm-subj-art-td.td-col-sized {
      white-space: nowrap;
      vertical-align: middle;
      height: var(--tbl-row-h, 28px);
      max-height: var(--tbl-row-h, 28px);
      line-height: calc(var(--tbl-row-h, 28px) - 4px);
    }
    .tbl-wrap .tbl-resizable.tbl-auto-width table.heatmap-table tbody td.stock-sizes-cell,
    .tbl-wrap .tbl-resizable.tbl-auto-width table.heatmap-table tbody td:has(br):not(.hm-subj-art-td) {
      white-space: normal;
      word-break: break-word;
      vertical-align: top;
      min-height: var(--tbl-row-h, 28px);
      height: auto;
      line-height: 1.35;
    }
    .tbl-wrap .tbl-resizable.tbl-auto-width:not(.tbl-fixed-cols) tbody td .art-cell,
    .tbl-wrap .tbl-resizable.tbl-auto-width:not(.tbl-fixed-cols) tbody td .art-cell span { max-width: none; overflow: visible; text-overflow: clip; }
    .tbl-wrap .tbl-resizable.tbl-auto-width:not(.tbl-fixed-cols) tbody td * { max-width: none; overflow: visible; text-overflow: clip; }
    .tbl-wrap .tbl-resizable.tbl-auto-width:not(.tbl-fixed-cols) tbody tr.summary-row td { white-space: nowrap; vertical-align: middle; height: var(--tbl-row-h, 28px); }
    .row-height-controls { margin-left: 0.3rem; }
    .heatmap-table td.heat { border-radius: 2px; }
    .heatmap-table td.stock-sizes-cell { white-space: normal; text-align: left; }
    .heatmap-table th.hm-date-col { cursor: pointer; user-select: none; }
    .heatmap-table th.hm-date-col:hover { color: var(--accent); }
    .heatmap-table th.hm-date-col .th-inner.hm-drag-handle { cursor: move; }
    #page-heatmap { position: relative; min-height: 80vh; }
    /* TC4 теплокарта: −30% шрифт, узкие даты, больше площади под цвет */
    #page-heatmap #hm-table .table-core-shell,
    #page-article #art-size-hm-table .table-core-shell,
    #page-article #art-wh-hm-table .table-core-shell {
      font-size: 70%;
    }
    #page-heatmap #hm-table th[data-col^="hm_d_"] .data-table__title,
    #page-heatmap #hm-table th[data-col^="hm_d_"] .data-table__subtitle,
    #page-article #art-size-hm-table th[data-col^="hm_d_"] .data-table__title,
    #page-article #art-size-hm-table th[data-col^="hm_d_"] .data-table__subtitle,
    #page-article #art-wh-hm-table th[data-col^="hm_d_"] .data-table__title,
    #page-article #art-wh-hm-table th[data-col^="hm_d_"] .data-table__subtitle {
      font-size: 0.8em;
      line-height: 1.1;
    }
    #page-heatmap #hm-table th[data-col^="hm_d_"],
    #page-article #art-size-hm-table th[data-col^="hm_d_"],
    #page-article #art-wh-hm-table th[data-col^="hm_d_"] {
      padding: 0;
      cursor: pointer;
    }
    #page-heatmap #hm-table th[data-col^="hm_d_"] .data-table__header,
    #page-article #art-size-hm-table th[data-col^="hm_d_"] .data-table__header,
    #page-article #art-wh-hm-table th[data-col^="hm_d_"] .data-table__header {
      padding: 0;
      min-height: 0;
      width: 100%;
      height: 100%;
      gap: 0;
    }
    #page-heatmap #hm-table th[data-col^="hm_d_"] .data-table__title,
    #page-article #art-size-hm-table th[data-col^="hm_d_"] .data-table__title,
    #page-article #art-wh-hm-table th[data-col^="hm_d_"] .data-table__title {
      width: 100%;
      max-width: none;
      padding: 0;
      cursor: pointer;
    }
    #page-heatmap #hm-table th[data-col^="hm_d_"] .data-table__sort,
    #page-article #art-size-hm-table th[data-col^="hm_d_"] .data-table__sort,
    #page-article #art-wh-hm-table th[data-col^="hm_d_"] .data-table__sort {
      display: none;
    }
    #page-heatmap #hm-table th[data-col^="hm_d_"][aria-sort="ascending"] .data-table__title,
    #page-heatmap #hm-table th[data-col^="hm_d_"][aria-sort="descending"] .data-table__title,
    #page-article #art-size-hm-table th[data-col^="hm_d_"][aria-sort="ascending"] .data-table__title,
    #page-article #art-size-hm-table th[data-col^="hm_d_"][aria-sort="descending"] .data-table__title,
    #page-article #art-wh-hm-table th[data-col^="hm_d_"][aria-sort="ascending"] .data-table__title,
    #page-article #art-wh-hm-table th[data-col^="hm_d_"][aria-sort="descending"] .data-table__title {
      color: var(--accent);
      font-weight: 700;
    }
    #page-heatmap #hm-table th[data-col^="hm_d_"]:hover .data-table__title,
    #page-article #art-size-hm-table th[data-col^="hm_d_"]:hover .data-table__title,
    #page-article #art-wh-hm-table th[data-col^="hm_d_"]:hover .data-table__title {
      color: var(--accent);
    }
    #page-heatmap #hm-table td.table-core-heatmap-cell,
    #page-article #art-size-hm-table td.table-core-heatmap-cell,
    #page-article #art-wh-hm-table td.table-core-heatmap-cell {
      padding: 0.06rem 0.1rem;
      line-height: 1.05;
      vertical-align: middle;
    }
    #page-heatmap #hm-table td.table-core-heatmap-cell .table-core-cell-body,
    #page-article #art-size-hm-table td.table-core-heatmap-cell .table-core-cell-body,
    #page-article #art-wh-hm-table td.table-core-heatmap-cell .table-core-cell-body {
      padding: 0;
      min-height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      width: 100%;
    }
    #page-heatmap #hm-table th[data-col="_product"],
    #page-heatmap #hm-table td[data-col="_product"] {
      font-size: 70%;
    }
    #page-heatmap #hm-table td[data-col="_product"].table-core-cell-wrap > .table-core-cell-body {
      text-align: left;
      height: 100%;
    }
    #page-heatmap #hm-table td[data-col="_product"] .table-core-product-cell {
      display: flex;
      flex-direction: row;
      align-items: flex-start;
      gap: 0.21rem;
      width: 100%;
    }
    #page-heatmap #hm-table td[data-col="_product"] .table-core-product-photo {
      flex: 0 0 auto;
      flex-shrink: 0;
      width: var(--tbl-photo-size, 22px);
      height: var(--tbl-photo-size, 22px);
      min-width: 6px;
      min-height: 6px;
      max-width: var(--tbl-photo-size, 22px);
      max-height: var(--tbl-photo-size, 22px);
      align-self: flex-start;
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
      border-radius: 3px;
      background: var(--border);
    }
    #page-heatmap #hm-table td[data-col="_product"] .table-core-product-lines {
      flex: 1 1 auto;
      min-width: 0;
      align-self: flex-start;
    }
    #page-heatmap #hm-table td[data-col="_product"] .table-core-product-photo .art-photo-wrap {
      width: 100% !important;
      height: 100% !important;
      min-width: 0 !important;
      min-height: 0 !important;
      max-width: 100% !important;
      max-height: 100% !important;
      border-radius: inherit;
      flex-shrink: 0;
    }
    #page-heatmap #hm-table td[data-col="_product"] .table-core-product-photo img,
    #page-heatmap #hm-table td[data-col="_product"] .table-core-product-photo .art-photo {
      width: 100%;
      height: 100%;
      max-width: 100%;
      max-height: 100%;
      object-fit: cover;
      display: block;
    }
    #heatmap-dash-box { transition: box-shadow 0.15s; }
    #heatmap-dash-box.heatmap-dragging { box-shadow: 0 8px 32px rgba(0,0,0,0.4); z-index: 50; }
    .stock-article { cursor: pointer; }
    .stock-article:hover td { color: var(--accent); }
    .stock-detail { display: none; }
    .stock-detail.open { display: table-row; }
    .stock-sub td { padding-left: 2rem; font-size: 0.72rem; color: var(--muted); }

    /* Auth page — только при клике Кабинет без авторизации */
    .auth-container { max-width: 420px; margin: 2rem auto 3rem; padding: 2rem; background: var(--panel); border: 1px solid var(--border); border-radius: 12px; }
    .auth-container h2 { text-align: center; margin-bottom: 1.5rem; color: var(--accent); }
    .auth-container .form-group input { max-width: 100%; }
    .auth-tabs { display: flex; margin-bottom: 1.5rem; }
    .auth-tabs button { flex: 1; padding: 0.6rem; background: var(--bg); border: 1px solid var(--border); color: var(--muted); font-size: 0.9rem; cursor: pointer; }
    .auth-tabs button.active { background: var(--accent); color: var(--bg); font-weight: 700; }
    .auth-tabs button:first-child { border-radius: 6px 0 0 6px; }
    .auth-tabs button:last-child { border-radius: 0 6px 6px 0; }
    .auth-error { color: var(--danger); font-size: 0.85rem; margin-bottom: 0.5rem; text-align: center; }

    /* Баннер догрузки данных (data-coverage + sync-queue) */
    .sync-data-banner {
      margin: 0.35rem 0 0.15rem;
      padding: 0.45rem 0.65rem;
      border-radius: 6px;
      font-size: 0.8rem;
      line-height: 1.35;
      border: 1px solid var(--border);
      background: var(--panel);
    }
    /* Компактный вариант (по размеру как кнопка «Загрузить») */
    #sync-data-banner.sync-data-banner--top {
      margin: 0;
      padding: 0.25rem 0.6rem;
      border-radius: 4px;
      font-size: 0.78rem;
      line-height: 1.2;
      white-space: nowrap;
      display: inline-flex;
      align-items: center;
      gap: 0.35rem;
    }
    #sync-data-banner.sync-data-banner--top .sync-data-banner__row { gap: 0.35rem; flex-wrap: nowrap; }
    #sync-data-banner.sync-data-banner--top .sync-data-banner__text { min-width: 0; }
    #sync-data-banner.sync-data-banner--top .sync-data-banner__btn { padding: 0.25rem 0.55rem; font-size: 0.78rem; }
    .sync-data-banner--loading { color: var(--muted); border-style: dashed; }
    .sync-data-banner--muted { color: var(--muted); }
    .sync-data-banner--warn { border-color: rgba(200, 160, 60, 0.55); background: rgba(80, 60, 20, 0.25); }
    .sync-data-banner--progress { border-color: rgba(80, 140, 200, 0.5); background: rgba(30, 50, 80, 0.35); }
    .sync-data-banner--ok { border-color: rgba(60, 140, 90, 0.45); background: rgba(20, 50, 35, 0.3); }
    .sync-data-banner--err { border-color: rgba(180, 70, 70, 0.55); color: var(--danger); }
    .sync-data-banner__row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; justify-content: space-between; }
    .sync-data-banner__text { flex: 1; min-width: 200px; }
    .sync-data-banner__btn { flex-shrink: 0; font-size: 0.78rem; padding: 0.25rem 0.55rem; }
    .dash-fetch-error { margin-top: 0.35rem; }
    .dash-fetch-error .sync-fetch-hint { font-size: 0.78rem; color: var(--muted); margin-top: 0.35rem; }

    /* Toggle switch */
    .toggle-wrap { display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.82rem; }
    .toggle-wrap input[type="checkbox"] { accent-color: var(--accent); width: 16px; height: 16px; }

    /* Ads funnel */
    .funnel-step { flex: 1; min-width: 140px; padding: 0.75rem 1rem; background: var(--panel); border: 1px solid var(--border); text-align: center; position: relative; }
    .funnel-step:first-child { border-radius: 8px 0 0 8px; }
    .funnel-step:last-child { border-radius: 0 8px 8px 0; }
    .funnel-step .funnel-val { font-size: 1.3rem; font-weight: 700; color: var(--accent); }
    .funnel-step .funnel-label { font-size: 0.75rem; color: var(--muted); margin-top: 0.15rem; }
    .funnel-arrow { display: flex; align-items: center; padding: 0 0.3rem; color: var(--muted); font-size: 0.75rem; flex-direction: column; }
    .funnel-arrow .funnel-conv { color: var(--success); font-weight: 700; font-size: 0.82rem; }

    /* Export buttons */
    button.export-btn { background: #2a3a4f; color: var(--text); border: 1px solid var(--border); padding: 0.35rem 0.65rem; font-size: 0.78rem; }
    button.export-btn:hover { background: #334d6b; color: var(--accent); border-color: var(--accent); }

    /* Photo gallery */
    .photo-cell { width: 56px; height: 56px; position: relative; display: inline-block; }
    .photo-cell img { width: 100%; height: 100%; object-fit: cover; border-radius: 4px; border: 1px solid var(--border); cursor: pointer; transition: transform 0.15s; }
    .photo-cell img:hover { transform: scale(3.5); z-index: 50; position: relative; box-shadow: 0 4px 20px rgba(0,0,0,0.7); }
    .photo-cell.photo-missing img { display: none; }
    .photo-cell.photo-missing::after { content: '—'; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: var(--muted); font-size: 0.7rem; background: var(--border); border-radius: 4px; }
    .photo-count-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; border-radius: 12px; font-size: 0.75rem; font-weight: 700; padding: 0 6px; }
    .photo-count-badge.high { background: #1b4332; color: var(--success); }
    .photo-count-badge.mid { background: #3d3200; color: var(--warn); }
    .photo-count-badge.low { background: #4a1010; color: var(--danger); }
    .video-play-link { display: inline-flex; align-items: center; gap: 4px; padding: 0.2rem 0.5rem; border-radius: 4px; background: #1b4332; color: var(--success); font-size: 0.72rem; font-weight: 600; text-decoration: none; }
    .video-play-link:hover { background: #245a42; }

    /* Reviews table category headers (colour-coded groups for review slots) */
    #reviews-table th { white-space: nowrap; }
    /* Отзывы: все строки одной высоты = --tbl-row-h (регулятор ▲▼); длинный текст обрезается; при расширении столбца или увеличении высоты строки видно больше */
    #page-reviews #reviews-table .tbl-wrap.tbl-resizable table.dashboard-tbl-zoom tbody td,
    #page-article #art-reviews-table .tbl-wrap.tbl-resizable table.dashboard-tbl-zoom tbody td {
      height: var(--tbl-row-h, 28px);
      min-height: var(--tbl-row-h, 28px);
      white-space: normal;
      word-break: break-word;
      vertical-align: top;
      line-height: 1.35;
      overflow: hidden;
      text-overflow: clip;
      box-sizing: border-box;
      max-width: none;
    }
    #page-reviews #reviews-table .tbl-wrap.tbl-resizable table.dashboard-tbl-zoom tbody td .rev-text-wrap,
    #page-article #art-reviews-table .tbl-wrap.tbl-resizable table.dashboard-tbl-zoom tbody td .rev-text-wrap {
      display: block;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
      max-height: calc(var(--tbl-row-h, 28px) - 4px);
      overflow: hidden;
      white-space: normal;
      word-break: break-word;
      line-height: 1.35;
    }
    #page-reviews #reviews-table .tbl-wrap.tbl-resizable tbody td .art-cell,
    #page-article #art-reviews-table .tbl-wrap.tbl-resizable tbody td .art-cell {
      max-width: 100%;
      min-width: 0;
      overflow: hidden;
      max-height: calc(var(--tbl-row-h, 28px) - 4px);
      align-items: flex-start;
    }
    #page-reviews #reviews-table .tbl-wrap.tbl-resizable tbody td .art-cell b,
    #page-article #art-reviews-table .tbl-wrap.tbl-resizable tbody td .art-cell b {
      overflow: hidden;
      text-overflow: ellipsis;
      white-space: nowrap;
      min-width: 0;
    }
    #page-reviews #reviews-table .rev-pin-cell { display: flex; flex-direction: column; gap: 4px; min-width: 0; max-height: calc(var(--tbl-row-h, 28px) * 2.5); overflow: hidden; }
    #page-reviews #reviews-table .rev-pin-imgs { display: flex; flex-wrap: wrap; gap: 4px; flex-shrink: 0; }
    #page-reviews #reviews-table .rev-pin-img { width: 40px; height: 40px; object-fit: cover; border-radius: 4px; }

    .compare-hint { font-size: 0.78rem; color: var(--muted); margin-left: 0.3rem; }
    tr.rnp-range-row td { font-size: 0.7rem; color: var(--muted); background: #1e2226; padding: 0.2rem 0.5rem; text-align: center; border-bottom: 1px solid var(--border); position: sticky; top: var(--tbl-rnp-cat-meta-h, 0px); z-index: 2; box-shadow: 0 1px 0 rgba(0,0,0,0.15); }
    tr.rnp-range-row td.rnp-range-tech { text-align: left; }
    tr.meta-header-row th.meta-header-main { border-right: 1px solid var(--border); }
    tr.meta-header-row th.meta-header-slot { color: var(--accent); }
    tr.meta-header-row th.meta-header-cell { padding: 0.3rem 0.5rem; font-size: 0.78rem; font-weight: 600; color: var(--muted); background: #1a1e22; border-right: 1px solid var(--border); text-align: center; white-space: nowrap; }
    tr.meta-header-row th.meta-header-cell:last-child { border-right: none; }
    .tbl-resizable thead th .th-sublabel { font-size: 0.7rem; font-weight: 500; color: var(--muted); display: block; margin-top: 0.1rem; }
    .tbl-resizable thead th:has(.th-sublabel) .th-inner { white-space: normal; max-width: none; }
    .col-drag-ghost { position: absolute; left: -9999px; top: 0; padding: 0.3rem 0.5rem; background: var(--panel); border: 1px solid var(--accent); border-radius: 4px; box-shadow: 0 4px 16px rgba(0,0,0,0.4); white-space: nowrap; font-size: 0.85rem; color: var(--text); z-index: 10000; pointer-events: none; opacity: 0.95; }

    /* Filter row under header — прилипает под шапкой, строки не наезжают */
    tr.header-filter-row td { padding: 0.2rem 0.35rem; vertical-align: middle; background: #222428; border-bottom: 1px solid var(--border); position: sticky; top: calc(var(--tbl-meta-h, 0px) + var(--tbl-header-h, 38px)); z-index: 4; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
    tr.header-filter-row td:first-child { position: sticky; left: 0; z-index: 3; background: #222428; }
    tr.header-filter-row td { min-width: 0; }
    tr.header-filter-row .filter-inner { position: relative; display: flex; align-items: center; width: 100%; }
    tr.header-filter-row .filter-quick { flex: 1; min-width: 40px; padding: 0.25rem 0.4rem; font-size: 0.76rem; box-sizing: border-box; }
    tr.header-filter-row .filter-btn { flex-shrink: 0; margin-left: 2px; padding: 0.2rem 0.4rem; font-size: 0.75rem; background: var(--panel); border: 1px solid var(--border); border-radius: 4px; color: var(--muted); cursor: pointer; }
    tr.header-filter-row td:has(.filter-quick) { min-width: 0; }
    tr.header-filter-row .filter-btn:hover { color: var(--accent); border-color: var(--accent); }
    tr.header-filter-row .filter-btn.active { border-color: var(--accent); color: var(--accent); }
    tbody td.cell-sel { outline: 2px solid var(--accent); outline-offset: -2px; background: rgba(77,171,247,0.12) !important; }
    tr:hover td.cell-sel { background: rgba(77,171,247,0.2) !important; }
    tr.header-filter-row td.filter-summary-cell {
      font-weight: 700;
      color: var(--text);
      border-top: 2px solid var(--accent);
      background: #2a2d32;
    }
    /* Filter popup */
    .table-filter-popup { display: none; position: fixed; z-index: 200; background: var(--panel); border: 1px solid var(--accent); border-radius: 8px; padding: 0.6rem 0.8rem; min-width: 220px; box-shadow: 0 6px 24px rgba(0,0,0,0.4); }
    .table-filter-popup.open { display: block; }
    .table-filter-popup .filter-popup-title { font-size: 0.78rem; color: var(--muted); margin-bottom: 0.4rem; }
    .table-filter-popup select, .table-filter-popup input[type="text"], .table-filter-popup input[type="number"] { width: 100%; margin-bottom: 0.35rem; font-size: 0.8rem; }
    .table-filter-popup .filter-and-or { margin: 0.35rem 0; font-size: 0.78rem; }
    .table-filter-popup .filter-and-or label { margin-right: 0.75rem; }
    .table-filter-popup .filter-actions { display: flex; gap: 0.4rem; margin-top: 0.5rem; }
    .table-filter-popup .filter-actions button { flex: 1; padding: 0.35rem; font-size: 0.78rem; }
    .table-filter-popup .filter-actions button.secondary { background: var(--panel); color: var(--text); border: 1px solid var(--border); }
    .zoom-controls { display: inline-flex; align-items: center; gap: 0.2rem; font-size: 0.8rem; }
    .zoom-btn { width: 24px; height: 24px; padding: 0; font-size: 1rem; line-height: 1; border-radius: 4px; background: var(--panel); border: 1px solid var(--border); color: var(--text); cursor: pointer; }
    .zoom-btn:hover { border-color: var(--accent); color: var(--accent); }
    .zoom-val { min-width: 2.5rem; text-align: center; color: var(--muted); font-size: 0.78rem; }
    .dropdown-wrap { position: relative; display: inline-block; }
    .dropdown-panel { display: none; position: absolute; top: 100%; left: 0; margin-top: 4px; min-width: 320px; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 0.75rem; box-shadow: 0 8px 24px rgba(0,0,0,0.4); z-index: 100; }
    .dropdown-wrap.open .dropdown-panel { display: block; }
    .dropdown-section { margin-bottom: 0.5rem; }
    .dropdown-section label { display: block; font-size: 0.75rem; color: var(--muted); margin-bottom: 0.2rem; }
    .dropdown-section input[type="url"], .dropdown-section input[type="text"], .dropdown-section select { width: 100%; padding: 0.3rem 0.4rem; font-size: 0.8rem; background: var(--bg); border: 1px solid var(--border); border-radius: 4px; color: var(--text); }
    .dropdown-schedules { margin-top: 0.75rem; padding-top: 0.5rem; border-top: 1px solid var(--border); }
    .dropdown-schedule-item { display: flex; align-items: center; justify-content: space-between; padding: 0.35rem 0; font-size: 0.78rem; }
    .dropdown-schedule-item .schedule-del { color: var(--danger); cursor: pointer; }
    .dropdown-schedule-item .schedule-run { color: var(--accent); cursor: pointer; margin-left: 0.5rem; }

    /* Юнит-экономика: КТР/ИЛ, раскрытие, сценарии */
    .unit-kt-il-block { margin-bottom: 0.75rem; padding: 0.75rem 1rem; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; font-size: 0.82rem; line-height: 1.45; color: var(--text); max-width: 120ch; }
    .unit-kt-il-block h2 { font-size: 0.95rem; margin: 0 0 0.5rem 0; color: var(--accent); }
    .unit-kt-il-block p { margin: 0.45rem 0; }
    .unit-kt-il-note { color: var(--warn); font-size: 0.8rem; }
    #unit-table tbody tr[data-unit-nm] { cursor: pointer; }
    #unit-table tbody tr[data-unit-nm]:hover { background: rgba(77,171,247,0.06); }
    #unit-table tbody tr[data-unit-nm].unit-row-expanded { background: rgba(77,171,247,0.1); }
    .unit-detail-panel { margin-top: 0.75rem; padding: 0.75rem 1rem; background: var(--panel); border: 1px solid var(--border); border-radius: 8px; font-size: 0.82rem; line-height: 1.45; color: var(--text); max-width: 100%; overflow-x: auto; }
    .unit-detail-panel[hidden] { display: none !important; }
    .unit-detail-placeholder { margin: 0; color: var(--muted); font-size: 0.85rem; }
    .unit-expand-inner { padding: 0.6rem 0.75rem 0.85rem; max-width: 100%; overflow-x: auto; }
    .unit-expand-hint { font-size: 0.78rem; color: var(--muted); margin-bottom: 0.5rem; }
    .unit-scenario-tbl { border-collapse: collapse; font-size: 0.76rem; width: 100%; min-width: 900px; }
    .unit-scenario-tbl th, .unit-scenario-tbl td { border: 1px solid var(--border); padding: 0.22rem 0.3rem; text-align: left; vertical-align: middle; }
    .unit-scenario-tbl th { background: #252a31; color: var(--muted); font-weight: 600; white-space: nowrap; }
    .unit-scenario-tbl tr.unit-row-fact td { background: rgba(80, 120, 140, 0.12); color: var(--muted); }
    .unit-scenario-tbl .unit-cell-editable { background: rgba(255, 240, 120, 0.1) !important; border: 1px solid rgba(255, 200, 80, 0.35) !important; color: var(--text); border-radius: 4px; padding: 0.15rem 0.3rem; min-width: 2.8rem; max-width: 5rem; font-size: 0.76rem; }
    .unit-scenario-tbl .unit-cell-calc { background: rgba(80, 200, 120, 0.08); color: var(--text); }
    .unit-scenario-tbl .unit-cell-fixed { background: rgba(200, 120, 40, 0.12); color: var(--muted); font-size: 0.72rem; }
    .unit-expand-subtitle { font-size: 0.85rem; font-weight: 600; color: var(--accent); margin: 0.5rem 0 0.35rem; }
    /* Факт: как общая таблица дашборда + «+» слева вне скролла */
    .unit-fact-dash { margin-bottom: 0.5rem; }
    .unit-fact-toolbar { display: flex; flex-direction: row; align-items: stretch; gap: 0.4rem; width: 100%; min-width: 0; }
    .unit-add-scenario-plus {
      flex: 0 0 2rem; width: 2rem; min-width: 2rem; align-self: center; height: 2rem; padding: 0; margin: 0;
      border: 1px solid var(--accent); border-radius: 6px; background: rgba(77,171,247,0.1); color: var(--accent);
      font-size: 1.2rem; font-weight: 600; line-height: 1; cursor: pointer;
    }
    .unit-add-scenario-plus:hover { background: rgba(77,171,247,0.2); color: var(--text); }
    .unit-fact-toolbar .unit-fact-as-row-wrap {
      flex: 1 1 auto; min-width: 0; max-height: none;
    }
    .unit-fact-row-tbl tbody tr.unit-fact-row-data td { background: rgba(80, 120, 140, 0.1); }
    .unit-scenario-wrap { width: 100%; max-height: 55vh; margin-top: 0.25rem; }

    /* ===== AeroMetric redesign (phase 1): Ads + Article only ===== */
    #page-ads,
    #page-article {
      --bg: #0b1220;
      --panel: #111827;
      --border: rgba(255, 255, 255, 0.06);
      --text: #e2e8f0;
      --accent: #3b82f6;
      --success: #22c55e;
      --danger: #ef4444;
      --warn: #f59e0b;
      --muted: #94a3b8;
      color: var(--text);
      font-family: Inter, "Segoe UI", system-ui, sans-serif;
      font-variant-numeric: tabular-nums;
    }
    #page-ads .page-header-sticky,
    #page-article .page-header-sticky,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .page-header-sticky {
      border-bottom: 1px solid var(--border);
      padding-bottom: 0.55rem;
      margin-bottom: 0.2rem;
    }
    #page-ads h1,
    #page-article h1,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) h1 {
      font-size: 1.25rem;
      font-weight: 650;
      line-height: 1.15;
      letter-spacing: -0.02em;
      color: #f8fafc;
      margin-bottom: 0.45rem;
    }
    #page-ads .toolbar,
    #page-article .toolbar,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .toolbar {
      background: #111827;
      border: 1px solid var(--border);
      border-radius: 10px;
      padding: 0.42rem 0.55rem;
      gap: 0.4rem;
      margin-bottom: 0.42rem;
    }
    #page-ads .toolbar label,
    #page-article .toolbar label,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .toolbar label,
    #page-ads .toolbar-ranges-label,
    #page-article .toolbar-ranges-label,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .toolbar-ranges-label {
      color: var(--muted);
      font-size: 0.75rem;
      font-weight: 600;
    }
    #page-ads .toolbar.toolbar-dashboard input,
    #page-article .toolbar.toolbar-dashboard input,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .toolbar.toolbar-dashboard input,
    #page-ads .toolbar.toolbar-dashboard select,
    #page-article .toolbar.toolbar-dashboard select,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .toolbar.toolbar-dashboard select {
      background: #161f2e;
      border: 1px solid var(--border);
      border-radius: 10px;
      color: var(--text);
      font-size: 0.76rem;
    }
    #page-ads .toolbar-ranges-wrap,
    #page-article .toolbar-ranges-wrap,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .toolbar-ranges-wrap,
    #page-ads .date-pair,
    #page-article .date-pair,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .date-pair {
      background: #161f2e;
      border: 1px solid var(--border);
      border-radius: 10px;
    }
    #page-ads .date-pair input[type="date"],
    #page-article .date-pair input[type="date"],
    #page-article .date-pair input[type="month"],
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .date-pair input[type="date"],
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) .date-pair input[type="month"] {
      background: #111827;
      border-color: rgba(255, 255, 255, 0.08);
      color: var(--text);
    }
    #page-ads button,
    #page-article button,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) button {
      border-radius: 10px;
      font-weight: 600;
    }
    #page-ads button.secondary,
    #page-article button.secondary,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) button.secondary {
      background: #161f2e;
      border: 1px solid var(--border);
      color: var(--text);
    }
    #page-ads button.cols-btn,
    #page-article button.cols-btn,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) button.cols-btn {
      background: rgba(59, 130, 246, 0.14);
      border: 1px solid rgba(59, 130, 246, 0.45);
      color: #93c5fd;
    }
    #page-ads button.export-btn,
    #page-article button.export-btn,
    :is(#page-imt, #page-subject, #page-brand, #page-cabinet) button.export-btn {
      background: #161f2e;
      border: 1px solid var(--border);
      color: var(--text);
    }
    #page-ads .zoom-btn,
    #page-article .zoom-btn {
      border-radius: 8px;
      background: #161f2e;
      border-color: var(--border);
      color: var(--text);
    }
    #page-ads .zoom-val,
    #page-article .zoom-val,
    #page-ads .status,
    #page-article .status {
      color: var(--muted);
    }
    #page-ads .status.err,
    #page-article .status.err {
      color: var(--danger);
    }
    #page-ads .dash-box,
    #page-article .dash-box,
    #page-ads .art-chart-panel,
    #page-article .art-chart-panel {
      background: #111827;
      border: 1px solid var(--border);
      border-radius: 14px;
      box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25);
    }
    #page-article .art-tabs {
      background: linear-gradient(180deg, #0b1220 0%, #0a101d 100%);
      border-bottom: 1px solid var(--border);
      gap: 0.42rem;
      padding-bottom: 0.6rem;
    }
    #page-article .art-tab-btn {
      border-radius: 10px;
      border-color: var(--border);
      background: #111827;
      color: var(--text);
      font-size: 0.8rem;
      padding: 0.4rem 0.8rem;
    }
    #page-article .art-tab-btn.active {
      background: #3b82f6;
      border-color: rgba(59, 130, 246, 0.75);
      color: #fff;
    }
    #page-article .art-section-title {
      color: #f8fafc;
      border-bottom: 1px solid var(--border);
      font-size: 0.9rem;
    }
    #page-article .art-kpi-card,
    #page-article #art-section-health .art-health-hero,
    #page-article #art-section-health .art-health-hit-card,
    #page-article #art-section-health .art-health-panel {
      background: #111827;
      border: 1px solid var(--border);
      border-radius: 14px;
    }
    #page-article .art-kpi-value {
      color: #f8fafc;
      font-size: 1.55rem;
      font-weight: 600;
      letter-spacing: -0.02em;
    }
    #page-article .art-kpi-label {
      text-transform: uppercase;
      letter-spacing: 0.04em;
      font-weight: 700;
      font-size: 0.69rem;
    }
    #page-article .art-chart-panel .art-chart-title,
    #page-ads .ads-chart-title {
      color: #f8fafc;
      font-size: 0.84rem;
      font-weight: 600;
    }
    #page-ads .ads-chart-head,
    #page-article .art-chart-head {
      border-bottom: 1px solid var(--border);
      margin-bottom: 0.5rem;
      padding-bottom: 0.35rem;
    }
    #page-ads .ads-main-table-scroll,
    .dash-table-scroll,
    .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-article .tbl-wrap {
      background: #111827;
    }
    .dash-table-scroll,
    .dash-box.dash-box-tbl:has(.tbl-wrap),
    #page-ads .ads-main-table-scroll,
    #page-ads .tbl-wrap,
    #page-article .tbl-wrap,
    .table-core4 .table-core-scroll {
      scrollbar-color: #64748b #1a1f2e;
      scrollbar-width: auto;
    }
    .dash-table-scroll::-webkit-scrollbar,
    .dash-box.dash-box-tbl:has(.tbl-wrap)::-webkit-scrollbar,
    #page-ads .ads-main-table-scroll::-webkit-scrollbar,
    #page-ads .tbl-wrap::-webkit-scrollbar,
    #page-article .tbl-wrap::-webkit-scrollbar,
    .table-core4 .table-core-scroll::-webkit-scrollbar {
      width: 14px;
      height: 14px;
    }
    .dash-table-scroll::-webkit-scrollbar-track,
    .dash-box.dash-box-tbl:has(.tbl-wrap)::-webkit-scrollbar-track,
    #page-ads .ads-main-table-scroll::-webkit-scrollbar-track,
    #page-ads .tbl-wrap::-webkit-scrollbar-track,
    #page-article .tbl-wrap::-webkit-scrollbar-track,
    .table-core4 .table-core-scroll::-webkit-scrollbar-track {
      background: #1a1f2e;
    }
    .dash-table-scroll::-webkit-scrollbar-thumb,
    .dash-box.dash-box-tbl:has(.tbl-wrap)::-webkit-scrollbar-thumb,
    #page-ads .ads-main-table-scroll::-webkit-scrollbar-thumb,
    #page-ads .tbl-wrap::-webkit-scrollbar-thumb,
    #page-article .tbl-wrap::-webkit-scrollbar-thumb,
    .table-core4 .table-core-scroll::-webkit-scrollbar-thumb {
      background: #64748b;
      border: 3px solid #1a1f2e;
      border-radius: 7px;
    }
    .dash-table-scroll::-webkit-scrollbar-thumb:hover,
    .dash-box.dash-box-tbl:has(.tbl-wrap)::-webkit-scrollbar-thumb:hover,
    #page-ads .ads-main-table-scroll::-webkit-scrollbar-thumb:hover,
    #page-ads .tbl-wrap::-webkit-scrollbar-thumb:hover,
    #page-article .tbl-wrap::-webkit-scrollbar-thumb:hover,
    .table-core4 .table-core-scroll::-webkit-scrollbar-thumb:hover {
      background: #94a3b8;
    }
    .dash-table-scroll::-webkit-scrollbar-corner,
    .dash-box.dash-box-tbl:has(.tbl-wrap)::-webkit-scrollbar-corner,
    #page-ads .ads-main-table-scroll::-webkit-scrollbar-corner,
    #page-ads .tbl-wrap::-webkit-scrollbar-corner,
    #page-article .tbl-wrap::-webkit-scrollbar-corner,
    .table-core4 .table-core-scroll::-webkit-scrollbar-corner {
      background: #1a1f2e;
    }
    #page-ads table.dashboard-tbl-zoom thead tr.header-row th,
    #page-article table.dashboard-tbl-zoom thead tr.header-row th {
      background: #161f2e;
      color: #cbd5e1;
      border-bottom: 1px solid var(--border);
      font-size: 0.72rem;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      font-weight: 700;
      box-shadow: none;
      padding-top: 0.44rem;
      padding-bottom: 0.44rem;
    }
    #page-ads table.dashboard-tbl-zoom thead tr.header-row th:first-child,
    #page-article table.dashboard-tbl-zoom thead tr.header-row th:first-child {
      background: #161f2e;
    }
    #page-ads table.dashboard-tbl-zoom thead tr.meta-header-row th.meta-header-cell,
    #page-article table.dashboard-tbl-zoom thead tr.meta-header-row th.meta-header-cell {
      background: #1a2436;
      color: #94a3b8;
      border-right: 1px solid var(--border);
    }
    #page-ads table.dashboard-tbl-zoom thead tr.header-filter-row td,
    #page-article table.dashboard-tbl-zoom thead tr.header-filter-row td {
      background: #161f2e;
      border-bottom: 1px solid var(--border);
      box-shadow: none;
    }
    #page-ads table.dashboard-tbl-zoom tbody td,
    #page-article table.dashboard-tbl-zoom tbody td {
      color: var(--text);
      border-right: 1px solid var(--border);
      border-bottom: 1px solid rgba(255, 255, 255, 0.045);
      font-size: 0.75rem;
    }
    #page-ads table.dashboard-tbl-zoom tbody tr:hover td,
    #page-article table.dashboard-tbl-zoom tbody tr:hover td {
      background: rgba(32, 43, 64, 0.58);
    }
    #page-ads .positive,
    #page-article .positive {
      color: var(--success);
      font-weight: 650;
    }
    #page-ads .negative,
    #page-article .negative {
      color: var(--danger);
      font-weight: 650;
    }
    #page-ads .warn,
    #page-article .warn {
      color: var(--warn);
      font-weight: 650;
    }

    /* ===== AeroMetric redesign (phase 2): global shell ===== */
    #main-app .analytics-switcher {
      background: var(--panel-2);
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      padding: 0.2rem;
      gap: 0.12rem !important;
    }
    #main-app .analytics-tab {
      display: inline-flex;
      align-items: center;
      border-radius: 8px !important;
      padding: 0.22rem 0.5rem !important;
      color: var(--muted) !important;
      font-size: 0.74rem !important;
      font-weight: 600 !important;
      transition: background 0.12s ease, color 0.12s ease;
    }
    #main-app .analytics-tab.active {
      background: rgba(59, 130, 246, 0.16);
      color: #93c5fd !important;
    }
    #main-app #header-extension-link {
      color: var(--muted) !important;
      font-size: 0.78rem !important;
      border: 1px solid var(--border);
      background: var(--panel-2);
      border-radius: 8px;
      padding: 0.22rem 0.46rem;
      margin-left: 0.35rem !important;
    }
    #main-app #header-extension-link:hover { color: #93c5fd !important; border-color: rgba(59,130,246,0.45); }
    #main-app #btn-privacy-incognito,
    #main-app #btn-agent,
    #main-app #btn-extension-download,
    #main-app #btn-logout {
      padding: 0.32rem 0.55rem !important;
      font-size: 0.74rem !important;
      border-radius: 8px !important;
      background: var(--panel-2) !important;
      color: var(--text) !important;
      border: 1px solid var(--border) !important;
      text-decoration: none !important;
      display: inline-flex;
      align-items: center;
      gap: 0.2rem;
    }
    #main-app #btn-agent {
      border-color: rgba(139, 92, 246, 0.45) !important;
      color: #c4b5fd !important;
      background: rgba(139, 92, 246, 0.12) !important;
    }
    #main-app .dash-box.dash-box-tbl {
      border-radius: var(--radius-md);
      box-shadow: var(--shadow-card);
    }
    #main-app table.dashboard-tbl-zoom thead tr.header-row th {
      background: #161f2e;
      color: #cbd5e1;
      text-transform: uppercase;
      letter-spacing: 0.04em;
      font-size: 0.72rem;
      font-weight: 700;
      padding-top: 0.44rem;
      padding-bottom: 0.44rem;
    }
    #main-app table.dashboard-tbl-zoom tbody tr:hover td {
      background: rgba(32, 43, 64, 0.58);
    }
    .public-nav.public-nav-main a {
      border: 1px solid transparent;
      border-radius: 8px;
      padding: 0.24rem 0.52rem;
      color: var(--muted);
      font-size: 0.75rem;
    }
    .public-nav.public-nav-main a.active {
      background: rgba(59,130,246,0.13);
      border-color: rgba(59,130,246,0.45);
      color: #93c5fd;
    }
    .mp-tech-nav {
      border-bottom: 1px solid var(--border);
      padding: 0.18rem var(--app-gutter-x) 0.22rem;
      background: linear-gradient(180deg, #0b1220 0%, #0a101d 100%);
      gap: 0.2rem;
    }
    .mp-tech-nav a {
      border: 1px solid transparent;
      border-radius: 8px;
      padding: 0.2rem 0.48rem;
      font-size: 0.74rem;
      color: var(--muted);
    }
    .mp-tech-nav a.active,
    .mp-tech-nav a:hover {
      background: rgba(59,130,246,0.12);
      border-color: rgba(59,130,246,0.4);
      color: #93c5fd;
    }
