/* Карточка аналога и таблица корректировок рабочего места аналогов
   (report_analogs_pick.js, R3). Только токены темы — тёмная тема приходит
   из tokens/colors.css без отдельных правил. Строки перечня, чипы решений,
   поля формы черновика — компоненты кита (`.item-card`, `.chips`, `.field`);
   здесь — только раскладка экрана (волна 4 эпика #71720625). */

/* Просмотр раздела отчёта (DEV-45 п.10): рабочее место стоит в значении
   строки `.rb-view-row__value`, а у неё `word-break: break-word` — он
   наследуется и, в отличие от `overflow-wrap: break-word`, опускает
   min-content ячеек до одной буквы: «Корректировка» и «Знак и размер»
   вставали столбиком по букве. Рабочее место переносит слова само
   (`overflow-wrap` кита на ячейках), поэтому в просмотре — как в правке. */
.rb-analogs-workspace { word-break: normal; }

/* Шапка перечня (OCE-8, DEV-45 п.8): чипы решений слева, «Добавить
   вручную» справа. Чипов три — они переносятся строкой, а не прячут третий
   («Требуют решения») во внутреннюю прокрутку на 390; кнопка уходит под
   чипы, когда рядом не помещается. */
.eqp-analog__list-head > .chips { flex: 1 1 auto; min-width: 0; flex-wrap: wrap; overflow-x: visible; }

