/* Правая шторка переписки: карточки собеседников, пульс, заявки, напоминание.
   ⛔ Своим файлом: стили экрана «Чаты» уперлись в порог размера, а шторка — самостоятельная тема,
   которую правят отдельно от ленты (F1342, F1347, F1351). */

/* ── F1342 — панель переписки: строка вместо блока ─────────────────────────────────────
   ⛔ Метка и значение стоят В ОДНОЙ строке. Прежде каждая метка занимала свою строку сверху,
   и семь справочных блоков съедали двадцать восемь строк колонки шириной триста точек. */
.chats-p-line { display: flex; gap: 8px; align-items: center; min-height: 24px; font-size: 12px; }
.chats-p-line > .chats-p-title { flex: 0 0 auto; margin: 0; }
.chats-p-line > .chats-p-val { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; color: var(--text); }
.chats-p-line > .chats-p-act { flex: 0 0 auto; margin-left: auto; }
.chats-p-line select.input { flex: 1 1 auto; min-width: 0; height: 26px; padding: 2px 6px; font-size: 12px; }

/* support#F10232.W2 — блок «Линии» правой панели единой ленты человека: одна строка на линию,
   значок+имя+непрочитанное слева, ответственный и кнопка назначения справа (тот же ритм, что
   у соседних строк .chats-p-line выше, но своя разметка — здесь нет метки/значения, а есть
   пара «что» + «кто»). */
.chats-contact-line-row { display: flex; align-items: center; gap: 6px; min-height: 26px; font-size: 12px; }
.chats-contact-line-name { display: flex; align-items: center; gap: 4px; flex: 1 1 auto; min-width: 0;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text); }
.chats-contact-line-name svg { flex-shrink: 0; }
.chats-contact-line-assignee { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis;
  white-space: nowrap; text-align: right; }

/* F1114 W21 — настройка помощника без нативного select. Длинная строка пункта select на macOS
   расширяла системное меню за границы модального окна. Карточки принадлежат обычному потоку,
   переносят текст и остаются одним нажатием: выбор сразу сохраняется. */
.chats-ai-intro, .chats-ai-foot { color: var(--text-secondary); font-size: 13px; line-height: 1.45; }
.chats-ai-intro { margin-bottom: 12px; }
.chats-ai-foot { margin-top: 12px; }
.chats-ai-choices { display: grid; gap: 8px; min-width: 0; }
.chats-ai-choice { display: flex; flex-direction: column; align-items: stretch; gap: 4px;
  width: 100%; min-width: 0; box-sizing: border-box; padding: 11px 12px; text-align: left;
  color: var(--text); background: var(--surface); border: 1px solid var(--border-light);
  border-radius: 10px; cursor: pointer; white-space: normal; overflow-wrap: anywhere; }
.chats-ai-choice:hover { border-color: var(--primary); background: var(--bg-subtle); }
.chats-ai-choice.is-active { border-color: var(--primary); box-shadow: 0 0 0 1px var(--primary); }
.chats-ai-choice:disabled { opacity: .6; cursor: wait; }
.chats-ai-choice-head { display: flex; align-items: center; justify-content: space-between;
  gap: 8px; min-width: 0; font-size: 14px; }
.chats-ai-choice-desc { color: var(--text-secondary); font-size: 12px; line-height: 1.4; }
.chats-ai-recommended { flex: 0 0 auto; padding: 2px 7px; border-radius: 999px;
  color: var(--primary); background: var(--accent-light); font-size: 10px; font-weight: 600; }
.chats-ai-other { margin-top: 10px; min-width: 0; }
/* F10186 W2: второй вопрос окна — свой блок с заголовком, а не свёрнутая «шторка». Погашенный
   блок остаётся видимым: спрятать настройку, которая просто сейчас не действует, значит отнять
   у человека знание о ней. */
.chats-ai-section { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border); min-width: 0; }
.chats-ai-section-title { font-weight: 600; font-size: 14px; margin-bottom: 6px; }
.chats-ai-choices.is-idle { opacity: .55; }
.chats-ai-other > summary { margin-bottom: 8px; color: var(--primary); font-size: 13px; cursor: pointer; }
.chats-p-head { display: flex; gap: 8px; align-items: flex-start; }
.chats-p-head-body { flex: 1 1 auto; min-width: 0; }
.chats-p-name { font-size: 13px; font-weight: 600; color: var(--text); overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }

