/* Ветка под ответом — раскрытие НА МЕСТЕ (владелец 20.09.2026, вариант Б).
   Разговор растёт под самой цитатой: ничего не закрывается, ответ и соседние
   цитаты остаются на экране. Цвета — только роли из tokens.css. */

/* Цитата, за которой есть разговор, выглядит КАК ПРЕЖДЕ: владелец просил
   ответы не трогать. Единственное, что добавлено, — отклик на нажатие; без
   него палец не понимает, нажалось ли вообще. */
.home .src[data-act="chain"], .row .cite[data-act="chain"]{cursor:pointer}
.home .src[data-act="chain"]:active, .row .cite[data-act="chain"]:active{
  background:var(--surface-2)}

/* Раскрытое висит НА цитате: общий фон и скругление только снизу говорят
   «это её содержимое», а не следующая цитата. */
.ch{
  margin:0 0 8px;padding:10px;border-radius:0 0 var(--radius) var(--radius);
  background:var(--surface-2);display:flex;flex-direction:column;gap:8px
}
.ch-wait{margin:6px 0;font-size:13px;color:var(--ink-3);text-align:center}

/* Найденный в чате ВОПРОС — то, по чему мы нашли ответ, и начало ветки. */
.ch-ask{background:var(--accent-soft);border-radius:10px;padding:8px 10px}
.ch-lab{font-size:11px;font-weight:600;color:var(--accent-ink)}
.ch-ask .ch-txt{margin-top:2px}

/* Реплики — плоско, по времени, как в самом Telegram. Линия слева говорит,
   что всё это ответ на вопрос выше. */
.ch-talk{padding-left:10px;border-left:2px solid var(--line);
  display:flex;flex-direction:column;gap:7px}
.ch-msg{background:var(--surface);border-radius:9px;padding:7px 9px}
/* Реплика, попавшая в наш ответ: ради неё ветку и открыли. */
.ch-msg.cited{box-shadow:inset 3px 0 0 var(--accent)}
.ch-mark{margin-top:3px;font-size:11px;color:var(--accent-ink)}
.ch-txt{font-size:13px;line-height:1.4;color:var(--ink);overflow-wrap:anywhere}
.ch-txt a.ext{color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px}

.ch-note{margin:0;font-size:11px;line-height:1.4;color:var(--ink-3)}

/* «Свернуть» — текстом, без заливки: заливка одна на зону, и она у главного
   действия экрана, а не у служебного (eze-ui, «плотность»). Видимые 20 px
   растит до пальца невидимая зона (frontend.md 10). */
.ch-fold{
  position:relative;align-self:flex-start;min-height:20px;padding:0;
  font-size:12px;color:var(--accent-ink);background:none
}
.ch-fold::after{content:"";position:absolute;inset:-12px -16px}

/* «Раскрыть…» — В КОНЦЕ текста цитаты, а не строкой ниже (владелец
   20.09.2026): строка стоила бы высоты у каждой цитаты, слово в конце —
   ничего. Цветом роль мелкого текста, а не заливка: это подсказка, а не
   главное действие зоны (frontend.md 24, eze-ui «заливка одна на зону»). */
/* Отделено точкой: без неё «Раскрыть…» слипалось с чужой репликой и читалось
   как её продолжение, а не как действие (замер на эмуляторе 20.09.2026). */
.ch-open{color:var(--accent-ink);white-space:nowrap}
.ch-open::before{content:" · ";color:var(--ink-3)}

/* Раскрытая цитата СХЛОПЫВАЕТСЯ В СТРОКУ (решение владельца 20.09.2026): та
   же реплика стоит первой в ветке, помеченная «эту реплику показали в
   ответе», и повтор целиком читается как ошибка.

   Именно в строку, а не в ничто: спрятав текст совсем, мы получили обрубок
   «ДАНАНГ 🇻🇳 ЧАТ», неотличимый от подписи соседней цитаты, — по экрану
   нельзя было понять, что раскрыто (увидено на эмуляторе тем же вечером).
   Начало текста отвечает на этот вопрос и стоит одну строку вместо пяти.

   Обрезка — `text-overflow`, а не `line-clamp`: работает везде, включая
   старые Android WebView (frontend.md 20д). */
.row .cite[data-open] .cq, .home .src[data-open] .quote{
  display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .cite[data-open] .who, .home .src[data-open] .note{color:var(--accent-ink)}

/* Грабля, найденная тем же прогоном: обрезка `nowrap` РАЗДУВАЕТ блок, если у
   него `min-width:auto`. Лента — колонка-флекс, полоса цитат — грид, а у
   детей флекса и грида ширина по умолчанию не меньше содержимого. Замер на
   эмуляторе 20.09.2026: схлопнутая цитата стала 1208 px при экране 412 —
   горизонтальная прокрутка, которой в вебвью быть не должно вовсе.
   Лечится там же, где и `flex-shrink` (frontend.md 20б): явный ноль. */
.feed > .row{min-width:0}
.row .cites{grid-template-columns:minmax(0, 1fr)}