.eqp-analog__badges { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.eqp-analog__req { color: var(--rd); }

.eqp-analog__notes > summary {
  cursor: pointer;
  font-size: var(--fs-caption);
  font-weight: 600;
  color: var(--text-muted);
}

/* Подпись поправки в шапке её блока — одной строкой со значением и словами
   «основание и источник» (карточка #71406462): поправку называет сама шапка,
   второй копии подписи в блоке нет. Без правила `.rb-field__label` (flex)
   ломает строку шапки надвое. */
.eqp-analog__notes > summary .rb-field__label { display: inline; }

.eqp-analog__adj .eqp-analog__adj-head td { background: var(--n50); }
.eqp-analog__adj .eqp-analog__adj-total td { font-weight: 700; }
.eqp-analog__adj .eqp-analog__out td { color: var(--n500); }
.eqp-analog__missing { color: var(--wn); }
/* Текстовые колонки таблицы корректировок рвут длинные ссылки (`.break-word`
   кита), но не сжимаются в столбик из букв, когда таблица уже листается на
   узком экране: нижняя граница ширины — своя, а не ширина символа. */
.eqp-analog__adj td.eqp-analog__adj-text { min-width: 12em; }

/* Узкий экран (≤600 px, брейкпоинт кита — как `kv-list`): таблица
   корректировок и журнал отбора встают карточками строк, а не листаются
   внутри области 259 px (приёмки b164/b166: «Основание» в колонке 156 px
   вытягивало корректировку до ~800 px, «Аналог» журнала сжимался до 109 px).
   Одно решение на обе таблицы: шапка строки скрыта, подпись колонки — из
   `data-label` ячейки; карточка корректировки — шаг и знак слева, цена после
   справа, ниже основание и источник; длинный текст свёрнут до трёх строк
   с «Показать полностью» (`clampCellHtml`). На широком экране кнопка скрыта,
   свёртки нет — таблица 1280 прежняя. Только экран: DOCX эти стили не видит. */
.eqp-analog__clamp-toggle { display: none; }
@media (max-width: 600px) {
  .eqp-analog__adj, .eqp-analog__journal,
  .eqp-analog__adj tbody, .eqp-analog__journal tbody,
  .eqp-analog__adj tr, .eqp-analog__journal tr { display: block; width: 100%; }
  .eqp-analog__adj thead, .eqp-analog__journal thead { display: none; }
  .eqp-analog__adj td, .eqp-analog__journal td {
    display: block; min-width: 0; padding: 0; border: 0; text-align: left;
  }
  .eqp-analog__adj td.eqp-analog__adj-text { min-width: 0; }
  .eqp-analog__adj tr:hover td, .eqp-analog__journal tr:hover td { background: none; }
  .eqp-analog__adj tbody + tbody { border-top: 1px solid var(--border-light); }
  .eqp-analog__adj .eqp-analog__adj-head td { padding: var(--space-3) var(--space-4); background: var(--n50); }

  .eqp-analog__adj tr[data-analog-adjustment-step],
  .eqp-analog__journal tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: var(--space-3);
    row-gap: var(--space-1);
    padding: var(--space-3) var(--space-4);
    border-bottom: 1px solid var(--border-light);
  }
  .eqp-analog__adj tr[data-analog-adjustment-step] { grid-template-areas:
    "label after" "sign sign" "reason reason" "source source"; }
  .eqp-analog__adj-label { grid-area: label; font-weight: 600; }
  .eqp-analog__adj td.eqp-analog__adj-sign { grid-area: sign; white-space: nowrap; text-align: left; color: var(--text-muted); }
  .eqp-analog__adj td.eqp-analog__adj-after { grid-area: after; text-align: right; align-self: start; }
  .eqp-analog__adj-reason { grid-area: reason; margin-top: var(--space-1); }
  .eqp-analog__adj-source { grid-area: source; margin-top: var(--space-1); }

  .eqp-analog__adj td.eqp-analog__adj-after::before,
  .eqp-analog__adj-reason::before, .eqp-analog__adj-source::before,
  .eqp-analog__journal td:not(.eqp-analog__journal-name)::before {
    content: attr(data-label);
    display: block;
    font-family: var(--font-sans);
    font-size: var(--fs-caption);
    font-weight: 600;
    color: var(--text-muted);
  }
  /* Ячейки без видимой подписи (шаг, знак, аналог): подпись колонки — только
     для скринридера (шапка скрыта), визуально карточка её не повторяет. */
  .eqp-analog__adj td.eqp-analog__adj-label, .eqp-analog__adj td.eqp-analog__adj-sign,
  .eqp-analog__journal td.eqp-analog__journal-name { position: relative; }
  .eqp-analog__adj-label::before, .eqp-analog__adj-sign::before,
  .eqp-analog__journal td.eqp-analog__journal-name::before {
    content: attr(data-label) ": ";
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .eqp-analog__adj .eqp-analog__adj-total {
    display: flex; justify-content: space-between; gap: var(--space-3);
    padding: var(--space-3) var(--space-4);
  }
  /* Сумма итога не сжимается под подпись: число в одну строку и в своих границах. */
  .eqp-analog__adj .eqp-analog__adj-total td:last-child { flex: none; margin-left: auto; }
  /* Подпись итога не рвётся посреди слова («Скорректир/ованная» на 320):
     не влезает рядом с суммой — сумма уходит строкой ниже, вправо. */
  .eqp-analog__adj .eqp-analog__adj-total { flex-wrap: wrap; }

  .eqp-analog__journal tr { grid-template-areas: "name name" "decision twin" "why why"; }
  .eqp-analog__journal-name { grid-area: name; font-weight: 600; }
  .eqp-analog__journal-decision { grid-area: decision; }
  .eqp-analog__journal-twin { grid-area: twin; text-align: right; }
  .eqp-analog__journal-why { grid-area: why; }
  .eqp-analog__journal tr:last-child { border-bottom: 0; }

  .eqp-analog__clamp:not([data-expanded]) {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    overflow: hidden;
  }
  .eqp-analog__clamp-toggle { display: inline; margin-top: var(--space-1); font-size: var(--fs-caption); }
}

/* Сетка полей карточки аналога (S18 аудита машин): своя, а не сетка
   страницы `.rb-grid` (280px 1fr 300px сжимала средний столбец). 3 → 2 → 1
   колонки по ширине карточки. */
.rb-analogs-workspace .rb-grid.eqp-analog__fields {
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}

/* Вход по ссылке на объявление (S2, §3.6 спеки): поле и две кнопки в строку,
   на узком экране кнопки переносятся под поле. */
.eqp-analog-link {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  margin-top: 8px;
}
.eqp-analog-link > .field { flex: 1 1 260px; min-width: 0; margin-bottom: 0; }
.eqp-analog-link__feedback { flex-basis: 100%; }
.eqp-analog-link__feedback:empty { display: none; }
.eqp-analog-link__actions { flex: 0 0 auto; }
/* Ошибка поля ссылки — полноширинной строкой под полем и кнопкой (экран п. 19). */
.eqp-analog-link__error { flex-basis: 100%; min-width: 0; }
.eqp-analog-link__error:empty { display: none; }
/* Блок «Поддерживаем» (R4): одна строка — перечень площадок маркерами кита;
   пояснения — в подсказке у подписи поля. */
.eqp-analog-link__sources { flex-basis: 100%; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); font-size: var(--fs-caption); color: var(--text-muted); }
.eqp-analog-link__hint-list { margin: 0; padding-left: var(--space-4); }
.eqp-analog-link__hint-list > li + li { margin-top: var(--space-1); }
.eqp-analog-sources { padding: 12px 0; min-width: 0; }
.eqp-analog-sources [data-analog-drafts] { margin-top: 20px; }
.eqp-analog-sources h4 { margin: 0 0 12px; }