/* ⛔ Меню — та же машинерия, что у меню сообщения: своего слоя положения не строим. Обёртка
   сообщения прибита к углу пузыря, здесь она стоит в потоке строки — отличие ровно в этом. */
.act-menu-wrap { position: relative; top: auto; right: auto; display: inline-flex; }
.act-menu-btn { width: auto; min-width: 26px; height: 26px; padding: 0 8px; border-radius: 7px;
  font-size: 12px; line-height: 1; white-space: nowrap; opacity: 1; }
.msg-menu-sec { padding: 6px 12px 2px; font-size: 10px; text-transform: uppercase;
  letter-spacing: .04em; color: var(--text-secondary); }

/* Мини-форма перехода раскрывается ПОД строкой заявки — человек не уходит из чата. */
.chats-p-form { display: flex; flex-direction: column; gap: 6px; margin: 4px 0 8px;
  padding: 8px; border: 1px solid var(--border-light); border-radius: 8px; background: var(--bg-subtle); }
.chats-p-form label { font-size: 11px; color: var(--text-secondary); }
.chats-p-form input, .chats-p-form select, .chats-p-form textarea {
  width: 100%; font-size: 12px; padding: 5px 7px; }
.chats-p-form-row { display: flex; gap: 6px; justify-content: flex-end; }
.chats-p-req { color: var(--danger); }

