/* ОБОЛОЧКА ЕДИНОЙ ПЛАТФОРМЫ, часть 2 (вид) — слои одним куском.
   Собрано tools/sborka-obolochka.mjs 2026-10-24T15:14: принятое встроено в оболочку,
   отдельных догружаемых кусков нет. Порядок слоёв сохранён дословно.
   Править нужно исходный файл слоя и пересобирать, а не этот файл. */

/* ══ v7-extra.css ══ */
/* Оформление добавленных пунктов: наследует размеры меню седьмой версии, ничего не переопределяет
   у существующих элементов. */
/* метка новой сборки — обычный пункт меню: та же геометрия и тот же цвет, подпись мельче */
/* главная новой сборки — обычный пункт меню; подпись мельче, чтобы отделять новый блок */
.v7-extra-mark {
  margin-top: 0.625rem;
  font-size: 0.6875rem; letter-spacing: .04em; text-transform: uppercase;
  color: var(--v5-secondary, #6e6b64);
}
.v5-sidebar.is-collapsed .v7-extra-mark span { display: none; }
.v5-sidebar.is-collapsed .v7-extra-mark { justify-content: center; padding: 0.25rem 0; }
.v7-extra-children { display: flex; flex-direction: column; }
.v7-extra-empty {
  display: grid; gap: 0.375rem; place-content: center; min-height: 60vh; text-align: center;
  color: var(--v5-secondary, #6e6b64);
}
.v7-extra-empty b { font-size: 0.875rem; font-weight: 600; color: var(--v5-text, #244154); }
.v7-extra-empty span { font-size: 0.78125rem; }

/* Отступы и оси — те же, что у родных пунктов седьмой версии:
   раздел 40 высотой, зазор до подписи 12; подраздел 32, зазор 8, левый край на общей оси. */
.v7-extra-item { display: flex; align-items: center; gap: 0.75rem; min-height: 2.5rem; padding: 0.25rem; }
.v5-sidebar.is-collapsed .v7-extra-item { padding: 0.25rem 0; justify-content: center; }
.v5-sidebar.is-collapsed .v7-extra-item > span:not(.v5-nav-icon) { display: none; }
.v5-sidebar.is-collapsed .v7-extra-mark > span:not(.v5-nav-icon) { display: none; }
.v5-sidebar.is-collapsed .v7-extra-mark .v5-nav-icon { display: inline-grid; }
.v7-extra-children button { display: flex; align-items: center; gap: 0.5rem; min-height: 2rem; padding: 0.25rem; font-size: 0.78125rem; font-weight: 400; }
.v5-sidebar.is-collapsed .v7-extra-children { align-items: center; }
.v5-sidebar.is-collapsed .v7-extra-children button > span { display: none; }
/* «Центр истории» — цвет как у пунктов меню, ссылочный синий не используем */
.v7-extra-history, .v7-extra-history:visited, .v7-extra-history:hover { text-decoration: none; color: inherit; }
.v7-extra-history svg { color: inherit; }

/* скрытый блок подразделов обязан быть скрыт: правило display выше перекрывало атрибут hidden */
.v7-extra-children[hidden] { display: none; }

.v7-extra-home { display: grid; gap: 0.375rem; place-content: center; min-height: 60vh; text-align: center; color: var(--v5-secondary, #6e6b64); }
.v7-extra-home b { font-size: 0.875rem; font-weight: 600; color: var(--v5-text, #244154); }
.v7-extra-home span { font-size: 0.78125rem; }


/* ══ v7-filter.css ══ */
/* ═══════════════════════════════════════════════════════════════════════════════════════════════
   TOTAL FILTER — раскладка. Оформление берётся из версии 7 (её классы кнопок, шрифты, радиусы),
   здесь задаётся только расстановка блоков и поведение при четырёх положениях.

   Горизонтальные положения (сверху, снизу): блоки идут группами в ряд.
   Боковые (слева, справа): блоки один под другим в порядке сужения; ширина не больше раскрытого
   левого меню; длинные названия переносятся на две строки, а не обрезаются.
   ═══════════════════════════════════════════════════════════════════════════════════════════════ */

.v7-tf-wrap { display: grid; gap: var(--v5-gap, 0.625rem); align-items: start; }
.v7-tf-wrap.dock-top { grid-template-rows: auto 1fr; }
.v7-tf-wrap.dock-bottom { grid-template-rows: 1fr auto; }
.v7-tf-wrap.dock-bottom .v7-tf { order: 2; }

/* ширина бокового фильтра = ширина раскрытого левого меню, шире он не растягивается */
.v7-tf-wrap.dock-left,
.v7-tf-wrap.dock-right { grid-template-columns: var(--v5-sidebar-expanded, 15rem) 1fr; }
.v7-tf-wrap.dock-right { grid-template-columns: 1fr var(--v5-sidebar-expanded, 15rem); }
.v7-tf-wrap.dock-right .v7-tf { order: 2; }

.v7-tf { display: grid; gap: var(--v5-gap, 0.625rem); padding: var(--em-space-2, 0.5rem) var(--em-space-3, 0.75rem); }
.v7-tf-bar { display: flex; align-items: center; gap: var(--em-space-2, 0.5rem); min-block-size: 2.5rem; }
.v7-tf-crumb { display: inline-flex; align-items: center; gap: 0.375rem; }
.v7-tf-tools { margin-inline-start: auto; display: flex; align-items: center; gap: 0.25rem; flex-wrap: wrap; }
.v7-tf-sep { inline-size: 1px; block-size: 1.25rem; background: var(--v5-border-light, #e4e0d4); margin-inline: 0.25rem; }

/* ── БЛОКИ ─────────────────────────────────────────────────────────────────────────────────── */
.v7-tf-blocks { display: flex; flex-wrap: wrap; gap: var(--v5-gap, 0.625rem); align-items: flex-start; }
.v7-tf-wrap.dock-left .v7-tf-blocks,
.v7-tf-wrap.dock-right .v7-tf-blocks { flex-direction: column; flex-wrap: nowrap; }

.v7-tf-block {
  flex: 0 1 auto; min-inline-size: 0;
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem);
  background: var(--v5-card, #fff);
}
.v7-tf-wrap.dock-left .v7-tf-block,
.v7-tf-wrap.dock-right .v7-tf-block { inline-size: 100%; }

.v7-tf-head {
  display: flex; align-items: center; gap: 0.375rem; inline-size: 100%;
  min-block-size: 2rem; padding: 0 0.625rem; border: 0; background: none; cursor: pointer;
  font-size: 0.78125rem; font-weight: 600; color: var(--v5-text, #244154); text-align: start;
}
.v7-tf-head:hover { background: color-mix(in srgb, var(--v5-text, #244154) 4%, transparent); border-radius: var(--em-radius-sm, 0.5rem); }
.v7-tf-title { white-space: nowrap; }
.v7-tf-count {
  margin-inline-start: auto; font-style: normal; font-size: 0.6875rem; font-weight: 600;
  min-inline-size: 1.125rem; block-size: 1.125rem; display: grid; place-items: center;
  border-radius: 0.5625rem; background: color-mix(in srgb, var(--v5-text, #244154) 10%, transparent);
}

.v7-tf-body { display: flex; flex-wrap: wrap; gap: 0.375rem; padding: 0 0.625rem 0.625rem; }
.v7-tf-wrap.dock-left .v7-tf-body,
.v7-tf-wrap.dock-right .v7-tf-body { flex-direction: column; flex-wrap: nowrap; }

/* ── ПУНКТ ВЫБОРА ──────────────────────────────────────────────────────────────────────────────
   Длинное название переносится на две строки: обрезка и многоточие не применяются. */
.v7-tf-item {
  display: inline-flex; align-items: center; text-align: start;
  min-block-size: 2rem; padding: 0.3125rem 0.625rem;
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem);
  background: var(--v5-card, #fff); color: var(--v5-text, #244154);
  font-size: 0.78125rem; font-weight: 400; cursor: pointer;
  white-space: normal; overflow-wrap: anywhere; line-height: 1.35;
}
.v7-tf-item:hover { border-color: var(--v5-border, #d8d3c6); }
.v7-tf-item.is-active {
  font-weight: 600;
  border-color: color-mix(in srgb, var(--v5-text, #244154) 35%, transparent);
  background: color-mix(in srgb, var(--v5-text, #244154) 6%, var(--v5-card, #fff));
}
.v7-tf-wrap.dock-left .v7-tf-item,
.v7-tf-wrap.dock-right .v7-tf-item { inline-size: 100%; }

.v7-tf-empty { margin: 0; padding: 2px 0 0.375rem; font-size: 0.71875rem; color: var(--v5-muted, #a3a099); }

/* значки управления — размеры версии 7; при мелком размере линия чуть плотнее (правило Apple) */
.v7-tf .v5-icon-button svg { inline-size: 0.875rem; block-size: 0.875rem; }

.v7-tf-area {
  display: grid; gap: 0.375rem; place-content: center; min-block-size: 40vh; text-align: center;
  color: var(--v5-secondary, #6e6b64);
}
.v7-tf-area b { font-size: 0.875rem; font-weight: 600; color: var(--v5-text, #244154); }
.v7-tf-area span { font-size: 0.78125rem; }

/* боковое положение: заголовок и контролы не втискиваются в одну строку */
.v7-tf-wrap.dock-left .v7-tf-bar,
.v7-tf-wrap.dock-right .v7-tf-bar { flex-direction: column; align-items: stretch; gap: 0.375rem; }
.v7-tf-wrap.dock-left .v7-tf-tools,
.v7-tf-wrap.dock-right .v7-tf-tools { margin-inline-start: 0; }
.v7-tf-wrap.dock-left .v7-tf-crumb,
.v7-tf-wrap.dock-right .v7-tf-crumb { justify-content: flex-start; }

/* заголовок фильтра не переносится по словам */
.v7-tf-crumb { white-space: nowrap; }

/* ── ПРАВИЛО APPLE ДЛЯ МЕЛКИХ РАЗМЕРОВ ────────────────────────────────────────────────────────
   На малых кеглях тонкий штрих и лёгкое начертание теряются: подписи 11–12,5 идут не легче 400,
   а контуры значков 14 px получают чуть большую толщину линии (это же правило задано в скрипте). */
.v7-tf-empty, .v7-tf-count { font-weight: 500; }
.v7-tf .v5-icon-button svg { stroke-width: 1.75; }

/* ── ПО БИБЛИОТЕКЕ СТИЛЕЙ §2.3 ────────────────────────────────────────────────────────────── */
/* крошка титлбара: значок 14, подпись рядом — как в фильтре пятой версии */
.v7-tf-crumb svg { inline-size: 0.875rem; block-size: 0.875rem; flex: 0 0 auto; stroke-width: 1.75; }

/* ряд разделов — карусель кнопок-значков 32×32, радиус 12, иконка 16 */
.v7-tf-sections { display: flex; align-items: center; gap: 0.375rem; min-inline-size: 0; }
.v7-tf-track { display: flex; gap: 0.375rem; overflow: hidden; scroll-behavior: smooth; }
.v7-tf-sec {
  flex: 0 0 auto; inline-size: 2rem; block-size: 2rem; padding: 0;
  display: grid; place-items: center;
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-lg, 0.75rem);
  background: var(--v5-card, #fff); color: var(--v5-text, #244154); cursor: pointer;
}
.v7-tf-sec svg { inline-size: 1rem; block-size: 1rem; stroke-width: 1.6; }
.v7-tf-sec.is-active {
  border-color: color-mix(in srgb, var(--icon-accent, var(--v5-text, #244154)) 55%, transparent);
  background: color-mix(in srgb, var(--icon-accent, var(--v5-text, #244154)) 12%, var(--v5-card, #fff));
}
.v7-tf-arrow { flex: 0 0 auto; }

/* подразделы и отрасли — пилюли: радиус 100, 12,5/600 при выборе */
.v7-tf-item { border-radius: 6.25rem; padding: 0.3125rem 0.75rem; }

/* боковая колонка: до 280, значки в два ряда, поля столбиком (решение из истории) */
.v7-tf-wrap.dock-left, .v7-tf-wrap.dock-right { --v7-tf-side: min(17.5rem, var(--v5-sidebar-expanded, 17.5rem)); }
.v7-tf-wrap.dock-left { grid-template-columns: var(--v7-tf-side) 1fr; }
.v7-tf-wrap.dock-right { grid-template-columns: 1fr var(--v7-tf-side); }
.v7-tf-wrap.dock-left .v7-tf-track, .v7-tf-wrap.dock-right .v7-tf-track { flex-wrap: wrap; overflow: visible; }

/* если значка отрасли в сборке нет — показываем её букву тем же кеглем */
.v7-tf-code { font-size: 0.78125rem; font-weight: 600; }

/* ── РЯДЫ ПО УРОВНЯМ (устройство пятой версии) ────────────────────────────────────────────────
   Блоки идут не карточками с заголовками, а рядами: первый ряд — уровень 1, второй — уровень 2
   и так далее; рамок и подписей у рядов нет, разделяет их только зазор. */
/* CHG-0974 (решение автора 26.08): в горизонтальном положении уровни рассредоточены
   ПО ГОРИЗОНТАЛИ, не столбиком; широкие блоки (параметры/характеристики/владелец/
   классификация) занимают свою строку целиком */
.v7-tf-wrap.dock-top .v7-tf-blocks,
.v7-tf-wrap.dock-bottom .v7-tf-blocks { flex-direction: row; flex-wrap: wrap; gap: 0.5rem 1rem; align-items: flex-start; }
.v7-tf-wrap.dock-top .v7-tf-block,
.v7-tf-wrap.dock-bottom .v7-tf-block { inline-size: auto; flex: 0 1 auto; min-inline-size: 0; border: 0; background: none; }
.v7-tf-wrap.dock-top .v7-tf-block[data-block="BASE"],
.v7-tf-wrap.dock-top .v7-tf-block[data-block="TRAITS"],
.v7-tf-wrap.dock-top .v7-tf-block[data-block="OWNER"],
.v7-tf-wrap.dock-top .v7-tf-block[data-block="CLASSIFIER"],
.v7-tf-wrap.dock-bottom .v7-tf-block[data-block="BASE"],
.v7-tf-wrap.dock-bottom .v7-tf-block[data-block="TRAITS"],
.v7-tf-wrap.dock-bottom .v7-tf-block[data-block="OWNER"],
.v7-tf-wrap.dock-bottom .v7-tf-block[data-block="CLASSIFIER"] { flex: 1 1 100%; }
.v7-tf-wrap.dock-top .v7-tf-head,
.v7-tf-wrap.dock-bottom .v7-tf-head { display: none; }
.v7-tf-wrap.dock-top .v7-tf-body,
.v7-tf-wrap.dock-bottom .v7-tf-body { padding: 0; }

/* поля нижних блоков — отдельной строкой в несколько колонок, как в пятой */
.v7-tf-wrap.dock-top .v7-tf-block[data-block="BASE"] .v7-tf-body,
.v7-tf-wrap.dock-top .v7-tf-block[data-block="ATTRIBUTES"] .v7-tf-body {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(13.75rem, 1fr)); gap: 0.625rem;
}

/* пустой ряд подписан: заголовок остаётся, чтобы строка не читалась как безымянная */
.v7-tf-wrap.dock-top .v7-tf-block:has(.v7-tf-empty) .v7-tf-head,
.v7-tf-wrap.dock-bottom .v7-tf-block:has(.v7-tf-empty) .v7-tf-head {
  display: flex; min-block-size: 1.375rem; padding: 0; pointer-events: none;
  font-size: 0.71875rem; font-weight: 600; color: var(--v5-secondary, #6e6b64);
}

/* ── ПОИСК В ПЕРВОМ РЯДУ (устройство пятой версии) ────────────────────────────────────────────
   Стоит справа от карусели и забирает остаток строки; рамка, радиус и кегль — версии 7. */
.v7-tf-search {
  flex: 1 1 20rem; min-inline-size: 12.5rem;
  display: flex; align-items: center; gap: var(--em-space-2, 0.5rem);
  min-block-size: 2rem; padding: 0 0.625rem;
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem);
  background: var(--v5-card, #fff);
}
.v7-tf-search:focus-within { border-color: var(--v5-border, #d8d3c6); }
.v7-tf-search svg { inline-size: 1rem; block-size: 1rem; stroke-width: 1.6; color: var(--v5-secondary, #6e6b64); flex: 0 0 auto; }
.v7-tf-search input {
  inline-size: 100%; min-inline-size: 0; border: 0; outline: 0; background: transparent;
  color: var(--v5-text, #244154); font-size: 0.78125rem; font-weight: 400;
}
.v7-tf-search input::placeholder { color: var(--v5-muted, #a3a099); }
/* в боковом положении поиск встаёт отдельной строкой под каруселью */
.v7-tf-wrap.dock-left .v7-tf-search, .v7-tf-wrap.dock-right .v7-tf-search { flex-basis: 100%; }

/* ── СТРОКА ПОЛЕЙ БАЗОВОГО ВИДА ───────────────────────────────────────────────────────────────
   Четыре колонки: подпись со значком сверху, поле снизу — набор пятой версии. */
.v7-tf-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--em-space-2, 0.5rem); }
.v7-tf-fields label { display: grid; gap: 0.25rem; min-inline-size: 0; font-size: 0.75rem; font-weight: 600; color: var(--v5-secondary, #6e6b64); }
.v7-tf-fields label span { display: flex; align-items: center; gap: var(--em-space-2, 0.5rem); min-inline-size: 0; white-space: nowrap; }
.v7-tf-fields label span svg { inline-size: 0.875rem; block-size: 0.875rem; stroke-width: 1.75; flex: 0 0 auto; }
.v7-tf-fields input, .v7-tf-fields select {
  inline-size: 100%; min-block-size: 2rem; padding: 0 0.625rem;
  border: 1px solid var(--v5-border, #d8d3c6); border-radius: var(--em-radius-sm, 0.5rem);
  background: var(--v5-card, #fff); color: var(--v5-text, #244154);
  font-size: 0.78125rem; font-weight: 400; outline: 0;
}
.v7-tf-fields input::placeholder { color: var(--v5-muted, #a3a099); }
.v7-tf-wrap.dock-left .v7-tf-fields, .v7-tf-wrap.dock-right .v7-tf-fields { grid-template-columns: minmax(0, 1fr); }

/* хвост крошки: выбранный раздел или отрасль подписью рядом со словом «Фильтр» */
.v7-tf-crumb-tail { font-style: normal; font-weight: 400; color: var(--v5-secondary, #6e6b64); }

/* ряды каруселей не переносятся: значки идут строкой, лишние прячет прокрутка со стрелками */
.v7-tf-wrap.dock-top .v7-tf-sections, .v7-tf-wrap.dock-bottom .v7-tf-sections { flex-wrap: nowrap; }

/* первый ряд занимает всю ширину окна: поиск добирает остаток строки, как в пятой версии */
.v7-tf-sections { inline-size: 100%; }
.v7-tf-sections > .v7-tf-track { flex: 0 1 auto; }

/* ── ЗНАЧКИ РЯДОВ БЕЗ ПЛАШЕК (правка автора) ──────────────────────────────────────────────────
   Кнопка-значок ряда живёт по правилам версии 7: рамки и белой подложки нет, размер кнопки 32,
   контур значка 14 с толщиной 1,4 — те же величины, что у кнопок действий верхней панели.
   Подложка появляется только у выбранного значка. */
.v7-tf-sec { border: 0; background: transparent; border-radius: var(--em-radius-sm, 0.5rem); }
.v7-tf-sec svg { inline-size: 0.875rem; block-size: 0.875rem; stroke-width: 1.4; }
.v7-tf-sec:hover { background: color-mix(in srgb, var(--v5-text, #244154) 5%, transparent); }
.v7-tf-sec.is-active {
  border: 0;
  background: color-mix(in srgb, var(--icon-accent, var(--v5-text, #244154)) 10%, transparent);
}

/* ── ЕДИНЫЙ СТИЛЬ ЗНАЧКОВ САЙТА 7 (сверка 2026-08-24) ─────────────────────────────────────────
   На сайте версии 7 все значки одинаковы: контур 14 при толщине 1,4. В фильтре было три набора
   величин (1,75 у титлбара и полей, 1,6 у поиска, 1,4 у рядов) — приводим к одному. */
.v7-tf svg,
.v7-tf .v5-icon-button svg,
.v7-tf-crumb svg,
.v7-tf-search svg,
.v7-tf-fields label span svg { inline-size: 0.875rem; block-size: 0.875rem; stroke-width: 1.4; }

/* Выделение выбранного значка ряда — ровно как у активной кнопки версии 7:
   подложка терракотовым 18 %, рамки нет, радиус 8. Серой плашки быть не должно. */
.v7-tf-sec.is-active {
  color: var(--v5-text, #244154);
  background: color-mix(in srgb, var(--section-accent, #d97757) 18%, transparent);
  border: 0; box-shadow: none;
}

/* ── УРОВНИ ОТКРЫВАЮТСЯ ПООДИНОЧКЕ (поручение автора 2026-08-25) ─────────────────────────────
   Планка уровня видна во всех положениях: тонкая строка с шевроном и названием; клик
   сворачивает или раскрывает только свой уровень. Прежнее скрытие планок сверху отменено. */
.v7-tf-wrap.dock-top .v7-tf-head,
.v7-tf-wrap.dock-bottom .v7-tf-head {
  display: flex; min-block-size: 1.375rem; padding: 0 0.25rem; pointer-events: auto;
  font-size: 0.71875rem; font-weight: 600; color: var(--v5-secondary, #6e6b64);
}
.v7-tf-chev {
  inline-size: 0.875rem; block-size: 0.875rem; flex: 0 0 auto; position: relative;
  transition: transform 160ms ease;
}
.v7-tf-chev::before {
  content: ""; position: absolute; inset-block-start: 0.25rem; inset-inline-start: 0.3125rem;
  inline-size: 0.3125rem; block-size: 0.3125rem;
  border-inline-end: 1.4px solid currentColor; border-block-end: 1.4px solid currentColor;
  transform: rotate(45deg);                 /* уголок вниз = уровень раскрыт */
}
.v7-tf-head[aria-expanded="false"] .v7-tf-chev { transform: rotate(-90deg); }

/* ── БОКОВОЙ СТОЛБИК: содержимое расходится равномерно ───────────────────────────────────────
   При закреплении слева или справа значки уровня выстраиваются ровной сеткой на всю ширину
   колонки (а не одной длинной лентой), пилюли и поля — во всю ширину. Стрелки карусели
   в столбике не нужны: прокрутки нет, всё видно сразу. */
.v7-tf-wrap.dock-left .v7-tf-track,
.v7-tf-wrap.dock-right .v7-tf-track {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(2rem, 1fr));
  justify-items: center; gap: 0.375rem; inline-size: 100%;
}
.v7-tf-wrap.dock-left .v7-tf-arrow,
.v7-tf-wrap.dock-right .v7-tf-arrow { display: none; }
.v7-tf-wrap.dock-left .v7-tf-sections,
.v7-tf-wrap.dock-right .v7-tf-sections { flex-direction: column; align-items: stretch; }
.v7-tf-wrap.dock-left .v7-tf-search,
.v7-tf-wrap.dock-right .v7-tf-search { inline-size: 100%; }

/* узлы классификатора: мелкие пилюли, ряд с прокруткой по высоте */
.v7-tf-nodes { max-block-size: 11.25rem; overflow-y: auto; }
.v7-tf-nodes .v7-tf-item { font-size: 0.71875rem; padding: 0.1875rem 0.625rem; min-block-size: 1.625rem; }

/* ── ГАБАРИТЫ БОКОВОГО ФИЛЬТРА (решение автора 2026-08-26) ────────────────────────────────────
   Ширина — не больше раскрытого меню сайта (--v5-sidebar-expanded, 240).
   Высота — от низа шапки с отступом до нижнего края интерфейсной части с отступом:
   фильтр прилипает и держится в экране, внутри — своя прокрутка. */
.v7-tf-wrap.dock-left .v7-tf,
.v7-tf-wrap.dock-right .v7-tf {
  position: sticky;
  top: calc(var(--v5-header-height, 3.5rem) + var(--v5-gap, 0.625rem) * 2);
  inline-size: var(--v5-sidebar-expanded, 15rem);
  /* высота ЖЁСТКАЯ — колонна всегда до низа интерфейса, даже при коротком содержимом */
  block-size: calc(100vh - var(--v5-header-height, 3.5rem) - var(--v5-gap, 0.625rem) * 3);
  overflow-y: auto;
  scrollbar-width: thin;
}

/* ── НИЖНЕЕ ПОЛОЖЕНИЕ: полоса прижата к низу интерфейса с отступом (правка автора 26.08) ─────
   Обёртка растягивается на всю высоту рабочей области, полоса липнет к нижнему краю. */
.v7-tf-wrap.dock-bottom {
  min-block-size: calc(100vh - var(--v5-header-height, 3.5rem) - var(--v5-gap, 0.625rem) * 3);
}
.v7-tf-wrap.dock-bottom .v7-tf {
  position: sticky;
  bottom: 0;                /* родительская область уже даёт нижний зазор --v5-gap */
  align-self: end;
}

/* нижняя полоса: убрать наследный margin окна, чтобы отступ снизу был ровно один --v5-gap */
.v7-tf-wrap.dock-bottom .v7-tf { margin-block-end: 0; }

/* ══ ПРОТОКОЛ ФИЛЬТРА-КОНФИГУРАТОРА V1.0 (автор, 2026-08-26) ═══════════════════════════════════
   Стрелки каруселей упразднены: переполнение решается ПЕРЕНОСОМ, высота уровня растёт.
   Внутренний зазор уровня — токен 12. Боковая чисто-иконная сетка: 5 колонок по 32, gap 12. */
.v7-tf-wrap.dock-top .v7-tf-sections,
.v7-tf-wrap.dock-bottom .v7-tf-sections { flex-wrap: wrap; }
.v7-tf-track { flex-wrap: wrap; overflow: visible; gap: 0.75rem; }
.v7-tf-arrow { display: none !important; }

/* боковая сетка ровно 5 × 32 + 4 зазора 12 = 208 ≤ 216 рабочих, по центру */
.v7-tf-wrap.dock-left .v7-tf-track,
.v7-tf-wrap.dock-right .v7-tf-track {
  /* одна линия: 7 ячеек (6 разделов + избранное) на всю ширину (автор 28.08) */
  grid-template-columns: repeat(7, 1fr);
  justify-content: stretch;
  gap: 0.125rem;
}
.v7-tf-wrap.dock-left .v7-tf-track .v7-tf-sec, .v7-tf-wrap.dock-right .v7-tf-track .v7-tf-sec,
.v7-tf-wrap.dock-left .v7-tf-track .v7-tf-fav, .v7-tf-wrap.dock-right .v7-tf-track .v7-tf-fav {
  inline-size: 1.75rem; block-size: 1.75rem; margin: 0;
}

/* строка типа объекта: чекбокс + значок + подпись (протокол: multi, подсказка на значке) */
.v7-tf-scope {
  display: flex; align-items: center; gap: 0.5rem;
  min-block-size: 2rem; padding: 0 0.625rem;
  border: 0; background: none; cursor: pointer; text-align: start;
  border-radius: var(--em-radius-sm, 0.5rem);
  font-size: 0.78125rem; font-weight: 400; color: var(--v5-text, #244154);
}
.v7-tf-scope:hover { background: color-mix(in srgb, var(--v5-text, #244154) 4%, transparent); }
.v7-tf-scope.is-active { font-weight: 600; }
.v7-tf-check {
  inline-size: 0.875rem; block-size: 0.875rem; flex: 0 0 auto; position: relative;
  border: 1.4px solid var(--v5-border, #d8d3c6); border-radius: 0.25rem; background: var(--v5-card, #fff);
}
.v7-tf-scope.is-active .v7-tf-check {
  border-color: var(--em-cta-text, #1f3a5a); background: var(--em-cta, #c3d3e8);
}
.v7-tf-scope.is-active .v7-tf-check::after {
  content: ""; position: absolute; inset-block-start: 1.5px; inset-inline-start: 0.25rem;
  inline-size: 0.25rem; block-size: 0.4375rem;
  border-inline-end: 1.6px solid var(--em-cta-text, #1f3a5a);
  border-block-end: 1.6px solid var(--em-cta-text, #1f3a5a);
  transform: rotate(40deg);
}
.v7-tf-scope-ic { display: grid; place-items: center; }
.v7-tf-scope-ic svg { inline-size: 0.875rem; block-size: 0.875rem; }

/* высота горизонтального фильтра прогрессивная: никаких фиксированных высот (377 — reference) */

/* вертикальный порядок бокового (протокол): поиск ПЕРЕД уровнями — в ряду 1 поиск поднимается
   над значками (детей ровно двое: дорожка и поиск) */
.v7-tf-wrap.dock-left [data-block="SECTION"] .v7-tf-sections,
.v7-tf-wrap.dock-right [data-block="SECTION"] .v7-tf-sections { flex-direction: column-reverse; }

/* боковой титлбар: контролы переносятся потоком, ничего не наезжает на планки уровней */
.v7-tf-wrap.dock-left .v7-tf-bar,
.v7-tf-wrap.dock-right .v7-tf-bar { min-block-size: auto; }
.v7-tf-wrap.dock-left .v7-tf-tools,
.v7-tf-wrap.dock-right .v7-tf-tools { flex-wrap: wrap; row-gap: 0.25rem; position: static; }
.v7-tf-wrap.dock-left .v7-tf-tools .v5-icon-button,
.v7-tf-wrap.dock-right .v7-tf-tools .v5-icon-button { flex: 0 0 auto; }

/* вертикаль: инструменты видимы ВСЕ и группами (решение автора 28.08, отменяет скрытие) */
.v7-tf-wrap.dock-left .v7-tf-sep,
.v7-tf-wrap.dock-right .v7-tf-sep { display: none; }
.v7-tf-wrap.dock-left .v7-tf-tools > .v7-tf-mode,
.v7-tf-wrap.dock-right .v7-tf-tools > .v7-tf-mode { flex: 0 0 auto; }

/* боковой ряд контролов: зазор 8 — пять кнопок (4 докинга + закладка) в одну строку: 192 ≤ 216 */
.v7-tf-wrap.dock-left .v7-tf-tools,
.v7-tf-wrap.dock-right .v7-tf-tools { gap: 0.5rem !important; }

/* активная система классификации — то же выделение, что у всех выборов (терракота 18%),
   а не старый серый; в боковом пилюли систем сжимаются по содержимому, не на всю ширину */
.v7-tf-item.is-active {
  border-color: transparent;
  background: color-mix(in srgb, var(--section-accent, #d97757) 18%, transparent);
}
.v7-tf-wrap.dock-left [data-block="CLASSIFIER"] .v7-tf-item,
.v7-tf-wrap.dock-right [data-block="CLASSIFIER"] .v7-tf-item { inline-size: auto; }
.v7-tf-wrap.dock-left [data-block="CLASSIFIER"] .v7-tf-body,
.v7-tf-wrap.dock-right [data-block="CLASSIFIER"] .v7-tf-body { flex-direction: row; flex-wrap: wrap; }

/* ── СКРОЛЛ ПО ПРОТОКОЛУ (CHG-0421, библиотека §2.10): тонкий светлый — ползунок --v5-border,
   скругление pill, webkit-толщина 4; тёмные широкие запрещены ────────────────────────────── */
.v7-tf, .v7-tf-nodes, .v7-tf *::-webkit-scrollbar { scrollbar-width: thin; scrollbar-color: var(--v5-border, #d3cec0) transparent; }
.v7-tf::-webkit-scrollbar, .v7-tf-nodes::-webkit-scrollbar { inline-size: 0.25rem; block-size: 0.25rem; }
.v7-tf::-webkit-scrollbar-thumb, .v7-tf-nodes::-webkit-scrollbar-thumb {
  background: var(--v5-border, #d3cec0); border-radius: 6.25rem; }
.v7-tf::-webkit-scrollbar-track, .v7-tf-nodes::-webkit-scrollbar-track { background: transparent; }

/* боковой фильтр: содержимое не шире окна — никакого горизонтального разъезда */
.v7-tf-wrap.dock-left .v7-tf, .v7-tf-wrap.dock-right .v7-tf {
  box-sizing: border-box; overflow-x: hidden;
}
.v7-tf-wrap.dock-left .v7-tf > *, .v7-tf-wrap.dock-right .v7-tf > *,
.v7-tf-wrap.dock-left .v7-tf-block, .v7-tf-wrap.dock-right .v7-tf-block {
  max-inline-size: 100%; min-inline-size: 0;
}

/* классификация раскрывающимся списком: селект системы + поиск по кодам в одну строку */
.v7-tf-cls-row { display: flex; gap: 0.5rem; flex-wrap: wrap; inline-size: 100%; }
.v7-tf-cls-select, .v7-tf-cls-search {
  min-block-size: 2rem; padding: 0 0.625rem;
  border: 1px solid var(--v5-border, #d8d3c6); border-radius: var(--em-radius-sm, 0.5rem);
  background: var(--v5-card, #fff); color: var(--v5-text, #244154);
  font-size: 0.78125rem; font-weight: 400; outline: 0;
}
.v7-tf-cls-select { flex: 0 1 auto; }
.v7-tf-cls-search { flex: 1 1 10rem; min-inline-size: 7.5rem; }

/* ХАРАКТЕРИСТИКИ: группы-раскрывашки, атрибуты сеткой, контролы по типу */
.v7-tf-group { inline-size: 100%; border: 1px solid var(--v5-border-light, #e4e0d4);
  border-radius: var(--em-radius-sm, 0.5rem); background: var(--v5-card, #fff); }
.v7-tf-group summary { cursor: pointer; min-block-size: 1.875rem; display: flex; align-items: center;
  padding: 0 0.625rem; font-size: 0.75rem; font-weight: 600; color: var(--v5-text, #244154); list-style: none; }
.v7-tf-group summary::before { content: ""; inline-size: 0.3125rem; block-size: 0.3125rem; margin-inline-end: 0.5rem;
  border-inline-end: 1.4px solid currentColor; border-block-end: 1.4px solid currentColor;
  transform: rotate(-45deg); transition: transform 140ms ease; }
.v7-tf-group[open] summary::before { transform: rotate(45deg); }
.v7-tf-attrs { display: grid; grid-template-columns: repeat(auto-fill, minmax(13.75rem, 1fr));
  gap: 0.5rem; padding: 0 0.625rem 0.625rem; }
.v7-tf-attr { display: grid; gap: 0.1875rem; font-size: 0.71875rem; font-weight: 600; color: var(--v5-secondary, #6e6b64); }
.v7-tf-attr input, .v7-tf-attr select {
  min-block-size: 1.875rem; padding: 0 0.5rem; border: 1px solid var(--v5-border, #d8d3c6);
  border-radius: var(--em-radius-sm, 0.5rem); background: var(--v5-card, #fff);
  font-size: 0.75rem; font-weight: 400; color: var(--v5-text, #244154); outline: 0; inline-size: 100%; }
.v7-tf-attr.is-bool { grid-template-columns: auto 1fr; align-items: center; }
.v7-tf-attr.is-bool input { inline-size: 0.875rem; min-block-size: 0.875rem; }
.v7-tf-attr-range { display: grid; grid-template-columns: 1fr 1fr; gap: 0.375rem; }
.v7-tf-wrap.dock-left .v7-tf-attrs, .v7-tf-wrap.dock-right .v7-tf-attrs { grid-template-columns: 1fr; }

/* правки по скрину автора (боковое положение): поле поиска категории не раздувается,
   узлы-пилюли идут колонкой и не налезают друг на друга */
.v7-tf-cls-search { block-size: 2rem; flex-grow: 0; }
.v7-tf-wrap.dock-left .v7-tf-cls-search,
.v7-tf-wrap.dock-right .v7-tf-cls-search { inline-size: 100%; flex: 0 0 auto; }
.v7-tf-wrap.dock-left .v7-tf-nodes,
.v7-tf-wrap.dock-right .v7-tf-nodes {
  display: flex; flex-direction: column; align-items: stretch; flex-wrap: nowrap;
  max-block-size: 15rem;
}
.v7-tf-wrap.dock-left .v7-tf-nodes .v7-tf-item,
.v7-tf-wrap.dock-right .v7-tf-nodes .v7-tf-item {
  inline-size: 100%; block-size: auto; min-block-size: 1.625rem;
}

/* строки списков: узкий маркер-код, имя в одну-две строки; узлы всегда колонкой */
.v7-tf-rowitem { inline-size: 100%; min-block-size: 1.875rem; }
.v7-tf-marker {
  flex: 0 0 auto; min-inline-size: 2.125rem; padding: 1px 0.375rem; text-align: center;
  font-style: normal; font-size: 0.65625rem; font-weight: 600;
  color: var(--v5-secondary, #6e6b64);
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: 0.375rem;
  background: var(--v5-card, #fff);
}
.v7-tf-rowname { min-inline-size: 0; overflow-wrap: anywhere; text-align: start; }
.v7-tf-nodes { display: flex; flex-direction: column; align-items: stretch; flex-wrap: nowrap; }

/* главный поиск масштабируется всегда: тянется на всю доступную ширину */
.v7-tf-search, .v7-tf-search-top { inline-size: auto; flex: 1 1 auto; min-inline-size: 0; }
.v7-tf-search-top { display: flex; }

/* строки списков не сжимаются по высоте в прокручиваемой колонке — текст не налезает */
.v7-tf-nodes > * { flex-shrink: 0; }
.v7-tf-rowitem { block-size: auto; }

/* строки списков: чекбокс и маркер по первой строке текста, компактный межстрочный */
.v7-tf-rowitem { align-items: flex-start; padding-block: 0.3125rem; }
.v7-tf-rowitem .v7-tf-check, .v7-tf-rowitem .v7-tf-marker { margin-block-start: 2px; }
.v7-tf-rowname { line-height: 1.3; }

/* ── ПРАВКА АВТОРА 26.08: строка списка = окошко и надпись ОДНОЙ строкой; при переносе
   вторая строка надписи начинается РОВНО ПОД ОКОШКОМ (без висячей колонки). Инлайн-поток. */
.v7-tf-scope, .v7-tf-rowitem {
  display: block; text-align: start; inline-size: 100%;
  padding: 0.3125rem 0.5rem; line-height: 1.35;
}
.v7-tf-scope .v7-tf-check, .v7-tf-rowitem .v7-tf-check,
.v7-tf-rowitem .v7-tf-marker, .v7-tf-scope .v7-tf-scope-ic {
  display: inline-block; vertical-align: -2px; margin-inline-end: 0.5rem; margin-block-start: 0;
}
.v7-tf-scope-ic svg { vertical-align: top; }
.v7-tf-rowname, .v7-tf-scope > span:last-child { display: inline; }
/* отступ списков от края блока — ровно внутренний зазор окна, без лишней пустоты слева */
.v7-tf-nodes, .v7-tf-body { padding-inline-start: 0; }
.v7-tf-wrap.dock-left .v7-tf-body, .v7-tf-wrap.dock-right .v7-tf-body { padding-inline: 0; }

/* кнопка «показать ещё» в характеристиках */
.v7-tf-more { align-self: center; min-block-size: 1.875rem; padding: 0 0.75rem; border: 0; cursor: pointer;
  border-radius: 6.25rem; background: color-mix(in srgb, var(--v5-text, #244154) 6%, transparent);
  font-size: 0.71875rem; font-weight: 600; color: var(--v5-text, #244154); }

/* П1 (CHG-0973): итог объектного слоя — счётчик найденных объектов из среза staging */
.v7-tf-found {
  margin: 0;
  padding: 0.375rem 0.75rem;
  font-size: var(--v5-font-sm, 0.78125rem);
  color: var(--v5-text-muted, #7b8794);
  border-top: 1px solid var(--v5-hairline, rgba(148, 163, 184, 0.28));
}
.v7-tf.dock-left .v7-tf-found, .v7-tf.dock-right .v7-tf-found { flex-shrink: 0; }


/* CHG-0974: поиск сверху и в горизонтальном положении */
.v7-tf-wrap.dock-top .v7-tf-search-top,
.v7-tf-wrap.dock-bottom .v7-tf-search-top { margin: 0.5rem 0.75rem 0; flex: 0 0 auto; }

/* повторная экспертиза 26.08: в боковом доке полный путь крошки не влезает в рейку 240 —
   хвост обрезается многоточием, полный путь остаётся в подсказке (title) */
.v7-tf.dock-left .v7-tf-bar, .v7-tf.dock-right .v7-tf-bar { min-inline-size: 0; }
.v7-tf.dock-left .v7-tf-crumb, .v7-tf.dock-right .v7-tf-crumb {
  min-inline-size: 0; max-inline-size: 100%; overflow: hidden; white-space: nowrap;
}
.v7-tf.dock-left .v7-tf-crumb-tail, .v7-tf.dock-right .v7-tf-crumb-tail {
  display: inline-block; min-inline-size: 0; max-inline-size: 100%;
  overflow: hidden; text-overflow: ellipsis; vertical-align: bottom;
}

/* повторная экспертиза 26.08: селект систем классификации и пустые подписи не должны
   раздвигать узкую рейку — сжимаются в её ширину, текст переносится */
.v7-tf-cls-select { min-inline-size: 0; max-inline-size: 100%; }
.v7-tf-empty { min-inline-size: 0; overflow-wrap: anywhere; }
.v7-tf.dock-left .v7-tf-cls-row, .v7-tf.dock-right .v7-tf-cls-row { flex-direction: column; }
.v7-tf.dock-left .v7-tf-cls-select, .v7-tf.dock-right .v7-tf-cls-select,
.v7-tf.dock-left .v7-tf-cls-search, .v7-tf.dock-right .v7-tf-cls-search { inline-size: 100%; flex: 0 0 auto; }

/* CHG-0974 (доводка по скрину автора 12:38): в горизонтальном положении списки узлов
   (категории/подкатегории/виды/владельцы) рассредоточены по горизонтали в несколько колонок */
.v7-tf-wrap.dock-top .v7-tf-nodes,
.v7-tf-wrap.dock-bottom .v7-tf-nodes {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(18.75rem, 1fr));
  gap: 2px 1.125rem; align-items: start; inline-size: 100%;
}
.v7-tf-wrap.dock-top .v7-tf-block[data-block="CATEGORY"],
.v7-tf-wrap.dock-top .v7-tf-block[data-block="SUBCATEGORY"],
.v7-tf-wrap.dock-top .v7-tf-block[data-block="ARCHETYPE"],
.v7-tf-wrap.dock-bottom .v7-tf-block[data-block="CATEGORY"],
.v7-tf-wrap.dock-bottom .v7-tf-block[data-block="SUBCATEGORY"],
.v7-tf-wrap.dock-bottom .v7-tf-block[data-block="ARCHETYPE"] { flex: 1 1 100%; }

/* ── ПЕРЕМЕЩЕНИЕ КОНТЕНТА МЕЖДУ КОНФИГУРАЦИЯМИ (проблема автора 26.08, замер: при полном
   выборе горизонтальное окно росло до 252.1875rem и уходило за экран). Горизонтальные положения
   получают ту же формулу высоты, что и вертикальные: окно держится в экране, внутри —
   тонкая прокрутка (CHG-0421); рабочая область остаётся видимой под/над фильтром. */
.v7-tf-wrap.dock-top .v7-tf,
.v7-tf-wrap.dock-bottom .v7-tf {
  max-block-size: calc(100vh - var(--v5-header-height, 3.5rem) - var(--v5-gap, 0.625rem) * 3);
  overflow-y: auto;
  scrollbar-width: thin;
}

/* ── РЕЖИМ КОНФИГУРАТОРА (протокол V1.0, CFG-06/07) ─────────────────────────────────────── */
.v7-tf-mode { display: inline-flex; gap: 2px; margin-inline-end: 0.5rem; padding: 2px;
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem); }
.v7-tf-mode-btn { border: 0; background: none; padding: 0.25rem 0.625rem; font-size: 0.78125rem;
  border-radius: 0.375rem; color: var(--v5-secondary, #6e6b64); cursor: pointer; }
.v7-tf-mode-btn.is-active { background: color-mix(in srgb, var(--section-accent, #d97757) 16%, transparent);
  color: var(--v5-text, #244154); font-weight: 600; }
.v7-tf-services { display: flex; align-items: center; gap: 0.625rem; padding: 0.375rem 0.75rem;
  border-top: 1px solid var(--v5-hairline, rgba(148,163,184,.28)); font-size: 0.78125rem; }
.v7-tf-services b { font-size: 0.71875rem; font-weight: 600; color: var(--v5-secondary, #6e6b64); }
.v7-tf-service { inline-size: auto !important; padding: 0 0.625rem; gap: 0.375rem; display: inline-flex; align-items: center; }
.v7-tf-service span { font-size: 0.78125rem; }
.v7-tf-spec { display: flex; align-items: center; gap: 0.75rem; }
.v7-tf-save-atom { border: 1px solid var(--v5-border-light, #e4e0d4); }
.v7-tf.dock-left .v7-tf-services, .v7-tf.dock-right .v7-tf-services { flex-wrap: wrap; }

/* V1.1 полное исполнение: маркер системы в узлах классификации + строчные чекбоксы малых доменов */
.v7-tf-sysmark { flex: 0 0 auto; font-size: 0.625rem; font-weight: 700; letter-spacing: .02em;
  color: var(--v5-secondary, #6e6b64); border: 1px solid var(--v5-border-light, #e4e0d4);
  border-radius: 0.25rem; padding: 0 0.25rem; margin-inline-end: 0.25rem; font-style: normal; }
.v7-tf-enum-inline { display: inline-flex; flex-wrap: wrap; gap: 0.25rem 0.75rem; }
.v7-tf-enum-inline label { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.75rem; }

/* ── P0 UX_RESET (мастер-протокол V2.0) ────────────────────────────────────────────────── */
/* уровни 4-5 иконками: кнопка с нейтральным глифом, имя под иконкой мелко (tooltip полный) */
.v7-tf-caticon { inline-size: auto !important; min-inline-size: 4.5rem; max-inline-size: 7.5rem;
  block-size: auto !important; padding: 0.375rem 0.375rem 0.25rem; display: inline-flex;
  flex-direction: column; align-items: center; gap: 0.25rem; }
.v7-tf-caticon-name { font-size: 0.65625rem; line-height: 1.15; text-align: center;
  color: var(--v5-secondary, #6e6b64); display: -webkit-box; -webkit-line-clamp: 2;
  -webkit-box-orient: vertical; overflow: hidden; max-block-size: 1.9em; }
.v7-tf-caticon.is-active .v7-tf-caticon-name { color: var(--v5-text, #244154); font-weight: 600; }
.v7-tf.dock-left .v7-tf-caticon, .v7-tf.dock-right .v7-tf-caticon { min-inline-size: 3.5rem; max-inline-size: 6rem; }
/* «Дополнительно»: подблоки-раскрывашки */
.v7-tf-addsub { border-top: 1px solid var(--v5-hairline, rgba(148,163,184,.28)); padding: 0.25rem 0; }
.v7-tf-addsub summary { cursor: pointer; font-size: 0.71875rem; font-weight: 600;
  color: var(--v5-secondary, #6e6b64); padding: 0.25rem 0; list-style: none; }
.v7-tf-addsub summary::before { content: "▸ "; }
.v7-tf-addsub[open] summary::before { content: "▾ "; }
/* Избранное в уровне 1 */
.v7-tf-fav { margin-inline-start: 0; }   /* зазор задаёт gap дорожки = 12 */

/* строгий iconsOnly по образцу автора (скрин 19:14 + «это ещё протокол»): имя — только
   в подсказке и для диктора, визуально одни иконки, как в эталоне */
.v7-tf-caticon-name { display: none; }
.v7-tf-caticon { min-inline-size: 2rem; max-inline-size: none; padding: 0.375rem; flex-direction: row; }

/* эталон аккуратности (скрин автора 19:14): иконки уровней ровной лентой с одинаковым шагом */
.v7-tf-wrap.dock-top .v7-tf-nodes, .v7-tf-wrap.dock-bottom .v7-tf-nodes {
  display: grid; grid-template-columns: repeat(auto-fill, 2.25rem); gap: 0.375rem;
  align-items: center; justify-content: start;
}
.v7-tf-caticon { min-inline-size: 2rem; block-size: 2rem !important; justify-content: center; }
.v7-tf.dock-left .v7-tf-nodes .v7-tf-caticon, .v7-tf.dock-right .v7-tf-nodes .v7-tf-caticon { margin: 0; }
.v7-tf-wrap.dock-left .v7-tf-nodes, .v7-tf-wrap.dock-right .v7-tf-nodes {
  display: grid; grid-template-columns: repeat(5, 2rem); gap: 0.75rem; justify-content: center;
}
/* строки-узлы (вид/владелец) в вертикали остаются списком */
.v7-tf-wrap.dock-left .v7-tf-nodes:has(.v7-tf-rowitem), .v7-tf-wrap.dock-right .v7-tf-nodes:has(.v7-tf-rowitem),
.v7-tf-wrap.dock-top .v7-tf-nodes:has(.v7-tf-rowitem), .v7-tf-wrap.dock-bottom .v7-tf-nodes:has(.v7-tf-rowitem) {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(18.75rem, 1fr)); gap: 0.125rem 1.125rem; justify-content: stretch;
}

/* P1: предпросмотр атома (валидация → предпросмотр → создание) */
.v7-tf-preview { margin: 0.5rem 0.75rem; padding: 0.625rem 0.75rem; border: 1px solid var(--v5-border-light, #e4e0d4);
  border-radius: 0.5rem; background: var(--v5-card, #fff); font-size: 0.78125rem; }
.v7-tf-preview b { display: block; margin-bottom: 0.375rem; font-size: 0.75rem; }
.v7-tf-preview ul { margin: 0 0 0.5rem 1.1rem; padding: 0; }
.v7-tf-preview-row { display: flex; gap: 0.5rem; }

/* R1 (ТЗ V1.0): HUMAN-хабы простого уровня + переключатель уровней */
.v7-tf-levels { margin-inline-start: 0; }   /* зазор задаёт gap тулбара 12 */
.v7-tf-human { display: flex; flex-wrap: wrap; gap: 0.375rem; }
.v7-tf-human-hub { border: 1px solid var(--v5-border-light, #e4e0d4); background: var(--v5-card, #fff);
  border-radius: 0.5rem; padding: 0.375rem 0.625rem; font-size: 0.78125rem; color: var(--v5-text, #244154);
  cursor: pointer; }
.v7-tf-human-hub:hover { border-color: var(--section-accent, #d97757); }
.v7-tf-human-hub.is-back { color: var(--v5-secondary, #6e6b64); }
.v7-tf-human-hub.is-sub { background: var(--v5-bg, #faf9f5); }
.v7-tf.dock-left .v7-tf-human, .v7-tf.dock-right .v7-tf-human { flex-direction: column; }
/* уровни в вертикали видимы (автор 28.08) */

/* M6: цифровой паспорт в конфигураторе (предложения PROPOSED) */
.v7-tf-passport { margin: 0.5rem 0.75rem; padding: 0.5rem 0.625rem; border: 1px dashed var(--v5-border-light, #e4e0d4);
  border-radius: 0.5rem; font-size: 0.78125rem; }
.v7-tf-passport b { display: block; font-size: 0.71875rem; color: var(--v5-secondary, #6e6b64); margin-bottom: 0.375rem; }
.v7-tf-passport-row { display: flex; gap: 0.375rem; margin-top: 0.375rem; align-items: center; flex-wrap: wrap; }
.v7-tf-passport-tags { display: flex; flex-wrap: wrap; gap: 0.25rem; }
.v7-tf-passport-tag { display: inline-flex; align-items: center; gap: 0.25rem; border: 1px solid var(--v5-border-light, #e4e0d4);
  border-radius: 0.375rem; padding: 0.125rem 0.375rem; font-size: 0.71875rem; background: var(--v5-bg, #faf9f5); }
.v7-tf-passport-tag.is-doc { border-style: dashed; }
.v7-tf-passport-tag button { border: 0; background: none; cursor: pointer; color: var(--v5-secondary, #6e6b64); }
.v7-tf-passport-hints { display: flex; flex-direction: column; gap: 0.125rem; margin-top: 0.25rem; }

/* R2: блоки реестра ТЗ */
.v7-tf-tzblock { border: 0; }
.v7-tf-tzblock > .v7-tf-head { pointer-events: none; }
.v7-tf-inner { border: 0; background: none; padding: 0; }

/* R3: человеческий каталог первым экраном (референс Ozon: колонки групп) */
.v7-tf-catalog { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 0.875rem 1.5rem; }
.v7-tf-catalog-group { position: relative; display: flex; flex-direction: column; gap: 0.2rem; }
.v7-tf-catalog-head { appearance: none; border: 0; background: none; text-align: left; padding: 0.2rem 0; cursor: pointer;
  display: flex; align-items: center; gap: 0.5rem; }
.v7-tf-catalog-head > svg { inline-size: 1rem; block-size: 1rem; flex: 0 0 auto; }
.v7-tf-catalog-link { display: flex; align-items: center; gap: 0.4rem; }
.v7-tf-catalog-link > svg { inline-size: 0.8125rem; block-size: 0.8125rem; flex: 0 0 auto; }
.v7-tf-catalog-head { 
  font-size: 0.8125rem; font-weight: 700; color: var(--v5-text, #244154); font-family: inherit; }
.v7-tf-catalog-head:hover { color: var(--section-accent, #d97757); }
/* автор 28.08: не отдельное окошко со своим скроллом, а раскрытие В ЭТОЙ ЖЕ области, как меню:
   клик по группе — подразделы разворачиваются в потоке, прокрутка общая у окна */
.v7-tf-catalog-drop { display: none; position: static; min-inline-size: 0; max-inline-size: 100%;
  padding: 0.125rem 0 0.25rem 1.5rem; flex-direction: column; gap: 0.125rem; }
.v7-tf-catalog-group.is-open > .v7-tf-catalog-drop { display: flex; }
.v7-tf-catalog { align-items: start; }
.v7-tf-catalog-group > b { font-size: 0.8125rem; font-weight: 700; color: var(--v5-text, #244154); margin-bottom: 0.2rem; }
.v7-tf-catalog-link { border: 0; background: none; text-align: left; padding: 0.1rem 0; cursor: pointer;
  font-size: 0.78125rem; color: var(--v5-secondary, #6e6b64); }
.v7-tf-catalog-link:hover { color: var(--section-accent, #d97757); }
.v7-tf-catalog-link.is-mapped { color: var(--v5-text, #244154); }
.v7-tf-catalog-link.is-more { color: var(--section-accent, #d97757); font-size: 0.71875rem; }
.v7-tf.dock-left .v7-tf-catalog, .v7-tf.dock-right .v7-tf-catalog { grid-template-columns: 1fr; }

/* S2 «дизайн V5»: ряд корней — ровный ритм значков 32×32 шаг 12, как отраслевой ряд V5 */
.v7-tf-roots { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
.v7-tf-root { flex: 0 0 auto; }
.v7-tf.dock-left .v7-tf-roots, .v7-tf.dock-right .v7-tf-roots {
  display: grid; grid-template-columns: repeat(5, 2rem); gap: 0.75rem; justify-content: center; }

/* стабилизация 28.08: в ПРОСТОМ виде заголовки-плашки блоков не показываются — чистые ряды как V5 */
.v7-tf-tzblock > .v7-tf-head { display: none; }
.v7-tf-tzblock[data-tz="CHAR"] > .v7-tf-head, .v7-tf-tzblock[data-tz="PARTY"] > .v7-tf-head,
.v7-tf-tzblock[data-tz="PASSPORT"] > .v7-tf-head, .v7-tf-tzblock[data-tz="ADV"] > .v7-tf-head,
.v7-tf-tzblock[data-tz="DELIVERY"] > .v7-tf-head, .v7-tf-tzblock[data-tz="TRUST"] > .v7-tf-head,
.v7-tf-tzblock[data-tz="COMMERCIAL"] > .v7-tf-head { display: flex; }

/* стабилизация-2: каталог колонками 3-4 в ряд, NAV без плашки, тип объекта в строку */
.v7-tf-catalog { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)) !important;
  gap: 0.875rem 1.5rem !important; align-items: start; }
.v7-tf-tzblock[data-tz="NAV"] > .v7-tf-head { display: none !important; }
.v7-tf-inner[data-block="SCOPE"] .v7-tf-body { display: flex; gap: 1rem; flex-wrap: wrap; }
/* канонический поиск категорий в простом виде не дублируется с каталогом */

/* стабилизация-3: tz-блоки в горизонтальных доках занимают всю строку — каталог расправляется в колонки */
.v7-tf-wrap.dock-top .v7-tf-tzblock, .v7-tf-wrap.dock-bottom .v7-tf-tzblock { flex: 1 1 100%; inline-size: 100%; }
.v7-tf-inner { inline-size: 100%; }
.v7-tf-catalog { flex: 1 1 100%; inline-size: 100% !important; }

/* вертикаль: поиск — компактная строка 32, без растяжения в столб (автор 28.08: отступы) */
.v7-tf-wrap.dock-left .v7-tf-search, .v7-tf-wrap.dock-right .v7-tf-search,
.v7-tf-wrap.dock-left .v7-tf-search-top, .v7-tf-wrap.dock-right .v7-tf-search-top {
  flex: 0 0 auto; block-size: 2rem; min-block-size: 2rem; max-block-size: 2rem;
}
/* вертикаль: окно — grid, авто-ряды прижаты кверху, пустоты не растягиваются (автор 28.08) */
.v7-tf-wrap.dock-left .v7-tf, .v7-tf-wrap.dock-right .v7-tf { align-content: start; row-gap: 0.5rem; }

/* вертикаль: каталог одной колонкой строго в ширину рейки; дроп — аккордеоном, не поверх (28.08) */
.v7-tf.dock-left .v7-tf-catalog, .v7-tf.dock-right .v7-tf-catalog { grid-template-columns: 1fr !important; }
.v7-tf.dock-left .v7-tf-catalog-group, .v7-tf.dock-right .v7-tf-catalog-group { max-inline-size: 100%; min-inline-size: 0; }
.v7-tf.dock-left .v7-tf-catalog-drop, .v7-tf.dock-right .v7-tf-catalog-drop {
  position: static; min-inline-size: 0; max-inline-size: 100%; box-shadow: none;
  border-color: var(--v5-border-light, #e4e0d4); }

/* буква A–U после значка в проф-каталоге (автор 28.08): приглушённая, не сливается с названием */
.v7-tf-catalog-head .v7-tf-code, .v7-tf-catalog-link .v7-tf-code {
  font-style: normal; color: var(--v5-secondary, #6e6b64); font-size: 0.71875rem; flex: 0 0 auto; }

/* иконка (и буква) — по ПЕРВОЙ строке названия при переносе, не по центру (автор 28.08) */
.v7-tf-catalog-head, .v7-tf-catalog-link { align-items: flex-start; }
.v7-tf-catalog-head > svg, .v7-tf-catalog-link > svg { margin-block-start: 0.0625rem; }
.v7-tf-catalog-head .v7-tf-code, .v7-tf-catalog-link .v7-tf-code { margin-block-start: 0.0625rem; }

/* автор 28.08: в ГОРИЗОНТАЛИ раскрытые подразделы — не один столбик, а колонками на всю область
   (как основные группы); в вертикали — одним столбиком, как сделано */
/* группа остаётся на месте; вынесенный дроп — полоса под её строкой (автор 28.08) */
.v7-tf-catalog-drop.is-row {
  grid-column: 1 / -1; display: grid; grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 0.375rem 1.5rem; padding: 0.375rem 0 0.5rem 1.5rem; }

/* крошки типов раздела: между разделами и поиском, в вертикали — своей строкой (автор 28.08) */
.v7-tf-scope-inline { display: flex; align-items: center; gap: 0.75rem; flex: 0 0 auto; }   /* зазор = токен 12, как у разделов */
.v7-tf-scope-inline:empty { display: none; }
.v7-tf-wrap.dock-left .v7-tf-scope-inline, .v7-tf-wrap.dock-right .v7-tf-scope-inline { justify-content: center; }

/* крошки типов — строго кнопки 32, не наследуют строчный стиль старого SCOPE-блока */
.v7-tf-scope-inline .v7-tf-scope { inline-size: 2rem !important; block-size: 2rem !important; padding: 0 !important; flex: 0 0 auto;
  display: grid !important; place-items: center; gap: 0; }
.v7-tf-scope-inline .v7-tf-scope svg { margin: 0; }
.v7-tf-scope-inline .v7-tf-scope .v7-tf-scope-ic { display: contents; }
.v7-tf-scope-inline .v7-tf-scope .v7-tf-check { display: none; }
/* вертикаль: строки-пункты не шире рейки (grid min 18.75rem давал скрытый разъезд) */
.v7-tf-wrap.dock-left .v7-tf-nodes, .v7-tf-wrap.dock-right .v7-tf-nodes { grid-template-columns: 1fr !important; }
.v7-tf.dock-left .v7-tf-rowitem, .v7-tf.dock-right .v7-tf-rowitem,
.v7-tf.dock-left .v7-tf-rowname, .v7-tf.dock-right .v7-tf-rowname { min-inline-size: 0; max-inline-size: 100%; inline-size: 100%; box-sizing: border-box; }

/* зазор крошек типов от поиска — токен 12, чтобы иконка не прилипала к полю (скрин автора 28.08 08:11) */
.v7-tf-sections .v7-tf-scope-inline { margin-inline: 0.25rem 0.75rem; }

/* автор 28.08 (отменено его же решением 08:22): плашки-рамки убраны — крошечный стиль со стрелкой */
.v7-tf-sections .v7-tf-scope-inline { margin-inline: 0.75rem; }


/* иконки разделов › две крошки типов — стрелка как в оглавлении (автор 28.08) */
.v7-tf-scope-arrow { color: var(--v5-muted, #a3a099); font-size: 0.8125rem; flex: 0 0 auto; user-select: none; margin-inline: -0.125rem; }   /* стрелка узкая: сводим зазор икон к общему 30 */
.v7-tf-sections .v7-tf-scope-inline { margin-inline: 0 0.375rem; }

/* единый межстрочный отступ каталога (автор 28.08: «поправь отступы между строками») */
.v7-tf-catalog { gap: 0.75rem 1.5rem !important; }

/* титлбар: равные зазоры между группами инструментов = токен 12 (автор 28.08 «зазоры не исправлены») */
.v7-tf-tools { gap: 0.75rem; }
.v7-tf-tools > .v7-tf-mode { margin-inline-end: 0; }

/* регламент V1.0 «внутренний зазор уровня — токен 12»: единый вертикальный ритм окна */
.v7-tf { gap: 0.75rem; }
.v7-tf-inner + .v7-tf-inner { margin-block-start: 0.75rem; }
.v7-tf-tzblock + .v7-tf-tzblock { margin-block-start: 0.75rem; }

/* метки рядов (пример автора 28.08): читаемая подпись слева у каждого ряда */
.v7-tf-rowlabel { font-size: 0.78125rem; font-weight: 600; color: var(--v5-secondary, #6e6b64);
  flex: 0 0 auto; align-self: center; margin-inline-end: 0.375rem; white-space: nowrap; }
.v7-tf-track .v7-tf-rowlabel { grid-column: span 2; justify-self: start; }
.v7-tf-au-row { margin-block-start: 0.75rem; display: flex; align-items: center; }
.v7-tf-au-row .v7-tf-track { display: flex; flex-wrap: wrap; gap: 0.75rem; }

/* кнопка «Каталог» — как метка ряда, но кликабельная (автор 29.08) */
.v7-tf-rowlabel-btn { border: 0; background: none; cursor: pointer; padding: 0; font: inherit;
  font-size: 0.78125rem; font-weight: 600; color: var(--v5-text, #244154); text-align: start; }
.v7-tf-rowlabel-btn:hover { color: var(--section-accent, #d97757); }

/* найденные категории — колонками каталога; выбранная подсвечена (автор 29.08: чипсы убраны) */
.v7-tf-catalog-found { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)) !important; }
.v7-tf-catalog-found .v7-tf-catalog-link.is-active { color: var(--section-accent, #d97757); font-weight: 700; }

/* шаг 1 автора (29.08): ряд «Поиск» — иконка+надпись слева, поле на всю остальную ширину */
.v7-tf-row-search { display: flex; align-items: center; gap: 0.75rem; }
.v7-tf-row-search .v7-tf-rowlabel { display: inline-flex; align-items: center; gap: 0.375rem; }
.v7-tf-row-search .v7-tf-rowlabel svg { inline-size: 1rem; block-size: 1rem; }
.v7-tf-row-search .v7-tf-search { flex: 1 1 auto; }

/* шаг 2 автора: ряд «Инструменты поиска» */
.v7-tf-row-tools { display: flex; align-items: center; gap: 0.75rem; }
.v7-tf-row-tools .v7-tf-rowlabel { display: inline-flex; align-items: center; gap: 0.375rem; }
.v7-tf-row-tools .v7-tf-rowlabel svg { inline-size: 1rem; block-size: 1rem; }
.v7-tf-viewmode svg { inline-size: 1rem; block-size: 1rem; }
.v7-tf-wrap.dock-left .v7-tf-row-tools, .v7-tf-wrap.dock-right .v7-tf-row-tools { flex-wrap: wrap; justify-content: flex-start; }

/* ряд инструментов: кнопки строго 32, в один ряд (фикс разъезда после шага 2) */
.v7-tf-row-tools { flex-wrap: nowrap; }
.v7-tf-row-tools .v7-tf-scope { inline-size: 2rem; block-size: 2rem; padding: 0;
  flex: 0 0 auto; display: grid; place-items: center; gap: 0; }
.v7-tf-row-tools .v7-tf-scope .v7-tf-check { display: none; }
.v7-tf-row-tools .v7-tf-scope svg { margin: 0; }

/* строка Поиск + Инструменты поиска (скрин автора 28.08 22:11): инструменты справа, без своей строки */
.v7-tf-row-search .v7-tf-row-tools { margin-inline-start: 0.75rem; flex: 0 0 auto; }
.v7-tf-row-search .v7-tf-search { min-inline-size: 16rem; }
/* окно поиска сокращено (автор 22:12): инструменты сразу справа, не у края */
.v7-tf-row-search .v7-tf-search { flex: 0 1 40rem; }
.v7-tf-row-search .v7-tf-row-tools { inline-size: auto; flex: 0 0 auto; }

/* кнопки классификаторов: аббревиатура в плашке (семантических глифов у систем нет) */
.v7-tf-clsbtn { inline-size: auto; padding: 0 0.5rem; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.02em; }

/* классификаторы — только иконки 32 (требование автора 29.08), имя в подсказке */
.v7-tf-clsbtn { inline-size: 2rem; padding: 0 !important; }

/* вертикаль: ряды Инструментов/Групп/Подгрупп — строками с переносом, метка своей строкой (автор 30.08) */
.v7-tf-wrap.dock-left .v7-tf-row-tools, .v7-tf-wrap.dock-right .v7-tf-row-tools,
.v7-tf-wrap.dock-left .v7-tf-au-row, .v7-tf-wrap.dock-right .v7-tf-au-row {
  flex-direction: row !important; flex-wrap: wrap; align-items: center; gap: 0.5rem; inline-size: 100%; }
.v7-tf-wrap.dock-left .v7-tf-row-tools .v7-tf-rowlabel, .v7-tf-wrap.dock-right .v7-tf-row-tools .v7-tf-rowlabel,
.v7-tf-wrap.dock-left .v7-tf-au-row .v7-tf-rowlabel, .v7-tf-wrap.dock-right .v7-tf-au-row .v7-tf-rowlabel {
  flex-basis: 100%; }
.v7-tf-wrap.dock-left .v7-tf-au-row .v7-tf-track, .v7-tf-wrap.dock-right .v7-tf-au-row .v7-tf-track {
  display: flex !important; flex-wrap: wrap; gap: 0.5rem; inline-size: 100%; justify-content: flex-start; }
.v7-tf-wrap.dock-left .v7-tf-scope-arrow, .v7-tf-wrap.dock-right .v7-tf-scope-arrow { margin-inline: 0.125rem; }

/* неделимые группы в рядах: переносятся целиком (автор 30.08) */
.v7-tf-grp { display: inline-flex; align-items: center; gap: 0.5rem; flex: 0 0 auto; }

/* ВИДЫ ОКНА работают (автор 30.08: «кнопки компактный/раскрытый/полный не работают»):
   compact — только Поиск и Разделы; base — + Инструменты и ряды/каталог выбора; advanced — всё */
.v7-tf.view-compact .v7-tf-row-tools,
.v7-tf.view-compact .v7-tf-au-row,
.v7-tf.view-compact .v7-tf-catalog,
.v7-tf.view-compact .v7-tf-catalog-found,
.v7-tf.view-compact [data-block="CATEGORY"],
.v7-tf.view-compact .v7-tf-tzblock:not([data-tz="NAV"]),
.v7-tf.view-compact .v7-tf-scope-inline,
.v7-tf.view-compact .v7-tf-scope-arrow { display: none !important; }
.v7-tf.view-base .v7-tf-tzblock:not([data-tz="NAV"]) { display: none !important; }
.v7-tf.view-base .v7-tf-catalog, .v7-tf.view-base .v7-tf-catalog-found { display: none !important; }

/* титлбар окна: без «плашек в плашках» — группы прозрачные, разделение стрелками (правило крошек, автор 31.08) */
.v7-tf-tools > .v7-tf-mode { border: 0; padding: 0; background: none; gap: 0.25rem; }


/* ══ v7-topbar.css ══ */
/* ═══════════════════════════════════════════════════════════════════════════════════════════
   ВЕРХНЯЯ ПАНЕЛЬ: индексы в одну строку (решение автора 2026-08-23).
   Состав панели тот же, меняется только расстановка внутри полосы индексов: код и значение
   встают рядом, как в пятой версии. Размеры, отступы и шрифты — текущие седьмой версии.
   ═══════════════════════════════════════════════════════════════════════════════════════════ */

.v5-index-strip > * { flex-direction: row; align-items: center; gap: 8px; }
.v5-index-strip > * > * { white-space: nowrap; }
/* курс — в одну строку, как индексы */
.v5-rate { flex-direction: row; align-items: center; gap: 8px; white-space: nowrap; }
.v5-rate > * { white-space: nowrap; }


/* ══ v7-auth.css ══ */
/* ═══════════════════════════════════════════════════════════════════════════════════════════
   УНИВЕРСАЛЬНОЕ ОКНО-ВХОД — канонические стили ИЗ ИСТОЧНИКА v5.css (CHG-0360…0363, без правок).
   Перенесены дословно: сборка-зеркало седьмой старше этих решений и стилей не содержит. */
.v5-auth-overlay { position: fixed; inset: 0; z-index: 60; display: flex; align-items: center; justify-content: center; padding: var(--em-space-4, 1rem); background: color-mix(in srgb, var(--v5-page, #faf8f2) 64%, transparent); backdrop-filter: blur(0.1875rem); }
/* карточка в стиле наших окон: радиус нашего формата, эффект приподнятости как при перетаскивании
   окна (глубокая тень — видно, что окно сверху), без полос сверху */
/* единый размер карточки: высота фиксирована по самому высокому режиму (регистрация) — окно не «скачет»,
   логотип и начало полей всегда в одной точке, вкладки лишь добавляют поля внутри (CHG-0363) */
.v5-auth-card { position: relative; inline-size: min(20.75rem, 92vw); min-block-size: 35rem; padding: var(--em-space-6, 2rem) var(--em-space-5, 1.5rem); background: var(--v5-page, #faf8f2); border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-lg, 0.75rem); box-shadow: 0 1.125rem 3rem rgba(0, 0, 0, .28); text-align: center; }
.v5-auth-close { position: absolute; inset-block-start: 0.625rem; inset-inline-end: 0.625rem; display: inline-flex; padding: 0.375rem; border: 0; background: transparent; color: var(--v5-secondary, #6e6b64); cursor: pointer; border-radius: 0.5rem; }
.v5-auth-close:hover { background: var(--v5-page, #faf8f2); }
.v5-auth-brand { display: flex; flex-direction: column; align-items: center; gap: var(--em-space-2, 0.5rem); margin-block-end: var(--em-space-4, 1rem); }
.v5-auth-logo { inline-size: 4rem; block-size: 4rem; object-fit: contain; }
.v5-auth-word { block-size: 0.9375rem; object-fit: contain; }
.v5-auth-sub { margin: var(--em-space-1, 0.25rem) 0 0; color: var(--em-ink-brand, #1f3a5a); font-family: var(--em-font-family, Inter, system-ui, sans-serif); font-size: var(--em-font-base, 0.875rem); font-weight: var(--em-weight-semibold, 600); }
.v5-auth-tabs { display: flex; gap: 0.25rem; margin-block-end: var(--em-space-4, 1rem); border-block-end: 1px solid var(--v5-border-light, #e4e0d4); }
.v5-auth-tab { flex: 1; padding: 0.5rem 0.375rem; border: 0; background: transparent; font: inherit; font-size: var(--em-font-sm, 0.78125rem); color: var(--v5-secondary, #6e6b64); cursor: pointer; border-block-end: 0.125rem solid transparent; margin-block-end: -1px; }
.v5-auth-tab.is-active { color: var(--em-ink-brand, #1f3a5a); font-weight: 600; border-block-end-color: var(--em-ink-brand, #1f3a5a); }
.v5-auth-body { display: flex; flex-direction: column; gap: var(--em-space-3, 0.75rem); text-align: start; }
.v5-auth-rolenote { margin: 0 0 var(--em-space-1, 0.25rem); color: var(--em-ink-brand, #1f3a5a); font-size: var(--em-font-sm, 0.78125rem); }
.v5-auth-rolenote b { font-weight: var(--em-weight-semibold, 600); }
.v5-auth-field { display: flex; align-items: center; gap: var(--em-space-2, 0.5rem); padding: 0 var(--em-space-3, 0.75rem); border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-md, 0.75rem); background: var(--v5-card, #fff); }
.v5-auth-field:focus-within { border-color: var(--v5-border, #d3cec0); }
.v5-auth-field svg { inline-size: 1.125rem; block-size: 1.125rem; color: var(--v5-secondary, #6e6b64); flex: none; }
.v5-auth-field input { flex: 1; border: 0; background: transparent; padding: 0.6875rem 0; font: inherit; color: var(--v5-text, #2d3748); outline: none; }
/* убираем синий/жёлтый фон автозаполнения браузера — держим наш белый фон поля */
.v5-auth-field input:-webkit-autofill,
.v5-auth-field input:-webkit-autofill:hover,
.v5-auth-field input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--v5-text, #2d3748);
  -webkit-box-shadow: 0 0 0 62.5rem var(--v5-card, #fff) inset;
  box-shadow: 0 0 0 62.5rem var(--v5-card, #fff) inset;
  caret-color: var(--v5-text, #2d3748);
  transition: background-color 9999s ease-out 0s;
}
.v5-auth-error { margin: 0; color: #b3261e; font-size: var(--em-font-sm, 0.78125rem); }
.v5-auth-notice { margin: 0; color: var(--v5-secondary, #6e6b64); font-size: var(--em-font-sm, 0.78125rem); }
.v5-auth-submit { display: inline-flex; align-items: center; justify-content: center; gap: var(--em-space-2, 0.5rem); margin-block-start: var(--em-space-1, 0.25rem); padding: 0.75rem; border: 0; border-radius: var(--em-radius-md, 0.75rem); background: var(--em-cta, #c3d3e8); color: var(--em-cta-text, #1f3a5a); font: inherit; font-weight: 600; cursor: pointer; }
.v5-auth-submit svg { inline-size: 1.125rem; block-size: 1.125rem; }
.v5-auth-submit:hover { filter: brightness(1.04); }
.v5-auth-submit:disabled { opacity: .6; cursor: default; }
.v5-auth-alt { border: 0; background: transparent; color: var(--em-ink-brand, #1f3a5a); font: inherit; font-size: var(--em-font-sm, 0.78125rem); cursor: pointer; padding: 0.125rem; align-self: center; }
.v5-auth-alt:hover { text-decoration: underline; }
/* согласие с декларацией при регистрации */
.v5-auth-consent { font-size: var(--em-font-sm, 0.78125rem); }
.v5-auth-consent-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--em-space-2, 0.5rem); inline-size: 100%; padding: 0.625rem; border: 1px dashed var(--v5-border, #d3cec0); border-radius: var(--em-radius-md, 0.75rem); background: transparent; color: var(--em-ink-brand, #1f3a5a); font: inherit; font-size: var(--em-font-sm, 0.78125rem); cursor: pointer; }
.v5-auth-consent-btn svg { inline-size: 1rem; block-size: 1rem; }
.v5-auth-consent-ok { display: inline-flex; align-items: center; gap: 0.375rem; color: #0b806a; font-size: var(--em-font-sm, 0.78125rem); }
.v5-auth-consent-ok svg { inline-size: 1rem; block-size: 1rem; }
.v5-auth-link { border: 0; background: transparent; color: var(--em-ink-brand, #1f3a5a); font: inherit; font-size: inherit; cursor: pointer; text-decoration: underline; padding: 0; }
/* окно декларации: читаемые условия + подтверждение */
.v5-decl-overlay { position: fixed; inset: 0; z-index: 62; display: flex; align-items: center; justify-content: center; padding: var(--em-space-4, 1rem); background: color-mix(in srgb, var(--v5-page, #faf8f2) 64%, transparent); backdrop-filter: blur(0.1875rem); }
.v5-decl-card { inline-size: min(23.75rem, 94vw); padding: var(--em-space-5, 1.5rem); background: var(--v5-page, #faf8f2); border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-lg, 0.75rem); box-shadow: 0 1.125rem 3rem rgba(0, 0, 0, .28); }
.v5-decl-head { display: flex; align-items: center; justify-content: space-between; margin-block-end: var(--em-space-3, 0.75rem); }
.v5-decl-body { text-align: start; font-size: var(--em-font-sm, 0.78125rem); line-height: var(--em-line-base, 1.5); color: var(--v5-text, #2d3748); }
.v5-decl-body ul { margin: var(--em-space-2, 0.5rem) 0; padding-inline-start: 1.125rem; display: flex; flex-direction: column; gap: 0.25rem; }
.v5-decl-note { color: var(--v5-secondary, #6e6b64); }
.v5-decl-card .v5-auth-submit { inline-size: 100%; margin-block-start: var(--em-space-3, 0.75rem); }
.v5-decl-card .v5-auth-submit { inline-size: 100%; margin-block-start: var(--em-space-3, 0.75rem); }


/* ══ v7-account.css ══ */
/* Меню аккаунта — устройство пятой версии, размеры седьмой: карточка радиуса 12,
   пункты 32 высотой, значок 14/1.75, текст 12.5, подпись роли 11.5 приглушённым. */
.v7-acc {
  min-inline-size: 15rem; padding: 0.625rem 0.5rem;
  display: flex; flex-direction: column; gap: 2px;
  /* ПО ПРОТОКОЛУ CHG-0856: фон попапов = синий фирменный 3% поверх карточки */
  background: color-mix(in srgb, var(--em-ink-brand, #1f3a5a) 3%, var(--v5-card, #fff));
  border: 1px solid var(--v5-border-light, #e4e0d4);
  border-radius: var(--em-radius-lg, 0.75rem);
  box-shadow: 0 0.625rem 1.5625rem -0.3125rem rgba(45,55,72,.08), 0 0.5rem 0.625rem -0.375rem rgba(45,55,72,.05);
}
.v7-acc-role { padding: 2px 0.625rem 0.5rem; font-size: 0.71875rem; font-weight: 600; color: var(--v5-muted, #a3a099); }
.v7-acc button {
  display: flex; align-items: center; gap: 0.625rem;
  min-block-size: 2rem; padding: 0 0.625rem; border: 0; background: none; cursor: pointer;
  border-radius: var(--em-radius-sm, 0.5rem);
  font-size: 0.78125rem; font-weight: 400; color: var(--v5-text, #244154); text-align: start;
}
.v7-acc button:hover { background: color-mix(in srgb, var(--v5-text, #244154) 5%, transparent); }
.v7-acc button svg { inline-size: 0.875rem; block-size: 0.875rem; flex: 0 0 auto; }
.v7-acc-sep { inline-size: 100%; block-size: 1px; margin: 0.375rem 0; border: 0; background: var(--v5-border-light, #e4e0d4); }

/* ПО ПРОТОКОЛУ CHG-0858 п.2: флаги в раскрытом окне стран — размера флага шапки (20×15),
   местная сборка старше решения и держала их 16×12 */
.v5-region-countries button img,
.v5-region-menu img[src*="flags"],
div[class*="region"] img[src*="flags"] {
  inline-size: var(--em-flag-w, 1.25rem) !important;
  block-size: var(--em-flag-h, 0.9375rem) !important;
}


/* ПО ПРОТОКОЛУ CHG-0856: тот же синий 3% — окну стран местной сборки (оно старше решения) */
.v5-region-menu, .v5-role-menu, .v5-account-menu {
  background: color-mix(in srgb, var(--em-ink-brand, #1f3a5a) 3%, var(--v5-card, #fff));
}

/* ОКНО РОЛЕЙ (CHG-0850/0851): образец окна стран, ширина 25rem как у ролей пятой (CHG-0853) */
.v7-roles {
  inline-size: 25rem; max-block-size: 70vh; overflow-y: auto;
  display: flex; flex-direction: column; gap: 0.5rem; padding: 0.75rem;
  background: color-mix(in srgb, var(--em-ink-brand, #1f3a5a) 3%, var(--v5-card, #fff));
  border: 1px solid var(--v5-border-light, #e4e0d4);
  border-radius: var(--em-radius-lg, 0.75rem);
  box-shadow: 0 0.625rem 1.5625rem -0.3125rem rgba(45,55,72,.08), 0 0.5rem 0.625rem -0.375rem rgba(45,55,72,.05);
}
.v7-roles-search input {
  inline-size: 100%; min-block-size: 2rem; padding: 0 0.625rem;
  border: 1px solid var(--v5-border, #d8d3c6); border-radius: var(--em-radius-sm, 0.5rem);
  background: var(--v5-card, #fff); font-size: 0.78125rem; color: var(--v5-text, #244154); outline: 0;
}
.v7-roles-list { display: flex; flex-direction: column; gap: 0.25rem; }
.v7-roles-row {
  display: flex; align-items: center; gap: 0.625rem; padding: 0.5rem 0.625rem;
  border-radius: var(--em-radius-sm, 0.5rem);
}
.v7-roles-row:hover { background: color-mix(in srgb, var(--v5-text, #244154) 4%, transparent); }
.v7-roles-row.has-role { background: color-mix(in srgb, var(--em-cta, #c3d3e8) 40%, transparent); }
.v7-roles-row svg { inline-size: 0.875rem; block-size: 0.875rem; flex: 0 0 auto; }
.v7-roles-text { display: grid; gap: 1px; min-inline-size: 0; flex: 1; }
.v7-roles-text b { font-size: 0.78125rem; font-weight: 600; color: var(--v5-text, #244154); }
.v7-roles-text span { font-size: 0.71875rem; color: var(--v5-secondary, #6e6b64); }
.v7-roles-code { font-style: normal; font-size: 0.6875rem; font-weight: 600; color: var(--v5-muted, #a3a099); }
.v7-roles-row button {
  min-block-size: 1.625rem; padding: 0 0.625rem; border: 0; border-radius: var(--em-radius-sm, 0.5rem);
  background: var(--em-cta, #c3d3e8); color: var(--em-cta-text, #1f3a5a);
  font-size: 0.71875rem; font-weight: 600; cursor: pointer;
}
.v7-roles-row button:disabled { background: transparent; color: var(--v5-muted, #a3a099); cursor: default; }

/* УНИВЕРСАЛЬНОЕ ОКНО ВХОДА/РЕГИСТРАЦИИ (CHG-0360/0183/0184) — модаль, кегли версии 7 */
.v7-auth-overlay { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center;
  background: rgba(31, 58, 90, .18); }
.v7-auth { position: relative; inline-size: 26.25rem; max-inline-size: 92vw; padding: 1.25rem;
  display: flex; flex-direction: column; gap: 0.75rem;
  background: color-mix(in srgb, var(--em-ink-brand, #1f3a5a) 3%, var(--v5-card, #fff));
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-lg, 0.75rem);
  box-shadow: 0 0.625rem 1.5625rem -0.3125rem rgba(45,55,72,.12); }
.v7-auth-x { position: absolute; inset-block-start: 0.625rem; inset-inline-end: 0.625rem;
  inline-size: 1.75rem; block-size: 1.75rem; border: 0; border-radius: 0.5rem; background: none;
  cursor: pointer; color: var(--v5-secondary, #6e6b64); font-size: 0.75rem; }
.v7-auth-x:hover { background: color-mix(in srgb, var(--v5-text, #244154) 6%, transparent); }
.v7-auth-tabs { display: flex; gap: 0.25rem; }
.v7-auth-tabs button { min-block-size: 1.875rem; padding: 0 0.875rem; border: 0; cursor: pointer;
  border-radius: 6.25rem; background: none; font-size: 0.78125rem; font-weight: 600; color: var(--v5-secondary, #6e6b64); }
.v7-auth-tabs button.is-active { background: color-mix(in srgb, var(--section-accent, #d97757) 18%, transparent); color: var(--v5-text, #244154); }
.v7-auth-body { display: flex; flex-direction: column; gap: 0.625rem; }
.v7-auth-body h3 { margin: 0; font-size: 0.9375rem; font-weight: 600; color: var(--v5-text, #244154); }
.v7-auth-body p { margin: 0; font-size: 0.75rem; color: var(--v5-secondary, #6e6b64); }
.v7-auth-body label { display: grid; gap: 0.25rem; font-size: 0.75rem; font-weight: 600; color: var(--v5-secondary, #6e6b64); }
.v7-auth-body label input { min-block-size: 2.125rem; padding: 0 0.75rem;
  border: 1px solid var(--v5-border, #d8d3c6); border-radius: var(--em-radius-lg, 0.75rem);
  background: var(--v5-card, #fff); font-size: 0.78125rem; color: var(--v5-text, #244154); outline: 0; }
.v7-auth-go { min-block-size: 2.125rem; border: 0; border-radius: var(--em-radius-sm, 0.5rem); cursor: pointer;
  background: var(--em-cta, #c3d3e8); color: var(--em-cta-text, #1f3a5a); font-size: 0.78125rem; font-weight: 600; }
.v7-auth-go:hover { background: var(--em-cta-hover, #b0c5e0); }
.v7-auth-note { font-style: normal; font-size: 0.71875rem; color: var(--em-like, #d97757); }
.v7-auth-dirs { display: grid; gap: 0.375rem; }
.v7-auth-dir { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto;
  column-gap: 0.625rem; align-items: center; padding: 0.625rem 0.75rem;
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-lg, 0.75rem);
  background: var(--v5-card, #fff); cursor: pointer; }
.v7-auth-dir input { grid-row: 1 / span 2; }
.v7-auth-dir b { font-size: 0.78125rem; font-weight: 600; color: var(--v5-text, #244154); }
.v7-auth-dir span { font-size: 0.71875rem; font-weight: 400; color: var(--v5-secondary, #6e6b64); }


/* ══ v7-council.css ══ */
/* СОВЕТ НА САЙТЕ — оформление токенами версии 7, единый стандарт значков и кеглей. */

.v7-cn { display: grid; grid-template-rows: auto 1fr auto; gap: var(--em-space-2, 0.5rem);
  padding: var(--em-space-2, 0.5rem) var(--em-space-3, 0.75rem); min-block-size: 70vh; }
.v7-cn-bar { display: flex; align-items: center; gap: var(--em-space-2, 0.5rem); min-block-size: 2.5rem; }
.v7-cn-bar b { font-size: 0.875rem; font-weight: 600; color: var(--v5-text, #244154); }
.v7-cn-roster { font-size: 0.78125rem; color: var(--v5-secondary, #6e6b64); }

.v7-cn-feed { display: flex; flex-direction: column; gap: var(--em-space-2, 0.5rem);
  overflow-y: auto; padding-inline-end: 0.25rem; }

.v7-cn-msg { max-inline-size: 72%; padding: 0.5rem 0.75rem;
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-lg, 0.75rem);
  background: var(--v5-card, #fff); }
.v7-cn-msg.is-mine { align-self: flex-end;
  background: color-mix(in srgb, var(--em-cta, #c3d3e8) 42%, #fff); }
.v7-cn-msg header { display: flex; align-items: baseline; gap: 0.5rem; margin-block-end: 2px; }
.v7-cn-msg b { font-size: 0.75rem; font-weight: 600; }
.v7-cn-msg time { font-size: 0.6875rem; color: var(--v5-muted, #a3a099); }
.v7-cn-msg p { margin: 0; font-size: 0.78125rem; line-height: 1.45; color: var(--v5-text, #244154);
  white-space: pre-wrap; overflow-wrap: anywhere; }

.v7-cn-form { display: flex; gap: var(--em-space-2, 0.5rem); align-items: center; }
.v7-cn-form input { flex: 1; min-block-size: 2rem; padding: 0 0.625rem;
  border: 1px solid var(--v5-border, #d8d3c6); border-radius: var(--em-radius-sm, 0.5rem);
  background: var(--v5-card, #fff); font-size: 0.78125rem; color: var(--v5-text, #244154); outline: 0; }
.v7-cn-form input:focus { border-color: color-mix(in srgb, var(--v5-text, #244154) 35%, transparent); }
.v7-cn-form button { min-block-size: 2rem; padding: 0 0.875rem; border: 0;
  border-radius: var(--em-radius-sm, 0.5rem); cursor: pointer;
  background: var(--em-cta, #c3d3e8); color: var(--em-cta-text, #1f3a5a);
  font-size: 0.78125rem; font-weight: 600; }
.v7-cn-form button:hover { background: var(--em-cta-hover, #b0c5e0); }
.v7-cn-status { font-style: normal; font-size: 0.71875rem; color: var(--em-like, #d97757); }

/* ЦЕНТР СООБЩЕНИЙ в окне ассистента: столбец каналов слева, лента справа */
.v7-mc { display: grid; grid-template-columns: 12.5rem 1fr; gap: var(--em-space-2, 0.5rem);
  padding: var(--em-space-2, 0.5rem) var(--em-space-3, 0.75rem); min-block-size: 70vh; }
.v7-mc-list { display: flex; flex-direction: column; gap: 0.25rem;
  border-inline-end: 1px solid var(--v5-border-light, #e4e0d4); padding-inline-end: var(--em-space-2, 0.5rem); }
.v7-mc-list button { text-align: start; min-block-size: 2rem; padding: 0 0.625rem; border: 0;
  border-radius: var(--em-radius-sm, 0.5rem); background: none; cursor: pointer;
  font-size: 0.78125rem; font-weight: 400; color: var(--v5-text, #244154); }
.v7-mc-list button:hover { background: color-mix(in srgb, var(--v5-text, #244154) 5%, transparent); }
.v7-mc-list button.is-active { font-weight: 600;
  background: color-mix(in srgb, var(--section-accent, #d97757) 18%, transparent); }
.v7-mc-body { display: grid; min-inline-size: 0; }
.v7-mc-body .v7-cn { min-block-size: 100%; padding: 0; }

/* Совет внутри окна помощника: лента сжимается, поле ввода всегда видно */
.v5-ai-compact-body.v7-has-council { display: grid; min-block-size: 0; overflow: hidden; }
.v5-ai-compact-body .v7-cn, .v5-ws-main .v7-cn {
  min-block-size: 0; block-size: 100%; grid-template-rows: auto minmax(0, 1fr) auto; padding: var(--em-space-2, 0.5rem); }
.v5-ai-compact-body .v7-cn-feed, .v5-ws-main .v7-cn-feed { min-block-size: 0; }
.v5-ai-compact-body .v7-cn-msg { max-inline-size: 92%; }

/* дизайн совета = дизайн чата помощника: свои пузыри отменены, работают классы v5-chat-* */
.v7-cn-msg header { display: none; }
.v5-chat .v7-cn-bar { min-block-size: auto; }

/* ── ОКНО ПОМОЩНИКА ШИРЕ И ТЯНЕТСЯ (просьба автора 2026-08-25) ────────────────────────────────
   Плавающее окно: на половину шире прежнего (22 → 33 модуля) и растягивается за угол,
   как окно браузера; пределы держат его в рамках экрана. Боковые и нижний доки не трогаем. */
.v5-assistant.is-compact:not(.dock-right):not(.dock-left):not(.dock-bottom) {
  inline-size: calc(var(--em-space-6, 2rem) * 16.5);
  block-size: calc(var(--em-space-6, 2rem) * 16);
  min-inline-size: calc(var(--em-space-6, 2rem) * 11);
  min-block-size: calc(var(--em-space-6, 2rem) * 10);
  max-inline-size: calc(100vw - var(--v5-sidebar-collapsed, 4rem) - var(--v5-gap, 0.625rem) * 2);
  max-block-size: calc(100vh - var(--v5-header-height, 3.5rem) - var(--v5-gap, 0.625rem) * 3);
  resize: both;                 /* уголок растяжения, как у браузера */
  overflow: auto;
}

/* боковые доки помощника: тоже в полтора раза шире и тянутся по горизонтали (правка автора) */
.v5-assistant.is-compact.dock-right,
.v5-assistant.is-compact.dock-left {
  inline-size: calc(var(--em-space-6, 2rem) * 16.5);
  min-inline-size: calc(var(--em-space-6, 2rem) * 11);
  max-inline-size: calc(100vw - var(--v5-sidebar-collapsed, 4rem) - var(--v5-gap, 0.625rem) * 3);
  resize: horizontal;           /* высоту боковой док держит сам — тянется только ширина */
  overflow: auto;
}

/* текст чата свободно выделяется и копируется (жалоба автора: «не могу копировать») */
.v7-cn-msg, .v7-cn-msg p, .v7-cn-feed { user-select: text; -webkit-user-select: text; cursor: text; }

/* скрепка совета: строго по центру плашки (скрин автора 28.08 08:32 — сдвиг 5px из-за паддинга) */
.v7-cn-clip { padding: 0; display: grid; place-items: center; }
.v7-cn-clip svg { margin: 0; }

/* замок окна чата (автор 29.08): в правом верхнем углу, поверх содержимого */
.v7-cn-lock { position: absolute; top: 0.375rem; right: 0.375rem; z-index: 5;
  inline-size: 1.75rem; block-size: 1.75rem; border: 1px solid var(--v5-border-light, #e4e0d4);
  border-radius: 0.5rem; background: var(--v5-card, #fff); cursor: pointer; font-size: 0.8125rem;
  display: grid; place-items: center; padding: 0; }
.v7-cn-lock:hover { border-color: var(--section-accent, #d97757); }
.v5-assistant.dock-float { position: fixed; }
.v7-cn-lock svg { inline-size: 0.875rem; block-size: 0.875rem; }

/* стрелки-крошки между группами иконок титлбара (правило автора 29.08) */
.v7-cn-tb-arrow { color: var(--v5-muted, #a3a099); font-size: 0.8125rem; user-select: none; margin-inline: 0.125rem; align-self: center; }
.v5-window-purpose > svg:first-child { margin-inline-end: 0.375rem; }

/* стилизованная подсказка (правило автора 31.08): карточка r8, обводка-волос, кегль 12.5 */
.em-tip { position: fixed; z-index: 120; max-inline-size: 20rem; padding: 0.375rem 0.625rem;
  background: var(--v5-card, #fff); color: var(--v5-text, #244154);
  border: 1px solid var(--v5-border-light, #e4e0d4); border-radius: 0.5rem;
  box-shadow: 0 0.375rem 1rem rgba(36, 65, 84, 0.10); font-size: 0.78125rem; line-height: 1.35;
  pointer-events: none; white-space: pre-line; }

/* уголок размера: без плашки, тонкий гриппер в самом углу (автор 31.08) */
.v7-cn-resize { background: none !important; border: 0 !important; inline-size: 1.125rem !important; block-size: 1.125rem !important; box-shadow: none; color: var(--v5-muted, #a3a099); }
.v7-cn-resize:hover { color: var(--section-accent, #d97757); }
.v7-cn-resize svg { inline-size: 1rem; block-size: 1rem; }

/* ревизия hover (автор 31.08): замок и крестик ведут себя как все иконки сборки —
   мягкая плашка при наведении, без обводки-волоса */
.v7-cn-lock, .v7-cn-move { border: 0 !important; background: transparent; box-shadow: none; }
.v7-cn-lock:hover, .v7-cn-move:hover { border: 0 !important; background: color-mix(in srgb, var(--v5-text, #244154) 6%, #fff); color: var(--v5-text, #244154); }
.v7-cn-resize, .v7-cn-resize:hover { box-shadow: none; }


/* ══ v7-msg-tools.css ══ */
/* ИНСТРУМЕНТЫ В ПУЗЫРЕ СООБЩЕНИЯ СОВЕТА (З-527). Слой рядом с v7-council.css: свои классы v7-mt-*, чужих правил не переопределяет.
   Без полупрозрачности (матовые цвета через color-mix с белым), размеры в rem, значок — по оси значков окна. */
/* замер 21.09 в слое ЕВРАЗПРО (25 лент, общий лист окон atom-windows.css): значки получали 2rem, шапка не тянулась на ширину
   пузыря → правила слоя заданы с запасом специфичности и явной шириной шапки */
.v7-cn-feed .v7-cn-msg > .v5-chat-meta { display: flex; align-items: center; gap: 0.375rem; inline-size: 100%; box-sizing: border-box; }
/* !important — только на СВОИХ кнопках слоя: в окнах слоя ЕВРАЗПРО общий лист задаёт значкам 2rem с !important */
.v7-cn-feed .v7-cn-msg .v7-mt-bar .v7-mt-btn.v5-icon-button { inline-size: 1.5rem !important; block-size: 1.5rem !important; min-inline-size: 1.5rem; min-block-size: 1.5rem; padding: 0; }
.v7-cn-feed .v7-cn-msg .v7-mt-bar .v7-mt-btn.v5-icon-button svg { inline-size: var(--v5-icon-axis, 0.8125rem) !important; block-size: var(--v5-icon-axis, 0.8125rem) !important; }
/* диалоги ЕВРАЗПРО: шапка сообщения там утверждена блочной (euraspro.css, решения автора 12–13.09) — её не меняем,
   панель значков уходит вправо обтеканием */
.v7-ep-feed .v7-cn-msg > .v5-chat-meta .v7-mt-bar { float: inline-end; }
/* В-0422/В-0424 (автор 28.09): значки видны всегда, все в ряд; в узком окне — одна групповая иконка, по нажатию ряд раскрывается */
.v7-mt-bar { margin-inline-start: auto; display: inline-flex; align-items: center; gap: 0.125rem; visibility: visible; }
/* !important: правило сборки #euraspro-windows .v5-icon-button задаёт display сильнее классов слоя */
.v7-cn-feed .v7-cn-msg .v7-mt-bar > .v7-mt-btn-group { display: none !important; }
@container (max-width: 26rem) {
  .v7-cn-feed .v7-cn-msg .v7-mt-bar > .v7-mt-btn-group { display: inline-grid !important; }
  .v7-cn-feed .v7-cn-msg .v7-mt-bar:not(.is-open) > .v7-mt-btn:not(.v7-mt-btn-group) { display: none !important; }
}
.v7-mt-btn { inline-size: 1.5rem; block-size: 1.5rem; padding: 0; display: inline-grid; place-items: center;
  border: 0; border-radius: var(--em-radius-sm, 0.5rem); background: none; color: var(--v5-secondary, #6e6b64); cursor: pointer; }
.v7-mt-btn svg { inline-size: var(--v5-icon-axis, 0.8125rem); block-size: var(--v5-icon-axis, 0.8125rem); }
.v7-mt-btn:hover, .v7-mt-btn.is-current { background: color-mix(in srgb, var(--em-cta, #c3d3e8) 42%, #fff); color: var(--em-cta-text, #1f3a5a); }
.v7-mt-btn.is-confirm { background: color-mix(in srgb, var(--em-like, #d97757) 22%, #fff); color: var(--em-like, #d97757); }
.v7-mt-btn:disabled { cursor: default; color: var(--v5-muted, #a3a099); }
.v7-cn-msg.no-voice .v7-mt-bar .v7-mt-btn:first-child { color: var(--v5-muted, #a3a099); }

/* чтение по предложениям: курсор «отсюда» и читаемое предложение */
.v7-cn-feed .v7-cn-msg p .v7-mt-s { border-radius: 0.1875rem; cursor: text; }
.v7-cn-feed .v7-cn-msg p .v7-mt-s.is-cursor { box-shadow: inset 0.125rem 0 0 var(--em-cta-text, #1f3a5a); }
.v7-cn-feed .v7-cn-msg p .v7-mt-s.is-reading { background: color-mix(in srgb, var(--em-cta, #c3d3e8) 55%, #fff); }

/* ТРИ УРОВНЯ ТЕМЫ (автор 28.09.2026, В-0440/В-0445): тема › .v7-mt-obsuzhdenie (скобка обсуждения) › .v7-mt-dialog (скобка диалога-группы) ›
   пузыри столбиком. Симметрия (В-0417): все поля, зазоры и отступы скобок — одна величина --mt-шаг, линии — --mt-линия; поле темы = шаг.
   !important на полях пузыря — правило сборки для вложенных пузырей сильнее (замер 27.09). Прежние записи (вложенные гнёзда,
   глубокие уровни, ленты) сняты — В-0445. */
.v7-cn-feed .v7-cn-msg { --mt-шаг: 0.5rem; --mt-линия: 0.1875rem; }
.v7-cn-feed > .v7-cn-msg.v7-vt { padding-inline: var(--mt-шаг) !important; }
/* В-0447 (автор 28.09 «не скобка, а серая линия»): скобка диалога — как скобка пузыря: цвет темы (наследуется от её пузыря) и скругление, не серая линия */
.v7-mt-obsuzhdenie, .v7-mt-dialog { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--mt-шаг); min-inline-size: 0; max-inline-size: 100%; padding-inline-start: var(--mt-шаг); border-inline-start: var(--mt-линия) solid; border-inline-start-color: inherit; border-start-start-radius: var(--em-radius-sm, 0.5rem); border-end-start-radius: var(--em-radius-sm, 0.5rem); }
.v7-mt-obsuzhdenie { margin-block-start: var(--mt-шаг); }
/* В-0446 (автор 28.09 «между скобками старые линии»): пока диалог один, скобка обсуждения не рисуется — иначе две линии рядом;
   своя линия у обсуждения появляется только при двух и более диалогах-группах */
.v7-mt-obsuzhdenie.v7-mt-odin { padding-inline-start: 0; border-inline-start-width: 0; }   /* класс ставит v7-vetki (без :has — он дорог при пересчёте стилей); только ширина: цвет наследуется к скобке диалога */
/* замер 28.09: темы вне экрана не раскладываются и не рисуются — раскладка страницы на 500 пузырях стоила сотни мс на каждый знак */
.v7-cn-feed > .v7-cn-msg { content-visibility: auto; contain-intrinsic-size: auto 4rem; }
.v7-mt-dialog > .v7-cn-msg { max-inline-size: 100%; min-inline-size: 0; box-sizing: border-box; margin: 0; padding: var(--mt-шаг) !important;
  border-inline-start-width: var(--mt-линия); border-inline-end-width: 1px;
  background: color-mix(in srgb, var(--v5-border-light, #e4e0d4) 35%, #fff); }
/* подвал пузыря (В-0424): верхняя строка — пульт и точки (v7-vetki.css), нижняя — поле; зазоры — тот же шаг */
.v7-mt-foot { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--mt-шаг, 0.5rem); margin-block-start: var(--mt-шаг, 0.5rem); min-inline-size: 0; }
.v7-mt-foot-top:empty { display: none; }
.v7-mt-form { display: flex; align-items: flex-end; gap: 0.375rem; margin-block-start: 0; }
.v7-mt-form textarea { flex: 1; min-inline-size: 0; resize: vertical; padding: 0.375rem 0.5rem; font: inherit; font-size: 0.78125rem; line-height: 1.45;
  border: 1px solid var(--v5-border, #d8d3c6); border-radius: var(--em-radius-sm, 0.5rem); background: var(--v5-card, #fff); color: var(--v5-text, #244154); outline: 0; }
.v7-mt-form textarea:focus { border-color: var(--v5-text, #244154); }

/* ОТВЕТ НА СООБЩЕНИЕ — КАК ОСНОВНОЕ ПОЛЕ СОВЕТА (слово автора 26.09.2026, m_1790438619095_son2ts: «иконку приложить
   документ такую же, как в обычном режиме отправки, и кнопку также — весь механизм и отображение»).
   Размеры и цвета — те же, что у основного поля в euraspro.css (поле и кнопка 1.62rem, скрепка 2rem без фона,
   кнопка #c3d3e8 / #1f3a5a / 12·600, значок 16); !important по той же причине: правила окна-атома
   перекрашивают .v5-cart-button и прячут у неё текст. Поле многострочное: растёт вниз при Shift+Enter. */
.v7-mt-form.v7-mt-kak-glavnaya { align-items: center; gap: var(--em-space-2, 0.5rem); }
.v7-mt-form.v7-mt-kak-glavnaya > textarea {
  flex: 1 1 auto; min-inline-size: 0; min-height: 1.62rem !important; height: 1.62rem; max-height: 8rem; resize: none; overflow-y: auto;
  padding: 0.3rem 0.5rem !important; box-sizing: border-box; line-height: 1rem;
  border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4) !important; border-radius: var(--em-radius-sm, 0.5rem) !important;
  background: var(--v5-card, #fff) !important; box-shadow: none !important; outline: 0;
  font-family: inherit !important; font-size: 0.78125rem !important; font-weight: 400 !important; color: rgb(31, 30, 29) !important;
}
.v7-mt-form.v7-mt-kak-glavnaya > textarea:focus { border-color: color-mix(in srgb, #1f3a5a 35%, #fff) !important; }
.v7-mt-form.v7-mt-kak-glavnaya > .v7-cn-clip {
  flex: none; width: 2rem; height: 2rem; min-height: 0; padding: 0; margin: 0;
  border: 0 !important; border-radius: 0.5rem; background: transparent !important; color: #32495F !important;
  display: inline-flex !important; align-items: center; justify-content: center;
}
.v7-mt-form.v7-mt-kak-glavnaya > .v7-cn-clip svg { width: 1rem !important; height: 1rem !important; stroke-width: 1.75; }
.v7-mt-form.v7-mt-kak-glavnaya > .v5-cart-button {
  flex: none; height: 1.62rem !important; min-height: 1.62rem !important; max-height: 1.62rem; padding: 0 0.6rem !important; margin: 0;
  display: inline-flex; align-items: center; gap: 0.375rem !important; border: 0;
  border-radius: 0.5rem; background: #c3d3e8 !important; color: #1f3a5a !important;
  font-family: inherit !important; font-size: 0.75rem !important; font-weight: 600 !important; line-height: 1 !important; white-space: nowrap;
}
.v7-mt-form.v7-mt-kak-glavnaya > .v5-cart-button > span { display: inline !important; font: inherit !important; }
.v7-mt-form.v7-mt-kak-glavnaya > .v5-cart-button svg { width: 1rem !important; height: 1rem !important; stroke-width: 1.75; color: #32495F; flex: none; }
.v7-mt-form.v7-mt-kak-glavnaya > .v7-cn-status { flex: none; }

/* ПОЛЕ С ВЛОЖЕНИЯМИ (автор 26.09.2026, m_1790443563199_gtql5a): приложенный файл — плашкой внутри поля, где пишут.
   Рамка, радиус и фон — те же, что у поля основного ввода; сам textarea внутри без рамки. */
.v7-mt-form.v7-mt-kak-glavnaya > .v7-mt-pole {
  flex: 1 1 auto; min-inline-size: 0; display: flex; flex-direction: column; gap: 0.25rem; box-sizing: border-box;
  min-height: 1.62rem; padding: 0.15rem 0.5rem; cursor: text;
  border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem); background: var(--v5-card, #fff);
}
.v7-mt-form.v7-mt-kak-glavnaya > .v7-mt-pole:focus-within { border-color: color-mix(in srgb, #1f3a5a 35%, #fff); }
.v7-mt-form.v7-mt-kak-glavnaya > .v7-mt-pole > textarea { field-sizing: content;
  inline-size: 100%; min-height: 1.2rem; height: 1.2rem; max-height: 8rem; resize: none; overflow-y: auto; box-sizing: border-box;
  padding: 0.1rem 0; margin: 0; border: 0 !important; border-radius: 0; background: transparent; box-shadow: none; outline: 0;
  font-family: inherit !important; font-size: 0.78125rem; font-weight: 400; line-height: 1rem; color: rgb(31, 30, 29);
}
.v7-mt-vlozheniya { display: flex; flex-wrap: wrap; gap: 0.25rem; padding-block-start: 0.1rem; }
.v7-mt-vlozheniya[hidden] { display: none !important; }
.v7-mt-vlozh { display: inline-flex; align-items: center; gap: 0.25rem; max-inline-size: 100%; padding: 0.0625rem 0.25rem 0.0625rem 0.4375rem;
  border-radius: 0.375rem; background: #e8eef5; color: #1f3a5a; font-size: 0.6875rem; font-weight: 600; line-height: 1.1rem; }
.v7-mt-vlozh-imya { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-inline-size: 14rem; }
.v7-mt-vlozh-x { border: 0; padding: 0 0.125rem; background: transparent; color: #32495F; font: inherit; font-size: 0.8125rem; line-height: 1; cursor: pointer; }

/* ИНДИКАЦИЯ ОТВЕТОВ (автор 26.09.2026, m_1790443151082_f9kkr6): «новый ответ» — синим, «ответ вам» — тёплым.
   Матовые цвета без альфы (правило 13.09). */
.v7-mt-new { display: inline-flex; align-items: center; gap: 0.25rem; margin-inline-start: 0.375rem; font-size: 0.6875rem; font-weight: 600; color: #3f6891; white-space: nowrap; }
.v7-mt-new::before { content: ""; inline-size: 0.5rem; block-size: 0.5rem; border-radius: 50%; background: #3f6891; flex: none; }
.v7-mt-new.is-mne { color: #b4532a; }
.v7-mt-new.is-mne::before { background: #b4532a; }
.v7-cn-msg.v7-mt-flash { outline: 0.125rem solid #b4532a; outline-offset: 0.125rem; }
.v7-mt-schet { visibility: visible; display: inline-flex; align-items: center; justify-content: center; min-inline-size: 1.125rem; block-size: 1.125rem; padding: 0 0.3125rem; margin-inline-end: 0.25rem;
  border: 0; border-radius: 0.5625rem; background: #b4532a; color: #fff; font: 600 0.6875rem/1 inherit; cursor: pointer; }
.v7-mt-schet[hidden] { display: none !important; }

/* окошко срока автора (Р-028 п. 7): матовая карточка под шапкой сообщения, как окно стран */
.v7-cn-feed .v7-cn-msg > .v7-mt-menu { display: grid; gap: 0.125rem; margin: 0.25rem 0; padding: 0.25rem; background: var(--v5-card, #fff); border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); border-radius: 0.5rem; max-inline-size: 16rem; }
.v7-mt-menu-head { font-size: 0.625rem; font-weight: 600; color: var(--v5-secondary, #6e6b64); padding: 0.125rem 0.5rem; }
.v7-mt-menu-item { text-align: start; border: 0; background: transparent; padding: 0.25rem 0.5rem; border-radius: 0.375rem; font: 0.75rem/1.35 inherit; color: var(--v5-text, #1f1e1d); cursor: pointer; }
.v7-mt-menu-item:hover { background: color-mix(in srgb, var(--em-cta, #c3d3e8) 42%, #fff); }

/* ── клоны групп (Р-028 п. 2, этап 1; автор 30.09): ярлыки над диалогами темы, голова клона, окошко создания группы ── */
.v7-mt-klony { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-block: 0.125rem 0.375rem; }
.v7-mt-klon-tab { display: inline-flex; align-items: center; gap: 0.25rem; padding: 0 0.5rem; border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); border-radius: 0.375rem; background: var(--v5-card, #fff); color: #6b6355; font: inherit; font-size: 0.6875rem; line-height: 1.375rem; cursor: pointer; }
.v7-mt-klon-tab.is-current { color: #1f3a5a; border-color: #c3d3e8; background: #e8eef5; font-weight: 600; }
.v7-mt-klon-n { font-size: 0.625rem; color: #8a8175; font-variant-numeric: tabular-nums; }
.v7-mt-klon-head > p { font-size: 0.6875rem; color: #6b6355; }
.v7-cn-feed .v7-cn-msg > .v7-mt-klon-menu { gap: 0.375rem; padding: 0.375rem 0.5rem; }
.v7-mt-klon-imya { font: inherit; font-size: 0.75rem; padding: 0.25rem 0.5rem; border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem); background: var(--v5-card, #fff); color: rgb(31, 30, 29); }
.v7-mt-klon-tochki { display: flex; flex-wrap: wrap; gap: 0.375rem; align-items: center; min-block-size: 0.75rem; }
.v7-mt-klon-dot { display: inline-block; box-sizing: border-box; inline-size: 0.75rem; block-size: 0.75rem; border-radius: 50%; border: var(--v5-hairline, 1px) solid color-mix(in srgb, var(--dot, #a3a099) 60%, #fff); background: color-mix(in srgb, var(--dot, #a3a099) 18%, #fff); cursor: pointer; }
.v7-mt-klon-dot.is-on { background: var(--dot, #a3a099); border-color: var(--dot, #a3a099); }
.v7-mt-klon-ok { justify-self: start; }
.v7-mt-klon-ok:disabled { color: #a29a8c; cursor: default; }
.v7-mt-klon-status:empty { display: none; }
.v7-mt-klon-status { font-size: 0.6875rem; color: #8a8175; }

/* ── секретарь предлагает группы (этап 2): бледные ярлыки в подвале темы; возможные участники в окошке клона — пунктир ── */
.v7-mt-sekretar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem 0.375rem; margin-block: 0.25rem; font-size: 0.6875rem; color: #8a8175; }
.v7-mt-sekretar-p { display: inline-flex; align-items: center; border: var(--v5-hairline, 1px) dashed #c9c3b6; border-radius: 0.375rem; background: #faf8f2; }
.v7-mt-sekretar-btn { border: 0; background: none; padding: 0 0.125rem 0 0.5rem; font: inherit; font-size: 0.6875rem; line-height: 1.375rem; color: #6b6355; cursor: pointer; }
.v7-mt-sekretar-btn:hover { color: #1f3a5a; }
.v7-mt-sekretar-x { border: 0; background: none; padding: 0 0.375rem 0 0.25rem; font: inherit; font-size: 0.75rem; line-height: 1.375rem; color: #a29a8c; cursor: pointer; }
.v7-mt-sekretar-x:hover { color: #6b6355; }
.v7-mt-klon-dot.is-maybe { outline: var(--v5-hairline, 1px) dashed color-mix(in srgb, var(--dot, #a3a099) 70%, #fff); outline-offset: 2px; }
.v7-mt-klon-uchit { display: flex; align-items: flex-start; gap: 0.375rem; font-size: 0.6875rem; line-height: 1.3; color: #6b6355; cursor: pointer; }
.v7-mt-klon-uchit[hidden] { display: none; }
.v7-mt-klon-uchit > input { margin: 0.125rem 0 0; accent-color: #1f3a5a; }


/* ══ v7-golos.css ══ */
/* ГОЛОС ДЛЯ ВСЕЙ ИНФОРМАЦИИ (v7-golos.js, решение автора 24.10.2026): подсветка звучащего фрагмента — матовый пастельный тон, как у чтения в совете */
.v7-golos-reading { background: color-mix(in srgb, var(--em-cta, #c3d3e8) 55%, #fff); border-radius: 0.1875rem; }


/* ══ v7-vetki.css ══ */
/* ТРИ УРОВНЯ ТЕМЫ (автор 28.09.2026, В-0440/В-0445; шапка — В-0424 поверх 24.09; симметрия — В-0417). Скобки уровней и подвал —
   v7-msg-tools.css (--mt-шаг 0.5rem — все поля, зазоры, отступы; --mt-линия — линии скобок). Здесь: шапка в одну строку, крошка
   «↳ #N», сжатие пузырей до шапки, текст темы строкой, точки участников и список «+». Матовые цвета без полупрозрачности.
   !important — только на своих кнопках (общий лист окон даёт значкам 2rem с !important), на сжатии (правила пузырей закреплены
   так же) и на раскладке шапки (шапка диалогов ЕВРАЗПРО задана блочной в euraspro.css). */

/* шапка: одна строка всегда; переноса нет, лишнее режется краем шапки, № / вид / часы ужимаются многоточием, значки не ужимаются */
.v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head { display: flex !important; align-items: center; gap: 0.125rem; flex-wrap: nowrap !important; min-inline-size: 0; max-inline-size: 100%; overflow: hidden; box-sizing: border-box; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-cn-who { display: none !important; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-svetofor, .v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-chasy-sep { flex: none; white-space: nowrap; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-vid, .v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-chasy, .v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-cn-when { flex: 0 1 auto; min-inline-size: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-mt-bar { float: none; margin-inline-start: auto; order: 2; flex: none; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-mt-new { order: 1; margin-inline-start: auto; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-mt-new + .v7-mt-bar { margin-inline-start: 0.25rem; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta.v7-vt-head > .v7-ava { flex: none; margin-inline-end: 0; }
.v7-vt-sep { flex: none; color: var(--v5-muted, #a3a099); font-size: 0.75rem; line-height: 1; }
.v7-vt-sep[hidden] { display: none; }
/* крошка «↳ #N» — ответ на конкретное сообщение диалога; нажатие показывает его */
.v7-vt-otvet { flex: none; font-size: 0.625rem; font-weight: 600; color: var(--em-cta-text, #1f3a5a); padding: 0 0.25rem; border-radius: 0.25rem; background: color-mix(in srgb, var(--em-cta, #c3d3e8) 45%, #fff); cursor: pointer; white-space: nowrap; }
.v7-vt-otvet:hover { background: var(--em-cta, #c3d3e8); }

/* сжатый пузырь: остаётся одна шапка (В-0437); нажатие по шапке раскрывает */
.v7-cn-feed .v7-cn-msg.v7-vt-szhat > :not(.v5-chat-meta) { display: none; }
.v7-cn-feed .v7-cn-msg.v7-vt-szhat { padding-block: 0.125rem !important; }
.v7-cn-feed .v7-mt-dialog > .v7-cn-msg > .v5-chat-meta { cursor: pointer; }
/* текст темы с ответами — одной строкой, раскрывается нажатием (В-0428/В-0435) */
.v7-cn-feed .v7-cn-msg.v7-vt-svernut > p { display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden; cursor: pointer; }
.v7-cn-feed .v7-cn-msg.v7-vt:not(.v7-vt-svernut) > p[title] { cursor: pointer; }
.v7-cn-feed .v7-cn-msg.v7-vt:focus { outline: 0; }
.v7-cn-msg.v7-vt-flash { box-shadow: 0 0 0 2px var(--em-cta, #c3d3e8) !important; }

/* подвал темы, верхняя строка: точки участников › «+» */
/* подвал темы: счёты участников (Р-028 п. 4); точки с волосом, чуть крупнее. Нить по середине строки убрана (автор 29.09, m_1790697519645_d3mglw) */
.v7-vt-foot-top { position: relative; display: flex; align-items: center; gap: 0.375rem; min-inline-size: 0; max-inline-size: 100%; min-block-size: 1.5rem; }
.v7-vt-foot-top > .v7-vt-sep { flex: none; padding-inline: 0.125rem; }
.v7-vt-dots { position: relative; display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.375rem; flex: 0 1 auto; min-inline-size: 0; padding-inline: 0.125rem; }   /* точки, не уместившиеся на нити, идут на следующую — как второй ряд счётов */
.v7-vt-dots > .v7-vt-dot { display: inline-block; flex: none; box-sizing: border-box; inline-size: 0.625rem; block-size: 0.625rem; border-radius: 50%; border: var(--v5-hairline, 1px) solid color-mix(in srgb, var(--em-ink-brand, #1f3a5a) 30%, #fff); background: color-mix(in srgb, var(--dot, #a3a099) 35%, #fff); cursor: default; transition: transform 260ms ease; }
.v7-vt-dots > .v7-vt-dot[role="button"] { cursor: pointer; }
.v7-vt-dots > .v7-vt-dot.is-on { background: var(--dot, #a3a099); }
.v7-vt-dots > .v7-vt-dot.is-here { outline: var(--v5-hairline, 1px) solid var(--dot, #a3a099); outline-offset: 2px; }
.v7-vt-kandidaty > .v7-vt-dot { background: color-mix(in srgb, var(--dot, #a3a099) 18%, #fff); }
.v7-vt-kandidaty > .v7-vt-dot.is-on { background: color-mix(in srgb, var(--dot, #a3a099) 60%, #fff); }
.v7-cn-feed .v7-cn-msg .v7-vt-btn.v5-icon-button { inline-size: 1.5rem !important; block-size: 1.5rem !important; min-inline-size: 1.5rem !important; min-block-size: 1.5rem !important; padding: 0 !important; }
.v7-cn-feed .v7-cn-msg .v7-vt-btn.v5-icon-button svg { inline-size: var(--v5-icon-axis, 0.8125rem) !important; block-size: var(--v5-icon-axis, 0.8125rem) !important; }
/* крошка адресата в поле ответа темы («↳ в ответ на #N», крестик — снова ответ теме) */
.v7-mt-komu { flex: none; display: inline-flex; align-items: center; gap: 0.25rem; max-inline-size: 40%; padding: 0.0625rem 0.25rem 0.0625rem 0.4375rem; border-radius: 0.375rem; background: #e8eef5; color: #1f3a5a; font-size: 0.6875rem; font-weight: 600; line-height: 1.1rem; }
.v7-mt-komu[hidden] { display: none; }
.v7-mt-komu-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.v7-mt-komu-x { border: 0; padding: 0 0.125rem; background: transparent; color: #32495F; font: inherit; font-size: 0.8125rem; line-height: 1; cursor: pointer; }
/* список участников по «+» (В-0427): в потоке подвала между верхней строкой и полем */


/* ══ v7-hdr-merge.css ══ */
/* ОБЪЕДИНЕНИЕ ШАПКИ И ФИЛЬТРА (решение автора 10.09, CHG-1130): существующие элементы,
   ничего нового не рисуем. Индексы пока убраны; фильтр состыкован с полосой шапки в один блок. */
/* 1) индексы и их пульт скрыты */
.v5-topbar .v7-ticker, .v5-topbar .v7-tick-pult { display: none; }
/* 2) фильтр примыкает к шапке: без зазора, стык без двойной линии и без верхних углов */
.v7-tf-wrap { margin-top: 0; } /* сдвиг больше не нужен: окно фильтра скрыто, зазор области держит JS-отступ main */ /* смыкание с полосой шапки в единый блок */
.v7-tf-wrap .v5-filter-window { border-top-left-radius: 0; border-top-right-radius: 0; border-top: none; }
/* полоса шапки без нижних углов — единый блок с фильтром */

/* 3) докинг фильтра отменён (автор 10.09): фильтр живёт только в шапке */
[title="Закрепить сверху"], [title="Закрепить снизу"],
[title="Закрепить слева"], [title="Закрепить справа"] { display: none; } /* CHG-1131: докинг отменён — скрыт и в ленте шапки */
/* 4) УТВЕРЖДЁННОЕ ЗАКРЫТОЕ СОСТОЯНИЕ (CHG-1122 п.1): шапка максимально узкая — видна только
   строка поиска с инструментами; ряды разделов раскрываются вниз кликом по «Фильтр», как лента Word */
.v7-tf-wrap:not(.is-open) .v7-tf-body > .v7-tf-sections:not(.v7-tf-row-search) { display: none; }
.v7-tf-bar { cursor: pointer; user-select: none; }
.v7-tf-wrap.is-open .v7-tf-bar { color: #b46a55; }
/* 5) ШАПКА = ОДИН ЭЛЕМЕНТ (автор 10.09): топбар и фильтр — единый двухстрочный блок:
   строка 1 — регион и службы (тикер убран), строка 2 — Фильтр·Поиск·Инструменты; без швов */
/* высота полосы = ширина собранного левого меню (64px) с учётом отступа 10px: 10+54=64 (автор 10.09, CHG-1133) */
.v5-topbar { min-height: 3.375rem; height: 3.375rem; display: flex; align-items: center; gap: 0.75rem; box-shadow: none; border-bottom: 1px solid rgba(31,58,90,.30); }
.v7-tf-wrap .v5-filter-window { border-top: none; box-shadow: none; }

/* 6) строка «Поиск › поле · Инструменты › иконки» ЖИВЁТ В ШАПКЕ на месте индексов (автор 10.09):
   живой узел фильтра со всем функционалом, переносит v7-hdr-merge.js */
.v5-topbar > .v7-tf-row-search { flex: 1 1 0; min-width: 0; display: flex; align-items: center; flex-wrap: nowrap; overflow: hidden; background: none; border: none; box-shadow: none; padding: 0; margin: 0; }
.v5-topbar > .v7-tf-row-search .v5-search, .v5-topbar > .v7-tf-row-search input { min-width: 0; }
/* 7) окошко группы = ТОЧНО стилистика окна стран (классы v5-region-menu штатные); наше — только позиция */
.v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel { cursor: pointer; }
.v7-hdr-pop { position: fixed; z-index: 1000; font-size: 12px; padding: 8px; } /* единый вид окошек = эталон окна стран: шрифт 12, поле 8 */
.v7-hdr-pop .v5-region-cont.is-active { color: #b46a55; }
/* 8) автор 10.09: в полосе — [режим отображения] › [Фильтр Конфигуратор] › [Инструменты ›];
   остальные группы и штатные стрелки свёрнуты в окошки (не удалены) */
.v5-topbar .v7-tf-row-tools > .v7-tf-grp:not(.v7-hdr-keep):not(.v7-hdr-bartools) { display: none; }
.v5-topbar .v7-tf-row-tools > .v7-tf-scope-arrow:not(.v7-hdr-arrow) { display: none; }
.v5-topbar .v7-tf-row-tools > .v7-tf-grp.v7-hdr-keep { display: flex; align-items: center; gap: 0.25rem; }
/* 9) автор 10.09: окошки — ширина под контекст, иконки строк одного размера */
.v7-hdr-pop { width: max-content; min-width: 13rem; max-width: 26rem; }
.v7-hdr-pop .v5-region-cont svg, .v7-hdr-pop .v5-region-cont .v7-tf-code { width: 1rem; height: 1rem; flex: none; font-size: 0.625rem; }
/* 10) автор 10.09: «Инструменты» — только иконка, как остальные (надпись в tooltip) */
.v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel span { display: none; }
/* 11) автор 10.09: окно флагов вниз без скролла (сколько влезает), первый столбик флагов по оси иконки региона */
.v5-region-menu { max-height: calc(100vh - 5.25rem); } /* до нижней границы экрана (автор: внизу ещё место) */
.v5-region-menu .v5-region-countries { margin-left: -2px; }
/* 12) автор 10.09: подпись «Поиск ›» убрана (иконка остаётся), после поля — кнопка «Найти» */
.v5-topbar > .v7-tf-row-search > .v7-tf-rowlabel { display: none; } /* автор: лупа уже есть фоном внутри поля */
.v7-hdr-find { font: inherit; font-size: 0.78125rem; padding: 0.25rem 0.625rem; border: 1px solid rgba(211,206,192,.9); border-radius: 0.5rem; background: none; color: inherit; cursor: pointer; flex: none; }
.v7-hdr-find:hover { background: rgba(180,106,85,.08); }
.v5-region-menu .v5-region-countries { grid-template-columns: repeat(7, minmax(0, 1fr)); } /* +1 колонка — контент короче, скролл не нужен (автор 10.09) */
/* автор 10.09: за флагом обрезки нечитаемы — оставляем флаг+код, полное имя в tooltip */
.v5-region-menu .v5-region-countries button span { display: none; }
/* 13) утверждённые стили элементов (автор 10.09, выговор принят):
   «Найти» = высота/радиус/шрифт кнопки пользователя; плашка Ассистента квадратная с закруглением 8px */
.v7-hdr-find { height: 2rem; padding: 0 0.75rem; border-radius: 0.5rem; font-size: 0.75rem; display: inline-flex; align-items: center; }
.v5-ai-button.is-open { border-radius: 0.5rem !important; }
/* автор 10.09: кнопка называется «Поиск» и выделена светом (утверждённая CTA-гамма, как плашка Ассистента) */
.v7-hdr-find { background: var(--em-cta, #c3d3e8); color: var(--em-ink-brand, #1f3a5a); border: none; }
/* 14) инструменты бара «Фильтр» живут в полосе шапки группой за стрелочкой */
.v7-hdr-bartools { display: flex; align-items: center; gap: 0.25rem; flex: none; }
/* 15) окошко сохранённых поисков: дата приглушена, удаление маленьким крестиком справа */
.v7-hdr-pop .v5-region-cont i { margin-left: auto; font-style: normal; opacity: .55; font-size: 0.6875rem; }
.v7-hdr-pop .v5-region-cont b { font-weight: 400; opacity: .45; padding: 0 0.25rem; }
.v7-hdr-pop .v5-region-cont b:hover { opacity: 1; color: #b46a55; }
/* автор 10.09: лента и полоса — ОДНО окно: шов закрыт, активная вкладка при открытой ленте подсвечена */
.v7-tf-wrap.is-open ~ * {}

.v7-tf-wrap.is-open + * {}
.v7-hdr-keep button.is-active { background: rgba(217,119,87,.12); color: #b46a55; border-radius: 0.5rem; }
/* штатный скрипт задаёт wrap строку 78px под старый состав (со строкой поиска, которая теперь в полосе) — возвращаем авторазмер, лента ложится встык */
.v7-tf-wrap { grid-template-rows: none !important; }
/* фактический контролёр положения ленты — липкий top самого окна фильтра: ставим встык к полосе (полоса = отступ 0.625rem + высота 3.375rem = 4rem) */
.v7-tf-wrap .v5-filter-window { top: 4rem !important; }
/* 16) ЛЕНТА ВНУТРИ ОКНА ШАПКИ (автор 10.09: не соединять два окна — одно окно):
   штатное окно фильтра скрыто, его bar и ряды живут в .v7-hdr-ribbon внутри .v5-topbar */
.v7-tf-wrap .v5-filter-window { display: none !important; }
.v5-topbar { flex-wrap: wrap; height: auto; align-content: flex-start; }
.v5-topbar > .v7-hdr-ribbon { flex: 1 1 100%; width: 100%; display: flex; flex-direction: column; gap: 0.125rem; padding: 0; } /* автор 11.09: свой нижний отступ ленты давал низу 17 против 9 сверху — низ теперь равен верху (паддинг шапки) */
/* автор 11.09 «высота строк разная относительно шапки»: ячейка строки = волос→волос 48 (40+2×4),
   а крайние ячейки были 53 из-за паддинга окна 8 — вертикальные паддинги шапки тоже 4: ВСЕ ячейки 48 */
.v5-app .v5-topbar { padding-top: 4px; padding-bottom: 4px; }
/* закрытая лента: ряды скрыты, остаётся только полоса */
.v7-tf-wrap:not(.is-open) ~ * .v7-hdr-ribbon { }
.v5-topbar > .v7-hdr-ribbon .v7-tf-sections { display: flex; align-items: center; gap: 0.375rem; flex-wrap: wrap; }
.v5-topbar > .v7-hdr-ribbon .v7-tf-bar { display: flex; align-items: center; }
/* видимость ленты управляется флагом is-open на wrap (стоит в потоке) */
body:has(.v7-tf-wrap:not(.is-open)) .v5-topbar > .v7-hdr-ribbon { display: none; }
/* правило 4 (старое скрытие рядов вне is-open) больше не нужно для ленты — ряды в полосе */
.v5-topbar > .v7-hdr-ribbon .v7-tf-sections:not(.v7-tf-row-search) { display: flex; }
/* автор 10.09: у окна шапки закругление ВСЕХ углов (штатный радиус 12) */
.v5-topbar { border-radius: 0.75rem; }
/* 17) CHG-1138: строка «Сохранённое» в шапке + крошки + предпросмотр + пустые рамки */
.v5-topbar > .v7-hdr-saved { flex: 1 1 100%; width: 100%; display: flex; align-items: center; gap: 0.5rem; padding: 0.25rem 0 0.5rem; overflow-x: auto; scrollbar-width: thin; }
.v7-hdr-saved-label { display: inline-flex; align-items: center; gap: 0.375rem; font-size: 0.78125rem; color: #b46a55; flex: none; }
.v7-hdr-saved-label svg { width: 1rem; height: 1rem; }
.v7-hdr-chip { display: inline-flex; align-items: center; gap: 0.375rem; height: 2rem; padding: 0 0.625rem; border: none; border-radius: 0.5rem; background: none; font: inherit; font-size: 0.78125rem; cursor: pointer; flex: none; } /* автор: не выделенные — как плашки иконок, подсветка только при наведении */
.v7-hdr-chip svg { width: 0.875rem; height: 0.875rem; }
.v7-hdr-chip b { font-weight: 400; opacity: .45; }
.v7-hdr-chip b:hover { opacity: 1; color: #b46a55; }
.v7-hdr-chip:hover { background: rgba(180,106,85,.08); }
.v7-hdr-chip.is-add { background: var(--em-cta, #c3d3e8); color: var(--em-ink-brand, #1f3a5a); border: none; }
.v7-hdr-preview { width: 24rem; height: 15rem; } /* пустая рамка предпросмотра — форма обсуждается */
.v7-hdr-frames { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.625rem; width: 100%; margin-bottom: 0.625rem; }
.v7-hdr-frame { aspect-ratio: 16 / 10; border: 1px dashed rgba(31,58,90,.35); border-radius: 0.75rem; background: rgba(255,255,255,.6); }
.v7-hdr-frame.is-wide { grid-column: 1 / -1; aspect-ratio: 32 / 10; }
.v7-tf-area > .v7-hdr-frames { grid-column: 1 / -1; justify-self: center; width: calc(100vw - 8.5rem); max-width: 94.75rem; } /* во всю рабочую область (колонка области узкая, 220px под заглушку) */
/* 18) строка Сохранённого: без скролла — стрелки как у пульта; дорожка прячет прокрутку */
.v5-topbar > .v7-hdr-saved { overflow: visible; }
.v7-hdr-saved-track { display: flex; align-items: center; gap: 0.5rem; overflow-x: auto; scrollbar-width: none; flex: 1 1 auto; min-width: 0; }
.v7-hdr-saved-track::-webkit-scrollbar { display: none; }
.v7-hdr-saved-nav { flex: none; width: 1.5rem; height: 2rem; border: none; background: none; cursor: pointer; font-size: 1rem; color: inherit; border-radius: 0.5rem; }
.v7-hdr-saved-nav:hover { background: rgba(180,106,85,.08); }


/* пустой атом: img без src рисуют артефакт сломанной картинки — прячем, слот остаётся пустым */
#euraspro-windows img[src=""], #euraspro-windows img:not([src]) { visibility: hidden; }
/* пустой атом: и штатная фото-заглушка (Эйнштейн) скрыта — окно без данных значит без фото */
#euraspro-windows .v5-product-window img { display: none !important; } /* пустой атом: НИКАКИХ фото-заглушек нигде (и в галерее wide) */

/* 22) волос только над ПЕРВОЙ строкой ленты (автор: полосы между рядами не нужны) */
.v5-topbar > .v7-hdr-ribbon > *:first-child { border-top: 1px solid rgba(31,58,90,.16); padding-top: 0; }
.v5-topbar > .v7-hdr-saved { border-top: 1px solid rgba(31,58,90,.16); }

/* КАНОН V5 (ревизия V5-WINDOWS-FINAL-STATE, изучено 10.09 по команде автора): сетка и формы окон —
   ШТАТНЫЕ правила v5.css бандла (5 колонн --v5-n, плитка 1:1, wide/full весь ряд, высоты от --v5-tile-h).
   Наши прежние переопределения сетки/пропорций удалены как самодеятельность. */
#euraspro-windows .v5-home-line { display: block; }
/* рамки сохранённого поиска — по канону плитки: 5 в ряд, квадрат */
.v7-hdr-frames { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.v7-hdr-frame { aspect-ratio: 1 / 1; }
/* ПОСЛЕДНЕЕ РЕШЕНИЕ автора (10.09): в ряду 4 окна — задаём штатной переменной сетки, механика V5 не тронута */
html body #euraspro-windows, html body #euraspro-windows .v5-workspace-grid { --v5-n: 5 !important; --v5-tile: calc((100vw - 8.25rem - 0.25rem) / 5); } /* автор 11.09: возврат к канону 5 в ряду */ /* та же штатная формула колонны, только /4; повышенная специфичность — бандл-css грузится позже */
/* плитка атома заполняет свою колонку (4-колоночная сетка), высота по штатному 1:1;
   реальная высота уходит в --v5-tile-h штатным замером — wide/full получают её же */
html body #euraspro-windows .v5-product-window.mode-tile { inline-size: 100%; block-size: auto; }
/* обёртка ряда ленты со стрелками (как ряд «Отрасль» V5) */
.v7-hdr-rowwrap { display: flex; align-items: center; gap: 0.25rem; }
.v7-hdr-rowwrap > .v7-tf-sections { flex: 1 1 auto; min-width: 0; overflow-x: auto; scrollbar-width: none; border-top: none; padding-top: 0; }
.v7-hdr-rowwrap > .v7-tf-sections::-webkit-scrollbar { display: none; }
/* стрелка-сирота в строке «Фильтр» (сбивала с толку и закрывала ленту) — скрыта */
.v7-hdr-ribbon .v7-tf-bar .v7-tf-scope-arrow, .v7-hdr-ribbon .v7-tf-bar > svg.lucide-chevron-right { display: none; }
/* окно Автора у первой строки полосы — не съезжает с лентой (CSS important бьёт inline top штатного скрипта) */
.v7-acc { top: 4.0625rem !important; } /* ревизия 11.09: единый якорь окошек = низ первой строки (55) + 10 = 65 */
/* строка Фильтра с рядом Разделов внутри: дорожка занимает свободное место, ужата по высоте */
.v7-hdr-inbar { flex: 0 1 auto; min-width: 0; max-width: 62%; } /* по контенту — крошки пути идут СРАЗУ после группы разделов */
.v7-hdr-ribbon .v7-tf-bar { gap: 0.5rem; }
/* автор 11.09: разделитель-волос ЕДИНООБРАЗНО над КАЖДОЙ строкой ленты */
.v7-hdr-ribbon .v7-tf-sections, .v7-hdr-ribbon .v7-hdr-rowwrap, .v7-hdr-ribbon .v7-tf-bar { box-shadow: none; border: none; }
/* автор 11.09: МЕЖСТРОЧНЫЕ РАССТОЯНИЯ ленты одинаковые — колонка строк с единым зазором 0.5rem
   (как зазор полоса→бар от .v5-topbar); без этого бар→ряд и ряд→ряд слипались в 0 */
.v5-topbar > .v7-hdr-ribbon { display: flex; flex-direction: column; align-items: stretch; gap: 0.5rem; }
.v5-topbar > .v7-hdr-ribbon > * { border-top: 1px solid rgba(31,58,90,.16); padding-top: 0; }
.v5-topbar > .v7-hdr-saved { border-top: 1px solid rgba(31,58,90,.16); padding-top: 0; }
/* крошки пути после группы разделов — штатный вид <i> из крошки */
.v7-hdr-ribbon .v7-tf-bar > i { font-style: normal; opacity: .8; white-space: nowrap; }
/* стрелки прокрутки: скрытые (hidden) реально скрыты — класс кнопки перебивал атрибут */
.v7-hdr-saved-nav[hidden] { display: none !important; }
/* поле поиска уже (автор 10.09 п.1) */
.v5-topbar .v7-tf-search { flex: 0 1 20rem; min-width: 9rem; }
/* робот-подсказчик: включённый — терракотовая плашка; окошко печати текста */
.v7-hdr-robot.is-on { background: rgba(217,119,87,.12); color: #b46a55; border-radius: 0.5rem; }
.v7-hdr-tip { max-width: 21rem; min-width: 12rem; padding: 8px !important; font-size: 12px; line-height: 1.5; }
/* тумблер функций окон: выключено — «спокойный просмотр»: служебные элементы окон скрыты */
.v7-hdr-winfn.is-on { background: rgba(217,119,87,.12); color: #b46a55; border-radius: 0.5rem; }
#euraspro-windows.em-calm .v5-win-nav, #euraspro-windows.em-calm .v5-tile-bar, #euraspro-windows.em-calm .v5-window-controls { display: none !important; }
.v7-hdr-tip b { display: block; margin-bottom: 0.25rem; font-size: 0.8125rem; }
/* автор 11.09: строка Сохранённого — ровная, штатные цвета, без самодеятельности */
.v7-hdr-saveNow { width: 2rem; height: 2rem; border-radius: 0.5rem; }
.v7-hdr-saveNow svg { width: 1rem; height: 1rem; }
.v7-hdr-saveNow.is-done { background: rgba(217,119,87,.12); color: #b46a55; }
.v7-hdr-saved-label { color: inherit; font-size: 0.78125rem; }
.v7-hdr-chip { height: 2rem; font-size: 0.78125rem; color: inherit; gap: 0.375rem; }
.v7-hdr-chip i { font-style: normal; color: #6e6b64; opacity: 1; font-size: 0.6875rem; }
.v7-hdr-chip b { color: #6e6b64; opacity: 1; }
.v7-hdr-chip b:hover { color: #b46a55; }
/* автор 11.09: ЕДИНАЯ высота и отступы всех строк ленты */
.v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-ribbon > * { min-height: 2.5rem; align-items: center; padding-top: 0; padding-bottom: 0; box-sizing: border-box; }
.v7-hdr-ribbon .v7-tf-sections { min-height: 2rem; }
.v7-hdr-ribbon .v7-tf-rowlabel { display: inline-flex; align-items: center; gap: 0.375rem; }
.v7-hdr-ribbon .v7-tf-rowlabel svg { flex: none; }
/* автор 11.09: ЖЁСТКО одна высота 40 у каждой строки ленты; кнопки рядов 32 */
.v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-ribbon > * { height: 2.5rem; min-height: 2.5rem; max-height: 2.5rem; overflow: visible; }
.v7-hdr-ribbon .v7-tf-sections .v7-tf-sec, .v7-hdr-ribbon .v7-tf-sections .v5-icon-button { width: 2rem; height: 2rem; }
.v7-hdr-voice.is-on { background: rgba(217,119,87,.12); color: #b46a55; border-radius: 0.5rem; }
/* микро-окошко подсказки: наш стиль, компактное */
.v7-hdr-tt { padding: 6px 10px !important; font-size: 12px; border-radius: 8px !important; max-width: 16rem; pointer-events: none; }
/* автор (повторно): у окна шапки ПОЛНАЯ волос-обводка, включая нижнюю границу */
.v5-topbar { border-bottom: 1px solid rgba(31,58,90,.30); }
/* автор 11.09: закрепляется ТОЛЬКО ОКНО — липнет верхним слоем в своей ячейке, область не трогаем */
#euraspro-windows .v5-product-window.is-pinned { position: sticky; top: var(--em-hdr-bottom, 4.625rem); z-index: 30; }
/* автор 11.09: ЕДИНАЯ вертикаль и отступы всех строк шапки/ленты:
   контент по центру, паддинги сверху/снизу 0 (высота держит строку), зазор между иконками везде 0.375rem */
.v5-topbar, .v5-topbar > .v7-tf-row-search { gap: 0.5rem; }
.v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-ribbon > *, .v7-hdr-rowwrap, .v7-hdr-inbar,
.v7-hdr-ribbon .v7-tf-sections, .v7-hdr-saved-track, .v7-tf-row-tools, .v7-hdr-keep, .v7-hdr-bartools {
  display: flex !important; align-items: center; gap: 0.375rem; padding-block: 0;
}
.v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-ribbon > * { height: 2.5rem; }
/* НОРМАЛИЗАЦИЯ ОСЕЙ (автор 11.09 «всё по осям»): единые оси для ВСЕХ строк шапки/ленты.
   Строка 40, элемент 32, иконка 16, зазор 8 — без исключений. */
.v5-topbar :is(.v7-tf-bar, .v7-tf-row-tools, .v7-hdr-inbar, .v7-hdr-bartools, .v7-hdr-keep, .v7-tf-sections, .v7-hdr-saved-track, .v7-hdr-rowwrap, .v7-hdr-saved) {
  display: flex !important; align-items: center; gap: 0.5rem !important;
  padding: 0; margin: 0; min-height: 2.5rem; height: 2.5rem; box-sizing: border-box;
}
.v5-topbar :is(.v7-tf-bar, .v7-tf-row-tools, .v7-hdr-inbar, .v7-hdr-bartools, .v7-hdr-keep, .v7-tf-sections, .v7-hdr-saved-track, .v7-hdr-rowwrap, .v7-hdr-saved) > * { margin: 0; }
.v5-topbar .v7-tf-scope-arrow { width: 1rem; display: inline-flex; justify-content: center; flex: none; }
.v5-topbar .v5-icon-button, .v5-topbar .v7-tf-sec, .v7-hdr-ribbon .v7-tf-sec { width: 2rem; height: 2rem; }
.v5-topbar > .v7-hdr-ribbon { gap: 0.5rem; } /* автор 11.09: межстрочные ленты ОДИНАКОВЫЕ = зазор 8 как полоса→бар */
/* скрытые глубиной ряды РЕАЛЬНО скрыты: норм-блок выше ставил display:flex !important и перебивал [hidden] —
   потому «Компактный/Базовый» внешне ничего не сворачивали («иконки глубины не работают») */
.v5-topbar .v7-hdr-rowwrap[hidden] { display: none !important; }
/* строка «Характеристики» — КАК ПОДГРУППЫ (автор 11.09): ряд иконок разделов, высота 40;
   поля конкретного раздела открываются окном снизу (.v7-hdr-charpop) табличной формой */
.v5-topbar .v7-hdr-attrs { height: 2.5rem; min-height: 2.5rem; max-height: 2.5rem; align-items: center; }
.v5-topbar .v7-hdr-attrs > .v7-tf-body[hidden], .v5-topbar .v7-hdr-attrs > .v7-tf-attrs[hidden] { display: none !important; }
.v7-hdr-charrow { display: flex !important; align-items: center; gap: 0.5rem !important; overflow-x: auto; scrollbar-width: none; }
.v7-hdr-charrow::-webkit-scrollbar { display: none; }
/* пояснение в строке «Характеристики», когда у ветки нет размеченных характеристик (автор 11.09) */
.v7-hdr-charnone { font-size: 12.5px; color: #6e6b64; white-space: nowrap; }
.v5-topbar .v7-hdr-attrs > .v7-tf-attrs { display: flex; align-items: center; height: 2rem; }

/* ПАНЕЛЬ РАЗДЕЛА ХАРАКТЕРИСТИК (автор 11.09): раскрывается ВНУТРИ тела фильтра под строкой
   «Характеристики» — не отдельное окно; высота по содержимому, поля столбиками */
.v5-topbar .v7-hdr-charpanel {
  height: auto !important; min-height: 2.5rem !important; max-height: none !important;
  align-items: flex-start !important; padding-block: 0.25rem !important;
}
.v5-topbar .v7-hdr-charpanel > .v7-hdr-charpanel-head {
  flex: none; height: 2rem; display: inline-flex; align-items: center;
  font-size: 12.5px; color: #6e6b64; white-space: nowrap;
}
.v5-topbar .v7-hdr-charpanel > .v7-tf-attrs {
  flex: 1 1 auto; min-width: 0;
  display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.25rem 0.75rem; align-items: center; height: auto !important;
}
.v7-hdr-charpanel .v7-tf-attrs > label { display: flex !important; align-items: center; gap: 0.375rem; min-height: 2rem; margin: 0; overflow: hidden; }
.v7-hdr-charpanel .v7-tf-attrs > label > span:first-child { flex: 0 1 auto; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 12.5px; }
.v7-hdr-charpanel .v7-tf-attrs input, .v7-hdr-charpanel .v7-tf-attrs select { height: 2rem; min-width: 0; flex: 1 1 3rem; }
.v7-hdr-charpanel .v7-tf-attrs input[type="checkbox"] { width: 1rem; height: 1rem; flex: none; order: -1; }
.v7-hdr-charpanel .v7-tf-attr-range { display: inline-flex; gap: 0.25rem; flex: 1 1 4rem; min-width: 0; }
.v7-hdr-charpanel .v7-tf-attr-range input { width: 100%; }
/* полировка панели: заголовок на оси меток строк и по верхней линии полей (автор 11.09) */
.v5-topbar .v7-hdr-charpanel > .v7-hdr-charpanel-head { align-self: flex-start; }

/* ЧЕТЫРЕ СОСТОЯНИЯ ГЛУБИНЫ (автор 12.09): вместо трёх штатных иконок — четыре, по числу
   открытых строк ленты: Разделы / +Группы / +Подгруппы / +Характеристики.
   В строке ленты иконка и слово «Фильтр» не нужны — строка начинается с «Разделы». */
.v7-hdr-ribbon .v7-tf-crumb { display: none; }
.v5-topbar .v7-hdr-bartools { display: none !important; }   /* штатные три — скрыты, работают под капотом */
.v5-topbar .v7-hdr-depth4 { display: flex; align-items: center; gap: 0.5rem; flex: none; height: 2.5rem; }
.v5-topbar .v7-hdr-depth4 button { width: 2rem; height: 2rem; }
.v5-topbar .v7-hdr-depth4 button.is-active { background: rgba(217,119,87,.12); color: #b46a55; border-radius: 0.5rem; }
/* автор 12.09: состояния глубины стоят В ОДНОЙ группе с иконкой «Фильтр» */
.v5-topbar .v7-hdr-keep > .v7-hdr-depth4 { display: flex; align-items: center; gap: 0.5rem; }
/* скрытая группа штатной глубины оставляла ДВЕ стрелки подряд — гасим примыкающую к ней */
.v5-topbar .v7-tf-row-tools > .v7-hdr-bartools + .v7-hdr-arrow { display: none; }
/* автор 12.09: отдельная иконка «Фильтр» не нужна — фильтром управляют четыре иконки глубины */
.v5-topbar .v7-hdr-keep > button[title="Фильтр"]:not(.v7-hdr-modepick), .v5-topbar .v7-hdr-keep > button[aria-label="Фильтр"]:not(.v7-hdr-modepick) { display: none; }
/* автор 12.09: выбор режима — одна кнопка с окошком как у флагов; штатные кнопки скрыты */
.v5-topbar .v7-hdr-keep > button[title="Конфигуратор"]:not(.v7-hdr-modepick), .v5-topbar .v7-hdr-keep > button[aria-label="Конфигуратор"]:not(.v7-hdr-modepick) { display: none; }
.v5-topbar .v7-hdr-modepick { width: 2rem; height: 2rem; }
.v5-topbar .v7-hdr-modepick.is-open, .v5-topbar .v7-hdr-modepick:hover { background: rgba(180,106,85,.08); border-radius: 0.5rem; }


/* автор 12.09 «текст и иконки точно по центру строки»: у строк оставался border-top 1px
   (волос рисуется отдельной линией ::before), он съедал полпикселя и смещал контент вниз */
.v5-topbar > .v7-hdr-ribbon > *, .v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-pins { border-top: 0 !important; }
.v5-topbar :is(.v7-tf-bar, .v7-hdr-rowwrap, .v7-hdr-saved, .v7-hdr-pins, .v7-tf-row-search) > * { align-self: center; }

/* ЕДИНЫЙ СТИЛЬ ИКОНОК И ТЕКСТА (автор 12.09): эталон — окна-атомы внизу.
   Замер эталона: иконки 16×16, обводка 2, цвет #32495F (srgb .197 .291 .404);
   текст 12.5px, начертание 400, тот же цвет. Шапка и лента приводятся к нему. */
.v5-topbar svg, .v5-topbar .v7-hdr-ribbon svg, .v7-hdr-pop svg {
  width: 1rem !important; height: 1rem !important; stroke-width: 1.75; color: #32495f !important;
}
/* акцент активного состояния сильнее общего цвета */
.v5-topbar .is-active svg, .v5-topbar .is-active, .v7-hdr-pop .is-active svg { color: #b46a55 !important; }
.v5-topbar, .v5-topbar .v7-hdr-ribbon, .v7-hdr-pop { color: #32495f; }
.v5-topbar :is(.v7-tf-rowlabel, .v7-tf-rowlabel span, .v7-hdr-saved-label, .v7-hdr-saved-label span, .v7-tf-bar > i, .v7-tf-crumb, .v7-hdr-charnone),
.v7-hdr-pop .v5-region-cont span {
  font-size: 12.5px; font-weight: 400; color: #32495f !important;
}
/* активные состояния оставляем акцентными, как было утверждено */
.v5-topbar .is-active, .v5-topbar .v7-hdr-keep button.is-active, .v5-topbar .v7-hdr-depth4 button.is-active { color: #b46a55 !important; }

/* ЦВЕТОВАЯ ГАММА ШАПКИ (автор 12.09): шапка — цвет шапки окна (белый), строки ленты —
   цвет левого меню (#F1EFEA), через строку — молочный цвет рабочей области окна (#F6F3EA);
   высота строк — как высота шапки окна-атома (41px). */
.v5-app .v5-topbar { background: #ffffff; }
/* строка поиска остаётся цветом шапки окна */
.v5-topbar > .v7-tf-row-search { background: transparent; }

/* ПОДСКАЗКИ (автор 12.09): белые как в окнах, текст по центру окошка, без синевы */
.v7-hdr-tt {
  background: #ffffff !important; color: #32495f !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  text-align: center !important; min-height: 2rem; padding: 6px 10px !important; border-radius: 8px !important;
  grid-template-rows: none !important; font-size: 12px; font-weight: 500;
}

/* ГАММА v2 (автор 12.09): чередование БЕЛЫЙ (как шапка) ↔ СИНЕВАТЫЙ, полосы вплотную —
   без белых пробелов между строками и без отступов по краям (фон на всю ширину окна шапки) */
.v5-topbar > .v7-hdr-ribbon { gap: 0 !important; }
.v5-app .v5-topbar { padding-left: 0; padding-right: 0; }
.v5-topbar > .v7-tf-row-search { padding-left: 0.75rem; padding-right: 0.75rem; }
.v5-topbar > .v7-hdr-ribbon > *, .v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-pins {
  width: 100%; margin: 0;
  padding-left: 0.75rem; padding-right: 0.75rem !important;
}
/* волос между полосами больше не нужен — границу держит сам цвет */
.v5-topbar > .v7-hdr-ribbon > *::before, .v5-topbar > .v7-hdr-saved::before, .v5-topbar > .v7-hdr-pins::before { display: none !important; }
/* довод гаммы: ось меток совпадает с флагом, полоса поиска без зазора */
.v5-topbar > .v7-hdr-ribbon > *, .v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-pins { padding-left: 0.5rem; }
.v5-app .v5-topbar { padding-bottom: 0; }
.v5-topbar > .v7-hdr-ribbon { margin-top: 0; }
.v5-topbar > .v7-tf-row-search { margin-bottom: 0; }

.v5-app .v5-topbar { padding-top: 0; gap: 0; }
.v5-topbar > .v7-tf-row-search { height: 2.75rem; min-height: 2.75rem; }

/* автор 12.09 «вместо белого — цвет шапки окна»: чистый белый убран из чередования,
   вместо него тёплый тон подложки окон #FAF8F2 (он и читается как цвет шапки окна на фоне
   страницы); чередование с синеватым #F2F5F8 сохранено */
.v5-app .v5-topbar { background: #faf8f2; }

/* автор 12.09: верхняя строка чуть выше нижних и ровно по оси логотипа.
   Логотип: центр на 38 от верха экрана. Строка поиска 48 (нижние 36), верхний отступ 3 —
   центр содержимого попадает на 38. */
.v5-topbar > .v7-tf-row-search { height: 3rem; min-height: 3rem; }
.v5-app .v5-topbar { padding-top: 3px; }

/* чередование по факту (data-полоса ставит скрипт) — перебивает прежние nth-child правила */
.v5-topbar [data-полоса="синяя"] { background: #f2f5f8 !important; }
.v5-topbar [data-полоса="тёплая"] { background: #faf8f2 !important; }

/* автор 12.09 «волосы максимально тонкие, как в окне»: эталон окна — 1px rgba(31,58,90,.18)
   у разделителя титлбара; линию рисуем полупиксельной тенью, чтобы она была тоньше границы */
.v5-topbar [data-полоса] { position: relative; }
.v5-topbar [data-полоса]::before {
  content: "" !important; display: block !important; position: absolute; left: 0; right: 0; top: 0;
  height: 1px; transform: scaleY(.5); transform-origin: 0 0;
  background: rgba(31, 58, 90, .18); pointer-events: none;
}
/* автор 12.09: волос нужен и между строкой поиска и первой полосой */
.v5-topbar [data-первая]::before { display: block !important; }
.v5-app .v5-topbar { border-color: rgba(31, 58, 90, .18); border-width: 1px; }

/* автор 12.09 «характеристики съехали»: панель раздела — исключение из общей высоты строк,
   она растёт по содержимому (жёсткие 36px обрезали её до четырёх полей из семи) */
.v5-topbar .v7-hdr-charpanel {
  height: auto !important; min-height: 2.25rem !important; max-height: none !important;
  align-items: flex-start !important;
  /* автор 12.09: ВСЕ межстрочные отступы в области характеристик одинаковые = 8 */
  padding-top: 0.5rem !important; padding-bottom: 0.5rem !important;
}
.v5-topbar .v7-hdr-charpanel > .v7-tf-attrs { height: auto !important; min-height: 0 !important; max-height: none !important; }
.v5-topbar .v7-hdr-charpanel > .v7-hdr-charpanel-head { height: 2rem; }

/* автор 12.09: в панели характеристик — иконка у каждой подписи, равные отступы, центровка по строке */
.v7-hdr-charpanel .v7-tf-attrs { gap: 0.5rem 0.5rem !important; align-items: center !important; }
.v7-hdr-charpanel .v7-tf-attrs > label { min-height: 2rem !important; height: 2rem !important; align-items: center !important; gap: 0.5rem !important; }
.v7-hdr-charpanel .v7-tf-attrs > label > span:first-child { display: inline-flex !important; align-items: center; gap: 0.375rem; }
.v7-hdr-charpanel .v7-hdr-attr-icon { flex: none; width: 1rem !important; height: 1rem !important; }
/* ряды сетки характеристик строго по 32 — иначе последний ряд растягивался и низ был 18 вместо 8 */
.v7-hdr-charpanel .v7-tf-attrs { grid-auto-rows: 2rem !important; align-content: start !important; }
/* у сетки характеристик был собственный нижний отступ 10 — из-за него низ блока (18) не совпадал с 8 */
.v7-hdr-charpanel .v7-tf-attrs { padding: 0 !important; }

/* автор 12.09: поля записи в характеристиках — точно как поле поиска в шапке
   (эталон обёртки поиска: высота 32, радиус 8, рамка 1px #E4E0D4, фон белый, поля 0/10, текст 12.5) */
.v7-hdr-charpanel .v7-tf-attrs :is(input, select) {
  height: 2rem !important; border-radius: 0.5rem !important;
  border: 1px solid #e4e0d4 !important; background: #ffffff !important;
  padding: 0 10px !important; font-size: 12.5px !important; font-weight: 400 !important; color: #32495f !important;
  box-shadow: none !important;
}
.v7-hdr-charpanel .v7-tf-attrs :is(input, select):focus { outline: none; border-color: #b46a55 !important; }
.v7-hdr-charpanel .v7-tf-attrs input[type="checkbox"] { height: 1rem !important; padding: 0 !important; }

/* автор 12.09: оглавление характеристик = метка строки; единый зазор значок→надпись везде */
.v5-topbar .v7-hdr-charpanel-head { display: inline-flex !important; align-items: center !important; gap: 0.375rem !important;
  font-size: 12.5px !important; font-weight: 400 !important; color: #32495f !important; height: 2rem !important; flex: none; }
.v5-topbar :is(.v7-tf-rowlabel, .v7-hdr-saved-label) { gap: 0.375rem; }
.v7-hdr-charpanel .v7-tf-attrs > label > span:first-child { gap: 0.375rem !important; }

/* АУДИТ 12.09 — исправления по УТВЕРЖДЁННЫМ нормам (ПАРАМЕТРЫ-UI: текст 12.5/400, цвет как в окнах) */
.v7-hdr-charpanel .v7-tf-attrs > label > span:first-child { font-weight: 400 !important; color: #32495f !important; }

/* решения автора 12.09 по аудиту: «Поиск» = иконка + текст, ширина по содержимому;
   кнопка региона «RU» — в общую высоту плашек 32 */
.v7-hdr-find { display: inline-flex; align-items: center; gap: 0.375rem; width: auto; height: 2rem; padding: 0 0.75rem; }
.v7-hdr-find svg { width: 1rem; height: 1rem; }
.v5-topbar .v5-locale { height: 2rem; min-height: 2rem; border-radius: 0.5rem !important; display: inline-flex; align-items: center; }

/* автор 12.09: ЛЮБАЯ активированная плашка светится одинаково (история, сохранённые окна,
   функции окон, рупор, робот, режим, глубина) */
.v5-topbar button.is-active, .v5-topbar button.is-on, .v5-topbar .v7-hdr-modepick.is-open {
  background: rgba(217,119,87,.12) !important; color: #b46a55 !important; border-radius: 0.5rem !important;
}

/* ОКОШКО РОБОТА (автор 12.09): белое как все подсказки; имя по центру первой строки;
   окошко растёт вместе с текстом, который печатается буква за буквой */
.v7-hdr-tip {
  background: #ffffff !important; color: #32495f !important;
  display: flex !important; flex-direction: column !important; align-items: center !important;
  gap: 0.25rem; padding: 6px 10px !important; border-radius: 8px !important;
  width: max-content !important; min-width: 6rem !important; max-width: 22rem !important;
  height: auto !important; max-height: none !important; grid-template-rows: none !important;
  font-size: 12px; font-weight: 500; text-align: center;
}
.v7-hdr-tip > b { font-weight: 600; line-height: 1.25rem; white-space: nowrap; }
.v7-hdr-tip > div { font-weight: 400; line-height: 1.2; white-space: normal; text-align: center; }
.v7-hdr-tip > div:empty { display: none; }

/* ПОДСКАЗКИ КАК СООБЩЕНИЯ СОВЕТА (автор 12.09): текст по левому краю с внутренним отступом,
   окошко по ширине содержимого — правый край через отступ после последнего знака;
   короткое слово = короткое окошко. Единое правило для коротких подсказок и окошка робота. */
.v7-hdr-tt, .v7-hdr-tip {
  width: max-content !important; min-width: 0 !important; max-width: 22rem !important;
  text-align: left !important; align-items: flex-start !important; justify-content: flex-start !important;
  padding: 6px 10px !important; box-sizing: border-box;
}
.v7-hdr-tip > b, .v7-hdr-tip > div { text-align: left !important; align-self: flex-start; }

/* КНОПКИ-МЕНЮ ВЫДЕЛЕНЫ (автор 12.09): у всякой кнопки, которая раскрывает окошко выбора (регион,
   режим Фильтр/Конфигуратор, Инструменты, кабинет), в правом нижнем углу маленький уголок-стрелка —
   общепринятый знак «здесь откроется меню» (Office, Windows) */
.v5-topbar .v7-hdr-modepick, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel, .v5-topbar .v5-login, .v5-topbar .v5-locale, .v5-topbar .v7-hdr-mode { position: relative; }
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after, .v5-topbar .v7-hdr-mode::after {
  content: ""; position: absolute; right: 3px; bottom: 3px; width: 0; height: 0;
  border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid currentColor; opacity: .55;
}
.v5-topbar .v5-login::after { content: ""; position: absolute; right: 3px; bottom: 3px; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid currentColor; opacity: .55; }

/* МЕНЮ РУПОРА (автор 12.09): окошко как у флагов — включение, выбор голоса, помощники */
.v5-topbar .v7-hdr-voice { position: relative; }
.v5-topbar .v7-hdr-voice::after { content: ""; position: absolute; right: 3px; bottom: 3px; width: 0; height: 0; border-left: 4px solid transparent; border-right: 4px solid transparent; border-top: 4px solid currentColor; opacity: .55; }
.v7-hdr-voicemenu { width: 18rem !important; min-width: 0 !important; max-width: 18rem !important; }
.v7-hdr-voicemenu-head { font-size: 11px; color: #6e6b64; padding: 6px 8px 2px; text-transform: none; }
.v7-hdr-voicemenu .v5-region-cont.is-disabled { opacity: .45; cursor: default; }
.v7-hdr-voicemenu .v5-region-cont i { margin-left: auto; font-style: normal; font-size: 11px; opacity: .6; }

/* автор 12.09: у кнопок-меню — тот же УГОЛОК, что у ресайза окна совета (две вложенные скобки),
   вместо треугольника; цвет приглушённый как у уголка окна */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after {
  border: 0 !important; width: 10px; height: 10px; right: 1px; bottom: 1px; opacity: .7;
  background: no-repeat center / 10px 10px url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='8 8 14 14' fill='none' stroke='%23a3a099' stroke-width='1.75' stroke-linecap='round'><path d='M10 20h10V10'/><path d='M15 20h5v-5'/></svg>");
}
.v5-topbar button.is-active::after, .v5-topbar button.is-on::after { opacity: 1; }
/* автор 12.09: уголок скруглён «под градус» самой плашки (радиус 8) — скобки идут по дуге угла */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after {
  right: 2px; bottom: 2px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='8 8 14 14' fill='none' stroke='%23a3a099' stroke-width='1.75' stroke-linecap='round'><path d='M10 20h5a5 5 0 0 0 5-5v-5'/><path d='M15 20h1.5a3.5 3.5 0 0 0 3.5-3.5V15'/></svg>") !important;
}
/* автор 12.09 «не острый угол, а с радиусом»: одна скобка с выраженным радиусом (как угол плашки 8), внутренняя убрана — она читалась как острый зубец */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after {
  width: 11px; height: 11px; right: 1px; bottom: 1px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='7 7 15 15' fill='none' stroke='%23a3a099' stroke-width='1.75' stroke-linecap='round'><path d='M8 20h6a6 6 0 0 0 6-6V8'/></svg>") !important;
}
/* автор 12.09 (окончательно): уголки ОСТРЫЕ, две скобки — одна побольше, другая поменьше,
   тонкие, как волос окна (цвет и толщина волоса-обводки окна) */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after {
  width: 11px; height: 11px; right: 1px; bottom: 1px; opacity: 1;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='7 7 15 15' fill='none' stroke='%231f3a5a' stroke-opacity='0.45' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'><path d='M8 21h13V8'/><path d='M14 21h7v-7'/></svg>") !important;
}

/* ЕДИНОЕ ОФОРМЛЕНИЕ ВСЕХ ОКОШЕК ВЫБОРА (автор 12.09): одинаковые отступы со всех сторон (8),
   строки 32 с иконкой 16 и текстом 12.5/400, ровные интервалы между пунктами, секции разделены
   волосом с равными полями; ширина — по содержимому (окно подстраивается под контекст) */
.v7-hdr-pop { padding: 8px !important; min-width: 0 !important; width: max-content !important; max-width: 26rem !important; }
.v7-hdr-pop .v5-search { margin: 0 0 8px !important; }
.v7-hdr-pop .v5-region-list { display: grid !important; gap: 0 !important; }
.v7-hdr-pop .v5-region-list section { display: grid !important; gap: 0 !important; }
.v7-hdr-pop .v5-region-list section + section { margin-top: 4px !important; padding-top: 4px !important; border-top: 1px solid rgba(31,58,90,.18); }
.v7-hdr-pop .v5-region-cont { display: flex !important; align-items: center !important; gap: 8px !important; width: 100% !important;
  min-height: 2rem !important; height: 2rem !important; padding: 0 8px !important; margin: 0 !important; border-radius: 8px !important;
  font-size: 12.5px !important; font-weight: 400 !important; color: #32495f; }
.v7-hdr-pop .v5-region-cont svg { width: 1rem !important; height: 1rem !important; flex: none; }
.v7-hdr-pop .v5-region-cont span { flex: 1 1 auto; white-space: nowrap; }
.v7-hdr-pop .v5-region-cont:hover { background: rgba(180,106,85,.08); }
.v7-hdr-pop .v5-region-cont.is-active { background: rgba(217,119,87,.12); color: #b46a55; }
.v7-hdr-voicemenu-head { font-size: 11px !important; color: #6e6b64; padding: 0 8px 4px !important; }
.v7-hdr-voicemenu { width: max-content !important; max-width: 22rem !important; }
/* довод: окошко — блок (сетка окна стран давала пустую вторую строку и лишние 8 снизу);
   между секциями только волос без разных зазоров — интервалы между пунктами везде одинаковые */
.v7-hdr-pop:not(.v7-hdr-tt):not(.v7-hdr-tip) { display: block !important; gap: 0 !important; grid-template-rows: none !important; }
.v7-hdr-pop .v5-region-list section + section { margin-top: 0 !important; padding-top: 0 !important; border-top: 1px solid rgba(31,58,90,.18); }
.v7-hdr-pop .v5-region-list section + section > .v5-region-cont:first-child { margin-top: 0 !important; }

/* автор 12.09 «светлый цвет — как у шапок окна»: светлая полоса и полоса поиска = цвет титлбара
   окна-атома, байт в байт (по замеру #FFFFFF); тёплая подложка #FAF8F2 убрана из шапки */
.v5-app .v5-topbar { background: #ffffff !important; }
.v5-topbar [data-полоса="тёплая"] { background: #ffffff !important; }
/* автор 12.09: синеватая полоса = ТОЧНЫЙ цвет левого меню (рейки) окна-атома — по замеру color(srgb .9759 .9787 .9821) */
.v5-topbar [data-полоса="синяя"] { background: color(srgb 0.975913 0.978729 0.982134) !important; }


/* ═══ НОРМА СТРОК ЛЕНТЫ = РЕЙКА ОКНА-АТОМА (решение автора 12.09, единый источник) ═══
   Рейка окна по замеру: строка 40, плашка 32, иконка 16 (обводка 1.5), поля 4, зазор между плашками 4.
   Всё ниже — единственное место, где заданы эти числа для строк ленты; прежние слои (41 / 36) удалены. */
:root { --em-row: 2.5rem; --em-plate: 2rem; --em-icon: 1rem; --em-gap: 0.25rem; }
.v5-topbar > .v7-hdr-ribbon > *, .v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-pins {
  height: var(--em-row); min-height: var(--em-row); max-height: var(--em-row);
  padding-top: 0; padding-bottom: 0; align-items: center;
}
.v5-topbar :is(.v7-tf-bar, .v7-hdr-rowwrap, .v7-hdr-saved, .v7-hdr-pins) :is(.v7-tf-sections, .v7-hdr-inbar, .v7-hdr-saved-track, .v7-hdr-charrow) {
  height: var(--em-row); min-height: var(--em-row); max-height: var(--em-row); gap: var(--em-gap) !important;
}
.v5-topbar .v7-hdr-ribbon .v7-tf-sections > *, .v5-topbar .v7-hdr-charrow > * { margin: 0; }
.v5-topbar .v7-hdr-ribbon :is(.v7-tf-sec, .v5-icon-button) { width: var(--em-plate); height: var(--em-plate); }
/* панель характеристик — единственное исключение по высоте (растёт по содержимому) */
.v5-topbar .v7-hdr-charpanel { height: auto !important; min-height: var(--em-row) !important; max-height: none !important; }
/* зазор между плашками задаёт вложенная штатная дорожка .v7-tf-track — приводим и её к норме рейки (4) */
.v5-topbar .v7-hdr-ribbon .v7-tf-track, .v5-topbar .v7-hdr-ribbon .v7-tf-sections > .v7-tf-grp { gap: var(--em-gap); }

/* автор 12.09: полоса шапки = размер шапки окна-атома (титлбар 41). Верхний отступ подобран так,
   чтобы центр полосы остался на оси логотипа (38): 11 + 6.5 + 41/2 = 38 */
.v5-topbar > .v7-tf-row-search { height: 41px; min-height: 41px; max-height: 41px; }
.v5-app .v5-topbar { padding-top: 6.5px; }

/* ПОРЯДОК ОТСТУПОВ (автор 12.09, сверка карты замеров с ПАРАМЕТРЫ-UI):
   1) зазор сетки окон был 9 — норма 10 (--v5-gap); 2) ось: центр флага 101, центры иконок строк 99 —
   выравниваем ЦЕНТРЫ (как у плашек рейки), поле строк слева 10 */
html body #euraspro-windows, html body #euraspro-windows .v5-workspace-grid { --v5-gap: 10px !important; gap: 10px; }
.v5-topbar > .v7-hdr-ribbon > *, .v5-topbar > .v7-hdr-saved, .v5-topbar > .v7-hdr-pins { padding-left: 10px !important; }
/* низ свёрнутой шапки строго 64 (утверждено): 10 + 1 + 6.5 + 41 + 4.5 + 1 = 64 → окна ровно на 74 */
.v5-app .v5-topbar { padding-bottom: 4.5px; }

/* автор 12.09 «элементы съехали к низу, верх вытянулся»: шапка = ТОЛЬКО полоса 41 + обводка, без
   внутренних полей (как титлбар окна); логотип поднимаем на ось этой полосы */
.v5-app .v5-topbar { padding-top: 0 !important; padding-bottom: 0 !important; }
.v5-topbar > .v7-tf-row-search { height: 41px; min-height: 41px; max-height: 41px; }
/* логотип: центр блока = центр полосы (10 + 1 + 41/2 = 31.5) → высота блока бренда 63 */
.v5-sidebar .v5-brand { height: 63px !important; min-height: 63px !important; max-height: 63px !important; padding: 0 !important; display: flex; align-items: center; justify-content: center; }
/* окно автора у первой строки: 10 + 43 + 10 = 63 */
.v7-acc { top: 3.9375rem !important; }
/* довод: у шапки оставался min-height 54 (старое «полоса 54») — снимаем, шапка = 1 + 41 + 1 = 43 */
.v5-app .v5-topbar { min-height: 0; height: auto; }
/* логотип на оси полосы и при раскрытом меню (штатный слой ставил ему свой верхний отступ) */
.v5-sidebar:not(.is-collapsed) .v5-brand, .v5-sidebar.is-collapsed .v5-brand { margin: 0 !important; top: 0 !important; height: 63px !important; min-height: 63px !important; max-height: 63px !important; padding: 0 !important; display: flex !important; align-items: center !important; }
/* раскрытое меню: строка бренда (.v5-brand-row) была выше блока бренда и центрировала его на 38 —
   ужимаем строку до тех же 63, логотип и тумблер садятся на ось полосы 31.5 */
.v5-sidebar .v5-brand-row { height: 63px; min-height: 63px !important; max-height: 63px; align-items: center; padding-top: 0; padding-bottom: 0; margin: 0; }

/* ТУМБЛЕР ЛЕВОГО МЕНЮ (автор 12.09): в свёрнутом меню тумблер РАСТВОРЯЕТСЯ (не прячется за слои),
   раскрывает меню сам логотип; при раскрытии тумблер проявляется и снова сворачивает */
.v5-sidebar .v5-sidebar-toggle { transition: opacity .25s ease, visibility .25s; }
.v5-sidebar.is-collapsed .v5-sidebar-toggle { opacity: 0 !important; visibility: hidden !important; pointer-events: none !important; }
.v5-sidebar.is-collapsed .v5-brand { cursor: pointer; }

/* УГОЛКИ-СТРЕЛКИ СТРОК: тот же глиф, что у кнопок-меню; слева внизу — раскрыть следующую (зеркально),
   справа вверху — скрыть эту (перевёрнуто); абсолютные, в поток не входят */
.v5-topbar .v7-hdr-corner { position: absolute; width: 12px; height: 12px; padding: 0; border: 0; background: none; color: rgba(31,58,90,.45); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; z-index: 2; }
.v5-topbar .v7-hdr-corner svg { width: 11px; height: 11px; stroke-width: 1; }
.v5-topbar .v7-hdr-corner:hover { color: #b46a55; }
.v5-topbar .v7-hdr-corner[hidden] { display: none !important; }
.v5-topbar .v7-hdr-corner-next { right: 1px; bottom: 1px; transform: none; }   /* автор 20.09: нижний уголок всегда справа */
.v5-topbar .v7-hdr-corner-hide { left: 1px; top: 1px; transform: rotate(180deg); }   /* автор 20.09: верхний уголок всегда слева */

/* ЕДИНЫЙ ОТСТУП УГОЛКА (автор 12.09): в окне совета край глифа стоит в 7.7px от угла окна —
   то же значение везде: у кнопок-меню от угла плашки, у строк от угла области строки
   (глиф 11px в viewBox 15 → визуальный край на 0.73px внутри: 7 + 0.73 = 7.7) */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after { right: 7px; bottom: 7px; }
.v5-topbar .v7-hdr-corner-next { right: 7px; bottom: 7px; left: auto; }
.v5-topbar .v7-hdr-corner-hide { left: 7px; top: 7px; right: auto; }
.v5-topbar .v7-hdr-corner { width: 11px; height: 11px; }
/* автор 12.09: отступ уголка от угла — 4 (как наши отступы), а не 7.7: 3.3 + 0.73 внутреннего = 4.0 */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after { right: 3.3px; bottom: 3.3px; }
.v5-topbar .v7-hdr-corner-next { right: 3.3px; bottom: 3.3px; left: auto; }
.v5-topbar .v7-hdr-corner-hide { left: 3.3px; top: 3.3px; right: auto; }
/* окно совета: сам уголок стоит штатно в 4px от угла (кнопка 18px), но глиф внутри ещё на 3.7 —
   сдвигаем глиф к углу на эти 3.7, чтобы визуальный край был ровно в 4 (единая норма); при доке
   справа кнопка отзеркалена штатно, сдвиг в её системе координат идёт в нужную сторону */
.v7-cn-resize svg { transform: translate(3.7px, 3.7px); }

/* автор 12.09 «у плашки Инструментов баг»: метка «Инструменты» схлопнулась до 16×16 — поздние правила
   сбросили её размер; возвращаем полноценную плашку как у всех кнопок (32×32, радиус 8, иконка по центру) */
.v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel {
  width: 2rem; height: 2rem; min-width: 2rem; min-height: 2rem;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 0.5rem; padding: 0; margin: 0; box-sizing: border-box; position: relative;
}
.v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel:hover { background: rgba(180,106,85,.08); }

/* автор 12.09 «у флагов другая стрелка»: штатный шеврон ▾ у кнопки региона убран, знак меню —
   тот же уголок, что у остальных кнопок-меню (4 от угла плашки) */
.v5-topbar .v5-locale > svg.lucide-chevron-down { display: none; }
.v5-topbar .v5-locale { position: relative; padding-right: 0.75rem; }
.v5-topbar .v5-locale::after {
  content: ""; position: absolute; right: 3.3px; bottom: 3.3px; width: 11px; height: 11px; opacity: 1; pointer-events: none;
  background: no-repeat center / 11px 11px url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='7 7 15 15' fill='none' stroke='%231f3a5a' stroke-opacity='0.45' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'><path d='M8 21h13V8'/><path d='M14 21h7v-7'/></svg>");
}
/* автор 12.09: у кнопки региона — такая же плашка, как у всех (32 в высоту, радиус 8, подсветка при наведении, ширина по содержимому) */
.v5-topbar .v5-locale { height: 2rem; min-height: 2rem; border-radius: 0.5rem !important; padding: 0 0.75rem 0 0.5rem; display: inline-flex; align-items: center; gap: 0.375rem; background: transparent; border: 0; }
.v5-topbar .v5-locale:hover { background: rgba(180,106,85,.08) !important; }
.v5-topbar .v5-locale[aria-expanded="true"] { background: rgba(217,119,87,.12) !important; color: #b46a55 !important; }

/* автор 12.09: линии уголков той же толщины, что линии иконок (1.5) — везде */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after, .v5-topbar .v5-locale::after {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='7 7 15 15' fill='none' stroke='%231f3a5a' stroke-opacity='0.5' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'><path d='M8 21h13V8'/><path d='M14 21h7v-7'/></svg>") !important;
}
.v5-topbar .v7-hdr-corner svg { stroke-width: 1.5; }
.v7-cn-resize svg { stroke-width: 1.5 !important; }

/* автор 12.09: у языка плашку убираем (привязка к флагу), надпись RU — по центру флага */
.v5-topbar .v5-locale, .v5-topbar .v5-locale:hover, .v5-topbar .v5-locale[aria-expanded="true"] { background: transparent !important; border-radius: 0 !important; color: inherit !important; }
.v5-topbar .v5-locale > b { display: inline-flex; align-items: center; line-height: 1; height: 15px; margin: 0; padding: 0; }
.v5-topbar .v5-locale > .v5-flag { display: block; }

/* автор 12.09: вокруг ВСЕХ флагов тонкий волос как у окна (rgba(31,58,90,.18)) — белые флаги сливались с фоном */
.v5-topbar .v5-flag, .v5-region-menu img.v5-flag, .v5-region-menu .v5-region-countries img, .v7-hdr-pop img[src*="/flags/"], img[src*="/assets/flags/"] {
  outline: 1px solid rgba(31,58,90,.18); outline-offset: 0; border-radius: 2px;
}
/* автор 12.09 «RU не по центру флага»: оптический центр заглавных Nunito 900 сидит ниже центра
   строки — поднимаем надпись на 1px, чтобы буквы стояли по центру флага */
.v5-topbar .v5-locale > b { transform: translateY(-1px); }
/* автор 12.09 (уточнение): низ букв стоял на нижнем крае синей полосы — надпись была ВЫШЕ центра;
   опускаем на 2px от исходного положения (предыдущий подъём отменён) */
.v5-topbar .v5-locale > b { transform: translateY(2px); }

/* ЕДИНЫЙ УГОЛОК — ОДИН ГЛИФ ВЕЗДЕ (автор 12.09 «разной толщины и размера»):
   визуальный размер 9×9, линия ровно 1.5 экранных px (non-scaling), 4 от угла элемента.
   Раньше: в окне совета глиф 6.7px/1.0px, в строках и кнопках 9.5px/1.1px — виноват масштаб viewBox. */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after, .v5-topbar .v5-locale::after {
  width: 9px; height: 9px; right: 4px; bottom: 4px;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='8 8 13 13' fill='none' stroke='%231f3a5a' stroke-opacity='0.5' stroke-width='1.5' stroke-linecap='square' stroke-linejoin='miter'><path d='M8 21h13V8' vector-effect='non-scaling-stroke'/><path d='M14 21h7v-7' vector-effect='non-scaling-stroke'/></svg>") !important;
  background-size: 9px 9px !important;
}
.v5-topbar .v7-hdr-corner { width: 9px; height: 9px; }
.v5-topbar .v7-hdr-corner svg { width: 9px !important; height: 9px !important; }
.v5-topbar .v7-hdr-corner-next { right: 4px !important; bottom: 4px !important; left: auto; }
.v5-topbar .v7-hdr-corner-hide { left: 4px !important; top: 4px !important; right: auto; }
/* окно совета: глиф 9×9 прижат к углу кнопки (кнопка стоит в 4 от угла окна) */
.v7-cn-resize { display: grid !important; justify-content: end !important; align-content: end !important; padding: 0 !important; }
.v7-cn-resize svg { width: 9px !important; height: 9px !important; inline-size: 9px !important; block-size: 9px !important; transform: none !important; }
/* заголовки секций меню голоса — с иконкой, как все подписи */
.v7-hdr-voicemenu-head { display: flex !important; align-items: center; gap: 0.375rem; }
.v7-hdr-voicemenu-head svg { width: 1rem !important; height: 1rem !important; flex: none; }

/* автор 12.09 «у фильтра снизу нет углов волоса и закруглений»: полосы лежат встык к нижнему волосу окна
   шапки квадратными углами и закрывали скругление 12 — нижняя полоса скруглена по внутреннему радиусу (12−1) */
.v5-topbar [data-последняя] { border-bottom-left-radius: 11px !important; border-bottom-right-radius: 11px !important; }

/* автор 13.09: закреплённое окно занимает колонку до конца ленты (grid-row r/-1 ставит скрипт) — само окно своего размера, не растягивается по области */
#euraspro-windows .v5-product-window.is-pinned.mode-tile, #euraspro-windows .v5-product-window.is-pinned.mode-quad { height: auto !important; block-size: auto !important; }

/* автор 13.09: окна закрывают сетку ПОСЛЕДОВАТЕЛЬНО рядами сверху вниз — свободные окна занимают ближайшие свободные клетки вокруг закреплённых (без дыр) */
#euraspro-windows .v5-workspace-grid { grid-auto-flow: row dense; }

/* ЗМЕЙКА (автор 13.09): при закреплённых окнах раскладку ведёт бандл, страница под них не прокручивается — липкость закреплённым не нужна (иначе при случайной прокрутке они отрывались от клеток) */
[data-snake="1"] .v5-product-window.is-pinned { z-index: 30; } /* липкость и верх ставит бандл по ряду клетки */

/* автор 12.09 («не все плашки светятся при включении — История и Сохранённые окна»): плашки истории поисков и столов подсвечиваются как остальные активные */
.v5-topbar .v7-hdr-savebtn.is-active, .v5-topbar .v7-hdr-pinsbtn.is-active, .v5-topbar .v7-hdr-desksbtn.is-active { background: rgba(217,119,87,.12) !important; color: #b46a55 !important; border-radius: 0.5rem; }

/* автор 13.09 12:29: нижняя кромка шапки — как верх окна (волос был слишком тонким) */
.v5-app .v5-topbar { border-bottom-color: rgba(31, 58, 90, .3); }

/* автор 13.09 17:1x «применить свойства окна к окну фильтра — обводка 1 px 30 %, тень как у окна; содержание и функции не трогать» */
.v5-app .v5-topbar { border: 1px solid rgba(31, 58, 90, .3) !important; box-shadow: 0 1px 2px rgba(31, 30, 29, .05); }

/* автор 13.09 17:2x «кнопка Автор съехала в правый край без отступов»: правое поле шапки = правое поле титлбара окна (8), службы шапки кончаются там же, где службы окна */
.v5-app .v5-topbar { padding-right: 8px !important; }

/* ПОДЛОЖКА ПОД ШАПКОЙ (найдено 13.09 по замечанию автора «плашка-заплатка»): .v5-app::before из V5 — фиксированная полоса цвета страницы
   высотой 76 px (старая шапка 56 + два зазора), закрывающая окна под шапкой при прокрутке. Шапка V7 = 43 px, поэтому подложка
   выступала на 13 px ниже зазора и резала верх окон. Её нижний край = низ шапки + 10 (--em-hdr-bottom), при раскрытых строках растёт. */
.v5-app::before { height: var(--em-hdr-bottom, 3.9375rem); }

/* МЕНЮ ФОРМ ОКНА (автор 13.09): у иконки «Сменить форму» в титлбаре окна — тот же уголок-стрелка, что у кнопок-меню шапки;
   окошко выбора формы — те же классы .v5-region-menu.v7-hdr-pop / .v5-region-cont, что у окна режимов шапки */
.v5-product-window .v5-form-pick { position: relative; }
.v5-product-window .v5-form-pick::after {
  content: ""; position: absolute; width: 11px; height: 11px; right: 1px; bottom: 1px; opacity: 1;
  background: no-repeat center / 11px 11px url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='7 7 15 15' fill='none' stroke='%231f3a5a' stroke-opacity='0.45' stroke-width='1' stroke-linecap='square' stroke-linejoin='miter'><path d='M8 21h13V8'/><path d='M14 21h7v-7'/></svg>");
}
.v5-product-window .v5-form-menu { min-width: 11rem; }

/* ВНУТРЕННЯЯ ОБЛАСТЬ КАК ОКНО (автор 13.09): в плитке и колонне фото оформлено как главный кадр ряда/квадрата —
   рамка-волос 1 px 30 %, скругление 8, отступ 4 от краёв тела */
#euraspro-windows .v5-product-window.mode-tile .v5-product-body > .v5-product-media,
#euraspro-windows .v5-product-window.mode-column .v5-product-body > .v5-product-media {
  margin: var(--v5-win-pad, .25rem); border: 1px solid rgba(31, 58, 90, .3); border-radius: 8px !important;
  overflow: hidden; block-size: auto !important; inline-size: auto !important; flex: 1 1 auto; min-block-size: 0 !important; align-self: stretch;
}
/* колонна: дорожка тела не шире тела (min-content формы диалога раздвигал 1fr) — внутренняя рамка с правым отступом 4 */
#euraspro-windows .v5-product-window.mode-column .v5-product-body { grid-template-columns: minmax(0, 1fr) !important; }

/* автор 14.09 «уголок-стрелка: к углу толщина линии увеличивается с обеих сторон» — клин-заливка вместо штриха;
   те же размер и положение; у кнопок-меню шапки, кабинета, рупора и у иконки формы окна */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after,
.v5-topbar .v7-hdr-mode::after, .v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after,
.v5-product-window .v5-form-pick::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='7 7 15 15' fill='%231f3a5a' fill-opacity='0.45'><path d='M8 21L21 21L21 8L20 8L18.8 18.8L8 20Z'/><path d='M14 21L21 21L21 14L20 14L18.8 18.8L14 20Z'/></svg>") !important; }

/* автор 14.09 «примени ко всем таким уголкам-стрелкам: и в флагах, и у «Автор», и в проекте» — ВЕЗДЕ ОДИН УГОЛОК-КЛИН:
   концы 1 px, к углу 2,2 px с обеих сторон; размеры/положение по правилу «единый уголок» (9×9, отступ 4) */
.v5-topbar .v7-hdr-modepick::after, .v5-topbar .v7-tf-row-tools > .v7-tf-rowlabel::after, .v5-topbar .v7-hdr-mode::after,
.v5-topbar .v5-login::after, .v5-topbar .v7-hdr-voice::after, .v5-topbar .v5-locale::after,
.v5-product-window .v5-form-pick::after { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='8 8 13 13' fill='%231f3a5a' fill-opacity='0.5'><path d='M8 21L21 21L21 8L20 8L18.8 18.8L8 20Z'/><path d='M14 21L21 21L21 14L20 14L18.8 18.8L14 20Z'/></svg>") !important; }

/* «ПОИСК» И «АВТОР» — ТОЛЬКО ЗНАЧОК при масштабировании (автор 14.09): при ширине окна браузера до 1400 px кнопки с текстом
   становятся квадратными плашками 2rem, остаётся только иконка (уголок-стрелка у «Автор» остаётся) */
@media (max-width: 1400px) {
  .v5-topbar .v7-hdr-find, .v5-topbar .v5-login { width: 2rem; min-width: 2rem; padding: 0; justify-content: center; gap: 0; }
  .v5-topbar .v7-hdr-find > span, .v5-topbar .v5-login > span, .v5-topbar .v5-login > svg + svg { display: none; }
}

/* автор 14.09: уголки внутри плашки (первая плашка строки — метка ряда/крошка/секция), стрелка «скрыть» ТЕРРАКОТОВАЯ */
.v5-topbar :is(.v7-tf-rowlabel, .v7-tf-crumb, .v7-tf-sec, .v5-icon-button) { position: relative; }
.v5-topbar .v7-hdr-corner-hide { color: #b46a55 !important; }
/* автор 14.09: стрелка формы окна — как у всех уголков: 9×9, отступ 4 от угла плашки (была 11×11 у самого края) */
.v5-product-window .v5-form-pick::after { width: 9px; height: 9px; right: 4px; bottom: 4px; background-size: 9px 9px !important; }

/* ЛЕНТА ИНДЕКСОВ УБРАНА ИЗ ШАПКИ (решение автора 19.09.2026: «убери пока индексы плывущие в архив»).
   Полоса RC / PF / SS / P-S / D-SD / DL-SO и курс приходят из сборки приложения узлами .v5-index-strip
   и .v5-rate. Сама сборка не трогается — прячем их слоем шапки, вернуть = убрать этот блок. */
.v5-topbar .v5-index-strip,
.v5-topbar .v5-rate { display: none; }


/* ══ v7-rows.css ══ */
/* ВИД СТРОК ШАПКИ (пара к v7-rows.js; написано начисто 19.09.2026, основание CHG-1255; 20.09.2026 —
   строки памяти по поручению автора «Сохранённое, Окна и Столы — там нужно также поставить стрелочки»).
   Здесь только то, чего нет в существующих конструкциях: скрытие строки «Разделы» (она же бар ленты)
   и плашка значка строки. Подсветка is-on, размер плашки 32, положение и цвет уголков .v7-hdr-corner
   берутся из общих правил шапки (v7-hdr-merge.css) — одинаковые элементы одной конструкцией. */

/* строка «Разделы» = бар ленты: закрытая убирается целиком. Норм-блок шапки ставит бару
   display:flex !important и перебивает атрибут hidden — как у обёрток строк (.v7-hdr-rowwrap[hidden]) */
.v5-topbar > .v7-hdr-ribbon > .v7-tf-bar[hidden] { display: none !important; }

/* плашка значка строки — та же кнопка, что значок в шапке; стоит первой в метке строки
   (метка строки фильтра .v7-tf-rowlabel, метка строки памяти .v7-hdr-saved-label) */
.v5-topbar :is(.v7-tf-rowlabel, .v7-hdr-saved-label) > .v7-rows-plate { position: relative; flex: none; }

/* уголок в плашке — индикатор состояния, а не отдельная кнопка: действие несёт сама плашка.
   Плашки с уголками: значки глубины, плашки строк, значки группы памяти в шапке */
.v5-topbar :is(.v7-hdr-depth4 > button, .v7-rows-plate, .v7-hdr-savebtn, .v7-hdr-pinsbtn, .v7-hdr-desksbtn) > .v7-hdr-corner { pointer-events: none; }

/* горящая плашка (is-on) выглядит как любая активированная плашка шапки: фон даёт общее правило
   «button.is-on», а глиф — этот акцент. Общее правило шапки красит каждый svg в #32495f с !important,
   акцент глифа задан только для is-active (v7-hdr-merge.css) — значки глубины до CHG-1255 горели именно так */
.v5-topbar :is(.v7-hdr-depth4 > button, .v7-rows-plate, .v7-hdr-savebtn, .v7-hdr-pinsbtn, .v7-hdr-desksbtn).is-on > svg { color: #b46a55 !important; }


/* ══ v7-revizia.css ══ */
/* КНИГА «РЕВИЗИЯ» (пара к v7-revizia.js). Книга строится классами сборки, поэтому собственных правил у вида
   почти нет — только текст раскрытого протокола. Токены проекта, без полупрозрачности. */
.v7-rev-body { display: block; }
.v7-rev-text { padding: var(--em-space-2, 0.5rem) var(--em-space-3, 0.75rem); font: var(--em-font-sm, 0.7813rem) / var(--em-line-base, 1.5) var(--em-font-family, inherit); color: var(--v5-text, #1F1E1D); }
.v7-rev-text h2 { font-size: var(--em-font-emphasis, 1rem); margin: 0 0 var(--em-space-2, 0.5rem); }
.v7-rev-text h3 { font-size: var(--em-font-base, 0.875rem); margin: var(--em-space-3, 0.75rem) 0 var(--em-space-1, 0.25rem); color: #244154; }
.v7-rev-text h4 { font-size: var(--em-font-sm, 0.7813rem); margin: var(--em-space-2, 0.5rem) 0 var(--em-space-1, 0.25rem); color: #244154; }
.v7-rev-text p { margin: 0 0 var(--em-space-1, 0.25rem); }
.v7-rev-text ul { margin: 0 0 var(--em-space-2, 0.5rem); padding-inline-start: var(--em-space-4, 1rem); }
.v7-rev-text table { border-collapse: collapse; inline-size: 100%; margin: var(--em-space-2, 0.5rem) 0; }
.v7-rev-text th, .v7-rev-text td { border: var(--v5-hairline, 1px) solid var(--v5-border-light, #E4E0D4); padding: var(--em-space-1, 0.25rem) var(--em-space-2, 0.5rem); vertical-align: top; text-align: start; }
.v7-rev-text th { background: var(--v5-page, #FAF8F2); font-weight: 600; }
/* книга «Ревизия» стоит рядом со штатным видом; штатный на время скрыт атрибутом (сборка задаёт display сама) */
.v5-full-content > .v5-full-view[hidden] { display: none !important; }

/* ЮРИДИЧЕСКОЕ ОФОРМЛЕНИЕ ДОКУМЕНТА (замечания автора 21.09.2026, В-0066: «межстрочные отступы криво-косо — выровнять; оформить как
   юридический документ»). Лист по центру, единый межстрочный шаг, равные отступы абзацев, заголовок и наименование по центру,
   разделы полужирным, текст по ширине; случайные линии и отступы штатного текста внутри листа сняты. Повышенная специфичность —
   чтобы правила штатного .v5-ws-text не перебивали лист. */
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text { display: block !important; max-inline-size: 50rem; margin-inline: auto !important; flex: 1 1 auto; padding: 1.5rem 2rem 2rem; font: 400 var(--em-font-base, 0.875rem) / 1.5 var(--em-font-family, inherit); color: var(--v5-text, #1F1E1D); text-align: justify; hyphens: auto; }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text :is(h2, h3, h4, p, ul, ol, li) { display: block !important; border: 0 !important; min-block-size: 0 !important; block-size: auto !important; padding: 0 !important; padding-block: 0; background: none; line-height: 1.5; color: var(--v5-text, #1F1E1D); }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text h2 { margin: 0 0 0.25rem !important; font-size: 1rem; font-weight: 700 !important; text-align: center; text-transform: uppercase; letter-spacing: 0.02em; }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text h2 + h3 { margin: 0 0 1rem !important; font-size: var(--em-font-base, 0.875rem); font-weight: 600 !important; text-align: center; }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text h3 { margin: 1rem 0 0.375rem !important; font-size: var(--em-font-base, 0.875rem); font-weight: 700 !important; text-align: start; }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text h4 { margin: 0.75rem 0 0.375rem; font-size: var(--em-font-base, 0.875rem); font-weight: 600; text-align: start; }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text p { margin: 0 0 0.375rem !important; }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text :is(ul, ol) { margin: 0 0 0.375rem; padding-inline-start: 1.5rem; }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text li { display: list-item !important; margin: 0 0 0.125rem !important; }
.v7-rev-view .v7-rev-body > .v7-rev-text.v5-ws-text table { margin: 0.5rem 0 0.75rem; font-size: var(--em-font-sm, 0.7813rem); text-align: start; }
.v7-rev-view .v7-rev-body:has(> .v7-rev-text) { display: block !important; padding-inline: 0.25rem !important; }

/* ЗНАЧКИ РАЗДЕЛОВ В ВЕРХНЕЙ СТРОКЕ ШАПКИ (автор 30.09.2026, m_1790740702692_pw3t2j; прежде — подразделы, В-0409): после имени раздела через стрелочки; только значки */
.v5-full-viewbar > .v5-viewbar-title > .v7-docnav-row { display: inline-flex; align-items: center; gap: var(--em-space-1, 0.25rem); min-inline-size: 0; overflow: hidden; }
.v5-full-viewbar > .v5-viewbar-title > .v7-docnav-row > .v7-docnav-sep { color: color-mix(in srgb, #1f3a5a 45%, #fff); font-size: 0.78125rem; margin-inline: 0.125rem; flex: none; }
.v5-full-viewbar > .v5-viewbar-title > .v7-docnav-row > .v7-docnav-btn { flex: none; inline-size: 1.62rem; block-size: 1.62rem; min-block-size: 0; padding: 0; border: 0; border-radius: 0.5rem; background: transparent; color: #32495F; display: inline-flex; align-items: center; justify-content: center; }
.v5-full-viewbar > .v5-viewbar-title > .v7-docnav-row > .v7-docnav-btn > svg { inline-size: 1rem; block-size: 1rem; stroke-width: 1.75; }
.v5-full-viewbar > .v5-viewbar-title > .v7-docnav-row > .v7-docnav-btn:hover { background: color-mix(in srgb, #1f3a5a 6%, #fff); }
.v5-full-viewbar > .v5-viewbar-title > .v7-docnav-row > .v7-docnav-btn.is-active { background: #c3d3e8; color: #1f3a5a; }
/* окно поиска из шапки убрано — поиск в подвале (во всех разделах, в обоих слоях) */
.v5-product-window .v5-full-viewbar .v5-viewbar-search { display: none !important; }

/* индикация «на подпись» (автор 30.09): мигание красноватым оттенком у значка раздела, подраздела и в шапке блока; матово, без альфы */
@keyframes v7-vnimanie { 0%, 100% { color: #b4532a; background: #f4e2d8; } 50% { color: #6b6355; background: #fff; } }
#euraspro-windows .v5-product-window .v5-win-nav nav button[data-v7-vnimanie="1"], .v5-app .v5-product-window .v5-win-nav nav button[data-v7-vnimanie="1"],
#euraspro-windows .v5-product-window .v5-win-nav .v5-win-nav-children button[data-v7-vnimanie="1"], .v5-app .v5-product-window .v5-win-nav .v5-win-nav-children button[data-v7-vnimanie="1"],
.v5-full-viewbar > .v5-viewbar-title > .v7-docnav-row > .v7-docnav-btn[data-v7-vnimanie="1"] { animation: v7-vnimanie 1.2s ease-in-out infinite; color: #b4532a; background: #f4e2d8; filter: none; border-radius: var(--em-radius-sm, 0.5rem); }
#euraspro-windows .v5-product-window .v5-win-nav nav button[data-v7-vnimanie="1"] svg, .v5-app .v5-product-window .v5-win-nav nav button[data-v7-vnimanie="1"] svg,
#euraspro-windows .v5-product-window .v5-win-nav .v5-win-nav-children button[data-v7-vnimanie="1"] svg, .v5-app .v5-product-window .v5-win-nav .v5-win-nav-children button[data-v7-vnimanie="1"] svg,
.v5-full-viewbar > .v5-viewbar-title > .v7-docnav-row > .v7-docnav-btn[data-v7-vnimanie="1"] svg { color: inherit; stroke: currentColor; }
/* мигание «на подпись» не гасится настройкой «уменьшить движение»: это сигнал, а не украшение (автор 30.09.2026, m_1790744866448_d53blt) */

/* строка ПОДРАЗДЕЛОВ открытого раздела — первой под шапкой блока (автор 30.09.2026); та же конструкция значков, что в шапке */
.v5-full-viewbody > .v7-docnav-sub { display: flex; flex-wrap: wrap; align-items: center; gap: var(--em-space-1, 0.25rem); padding: 0.25rem 0.25rem 0.375rem; border-block-end: var(--v5-hairline, 1px) solid #ece7dc; margin-block-end: 0.25rem; }
.v5-full-viewbody > .v7-docnav-sub > .v7-docnav-sep { color: color-mix(in srgb, #1f3a5a 45%, #fff); font-size: 0.78125rem; margin-inline: 0.125rem; flex: none; }
.v5-full-viewbody > .v7-docnav-sub > .v7-docnav-sep:first-child { display: none; }
.v5-full-viewbody > .v7-docnav-sub > .v7-docnav-btn { flex: none; inline-size: 1.62rem; block-size: 1.62rem; min-block-size: 0; padding: 0; border: 0; border-radius: 0.5rem; background: transparent; color: #32495F; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.v5-full-viewbody > .v7-docnav-sub > .v7-docnav-btn > svg { inline-size: 1rem; block-size: 1rem; stroke-width: 1.75; }
.v5-full-viewbody > .v7-docnav-sub > .v7-docnav-btn:hover { background: color-mix(in srgb, #1f3a5a 6%, #fff); }
.v5-full-viewbody > .v7-docnav-sub > .v7-docnav-btn.is-active { background: #c3d3e8; color: #1f3a5a; }
.v5-full-viewbody > .v7-docnav-sub > .v7-docnav-btn[data-v7-vnimanie="1"] { animation: v7-vnimanie 1.2s ease-in-out infinite; color: #b4532a; background: #f4e2d8; }
.v5-full-viewbody > .v7-docnav-sub > .v7-docnav-btn[data-v7-vnimanie="1"] svg { color: inherit; stroke: currentColor; }
/* мигание «на подпись» не гасится настройкой «уменьшить движение»: это сигнал, а не украшение (автор 30.09.2026, m_1790744866448_d53blt) */

/* значки подразделов в головах рядов сборки (Задачи, Диалоги) скрыты: подразделы показаны второй строкой под шапкой (автор 30.09.2026) */
#euraspro-windows .v5-product-window .v5-project-row-head > [data-v7-dubl="1"], .v5-app .v5-product-window .v5-project-row-head > [data-v7-dubl="1"] { display: none; }
/* строка-голова сборки под подразделами скрыта целиком (автор 30.09.2026, m_1790743605805_y2c1bx); с группами третьего уровня — только значки */
#euraspro-windows .v5-product-window .v5-full-viewbody .v5-project-row-head[data-v7-golova="skryt"], .v5-app .v5-product-window .v5-full-viewbody .v5-project-row-head[data-v7-golova="skryt"] { display: none; }

/* мигание по всей ветке до документа (автор 24.10.2026): плашка строки документа, ждущего подписи, мигает тем же оттенком, что раздел и подраздел */
.v5-project-row.is-l1[data-v7-vnimanie="1"] > .v5-icon-tile { animation: v7-vnimanie 1.2s ease-in-out infinite; animation-delay: inherit; color: #b4532a; background: #f4e2d8; }
.v5-project-row.is-l1[data-v7-vnimanie="1"] > .v5-icon-tile svg { color: inherit; stroke: currentColor; }


/* ══ v7-infolevel.css ══ */
/* УРОВЕНЬ 3 ИНФО-ОБЛАСТИ ОКНА «СОВЕТ» — «Раскрыть поверх окна» (решение автора 21.09.2026): блок занимает всё тело
   окна той же сеткой, что уровни сборки (CHG-0632, CHG-0640); тень — как у уровня 2. Слой v7-infolevel.js. */
.v5-product-window .v5-full-content.v7-il-lvl3 { grid-column: 1 / -1 !important; grid-row: 1 / -1 !important; z-index: 8 !important; }
.v5-viewbar-tools > .v7-il-btn:disabled { opacity: 1 !important; color: var(--v5-border, #d9d4c5) !important; cursor: default; }


/* ══ euraspro.css ══ */
/* ЕВРАЗПРО (автор 12.09): «вместо фотографий — диалоговые окна», «точно как в нашем этом окне» (чат совета
   в помощнике), «не меняя размеры области фото и форму окна». Диалог живёт ТОЛЬКО в рамке фото:
   плитка — область фото (.v5-product-media скрыта, диалог на её месте той же клеткой сетки),
   широкое/полное — внутри главного слайда галереи (.v5-wide-slide.is-main, картинки скрыты).
   Титлбар, рейка, пульт, галерея, панель «Обзор», сетка окна — штатные, не трогаются. */
.em-euraspro .v5-product-window .v5-product-body > .v5-product-media { display: none !important; }
.em-euraspro .v5-product-window .v5-wide-slide.is-main > img { display: none !important; }
.em-euraspro .v5-product-window .v5-wide-slide.is-main { display: flex !important; align-items: stretch; }
/* сам диалог: классы штатного чата (.v5-chat/.v7-cn) задают плавающее окно — их размеры и позицию гасим;
   в плитке он занимает клетку фото сетки (grid-row 1), в слайде — всю рамку (flex 1) */
.em-euraspro .v5-product-window .v7-ep-dialog {
  display: flex !important; flex-direction: column; flex: 1 1 auto; grid-row: 1; grid-column: 1; align-self: stretch;
  min-height: 0 !important; max-height: none; height: 100% !important; width: auto !important; max-width: none; min-width: 0;
  margin: 0 !important; padding: 0; border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none;
  position: relative; inset: auto; transform: none; resize: none; overflow: hidden !important; z-index: auto;
}
/* лента и сообщения — как в окне совета помощника (v7-council.css: .v7-cn-feed / .v7-cn-msg в .v5-ai-compact-body) */
.em-euraspro .v7-ep-dialog > .v7-ep-feed {
  flex: 1 1 auto; min-height: 0; overflow-y: auto; scrollbar-width: thin;
  display: flex; flex-direction: column; gap: var(--em-space-2, 0.5rem); padding: var(--em-space-2, 0.5rem);
}
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg {
  max-inline-size: none; inline-size: auto; align-self: stretch; padding: 0.5rem 0.75rem; text-align: start;   /* автор 13.09: отступы от краёв области одинаковые слева и справа */
  border-radius: var(--em-radius-lg, 0.75rem); background: var(--v5-card, #fff) !important;
  /* автор 13.09: ВЕСЬ контур цветом роли: сверху/снизу толщина волоса (1px), слева скобка 3px, справа скобка тоньше
     левой, но толще волоса — 2px (половина 1,5px на обычном экране сливается с волосом в 1px); скругление плавно
     перетекает от волоса к скобкам */
  /* автор 13.09: волос вдвое тоньше правой скобки, правая тоньше левой. Тоньше 1 пикселя экрана линию не нарисовать
     (браузер округляет), поэтому волос сверху/снизу = 1px полупрозрачный (читается вдвое тоньше), справа 2px, слева 3px */
  border-style: solid; border-width: var(--v5-hairline, 1px) var(--v5-hairline, 1px) var(--v5-hairline, 1px) calc(3 * var(--v5-hairline, 1px)); border-color: var(--v5-border, #d8d3c6);   /* автор 13.09: справа скобки нет — волос как сверху и снизу (1px полупрозрачный); слева скобка 3px */
}
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg.role-author { border-color: #1f3a5a !important; border-top-color: color-mix(in srgb, #1f3a5a 55%, #fff) !important; border-bottom-color: color-mix(in srgb, #1f3a5a 55%, #fff) !important;  border-right-color: color-mix(in srgb, #1f3a5a 55%, #fff) !important; }
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg.role-claude { border-color: #d97757 !important; border-top-color: color-mix(in srgb, #d97757 55%, #fff) !important; border-bottom-color: color-mix(in srgb, #d97757 55%, #fff) !important;  border-right-color: color-mix(in srgb, #d97757 55%, #fff) !important; }
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg.role-codex { border-color: #10a37f !important; border-top-color: color-mix(in srgb, #10a37f 55%, #fff) !important; border-bottom-color: color-mix(in srgb, #10a37f 55%, #fff) !important;  border-right-color: color-mix(in srgb, #10a37f 55%, #fff) !important; }
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg.role-system { border-color: #a3a099 !important; border-top-color: color-mix(in srgb, #a3a099 55%, #fff) !important; border-bottom-color: color-mix(in srgb, #a3a099 55%, #fff) !important;  border-right-color: color-mix(in srgb, #a3a099 55%, #fff) !important; }
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg > .v5-chat-meta {
  display: block; margin-bottom: var(--em-space-1, 4px); color: var(--v5-muted, #a3a099);
  font-size: var(--em-font-micro, 11px); font-weight: var(--em-weight-semibold, 600); text-align: start;
}
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg > p {
  margin: 0; font-size: 0.78125rem; line-height: 1.45; color: var(--v5-text, #244154);
  white-space: pre-wrap; overflow-wrap: anywhere; text-align: start;
}
/* форма — как в окне совета помощника: скрепка · поле · «Отправить» */
.em-euraspro .v7-ep-dialog > .v7-ep-form {
  flex: none; display: flex; align-items: center; gap: var(--em-space-2, 0.5rem); padding: var(--em-space-2, 0.5rem);
}
/* автор 12.09: поле и кнопка — КАК ПОИСК в шапке (поле: 32 / паддинг 10 / рамка #E4E0D4 / радиус 8 / 12.5·400;
   кнопка «Поиск»: 32 / паддинг 12 / радиус 8 / #c3d3e8 / #1f3a5a / 12·600 / значок 16 + текст, зазор 6);
   скрепка — как остальные иконки на плашке: 32×32, без фона, значок 16, обводка 1.5, цвет #32495F */
/* (правила окна-атома перекрашивают .v5-cart-button под корзину и прячут текст, а иконки рейки ужимают до 14 —
   поэтому значения закреплены !important) */
.em-euraspro .v7-ep-dialog > .v7-ep-form > input:not([type="file"]) {
  flex: 1 1 auto; min-width: 0; height: 2rem; min-height: 2rem; max-height: 2rem; padding: 0 0.625rem;
  border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4) !important; border-radius: var(--em-radius-sm, 0.5rem); background: var(--v5-card, #fff); outline: 0; box-shadow: none;
  font-family: inherit !important; font-size: 0.78125rem !important; font-weight: 400; color: rgb(31, 30, 29) !important;
}
.em-euraspro .v7-ep-dialog > .v7-ep-form > input:not([type="file"]):focus { border-color: color-mix(in srgb, #1f3a5a 35%, #fff) !important; }
.em-euraspro .v7-ep-dialog > .v7-ep-form > .v7-cn-clip {
  flex: none; width: 2rem; height: 2rem; min-height: 0; padding: 0; margin: 0;
  border: 0 !important; border-radius: 0.5rem; background: transparent !important; color: #32495F !important;
  display: inline-flex !important; align-items: center; justify-content: center;
}
.em-euraspro .v7-ep-dialog > .v7-ep-form > .v7-cn-clip svg { width: 1rem !important; height: 1rem !important; stroke-width: 1.75; }
.em-euraspro .v7-ep-dialog > .v7-ep-form > .v5-cart-button {
  flex: none; height: 2rem; min-height: 2rem; max-height: 2rem; padding: 0 0.75rem !important; margin: 0;
  display: inline-flex !important; align-items: center; gap: 0.375rem !important; border: 0;
  border-radius: 0.5rem; background: #c3d3e8 !important; color: #1f3a5a !important;
  font-family: inherit !important; font-size: 0.75rem !important; font-weight: 600 !important; line-height: 1 !important; white-space: nowrap;
}
.em-euraspro .v7-ep-dialog > .v7-ep-form > .v5-cart-button > span { display: inline !important; font: inherit !important; }
.em-euraspro .v7-ep-dialog > .v7-ep-form > .v5-cart-button svg { width: 1rem !important; height: 1rem !important; stroke-width: 1.75; color: #32495F; flex: none; }
.em-euraspro .v7-ep-dialog > .v7-ep-form > .v7-cn-status { flex: none; }

/* ШАПКА ДИАЛОГА (автор 13.09): как у панели «Обзор» справа (.v5-full-viewbar — те же высота, отступы, волос,
   значок 16, имя 12.5/600), но полупрозрачная — лежит поверх ленты, лента проходит под ней */
.em-euraspro .v7-ep-dialog > .v7-ep-head {
  /* автор 13.09: без полупрозрачности — обычная матовая полоса, как «Обзор» (фон берётся из правила .v5-full-viewbar) */
  position: static; flex: none; border-bottom: 1px solid color-mix(in srgb, #1f3a5a 18%, #fff);
}
.em-euraspro .v7-ep-dialog > .v7-ep-head .v5-viewbar-title svg { color: #32495F; }
.em-euraspro .v7-ep-dialog > .v7-ep-head .v5-viewbar-title strong { font-size: .78125rem; font-weight: 600; color: #32495F; }
.em-euraspro .v7-ep-dialog > .v7-ep-feed { padding-top: 0; /* шапка в потоке; зазор 8 даёт gap диалога */ }

/* ДИНАМИЧНЫЙ ЦВЕТ ШАПКИ (автор 13.09): гамма шапки = цвет скобки последнего сообщения, полупрозрачно */
.em-euraspro .v7-ep-dialog[data-роль="author"] > .v7-ep-head { background: color-mix(in srgb, #1f3a5a 10%, #ffffff) !important; border-bottom-color: color-mix(in srgb, #1f3a5a 35%, #ffffff) !important; }
.em-euraspro .v7-ep-dialog[data-роль="claude"] > .v7-ep-head { background: color-mix(in srgb, #d97757 10%, #ffffff) !important; border-bottom-color: color-mix(in srgb, #d97757 35%, #ffffff) !important; }
.em-euraspro .v7-ep-dialog[data-роль="codex"] > .v7-ep-head { background: color-mix(in srgb, #10a37f 10%, #ffffff) !important; border-bottom-color: color-mix(in srgb, #10a37f 35%, #ffffff) !important; }
.em-euraspro .v7-ep-dialog[data-роль="system"] > .v7-ep-head { background: color-mix(in srgb, #a3a099 10%, #ffffff) !important; border-bottom-color: color-mix(in srgb, #a3a099 35%, #ffffff) !important; }
.em-euraspro .v7-ep-dialog > .v7-ep-head > .v7-ep-headtools { inline-size: 0; overflow: hidden; }
/* КРОШКА В ШАПКЕ (автор 13.09): «Фронт › кто написал последнее» — шрифт тот же, цвет = цвет скобки роли */
.em-euraspro .v7-ep-dialog > .v7-ep-head .v7-ep-sep { color: color-mix(in srgb, #1f3a5a 45%, #fff); font-size: .78125rem; margin-inline: .125rem; }
.em-euraspro .v7-ep-dialog > .v7-ep-head .v7-ep-who { font-size: .78125rem; font-weight: 600; }
.em-euraspro .v7-ep-dialog[data-роль="author"] > .v7-ep-head .v7-ep-who { color: #1f3a5a !important; }
.em-euraspro .v7-ep-dialog[data-роль="claude"] > .v7-ep-head .v7-ep-who { color: #d97757 !important; }
.em-euraspro .v7-ep-dialog[data-роль="codex"]  > .v7-ep-head .v7-ep-who { color: #10a37f !important; }
.em-euraspro .v7-ep-dialog[data-роль="system"] > .v7-ep-head .v7-ep-who { color: #a3a099 !important; }

/* ПЛЫВУЩИЕ ОБЛАСТИ (автор 13.09): кадр галереи с диалогом — как главный кадр: картинка скрыта, диалог на всю площадь */
.em-euraspro .v5-wide-track > .v5-wide-slide.v7-ep-slot { display: flex; }
.em-euraspro .v5-wide-track > .v5-wide-slide.v7-ep-slot > img { display: none; }

/* ВНУТРЕННЯЯ ОБЛАСТЬ КАК ОКНО (автор 13.09): в плитке и колонне диалог оформлен как главный кадр ряда/квадрата —
   рамка-волос 1 px 30 %, скругление 8, белый фон, отступ 4 от краёв тела; шапка диалога внутри рамки */
.em-euraspro .v5-product-window.mode-tile .v5-product-body > .v7-ep-dialog,
.em-euraspro .v5-product-window.mode-column .v5-product-body > .v7-ep-dialog {
  margin: var(--v5-win-pad, .25rem) !important; border: var(--v5-hairline, 1px) solid color-mix(in srgb, #1f3a5a 30%, #fff) !important; border-radius: var(--em-radius-sm, 0.5rem) !important;
  background: #fff !important; overflow: hidden; height: auto !important; flex: 1 1 auto; min-height: 0 !important; align-self: stretch;
}

/* ПОЛЕ И КНОПКА «ОТПРАВИТЬ» МЕНЬШЕ (автор 13.09: −10 %, затем ещё −10 % = 0.81): высота 2rem → 1.62rem, поля пропорционально; шрифты по стандарту */
.em-euraspro .v7-ep-dialog > .v7-ep-form > input:not([type="file"]) { height: 1.62rem !important; min-height: 1.62rem !important; max-height: 1.62rem !important; padding: 0 0.5rem !important; }
.em-euraspro .v7-ep-dialog > .v7-ep-form > .v5-cart-button { height: 1.62rem !important; min-height: 1.62rem !important; max-height: 1.62rem !important; padding: 0 0.6rem !important; }

/* КНОПКА «ОТПРАВИТЬ» — ТОЛЬКО ЗНАЧОК при узком диалоге (автор 14.09: при масштабировании кнопки становятся квадратными, остаётся
   только иконка): диалог — контейнер; уже 17rem (плитка, плывущие кадры) → квадрат высоты формы, текст скрыт; шире — значок + текст */
.em-euraspro .v7-ep-dialog { container-type: inline-size; }
/* автор 27.09.2026 (В-0411): при сжатии диалога, где он пишет, кнопка полноразмерная, а поле — крошечное; порог поднят с 17rem
   до 30rem (главный кадр ленты 438 px = 27,4rem), то же — кнопке формы ответа внутри сообщения (v7-msg-tools) */
@container (max-width: 30rem) {
  .em-euraspro .v7-ep-dialog > .v7-ep-form > .v5-cart-button, .em-euraspro .v7-ep-dialog .v7-mt-form.v7-mt-kak-glavnaya > .v5-cart-button { width: 1.62rem !important; min-width: 1.62rem; padding: 0 !important; justify-content: center; gap: 0 !important; }
  .em-euraspro .v7-ep-dialog > .v7-ep-form > .v5-cart-button > span, .em-euraspro .v7-ep-dialog .v7-mt-form.v7-mt-kak-glavnaya > .v5-cart-button > span { display: none !important; }
}

/* ИНДИКАТОРЫ УЧАСТНИКОВ (автор 14.09): полоса кружков между лентой и полем ввода; кружок 0.5rem, зазор 0.375rem, цвет участника;
   горит — полный цвет с мягким ореолом того же цвета (матово), не работает — приглушённый (35 % цвета на белом) */
.em-euraspro .v7-ep-dialog > .v7-ep-presence { display: flex; align-items: center; gap: 0.375rem; flex: 0 0 auto; height: 1rem; padding: 0 0.5rem; }
.em-euraspro .v7-ep-dialog > .v7-ep-presence > .v7-ep-dot { display: inline-block; flex: 0 0 auto; aspect-ratio: 1; width: 0.5rem; height: 0.5rem; border-radius: 50%; background: color-mix(in srgb, var(--dot, #a3a099) 35%, #fff); transition: background-color 400ms ease, box-shadow 400ms ease; }
.em-euraspro .v7-ep-dialog > .v7-ep-presence > .v7-ep-dot.is-on { background: var(--dot, #a3a099); box-shadow: 0 0 0 2px color-mix(in srgb, var(--dot, #a3a099) 25%, #fff); }

/* ПОЛОСА ТОЧЕК АКТИВНОСТИ НИЖЕ (автор 16.09: «участки с точками активности сделать по высоте меньше на 25–35 %, увеличить окно контекста»):
   полоса 0.875rem вместо 1rem, зазоры вокруг неё по 0.25rem вместо 0.5rem (зона лента→форма 32 → 22 px, −31 %); зазор шапка→лента прежний. */
.em-euraspro .v5-product-window .v7-ep-dialog { gap: var(--em-space-1, 0.25rem) !important; } /* три класса: перекрывает зазор .v5-chat из atom-windows.css (тот же вес, но позже) */
.em-euraspro .v5-product-window .v7-ep-dialog > .v7-cn-feed { margin-block-start: var(--em-space-1, 0.25rem); }
.em-euraspro .v7-ep-dialog > .v7-ep-presence { height: 0.875rem; }
/* НИЖНИЕ ПЛАШКИ ДИАЛОГА (автор 15.09): строка ввода 48 → 40 px (отступы 0.25rem), полоса точек 0.75rem; точки посередине по высоте,
   первая точка — по оси значка-скрепки (отступ = отступ строки ввода 0.5rem + (плашка 2rem − точка 0.5rem)/2 = 1.25rem). */
.em-euraspro .v5-product-window .v7-ep-dialog > .v7-cn-form { padding-block: var(--em-space-1, 0.25rem); }
.em-euraspro .v5-product-window .v7-ep-dialog > .v7-ep-presence { height: 0.75rem; padding-inline-start: calc(var(--em-space-2, 0.5rem) + (var(--em-space-6, 2rem) - 0.5rem) / 2); }

/* АВАТАРКИ ДОЛЖНОСТЕЙ (автор 15.09): значок в цвете должности, подсказка нашего стиля; в свёрнутых окнах (плитка, колонна) —
   только аватарка, в окнах крупнее — аватарка и наименование */
.em-euraspro .v7-ava { display: inline-grid; place-items: center; inline-size: var(--em-space-5, 1.25rem); block-size: var(--em-space-5, 1.25rem); border-radius: 50%; color: var(--ava, #6e6b64); background: color-mix(in srgb, var(--ava, #6e6b64) 18%, #fff); vertical-align: middle; margin-inline-end: var(--em-space-1, 0.25rem); flex: 0 0 auto; }
.em-euraspro .v7-ava > svg { inline-size: 0.75rem; block-size: 0.75rem; stroke-width: 1.75; }
.em-euraspro .v7-ep-who { display: inline-flex; align-items: center; gap: var(--em-space-1, 0.25rem); }
.em-euraspro .v5-product-window.mode-tile .v7-cn-who, .em-euraspro .v5-product-window.mode-column .v7-cn-who,
.em-euraspro .v5-product-window.mode-tile .v7-ep-who .v7-ava-name, .em-euraspro .v5-product-window.mode-column .v7-ep-who .v7-ava-name { display: none; }

/* ТОЧКИ ВСЕХ УЧАСТНИКОВ НА НИЖНЕЙ ПЛАШКЕ РАЗДЕЛА (автор 15.09): та же конструкция, что полоса точек диалога */
.em-euraspro .v5-full-viewfoot > .v7-foot-presence { display: flex; flex: 1 1 auto; flex-wrap: nowrap; align-items: center; gap: 0.25rem; min-inline-size: 0; overflow: hidden; } /* полоса занимает ширину плашки и режется по её краю — не растягивает раздел (автор 15.09) */ /* одна строка — высота плашки как у строки ввода */
.em-euraspro .v7-foot-presence > .v7-ep-dot { display: inline-block; flex: 0 0 auto; aspect-ratio: 1; inline-size: 0.5rem; block-size: 0.5rem; border-radius: 50%; background: color-mix(in srgb, var(--dot, #a3a099) 35%, #fff); transition: background-color 400ms ease, box-shadow 400ms ease; }
.em-euraspro .v7-foot-presence > .v7-ep-dot.is-on { background: var(--dot, #a3a099); box-shadow: 0 0 0 2px color-mix(in srgb, var(--dot, #a3a099) 25%, #fff); }

/* ГРУППЫ СТАТУСОВ на нижней плашке (автор 15.09): разделитель «›» как в шапках книг, значок группы и её имя */
.em-euraspro .v7-foot-presence > .v7-foot-sep { margin-inline: var(--em-space-1, 0.25rem); color: var(--v5-muted, #a3a099); }
.em-euraspro .v7-foot-presence > .v7-foot-group-icon { display: inline-grid; place-items: center; inline-size: var(--em-space-5, 1.25rem); block-size: var(--em-space-5, 1.25rem); color: var(--v5-secondary, #6e6b64); }
.em-euraspro .v7-foot-presence > .v7-foot-group-icon > svg { inline-size: 0.875rem; block-size: 0.875rem; }
.em-euraspro .v7-foot-presence > .v7-foot-group-name { font-size: var(--em-font-xs, 0.75rem); color: var(--v5-secondary, #6e6b64); margin-inline-end: var(--em-space-1, 0.25rem); white-space: nowrap; }

.em-euraspro .v7-ep-name { display: inline-flex; align-items: center; gap: var(--em-space-1, 0.25rem); }
.em-euraspro .v5-product-window.mode-tile .v7-ep-name .v7-ava-name, .em-euraspro .v5-product-window.mode-column .v7-ep-name .v7-ava-name { display: none; } /* в маленьком окне и столбике — только аватарка (автор 15.09) */

/* ИМЯ ПИШУЩЕГО — ТОЛЬКО АВАТАРКА В УЗКИХ БЛОКАХ (автор 15.09: «в шапках не убрались наименования того, кто работает, в маленьких окнах
   и в столбике»): блок диалога уже 40rem (главный кадр ленты и столбики очереди) — имя в шапке и в подписях сообщений скрыто,
   остаётся аватарка с подсказкой; в блоках шире — аватарка и имя. Контейнер — .v7-ep-dialog (container-type: inline-size). */
@container (max-width: 40rem) {
  .em-euraspro .v7-ep-who .v7-ava-name, .em-euraspro .v7-cn-who { display: none; }
}

/* ГОСТЬ ПО ПРИГЛАШЕНИЮ (З-001): карточки эксперта — фиолетовая скобка, поле ввода чужого блока — отключено */
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg.role-expert { border-color: #7c5cbf !important; border-top-color: color-mix(in srgb, #7c5cbf 55%, #fff) !important; }
.em-euraspro .v7-cn-form input:disabled { color: var(--v5-muted, #a3a099) !important; background: var(--v5-border-light, #e4e0d4) !important; } /* матово, без альфы (правило 13.09) */

/* ПОДВАЛ ИНФОРМАЦИОННОГО БЛОКА — КАК ПОДВАЛ ДИАЛОГА (автор 27.09.2026, В-0405, В-0406 — правка 1): два ряда — полоса точек сверху,
   под ней строка поиска той же конструкции, что строка ввода сообщения (скрепка 2rem · поле 1.62rem · кнопка 1.62rem);
   поиск из шапки блока переехал в подвал */
.em-euraspro #euraspro-windows .v5-full-viewfoot, .em-euraspro .v5-product-window .v5-full-viewfoot { flex-direction: column; align-items: stretch; justify-content: flex-start; gap: var(--em-space-1, 0.25rem); padding: var(--em-space-1, 0.25rem) var(--em-space-2, 0.5rem); min-block-size: 0; }
.em-euraspro .v5-full-viewfoot > .v7-foot-presence { flex: none; min-block-size: 0.75rem; padding-inline-start: calc((var(--em-space-6, 2rem) - 0.5rem) / 2); }
.em-euraspro .v5-full-viewfoot > .v7-foot-search { flex: none; display: flex; align-items: center; gap: var(--em-space-2, 0.5rem); margin: 0; padding: 0; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > input[type="file"] { display: none; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > input:not([type="file"]) {
  flex: 1 1 auto; min-width: 0; height: 1.62rem !important; min-height: 1.62rem !important; max-height: 1.62rem; padding: 0 0.5rem !important;
  border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4) !important; border-radius: var(--em-radius-sm, 0.5rem); background: var(--v5-card, #fff); outline: 0; box-shadow: none;
  font-family: inherit !important; font-size: 0.78125rem !important; font-weight: 400; color: rgb(31, 30, 29) !important;
}
.em-euraspro .v5-full-viewfoot > .v7-foot-search > input:not([type="file"]):focus { border-color: color-mix(in srgb, #1f3a5a 35%, #fff) !important; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v7-cn-clip { flex: none; width: 2rem; height: 2rem; min-height: 0; padding: 0; margin: 0; border: 0 !important; border-radius: 0.5rem; background: transparent !important; color: #32495F !important; display: inline-flex !important; align-items: center; justify-content: center; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v7-cn-clip svg { width: 1rem !important; height: 1rem !important; stroke-width: 1.75; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v5-cart-button { flex: none; height: 1.62rem !important; min-height: 1.62rem !important; max-height: 1.62rem; padding: 0 0.6rem !important; margin: 0; display: inline-flex; align-items: center; gap: 0.375rem !important; border: 0; border-radius: 0.5rem; background: #c3d3e8 !important; color: #1f3a5a !important; font-family: inherit !important; font-size: 0.75rem !important; font-weight: 600 !important; line-height: 1 !important; white-space: nowrap; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v5-cart-button > span { display: inline !important; font: inherit !important; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v5-cart-button svg { width: 1rem !important; height: 1rem !important; stroke-width: 1.75; color: #32495F; flex: none; }
.em-euraspro .v5-full-view > .v5-full-viewbar .v5-viewbar-search { display: none !important; }   /* поиск переехал в подвал */

/* ИНСТРУМЕНТЫ ДОКУМЕНТА В ПОДВАЛЕ (автор 27.09.2026, В-0407 — правка 2): ряд значков перед скрепкой той же конструкции;
   состояния вида — классами на .v5-full-view: книжный (узкая колонка), страницы (разрывы между главами), масштаб шрифта */
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v7-foot-tools { flex: none; display: flex; align-items: center; gap: var(--em-space-1, 0.25rem); margin-inline-end: var(--em-space-1, 0.25rem); }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v7-foot-tools > .v7-foot-tool { flex: none; width: 2rem; height: 2rem; min-height: 0; padding: 0; margin: 0; border: 0 !important; border-radius: 0.5rem; background: transparent !important; color: #32495F !important; display: inline-flex !important; align-items: center; justify-content: center; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v7-foot-tools > .v7-foot-tool svg { width: 1rem !important; height: 1rem !important; stroke-width: 1.75; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v7-foot-tools > .v7-foot-tool:hover { background: color-mix(in srgb, #1f3a5a 6%, #fff) !important; }
.em-euraspro .v5-full-viewfoot > .v7-foot-search > .v7-foot-tools > .v7-foot-tool.is-active { background: #c3d3e8 !important; color: #1f3a5a !important; }
/* книжный вид: узкая колонка документа по центру; альбомный (по умолчанию) — во всю ширину */
.em-euraspro .v5-full-view.v7-doc-portrait .v7-rev-text, .em-euraspro .v5-full-view.v7-doc-portrait .v5-full-viewbody .v5-ws-text { max-inline-size: 42rem; margin-inline: auto; }
/* форма «страницы»: главы отделены разрывом-полосой, в печати — новой страницей */
.em-euraspro .v5-full-view.v7-doc-pages .v7-rev-text > h2:not(:first-child), .em-euraspro .v5-full-view.v7-doc-pages .v5-ws-text > h2:not(:first-child) { margin-block-start: var(--em-space-8, 2.5rem); padding-block-start: var(--em-space-4, 1rem); border-block-start: 1px dashed var(--v5-border-light, #e4e0d4); }
/* масштаб шрифта документа */
.em-euraspro .v5-full-view .v7-rev-text { font-size: calc(var(--em-font-sm, 0.7813rem) * var(--v7-doc-scale, 1)) !important; }
.em-euraspro .v5-full-view .v5-full-viewbody .v5-ws-text { font-size: calc(var(--em-font-sm, 0.78125rem) * var(--v7-doc-scale, 1)); }
/* оглавление — всплывающий список над подвалом */
.em-euraspro .v5-full-view { position: relative; }
.em-euraspro .v5-full-view > .v7-foot-outline { position: absolute; inset-inline-start: var(--em-space-2, 0.5rem); inset-block-end: calc(var(--em-space-6, 2rem) + var(--em-space-6, 2rem) + var(--em-space-2, 0.5rem)); z-index: 5; max-inline-size: 24rem; max-block-size: 50%; overflow: auto; display: grid; padding: var(--em-space-1, 0.25rem); background: var(--v5-card, #fff); border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem); box-shadow: none; }
.em-euraspro .v7-foot-outline > .v7-foot-outline-item { text-align: start; border: 0; background: transparent; padding: var(--em-space-1, 0.25rem) var(--em-space-2, 0.5rem); border-radius: 0.375rem; font: var(--em-font-sm, 0.78125rem) / 1.35 inherit; color: var(--v5-text, #1f1e1d); cursor: pointer; }
.em-euraspro .v7-foot-outline > .v7-foot-outline-item:hover { background: color-mix(in srgb, #1f3a5a 6%, #fff); }
.em-euraspro .v7-foot-outline > .v7-foot-outline-item.lvl-h3 { padding-inline-start: var(--em-space-4, 1rem); }
.em-euraspro .v7-foot-outline > .v7-foot-outline-item.lvl-h4 { padding-inline-start: var(--em-space-6, 2rem); color: var(--v5-secondary, #6e6b64); }
.em-euraspro .v7-foot-outline > .v7-foot-outline-empty { padding: var(--em-space-1, 0.25rem) var(--em-space-2, 0.5rem); font-size: var(--em-font-xs, 0.75rem); color: var(--v5-secondary, #6e6b64); }

/* ПУЗЫРИ НЕ ШИРЕ ЛЕНТЫ (автор 27.09.2026, В-0412): шапка сообщения (номер, вид, точки, время, значки) не сжималась, и весь пузырь
   был шире ленты (замер: 516 при 438) — теперь пузырь ужимается до ленты, а шапка переносит значки на новую строку */
.em-euraspro .v7-ep-dialog > .v7-ep-feed > .v5-chat-msg, .em-euraspro .v7-ep-dialog .v7-mt-replies > .v7-cn-msg { min-inline-size: 0; max-inline-size: 100%; }
.em-euraspro .v7-ep-dialog .v5-chat-msg > .v5-chat-meta { flex-wrap: wrap; row-gap: 0.125rem; min-inline-size: 0; }


/* ══ v7-chasy.css ══ */
/* ВИД СООБЩЕНИЯ, СВЕТОФОР АКТИВНОСТИ И ЧАСЫ В ЛЕНТЕ (решения автора 24.09.2026; Р-028 п. 6–8, 29.09.2026).
   Значок вида — квадратная плашка со скруглением и волосом (как плашки сборки), цвет — по виду; часы — рядом, без слов.
   Матовые цвета, без полупрозрачности; размеры в rem от резинового корня. Будильник — мигание красной точки светофора
   и точки участника в подвале. */

/* значок вида: серия Р-028 п. 6 (идея, задача, вопрос, ответ, отчёт, решение, протокол) */
.v7-vid {
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto;
  inline-size: 1.25rem; block-size: 1.25rem; box-sizing: border-box;
  border-radius: 0.375rem;
  color: #6b6355; background: #f1efea; border: var(--v5-hairline, 1px) solid #e4e0d4;
}
.v7-vid > svg { inline-size: 0.875rem; block-size: 0.875rem; }
.v7-vid-задача { background: #e2e8f0; color: #33506e; }
.v7-vid-вопрос { background: #f6e6d8; color: #8a5326; }
.v7-vid-отчёт { background: #dfe9dd; color: #3c5c3a; }
.v7-vid-идея { background: #eae3f0; color: #5a4570; }
.v7-vid-ответ { background: #ece7dc; color: #6b6355; }
.v7-vid-решение { background: #e6ece2; color: #3c5c3a; }
.v7-vid-протокол { background: #e8e4ee; color: #4b3f66; }

/* часы: ждём — сколько ждём или сколько до срока автора; ответили — замерли; не ждём — сколько прошло */
.v7-chasy { display: inline-block; font-size: 0.625rem; line-height: 1.1rem; color: #8a8175; font-variant-numeric: tabular-nums; }
.v7-chasy.is-prosto { color: #a29a8c; }
.v7-chasy.is-srok { color: #33506e; font-weight: 600; }
.v7-chasy.is-prosrok { color: #b4532a; font-weight: 600; }
.v7-chasy.is-zakryto { color: #5f7a5c; }
.v7-chasy.is-zakryto::before { content: "✓ "; }
.v7-chasy[data-svet="жёлтый"] { color: #a07a1f; font-weight: 600; }
.v7-chasy[data-svet="красный"] { color: #b4532a; font-weight: 700; }

/* выбранное сообщение: матовая подложка и полоса слева */
.v7-msg-vybrano { background: #f6f2e8; box-shadow: inset 0.1875rem 0 0 #b4532a; }

/* шапка пузыря — одна ось (замер 24.09: разброс 44 px без этого) */
.v7-cn-feed .v7-cn-msg > .v5-chat-meta { display: flex; align-items: center; gap: 0.25rem; line-height: 1.25rem; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta > .v7-vid,
.v7-cn-feed .v7-cn-msg > .v5-chat-meta > .v7-chasy,
.v7-cn-feed .v7-cn-msg > .v5-chat-meta > .v7-svetofor,
.v7-cn-feed .v7-cn-msg > .v5-chat-meta > .v7-chasy-sep { display: inline-flex; align-items: center; block-size: 1.25rem; margin-inline-start: 0; vertical-align: middle; }
.v7-chasy-sep { font-style: normal; color: #a29a8c; font-size: 0.6875rem; }

/* светофор активности (Р-028 п. 6): зелёный — все отреагировали, жёлтый — ждём ответа, красный мигает — срок вышел */
.v7-svetofor { gap: 0.1875rem; }
.v7-svetofor > .v7-ep-dot { display: inline-block; inline-size: 0.5rem; block-size: 0.5rem; border-radius: 50%; background: #e0dcd2; flex: 0 0 auto; }
.v7-dot-зелёный.is-on { background: #3f7a4a; box-shadow: 0 0 0 2px #dfe9dd; }
.v7-dot-жёлтый.is-on { background: #c8931f; box-shadow: 0 0 0 2px #f6eedd; }
.v7-dot-красный.is-on { background: #b4532a; box-shadow: 0 0 0 2px #f4e2d8; }

/* будильник (Р-028 п. 8): мигают красная точка светофора и точка не ответившего в подвале */
@keyframes v7-migat { 0%, 100% { opacity: 1; } 50% { opacity: 0.2; } }
.v7-svetofor.is-blink > .v7-dot-красный.is-on { animation: v7-migat 1s ease-in-out infinite; }
.v7-vt-dot.is-late { animation: v7-migat 1s ease-in-out infinite; box-shadow: 0 0 0 2px #f4e2d8; }
@media (prefers-reduced-motion: reduce) { .v7-svetofor.is-blink > .v7-dot-красный.is-on, .v7-vt-dot.is-late { animation: none; } }

/* аватар и имя — на общей оси; номер сообщения вместо даты активен (24.09) */
.v7-cn-feed .v7-cn-msg > .v5-chat-meta > * { align-self: center; }
.v7-cn-feed .v7-cn-msg > .v5-chat-meta > .v7-ava { flex: 0 0 auto; }
.v7-nomer { cursor: pointer; font-variant-numeric: tabular-nums; color: #6b6355; }
.v7-nomer:hover { color: #b4532a; text-decoration: underline; }

/* ЗНАЧОК АВТОРА (решение автора 24.09: «у нас круглых кнопок нет»): плашка квадратная со скруглением */
.v7-ava { border-radius: 0.5rem !important; background: #f1efea; border: 1px solid #e4e0d4; }


/* ══ v7-niti.css ══ */
/* НИТИ И КЛОНЫ (В-0165, протокол Р-019). Полка клонов и значок трансляции.
   Матовые цвета, без полупрозрачности и размытия — правило автора от 13.09. Размеры в rem от корня 1vw. */

.v7-niti-wrap { display: inline-flex; align-items: center; }

/* 23.09 (В-0171): название окна — ЕВРАЗМАРКЕТ или ЕВРАЗПРО — жирным и чуть мельче прежнего (было 12,5 px
   обычным начертанием), по оси с логотипом окна; значок переноса стоит следом за названием и стрелкой. */
.v5-product-window .v5-crumb-branch,
.v5-product-window .v5-crumb-branch > span { font-size: 0.75rem !important; font-weight: 600 !important; letter-spacing: 0.01em; }

.v5-product-window .v5-crumbs { align-items: center; }

/* 23.09 (В-0172): разделитель — стандартная стрелка групп; цвет и начертание берутся у сборки
   (.v5-crumbs i), здесь задан только зазор, чтобы стрелка стояла как между группами шапки. */
.v5-product-window .v7-niti-sep { font-style: normal; margin-inline: 0.1875rem; }

.v5-product-window .v7-niti-wrap { margin-inline-start: 0; }

/* 26.09.2026 (m_1790439833700_6580rx): трансляция идёт — значок «светится» у оригинала и у клона.
   Матово, без альфы (правило 13.09): цвет знака #b4532a и его оттенок 10 % на белом подложкой. */
.v7-niti-btn.is-on { color: #b4532a !important; background: #f8eeea !important; border-radius: 0.5rem; }

.v7-niti-polka {
  position: fixed;
  right: 0.75rem;
  bottom: 0.75rem;
  z-index: 30;   /* полка должна лежать поверх окон сборки: при z-index 9 кнопки перекрывались значками окна */
  inline-size: 18rem;
  max-block-size: 26rem;
  overflow-y: auto;
  background: #faf9f5;
  border: 1px solid #e3ded2;
  border-radius: 0.75rem;
  padding: 0.5rem;
}

.v7-niti-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.125rem 0.25rem 0.375rem;
  border-block-end: 1px solid #ece7dc;
}

.v7-niti-title { font-size: 0.78125rem; font-weight: 600; color: #4a4237; }

.v7-niti-list { display: flex; flex-direction: column; gap: 0.375rem; padding-block-start: 0.375rem; }

.v7-niti-card {
  background: #ffffff;
  border: 1px solid #ece7dc;
  border-radius: 0.5rem;
  padding: 0.4375rem 0.5rem;
}

.v7-niti-card.is-pinned { border-color: #d8c6a8; background: #fdfaf3; }

.v7-niti-name { font-size: 0.78125rem; font-weight: 600; color: #3b352c; margin-block-end: 0.125rem; }

.v7-niti-from { font-size: 0.6875rem; color: #8a8175; margin-block-end: 0.25rem; }

.v7-niti-body { font-size: 0.6875rem; color: #6b6355; line-height: 1.35; }

.v7-niti-tools { display: flex; gap: 0.25rem; justify-content: flex-end; margin-block-start: 0.3125rem; }

.v7-niti-tools .v5-icon-button { inline-size: 1.5rem; block-size: 1.5rem; }

.v7-niti-tools .v5-icon-button svg { inline-size: 0.8125rem; block-size: 0.8125rem; }


/* ══ v7-logotip.css ══ */
/* ЛОГОТИП АВТОРА ОТ 23.09.2026 (В-0174) и надпись рядом с ним.

   Автор поправил знак и велел поставить его на сайте и во всех окнах обоих слоёв, соблюдая
   пропорции знака и надписи при уменьшении. Второе замечание автора: «у основного сайта у надписи
   есть толщина, а в окне тоньше и светлее» — замер это подтвердил: на сайте 12,5 px, вес 600,
   цвет #3b352c; в окне было 12 px, вес 600, цвет rgb(50,74,103) — холоднее и светлее.

   Слой ставится рядом со сборкой: её узлы не переписываются, меняются только вид знака и надписи.
   Файлы знака лежат под новыми именами (euras-znak-v2-128.png, euras-logo-v2-256.png): у картинок
   нет метки версии, и под старым именем браузер автора показал бы прежний знак из кэша. */

/* ── знак в шапке каждого окна ──
   Образец автора от 15:47 и его же мера: «уменьшение картинки на 70 процентов от основного логотипа».
   Основной знак на сайте — 2.5rem (40 px при корне 16). Семь десятых от него — 1.75rem (28 px).
   Прежде знак рисовался на 24 px внутри плашки 2rem, оттого и выглядел мельче образца.
   Размер задан в rem: при резиновом корне знак тянется вместе с плашкой, пропорция квадрата цела. */
.v5-window-titlebar .v5-title-crumbs > .v5-crumb-znak {
  background-image: url("/euras-znak-v2-128.png") !important;
  background-size: 1.75rem 1.75rem !important;
}

/* ── уголок-стрелка у плашки названия: справа внизу, как на сайте ──
   в окне он стоял слева внизу и зеркально (scaleX(-1)); на сайте — справа внизу и без зеркала,
   и именно так он показан на образце автора. */
.v5-product-window .v5-crumb-branch > .v7-hdr-corner-next {
  left: auto !important;
  right: 4px;
  bottom: 4px;
  transform: none !important;
}

/* ── место под уголок в плашке названия (В-0181) ──
   Автор: «стрелочки смещены от угла влево, нужно чуть вправо; от нижнего угла последней буквы до
   внутреннего угла стрелочки — впритык; внешний угол стрелочки в тех же пропорциях с углом плашки,
   как во флагах». Замер показал наложение: уголок залезал на слово на 5 px.
   Считаем: у плашки значка и у флага уголок отстоит от угла на 4 px — эту пропорцию и держим.
   Чтобы внутренний угол уголка пришёлся ровно на конец слова, правому полю плашки нужно
   9 px уголка + 4 px отступа = 13 px (0.8125rem), левое поле остаётся прежним. */
.v5-product-window .v5-crumb-branch {
  padding-inline-end: 0.8125rem !important;
}

/* ── надпись ЕВРАЗМАРКЕТ и ЕВРАЗПРО в шапке окна: как на сайте — та же толщина и тот же тон ──
   размер остаётся 12 px (решение автора от 23.09: «шрифт жирный как на сайте, но чуть меньше»),
   вес поднят до 700, чтобы при меньшем размере надпись держала ту же толщину, что на сайте,
   цвет взят с сайта, межбуквенный интервал обычный — на сайте он обычный. */
.v5-product-window .v5-crumb-branch,
.v5-product-window .v5-crumb-branch > span {
  font-weight: 700 !important;
  /* цвет задан буквально: внутри окна переменная --v5-text переопределена в холодный синий
     (замер дал rgb(50,74,103)), и обращение к ней вернуло бы прежний светлый тон */
  color: #3b352c !important;
  letter-spacing: normal;
}


/* ══ v7-os-znachkov.css ══ */
/* ОДНА ОСЬ ЗНАЧКОВ В СВЁРНУТОМ МЕНЮ (поручение автора 23.09.2026, В-0196, В-0198; задачи секретаря
   R-017 «соблюдение пропорций окна» и R-018 «дизайн левого меню иконок»).

   Правило автора: меню свёрнуто — значки разделов и подразделов в одной вертикальной оси, подразделы
   раскрываются без смещения; меню раскрыто — смещение остаётся. Оба меню: сайта и окна.

   Что делаем в свёрнутом виде:
     1) снимаем левое поле группы подразделов (24 px — ступенька раскрытого вида);
     2) прячем подписи подразделов, как это сделано у разделов: в узкой полосе они вылезали
        на содержимое окна — именно это автор видел на скриншоте;
     3) ставим значок по центру полосы, чтобы ось совпала с осью разделов.
   Ширину полосы и размеры кнопок не трогаем: пропорции окна остаются прежними (R-017). */

.v5-sidebar.is-collapsed .v5-nav-children,
.v5-product-window .v5-win-nav.is-collapsed .v5-nav-children {
  margin-inline-start: 0 !important;
  justify-items: center;
  /* автор 23.09: «идёт смещение и уходят под экран справа». Группа не должна быть шире своей полосы
     ни при каком масштабе — тогда уйти вправо ей просто некуда. */
  max-inline-size: 100%;
  overflow-x: hidden;
}

/* и сама кнопка подраздела держится в полосе: подпись скрыта, значок по центру */
.v5-sidebar.is-collapsed .v5-nav-children button,
.v5-product-window .v5-win-nav.is-collapsed .v5-nav-children button {
  max-inline-size: 100%;
  overflow: hidden;
  white-space: nowrap;
}

.v5-sidebar.is-collapsed .v5-nav-children button,
.v5-product-window .v5-win-nav.is-collapsed .v5-nav-children button {
  justify-content: center;
}

/* подпись подраздела в свёрнутой полосе не помещается — прячем её, как у разделов;
   значок остаётся, имя раздела человек видит в подсказке */
.v5-sidebar.is-collapsed .v5-nav-children button > span:not(.v5-tip),
.v5-product-window .v5-win-nav.is-collapsed .v5-nav-children button > span:not(.v5-tip) {
  display: none;
}

/* 24.09: свёрнутая полоса держит всё внутри себя (скрин автора: «открываются как нужно, а через
   секунду уезжают под окно»). Причина — подписи у пунктов, которые в узкую полосу не помещаются:
   пока раскладка считается, они тянут строку вправо, и её выносит за край окна.
   Поэтому в свёрнутом меню ОКНА подпись скрыта у любого пункта, а сама полоса обрезает всё лишнее. */
.v5-product-window .v5-win-nav.is-collapsed {
  overflow-x: clip;
  max-inline-size: 100%;
}
.v5-product-window .v5-win-nav.is-collapsed button > span:not(.v5-tip):not(.v5-nav-icon),
.v5-product-window .v5-win-nav.is-collapsed a > span:not(.v5-tip):not(.v5-nav-icon) {
  display: none;
}
.v5-product-window .v5-win-nav.is-collapsed button,
.v5-product-window .v5-win-nav.is-collapsed a {
  max-inline-size: 100%;
  justify-content: center;
  overflow: hidden;
  white-space: nowrap;
}

/* 24.09, слово автора: «непонятно, какая иконка относится к разделу, а какая к подразделу —
   используй нашу цветовую идентификацию, есть утверждённая иконографика».
   По нашей системе ролей значков: раздел — роль L_MAIN, подраздел — M_SUB. Размеры и толщину
   берём из утверждённых переменных, а различие даём тоном: раздел основным цветом текста,
   подраздел — вторичным. Раскрытый пункт остаётся акцентным, как было. Ничего нового не выдумано:
   и тона, и роли уже утверждены (--v5-text, --v5-secondary, --em-icon-stroke-*). */
.v5-sidebar .v5-nav-main > svg,
.v5-sidebar .v5-nav-main .v5-nav-icon svg,
.v5-product-window .v5-win-nav nav > button > svg,
.v5-product-window .v5-win-nav nav > button .v5-nav-icon svg {
  color: var(--v5-text, #1F1E1D);
  stroke-width: var(--em-icon-stroke-l_main, 1.6);
}
.v5-sidebar .v5-nav-children button svg,
.v5-product-window .v5-win-nav .v5-nav-children button svg {
  color: var(--v5-secondary, #6E6B64);
  stroke-width: var(--em-icon-stroke-m_sub, 1.75);
}
/* текущий пункт — что раздел, что подраздел — остаётся выделенным своим цветом сборки:
   раздел и подраздел различаются тоном, а выбранное — акцентом, как и раньше */
.v5-sidebar .v5-nav-children button.is-current svg,
.v5-product-window .v5-win-nav .v5-nav-children button.is-current svg {
  color: inherit;
}

/* З-113 (задача автора): «убрать кнопку скрыть и реализовать её поведение как в основном меню:
   при закрытии исчезает, при нажатии на логотип появляется».
   Замер 24.09.2026 на стенде: в шапке окна ДВЕ кнопки с одной и той же подписью «Скрыть меню окна» —
   знак окна (x 13) и отдельная кнопка-переключатель (x 139). Нажатие на знак сворачивает и разворачивает
   меню, то есть требуемое поведение уже есть у логотипа. Лишней остаётся только вторая кнопка — её и убираем.
   Меню сайта не трогаем: там переключатель один и он на месте.
   26.09.2026 автор: «пропала кнопка в окне в атоме закрыть левое меню» (m_1790437818301_bvx5z4); место кнопки —
   в шапке атома, «между надписью ЕВРАЗМАРКЕТ или ЕВРАЗПРО и стрелкой-разделителем» перед значком переноса атома
   в другую область (m_1790439595489_imt49n). Правило, скрывавшее кнопку, снято. Сборка ставит её сама и только
   при раскрытом меню: при сворачивании кнопка исчезает, логотип окна раскрывает меню снова. Узлы сборки
   не двигаем — место задаём порядком во флекс-ряду крошек: знак и надпись области первыми, кнопка следом,
   всё остальное (стрелка, значок переноса, разделы) — в своём прежнем порядке. */
.v5-product-window .v5-window-titlebar .v5-crumbs > .v5-crumb-znak,
.v5-product-window .v5-window-titlebar .v5-crumbs > .v5-crumb-branch { order: -2; }
.v5-product-window .v5-window-titlebar .v5-crumbs > .v5-crumb-toggle { order: -1; }


/* ══ v7-menu-obzor.css ══ */
/* ЛЕВОЕ МЕНЮ: ТОЛЬКО ОТ «ОБЗОРА» И НИЖЕ (решение Р-020 от 23.09.2026, поручение автора В-0228:
   «начинай меню с новой сборки, только переименуй его пока на Обзор» и «в новой сборке не применяй
   всё меню, что выше новой сборки»).

   Замер 23.09 показал и причину прежней жалобы: пункты выше — «Маркетплейс», «Разработка проекта»,
   «Администрирование», «Мой ЕМ» — по нажатию не закреплялись, отметка не вставала и стол возвращался
   к главной. По решению Р-020 они в меню не отображаются, поэтому дефект уходит вместе с ними.

   23.09, поправка по слову автора: правило действует ТОЛЬКО на новом едином стенде (признак em-edin).
   Правило живёт только в единой сборке: прежние участки этим файлом не затрагиваются. */

.em-edin .v5-sidebar nav button.v5-nav-main:not(.v7-extra-item),
.em-edin .v5-sidebar nav a.v5-nav-main:not(.v7-extra-item) {
  display: none;
}

/* группы подразделов у скрытых пунктов тоже не показываем */
.em-edin .v5-sidebar nav button.v5-nav-main:not(.v7-extra-item) + .v5-nav-children:not(.v7-extra-children) {
  display: none !important;
}


/* ══ v7-setka.css ══ */
/* СЕТКА ОКОН «ДВА РЯДА НА ВИДИМОМ ЭКРАНЕ» (решение автора 21.09.2026, CHG-1301 в редакции 22:39–23:02). Слой седьмой версии,
   сборку не трогаем. По ширине не меняется НИЧЕГО: колонки, ширина окон, ширина блоков галереи, сетка перемещения — прежние.
   Меняется только высота: в видимом поле (от низа шапки до низа экрана, с отступами) — ровно два ряда одинаковой высоты.
   Постоянные части окна (заголовок, строка раздела, строка ввода, значки) сохраняют размер — тянется середина, она у сборки резиновая.
   --v7-row-h (высота ряда) и --v7-gal-h (высота галереи полного окна) публикует v7-setka.js.
     маленькое окно и окно в линию — один ряд; полный режим, «квадрат» (две колонки × два ряда) и «колонка» (одна колонка × два ряда) —
     два ряда и промежуток (замечание автора 22.09.2026: «квадрат» не был учтён — у сборки он держал высоту равной ширине);
     галерея полного окна — блок прежней ширины, высота в пропорции маленького окна сайта.
   Свёрнутые окна, «на весь экран» и «поверх окон» слой не трогает — они считаются сборкой от новых размеров. */
.v5-workspace-grid.v7-setka > .v5-product-window.mode-tile:not(.is-minimized):not(.is-screen) { aspect-ratio: auto !important; block-size: var(--v7-row-h) !important; min-block-size: 0 !important; }
.v5-workspace-grid.v7-setka > .v5-product-window.mode-wide:not(.is-minimized):not(.is-screen) { block-size: var(--v7-row-h) !important; min-block-size: 0 !important; }
.v5-workspace-grid.v7-setka > .v5-product-window:is(.mode-full, .mode-quad, .mode-column):not(.is-minimized):not(.is-screen) { aspect-ratio: auto !important; block-size: calc(2 * var(--v7-row-h) + var(--v5-gap, 0.625rem)) !important; min-block-size: 0 !important; max-block-size: none !important; }
.v5-workspace-grid.v7-setka.v7-setka-gal > .v5-product-window:is(.mode-full, .mode-quad):not(.is-minimized):not(.is-screen) .v5-wide-carousel { grid-template-rows: minmax(0, 1fr) var(--v7-gal-h) !important; }


/* ══ v7-install.css ══ */
/* ЗНАЧОК «УСТАНОВИТЬ ПРИЛОЖЕНИЕ» В ШАПКЕ, группа «Инструменты» (поручения автора 22.09.2026). Значок — конструкция .v5-icon-button, окошко — конструкция
   .v5-region-menu; слой задаёт только своё: место окошка под плашкой, ширину, вид строки-пояснения. Размеры — в rem, цвета — переменные сборки. */
.v5-topbar .v7-inst-wrap { position: relative; display: inline-flex; align-items: center; }
.v5-topbar .v7-inst-menu { inset-block-start: calc(100% + 0.5rem) !important; inset-inline-start: 0; inline-size: 22rem; max-inline-size: calc(100vw - 2rem); block-size: auto; z-index: 60; }
.v5-topbar .v7-inst-menu .v7-inst-row { display: flex; align-items: center; gap: 0.5rem; inline-size: 100%; text-align: start; }
.v5-topbar .v7-inst-menu .v7-inst-row > svg { inline-size: 1rem; block-size: 1rem; flex: none; }
.v5-topbar .v7-inst-menu .v7-inst-how { margin: 0.25rem 0 0.5rem 1.5rem; font-size: var(--em-font-sm, 0.78125rem); font-weight: 400; line-height: 1.4; color: var(--v5-secondary, #647488); }


/* ══ v7-approve.css ══ */
/* ПОДПИСЬ И ПРАВКА ДОКУМЕНТОВ (пара к v7-approve.js). Строка под документом — та же строка книги (.v5-project-row is-l2),
   кнопки — значки сборки (.v5-icon-button), поле кода — поле книги (.v5-viewbar-input). Окно правки — поверх книги в
   области вида: шапка книги (.v5-full-viewbar), слева секретарь (переписка сборки .v5-segchat), справа текст документа.
   Токены проекта, матовые цвета, без полупрозрачности. */
.v7-doc-foot { display: flex; align-items: center; gap: var(--em-space-2, 0.5rem); flex-wrap: wrap; }
.v7-doc-foot > .v5-icon-button > svg { inline-size: var(--em-icon, 1rem); block-size: var(--em-icon, 1rem); }
.v7-doc-foot .v7-doc-approve { color: #B46A55; }
.v7-doc-foot .v7-doc-edit { color: #244154; }
.v7-doc-code { display: flex; gap: var(--em-space-1, 0.25rem); align-items: center; }
.v7-doc-code .v5-viewbar-input { inline-size: 9rem; }
.v7-doc-status { font: var(--em-font-xs, 0.75rem) / 1.2 var(--em-font-family, inherit); color: var(--v5-secondary, #6E6B64); }
.v7-doc-status.is-approved { font-weight: 600; font-size: var(--em-font-sm, 0.7813rem); color: #B46A55; }
/* проверка понимания перед подписью: форма занимает всю строку под кнопками; утверждение слева, «да / нет» справа */
.v7-doc-test { flex: 1 1 100%; display: flex; flex-direction: column; gap: var(--em-space-2, 0.5rem); margin: 0; padding-block: var(--em-space-2, 0.5rem); border-block-start: var(--v5-hairline, 1px) solid var(--v5-border-light, #E4E0D4); }
.v7-doc-test-head { margin: 0; font: 600 var(--em-font-sm, 0.7813rem) / 1.3 var(--em-font-family, inherit); color: var(--v5-text, #1F1E1D); }
.v7-doc-test-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--em-space-3, 0.75rem); margin: 0; padding: 0 0 var(--em-space-2, 0.5rem); min-inline-size: 0; border: 0; border-block-end: var(--v5-hairline, 1px) solid var(--v5-border-light, #E4E0D4); }
.v7-doc-test-text { font: var(--em-font-sm, 0.7813rem) / var(--em-line-base, 1.5) var(--em-font-family, inherit); color: var(--v5-text, #1F1E1D); overflow-wrap: anywhere; white-space: normal; }
.v7-doc-test-pick { display: inline-flex; gap: var(--em-space-3, 0.75rem); white-space: nowrap; font: var(--em-font-sm, 0.7813rem) / var(--em-line-base, 1.5) var(--em-font-family, inherit); color: var(--v5-text, #1F1E1D); }
.v7-doc-test-pick > label { display: inline-flex; align-items: center; gap: var(--em-space-1, 0.25rem); cursor: pointer; }
.v7-doc-test-pick input { margin: 0; accent-color: #B46A55; }
.v7-doc-test-ok { align-self: flex-start; }
.v7-doc-foot > .v7-doc-status { flex: 1 1 12rem; min-inline-size: 0; white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 47.99rem) { .v7-doc-test-row { grid-template-columns: 1fr; gap: var(--em-space-1, 0.25rem); } }
/* окно правки */
.v5-full-view { position: relative; }
.v7-doc-win { position: absolute; inset: 0; z-index: 5; display: flex; flex-direction: column; background: var(--v5-page, #FAF8F2); }
.v7-doc-bar { display: flex; align-items: center; justify-content: space-between; }
.v7-doc-bar .v5-viewbar-title > svg { inline-size: var(--em-icon, 1rem); block-size: var(--em-icon, 1rem); }
.v7-doc-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-inline-size: 28rem; }
.v7-doc-close > svg { inline-size: var(--em-icon, 1rem); block-size: var(--em-icon, 1rem); }
.v7-doc-cols { flex: 1 1 auto; min-block-size: 0; display: grid; grid-template-columns: 2fr 3fr; gap: 0; }
.v7-doc-chat { min-block-size: 0; display: flex; flex-direction: column; border-inline-end: var(--v5-hairline, 1px) solid var(--v5-border-light, #E4E0D4); }
.v7-doc-chat .v5-segchat { flex: 1 1 auto; min-block-size: 0; display: flex; flex-direction: column; }
.v7-doc-chat .v5-segchat-list { flex: 1 1 auto; min-block-size: 0; overflow: auto; }
.v7-doc-chat .v5-segchat-turn.is-applied { color: var(--v5-secondary, #6E6B64); }
.v7-doc-chat .v7-doc-apply { display: inline-flex; margin-inline-start: var(--em-space-1, 0.25rem); color: #B46A55; vertical-align: middle; }
.v7-doc-chat .v7-doc-apply > svg { inline-size: var(--em-icon, 1rem); block-size: var(--em-icon, 1rem); }
.v7-doc-text { min-block-size: 0; overflow: auto; padding: var(--em-space-2, 0.5rem) var(--em-space-3, 0.75rem); }
.v7-doc-pre { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font: var(--em-font-sm, 0.7813rem) / var(--em-line-base, 1.5) var(--em-font-family, inherit); color: var(--v5-text, #1F1E1D); }
@media (max-width: 47.99rem) { .v7-doc-cols { grid-template-columns: 1fr; grid-template-rows: 1fr 1fr; } .v7-doc-chat { border-inline-end: 0; border-block-end: var(--v5-hairline, 1px) solid var(--v5-border-light, #E4E0D4); } }


/* ══ v7-perenos.css ══ */
/* перенос разделов старой сборки в окно (пара к v7-perenos.js): подпись строки рядом с заголовком */
.v7-per-sub { margin-inline-start: auto; font: var(--em-font-xs, 0.75rem) / 1.2 var(--em-font-family, inherit); color: var(--v5-secondary, #6E6B64); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-inline-size: 40%; }


/* ══ v7-obnovit.css ══ */
/* значок «Обновить» в группе служб окна-атома (автор 29.09.2026; v7-obnovit.js): вращение, пока идёт обновление;
   красный (как красный светофора) — если не удалось. Матовые цвета, без полупрозрачности. */
.v7-obnovit .v7-obnovit-ic { transform-origin: 50% 50%; }
.v7-obnovit.is-busy .v7-obnovit-ic { animation: v7-obnovit-krug 0.9s linear infinite; }
.v7-obnovit.is-error { color: #b4532a; }
@keyframes v7-obnovit-krug { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .v7-obnovit.is-busy .v7-obnovit-ic { animation: none; } .v7-obnovit.is-busy { color: var(--v5-muted, #a3a099); } }


/* ══ v7-bloki.css ══ */
/* БЛОКИ АТОМА — «Создать блок» (автор 30.09.2026, m_1790788208718_jxgo4q): имя блока вместо «Атом N», форма создания. Матовые цвета, без прозрачности. */
#euraspro-windows .v5-product-window[data-v7-blok] .v5-crumb-branch:not(.v7-blok-imya), .v5-app .v5-product-window[data-v7-blok] .v5-crumb-branch:not(.v7-blok-imya) { display: none; }
.v5-product-window .v7-blok-imya { font-weight: 600; }
.v7-blok-forma { position: fixed; z-index: 10050; box-sizing: border-box; inline-size: 21.25rem; max-block-size: calc(100vh - 1rem); overflow: auto; display: flex; flex-direction: column; gap: 0.5rem; padding: 0.75rem; background: var(--v5-card, #fff); color: rgb(31, 30, 29); border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius, 0.75rem); box-shadow: 0 0.5rem 1.25rem #dcd6ca; font-size: 0.78125rem; }
.v7-blok-forma-shapka { font-weight: 600; color: #1f3a5a; }
.v7-blok-forma > label { display: flex; flex-direction: column; gap: 0.25rem; }
.v7-blok-forma .v7-blok-pole { font: inherit; padding: 0.3125rem 0.5rem; border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem); background: #fff; color: inherit; }
.v7-blok-forma fieldset { margin: 0; padding: 0.375rem 0.5rem; border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); border-radius: var(--em-radius-sm, 0.5rem); }
.v7-blok-forma legend { padding: 0 0.25rem; color: #6b6355; }
.v7-blok-spisok { display: flex; flex-direction: column; gap: 0.125rem; max-block-size: 9rem; overflow: auto; }
.v7-blok-spisok label { display: flex; align-items: center; gap: 0.375rem; cursor: pointer; }
.v7-blok-spisok label span { color: #8a8274; font-size: 0.6875rem; }
.v7-blok-knopki { display: flex; align-items: center; gap: 0.5rem; justify-content: flex-end; }
.v7-blok-knopki button { font: inherit; padding: 0.3125rem 0.75rem; border-radius: var(--em-radius-sm, 0.5rem); border: var(--v5-hairline, 1px) solid var(--v5-border-light, #e4e0d4); background: #fff; color: inherit; cursor: pointer; }
.v7-blok-knopki .v7-blok-sozdat-da { background: #c3d3e8; border-color: #c3d3e8; color: #1f3a5a; font-weight: 600; }
.v7-blok-oshibka { margin-inline-end: auto; color: #b4532a; }


/* ══ v7-kolonki.css ══ */
/* ЕДИНЫЙ РАЗМЕР — КОЛОНКИ ПО МЕСТУ (решение автора 30.09.2026, m_1790795816697_iol6v8): стандарты размера по экрану автора
   (1609 px: атом галереи 295 px, малый блок полного окна 241 px). Число колонок считает v7-kolonki.js. */
:root { --v7-atom-standart: 18.4375rem; --v7-blok-standart: 15.0625rem; }