/* Выдача показывается под общим полем ссылки после запроса поиска. */
.eqp-analog-search { margin-top: 12px; }
.eqp-analog-search [data-analog-search-status]:empty { display: none; }
.eqp-analog-search__choice { padding-top: 2px; }
.eqp-source-card { display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 16px; align-items: start; }
.eqp-source-card--choice { grid-template-columns: 20px 128px minmax(0, 1fr); }
.eqp-source-card__photo { position: relative; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--r2); background: var(--n50); }
.eqp-source-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; }
.eqp-source-card__photo [hidden] { display: none; }
.eqp-source-card__photo span { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: 8px; box-sizing: border-box; text-align: center; font-size: var(--fs-caption); color: var(--text-muted); }
.eqp-source-card__body { min-width: 0; overflow-wrap: anywhere; }
.eqp-source-card__body .item-card__head { flex-wrap: wrap; gap: 8px; }
.eqp-source-card__body .item-card__actions { flex-wrap: wrap; gap: 8px; }
.eqp-source-card__body .btn { white-space: normal; }
.eqp-source-card__price { font-weight: 700; margin: 6px 0; font-size: var(--fs-body); }
.eqp-source-card__review { display: inline-block; color: var(--text-muted); font-size: var(--fs-caption); margin-bottom: 4px; }
.eqp-source-card__details { margin: 8px 0; color: var(--text-muted); font-size: var(--fs-caption); }
.eqp-source-card__details summary { cursor: pointer; }
.eqp-source-card__details > div { margin-top: 8px; }
.eqp-source-card__details ul { margin: 8px 0; padding-left: 20px; }
.eqp-analog-search__footer { justify-content: space-between; flex-wrap: wrap; }
@media (max-width: 480px) {
  .eqp-source-card { grid-template-columns: 88px minmax(0, 1fr); gap: 12px; }
  .eqp-source-card--choice { grid-template-columns: 18px 72px minmax(0, 1fr); gap: 8px; }
  .eqp-source-card__body .item-card__head { display: block; }
  .eqp-source-card__body .item-card__head > .row { margin-top: 8px; }
  .eqp-analog-link > .field { flex-basis: 100%; }
  .eqp-analog-link__actions, .eqp-analog-link__actions > .btn { width: 100%; }
  /* Кнопка на телефоне переносится под поле — ошибка ссылки идёт сразу под
     полем, кнопка после неё (стык b161). В разметке ошибка стоит после кнопки,
     чтобы на широком экране не сталкивать кнопку с ряда поля. */
  .eqp-analog-link > .field { order: 1; }
  .eqp-analog-link__error { order: 2; }
  .eqp-analog-link__actions { order: 3; }
  .eqp-analog-link__sources { order: 4; }
  .eqp-analog-link__feedback { order: 5; }
  .eqp-analog-search__footer > .btn { width: 100%; }
}

.eqp-analog__source { max-width: 100%; overflow-wrap: anywhere; }
.eqp-analog__total strong { font-size: var(--fs-body); }
.eqp-analog__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  border-top: 1px solid var(--n100);
  padding-top: 8px;
}
.eqp-analog__bottom > span { flex: 1 1 240px; }

/* EQ-UX-09: список остаётся обзором, редактируется только выбранная карточка.
   Строка — `.item-card` кита; выбранная (`aria-current`) — пастель выбора,
   одинаковая в обеих темах (как `.secnav__item[aria-current]`). */
.eqp-analog__compact-list .item-card[aria-current="true"] {
  background: var(--accent-soft);
  border-color: var(--accent);
  color: var(--on-accent-soft);
}
.eqp-analog__compact-list .item-card[aria-current="true"] .item-card__title { color: var(--on-accent-soft); }
.eqp-analog__compact-list .item-card[aria-current="true"] .item-card__meta { color: var(--alert-muted); }
.eqp-analog__compact-remarks { margin-top: var(--space-2); }
.eqp-analog__compact-remarks > summary { cursor: pointer; font-size: var(--fs-caption); }

.eqp-analog__editor { max-width: 100%; }
.eqp-analog__editor > .eqp-analog { margin-bottom: 12px; }
.eqp-analog__editor-head { margin-bottom: 8px; }
.eqp-analog__editor-head h4 { margin: 2px 0 0; }
.eqp-analog__editor-section + .eqp-analog__editor-section {
  border-top: 1px solid var(--n100);
  margin-top: 16px;
  padding-top: 16px;
}
.eqp-analog__editor-section > h4 { margin: 0 0 8px; }