/* Пульс: спарклайн без осей и подписей — в колонке шириной триста точек читается только он. */
.chats-pulse-spark { display: block; width: 100%; height: 32px; }
.chats-pulse-spark rect { fill: var(--accent); opacity: .5; }
.chats-pulse-spark rect.is-last { opacity: 1; }
.chats-pulse-stat { font-size: 12px; color: var(--text); }
.chats-pulse-stat b { font-weight: 600; }
.chats-pulse-wait { color: var(--warning, #d97706); font-weight: 600; }

/* ── F1347 — карточки собеседника и компании в шапке панели ────────────────────────────
   Канон боковой колонки (Front, Intercom, Missive, Crisp, Help Scout, Zendesk): человек,
   затем компания отдельной плиткой, затем всё остальное. Простое правится на месте, сложное
   уводит в полную карточку. Пустых полей не показываем вовсе — в колонке шириной триста точек
   строка «Должность: —» это шум, а не сведение. */
.chats-pt { display: flex; flex-direction: column; gap: 6px; }
.chats-pt-top { display: flex; gap: 8px; align-items: center; }
.chats-pt-ava { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; object-fit: cover;
  background: var(--bg-subtle); }
/* Инициалы вместо фото: тот же кружок, только с буквами по центру. */
.chats-pt-ava-ini { display: inline-flex; align-items: center; justify-content: center; color: #fff;
  font-weight: 600; font-size: 13px; letter-spacing: .3px; }
.chats-pt-id { flex: 1 1 auto; min-width: 0; }
.chats-pt-sub { font-size: 11px; color: var(--text-secondary); overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap; }
.chats-pt-tile { padding: 7px 8px; border: 1px solid var(--border-light); border-radius: 8px;
  background: var(--bg-subtle); display: flex; flex-direction: column; gap: 3px; }
.chats-pt-tile-top { display: flex; gap: 6px; align-items: center; }
.chats-pt-tile-name { flex: 1 1 auto; min-width: 0; font-size: 12px; font-weight: 600;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ⛔ support#F10181.W18: правила поля, которое правится щелчком (`.chats-pt-f*`), сняты вместе с
   последним, кто их носил — формой собеседника. Её разметку теперь строит общий владелец строки
   (`app/css/party-fields.css`, `.pf-f*`), и вторая, никем не носимая пара правил разошлась бы
   с первой на первой же правке. */
/* Столбик, за которым есть день ленты, ведёт себя как кнопка. */
.chats-pulse-spark rect.is-jump { cursor: pointer; }
.chats-pulse-spark rect.is-jump:hover { opacity: 1; }
/* Куда человек попал по переходу — видно пару секунд, потом подсветка уходит сама. */
.chats-msgs .msg.msg-jumped { animation: chats-jumped 2.4s ease-out; }
@keyframes chats-jumped { from { background: var(--accent-light); } to { background: transparent; } }
/* Имя человека и название компании — сами ссылки: отдельной кнопки «открыть карточку» нет. */
/* ⛔ support#F10232.W6 — курсор объявлен ЗДЕСЬ, а не свойством в разметке: ссылка-имя и так
   имеет свой класс, и второй способ её одеть разошёлся бы с этим на первой же правке. */
.chats-p-name-link { color: inherit; text-decoration: none; cursor: pointer; }
/* Заголовок блока, отбитый от предыдущего — своим именем, а не отступом в разметке. */
.chats-p-title--gap { margin-top: 10px; }
.chats-p-name-link:hover { color: var(--primary); text-decoration: underline; }

/* ── F1347 W5: собеседники разговора ──────────────────────────────────────────────────
   Имя ведёт в карточку, стрелка раскрывает горячие поля, конверт уводит в личную переписку.
   ⛔ F1356 W2: шапка с именем собеседника (`.chats-pt-head`) снята вместе с разметкой —
   дублировала верхнюю строку чата. */
.chats-pt-person { padding: 5px 0; border-top: 1px solid var(--border-light); }
.chats-pt-person:first-of-type { border-top: 0; }
/* ⛔ support#F10181.W18: круглая значковая кнопка плотной строки переехала к общему владельцу
   (`app/css/party-fields.css`, `.pf-ico`) — той же кнопкой пользуется правая панель заявки.
   Прежнее имя `.chats-pt-ico` там же и обслуживается: его до сих пор называет реестр кнопок
   звонка (`CALL_BUTTON_ROW`, components.js), и это ТА ЖЕ кнопка, а не похожая. */
.chats-pt-more { display: block; margin: 4px 0 0; background: none; border: 0; padding: 0;
  font-size: 12px; cursor: pointer; }

/* ⛔ support#F10181.W18: раскрытые поля рисует общий владелец (`.pf-form`, party-fields.css) —
   один вид у шторки переписки и у правой панели заявки. */
/* ⛔ Величина маленькой кнопки остаётся ЗДЕСЬ: это общий размер кнопки службы, а не часть
   раскрываемой строки. Обе страницы подключают эту таблицу, и форма берёт размер отсюда. */
.btn-xs { padding: 2px 9px; height: 24px; line-height: 1; font-size: 12px; }

/* ⛔ F10101 W1 — строка «по умолчанию отвечает» ОДНА, чего бы в неё ни попало. Источников может
   быть три (за компанию, за человека, за линию), и три подписанных имени подряд переносятся в
   узкой колонке на три строки: предел «две строки» нарушился бы на экране, а не в разметке.
   Срезаем лишнее, полный текст отдаёт подсказка узла — сведений не теряем, теряем их место. */
.chats-p-oneline { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; }

/* support#F10216 W1 — «Подробнее» на карточке линии: раскрывающийся блок на месте.
   Родной `details`: состояние держит браузер. Значок — Heroicons chevron, поворачивается при
   раскрытии одним преобразованием (transform, без анимации размеров). Тени нет: блок лежит
   ВНУТРИ карточки, это не всплывающая поверхность (канон premium-ui-style). */
.ch-more { margin: 2px 0 8px; }
.ch-more > summary { display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
  list-style: none; user-select: none; color: var(--primary); font-weight: 500; }
.ch-more > summary::-webkit-details-marker { display: none; }
.ch-more > summary svg { transition: transform 150ms ease-out; }
.ch-more[open] > summary svg { transform: rotate(90deg); }
.ch-more-body { margin-top: 10px; padding-left: 12px; border-left: 2px solid var(--border); }
/* Способ приёма не действует, пока помощник берёт заявки на себя: блок гасится, а не прячется. */
.ch-more-body .is-idle { opacity: .55; }
@media (prefers-reduced-motion: reduce) { .ch-more > summary svg { transition: none; } }
