/* Адаптивный слой зеркальных страниц.
 *
 * Импортированный HTML намеренно не переписывается: этот файл подключён
 * последним в mirror layout и потому переживает desk:import:live. Значения
 * цветов берутся из опубликованной палитры страниц; новых тем здесь нет.
 */

/* Футер одинаков на всех страницах: только бренд, две равные площадки,
   ссылки и служебная строка. Credit также удаляет MirrorBodyPresenter —
   display:none оставлен страховкой для старого кэша/необычного футера. */
.foot .credit:is(
  [href="https://matchstic.com"],
  [href^="https://matchstic.com/"],
  [href="https://www.matchstic.com"],
  [href^="https://www.matchstic.com/"]
),
.foot-links .credit:is(
  [href="https://matchstic.com"],
  [href^="https://matchstic.com/"],
  [href="https://www.matchstic.com"],
  [href^="https://www.matchstic.com/"]
) { display: none !important; }

.foot .foot-side {
  display: block !important;
  justify-self: end;
  min-width: 0;
}

.foot .foot-cta {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  align-items: stretch !important;
  gap: 8px !important;
  width: min(100%, 320px) !important;
}

.foot .foot-cta a {
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 44px !important;
  padding: 0 12px !important;
  text-align: center;
}

/* Лаборатория: не плитки, а один сканируемый список. */
.labrep-list {
  margin: 16px 0 30px;
  border-top: 1px solid rgba(232, 236, 233, .14);
}

.labrep-list .labrep {
  box-sizing: border-box;
  display: grid !important;
  grid-template-columns: 8px minmax(0, 1fr) auto 18px;
  align-items: center;
  gap: 8px 14px;
  min-width: 0;
  padding: 14px 2px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(232, 236, 233, .11) !important;
  background: transparent !important;
  color: inherit;
  text-decoration: none;
}

.labrep-list .labrep:hover,
.labrep-list .labrep:focus-visible { background: rgba(51, 255, 102, .045) !important; }

.labrep-ind {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #33ff66;
  box-shadow: 0 0 10px rgba(51, 255, 102, .48);
}

.labrep-copy { display: block; min-width: 0; }
.labrep-list .labrep-t { display: block; font-size: 15px; line-height: 1.3; font-weight: 600; }
.labrep-list .labrep-b { display: block; margin-top: 4px; font-size: 12.5px; line-height: 1.42; color: #8a948c; }
.labrep-d {
  font-family: 'Space Grotesk', system-ui, sans-serif;
  font-size: 10.5px;
  letter-spacing: .06em;
  color: #8a948c;
  white-space: nowrap;
}
.labrep-go { color: #33ff66; font-size: 14px; text-align: right; }

html.tt-light .labrep-list { border-color: rgba(18, 22, 19, .14); }
html.tt-light .labrep-list .labrep { border-bottom-color: rgba(18, 22, 19, .11) !important; }
html.tt-light .labrep-list .labrep-b,
html.tt-light .labrep-d { color: #555d57; }
html.tt-light .labrep-ind { background: #007a1f; box-shadow: none; }
html.tt-light .labrep-go { color: #007a1f; }

@media (max-width: 900px) {
  html,
  body {
    box-sizing: border-box;
    max-width: 100%;
    overflow-x: clip;
  }

  *,
  *::before,
  *::after { box-sizing: border-box; }

  main,
  section,
  article,
  .wrap,
  .container,
  .board,
  .widget,
  .panel,
  .card,
  .live { min-width: 0; max-width: 100%; }

  img,
  video,
  svg:not(.tvm svg) { max-width: 100%; }

  /* Первый экран: три тезиса и две CTA — ровными симметричными рядами. */
  #tt-cloudline .cl-state {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  #tt-cloudline .cl-state span {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 44px;
    padding: 6px !important;
    text-align: center;
    font-size: 8.5px !important;
    line-height: 1.25;
    letter-spacing: .07em !important;
  }

  #tt-cloudline .cl-cta {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 8px !important;
    width: 100%;
  }

  #tt-cloudline .cl-button,
  #tt-cloudline .cl-start {
    display: flex !important;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 44px;
    padding: 9px 8px !important;
    border: 1px solid rgba(70, 255, 119, .5) !important;
    text-align: center;
    line-height: 1.25;
  }

  /* Узкий summary больше не обрезает длинные RU/EN подписи. */
  .tt-first summary {
    height: auto !important;
    min-height: 44px;
    padding: 8px 0;
    align-items: center;
  }

  .tt-first summary i { flex: 0 0 auto; }
  .tt-first summary span { min-width: 0; line-height: 1.35; overflow-wrap: anywhere; }

  /* Одинаковая геометрия для компактных пультов карточек. */
  .whd { gap: 8px !important; }
  .whd .wt { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
  .whd .wt small { display: none !important; }
  .whd .wgo,
  .whd .wpin,
  .whd .wx,
  .whd .fold {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    padding: 0 !important;
    border: 1px solid rgba(232, 236, 233, .2) !important;
  }

  .indrow,
  .ranges,
  .gscale,
  .periods { align-items: stretch !important; }

  /* Диапазоны заполняют строку целиком — флексом, а не сеткой, и БЕЗ
     `!important` на `display`. Это не вкус, а поведение.

     Витрина сама распоряжается этим рядом инлайновым стилем: у карточки с
     искрой ставит `display:flex`, у карточки без искры — `display:none`,
     потому что двигать там нечего. Прежнее `display:grid !important`
     перебивало ОБА: скрытый ряд воскресал (читатель получал четыре кнопки, не
     меняющие на карточке ничего), а показанный переставал быть флексом, и
     кнопки в нём вставали по ширине слова — 26px у «7Д» против 34px у «30Д».

     Флекс без `!important` уступает инлайновому `none` и совпадает с
     инлайновым `flex`. Ширину ряда добирают сами кнопки: `flex: 1 1 48px`
     растягивает их поровну и переносит, когда строка кончилась. */
  .ranges,
  .periods {
    display: flex;
    flex-wrap: wrap;
    gap: 5px !important;
    width: 100%;
  }

  /* 48px — замер: столько занимает самое длинное слово ряда («3 года»,
     10.5px Space Grotesk) с отбивкой 5px по бокам. При 302px внутренней
     ширины карточки пять таких кнопок встают одной строкой. */
  .ranges > *,
  .periods > * { flex: 1 1 48px; }

  /* Кнопка — палец: 40px, пол проекта. Было 44, и ряд диапазонов спорил по
     весу с самим числом карточки, ради которого её открывают. */
  .ranges button,
  .periods button,
  .gscale button,
  .fchip {
    box-sizing: border-box;
    min-height: 40px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 0;
    padding: 0 5px !important;
    font-size: 10.5px !important;
    line-height: 1.2;
    /* Слово диапазона не переносится: перенос делал одну кнопку выше соседей
       и ломал линию ряда. Не влезает — сетка даст ей колонку шире. */
    white-space: nowrap;
  }

  /* Бейдж состояния — НЕ кнопка. Он ничего не принимает, и высота пальца ему
     не нужна: вместе с кнопками он вырастал до 44px и читался как крупная
     заливка поверх числа, а не как подпись к нему. */
  .cls,
  .context,
  .badge {
    display: inline-flex !important;
    align-items: center;
    min-height: 0 !important;
    padding: 5px 8px !important;
    font-size: 10.5px !important;
    line-height: 1.25;
    white-space: normal;
  }

  /* Диапазоны — на своей строке, во всю ширину карточки. `.tools` это флекс-
     ряд, и переключатель «Индекс страха» забирал у него 113px из 179: пять
     кнопок диапазона вставали ТРЕМЯ рядами лесенкой, последняя — сиротой. */
  .now .tools {
    display: block !important;
    width: 100% !important;
    margin-left: 0 !important;
  }

  .now .tools > .fchip {
    width: 100%;
    margin-bottom: 5px;
  }

  /* Окно дат искры висит на 15px ВЫШЕ самой искры (`.sdates{top:-15px}`), а
     отступа под ним всего 12px: подпись «2026-07-26 – 2026-08-24» ложилась
     поверх последних кнопок диапазона. Отступ увеличен ровно на высоту
     подписи — дата встаёт в пустое место, а не на кнопку. */
  .indspark { margin-top: 28px !important; }

  /* Шапка карточки: имя и два действия, а не четыре.

     ↗ повторяет ссылку «страница индикатора →» в подвале той же карточки,
     ↑ повторяет перетаскивание, которого на тачскрине нет вовсе. Вчетвером
     иконки занимали 176px из 302px шапки — больше половины ширины уходило
     под служебные кнопки, а имени карточки оставалось 110px. */
  .whd .wgo,
  .whd .wpin { display: none !important; }

  /* Шапка со вкладками (скринер) переносит их вниз, а не режет имя карточки.
     Было «Скри…» при вкладках в 261px — шапка, которая не сказала, чья она. */
  .whd { flex-wrap: wrap !important; }
  .whd .dstabs {
    order: 3;
    flex: 1 0 100%;
    margin: 0 0 6px !important;
  }

  /* Широкие данные прокручиваются внутри своей карточки, не весь документ. */
  .tw,
  .tblwrap,
  .table-wrap,
  .table-scroll,
  .screener-table,
  .tvm-body,
  .chart-shell {
    max-width: 100%;
    overflow-x: auto !important;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
  }

  .board table,
  .widget table,
  .panel table,
  .card table { width: 100%; }

  /* ПЕРВАЯ КОЛОНКА ОСТАЁТСЯ НА МЕСТЕ. Широкая таблица прокручивается внутри
     карточки — это правильно, но вместе с ней уезжало и имя строки, и читатель
     оставался с числами, не зная, чьи они: на скриншотах видно «raders»,
     «ingView», «ТРУМЕНТ» — обрезанный первый столбец.
     Липкий столбец решает это без изменения разметки: имя строки видно всегда,
     данные ходят под ним. Фон обязателен — иначе сквозь него просвечивает то,
     что проезжает мимо. */
  .tblwrap table th:first-child,
  .tblwrap table td:first-child,
  .tw table th:first-child,
  .tw table td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background: #0d1512;
    /* Граница справа отделяет липкое от едущего: без неё колонки в движении
       выглядят склеенными. */
    box-shadow: 1px 0 0 rgba(232, 236, 233, .14);
  }

  /* Имени строки — не больше половины экрана. На 390px первый столбец брал 253
     из 390, и на данные оставалось меньше трети ширины: прокручивать нужно было
     ради каждой ячейки. */
  .tblwrap table th:first-child,
  .tblwrap table td:first-child {
    max-width: 46vw;
    min-width: 96px;
    /* Перенос обязателен вместе с потолком ширины. У таблиц статей первая
       колонка объявлена `nowrap`: «медвежий рынок 2018–2020» просит 210px,
       потолок даёт 179, и остаток вылезал ПОВЕРХ соседней колонки. Липкий
       столбец делал это заметнее — текст ехал по данным. */
    white-space: normal;
    overflow-wrap: anywhere;
  }

  /* Screener и Funding Stress строят таблицы динамически: в одном случае
     таблица лежит прямо в .board, в другом сама таблица имеет id #neg/#pos.
     Фиксируем именно эти ветки, чтобы на телефоне они всегда занимали всю
     внутреннюю ширину карточки, а не оставляли пустое поле справа. */
  #grid,
  #funding,
  .cols {
    width: 100%;
    min-width: 0;
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #grid > .board,
  #funding > .board,
  .cols > .board {
    width: 100%;
    min-width: 0;
  }

  #grid > .board > table,
  #funding > .board > table,
  .cols > .board > table,
  .cols > .board > #neg,
  .cols > .board > #pos {
    display: table !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: none;
  }

  /* Таблица скринера — ровно по карточке, не шире и не уже.

     `min-width:520px` жил ради настольной ширины. На телефоне он давал
     горизонтальную прокрутку, и первым из неё уезжало ИМЯ монеты — колонка,
     ради которой таблицу и читают: на экране оставались «SHCAT», «RTUAL»,
     «RUP». Пять колонок помещаются в 300px при 10.5px и отбивке 4px —
     это замер, а не надежда. */
  .dash-screener .dstable { overflow-x: visible; }

  .dash-screener table {
    /* Общий лист сайта делает КАЖДУЮ таблицу блоком (`main table,.wrap table
       {display:block;overflow-x:auto}`), чтобы широкая не рвала страницу. Для
       блока табличная раскладка и доли колонок не существуют: таблица
       сжимается по содержимому и стоит уже карточки. Прокрутку здесь даёт
       обёртка, поэтому таблица возвращается таблицей. */
    display: table !important;
    width: 100% !important;
    min-width: 0 !important;
    /* Фиксированная раскладка: иначе браузер делит ширину по содержимому, и
       колонка имени — самая длинная — забирает половину карточки, а числа
       жмутся до многоточий. */
    table-layout: fixed !important;
    font-size: 10px !important;
  }

  .dash-screener th,
  .dash-screener td {
    padding: 7px 2px !important;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
  }

  /* Доли колонок — замер, не вкус. Имени нужно 90px («PIEVERSE», 10px Space
     Grotesk, плюс отбивка), четырём числам хватает 52px каждому: самое
     длинное из них — «-65.1%» — занимает 34px. Пять колонок помещаются в
     300px карточки без единого многоточия. */
  .dash-screener th:first-child,
  .dash-screener td:first-child { width: 30% !important; }

  .dash-screener th:not(:first-child),
  .dash-screener td:not(:first-child) { width: 17.5% !important; }

  /* Подсказка «?» у заголовка стоит 6px в каждой из пяти колонок — тридцать
     пикселей ради знака, который на телефоне некуда раскрыть. Имена колонок
     скринера говорят сами за себя. На прочих таблицах подсказка остаётся. */
  .dash-screener .hq { display: none !important; }

  /* SuperTrend занимает карточку целиком: таблица стояла 276px в карточке
     302px и оставляла справа пустую полосу, читавшуюся как обрез. */
  /* SuperTrend занимает карточку целиком и по ОДНОЙ линии с соседями. Своя
     отбивка в 13px сдвигала таблицу вправо относительно шапки «свежий · …» и
     подписи под ней: три блока карточки начинались с трёх разных мест. */
  .ttst-wrap {
    max-width: 100%;
    padding-inline: 0 !important;
    overflow-x: auto;
  }

  /* Колонки делят карточку поровну. При свободной раскладке таблица шириной
     100% всё равно жалась влево: семь узких колонок занимали 183px из 302, и
     справа оставалась пустая треть — карточка читалась как обрезанная. */
  .ttst-tab {
    /* см. `.dash-screener table` выше: общий лист сайта делает таблицу блоком,
       и доли колонок вместе с фиксированной раскладкой перестают работать. */
    display: table !important;
    width: 100% !important;
    table-layout: fixed !important;
  }

  /* Доля объявляется у КАЖДОЙ колонки. Одной доли на первую не хватает:
     остальные шесть остаются авто, и фиксированная раскладка отдаёт им
     ширину по содержимому — стрелка узкая, и 108px из 302 оставались
     пустыми справа. 28 + 6x12 = 100. */
  .ttst-tab th,
  .ttst-tab td { width: 12% !important; }

  .ttst-tab th:first-child,
  .ttst-tab td:first-child { width: 28% !important; }

  /* Правый край подбора — один. Кнопки «+ добавить», «✓ добавлен» и «убрать»
     были 79, 83 и 58px: столбец шёл рваной лесенкой, и «убрать» выглядело
     недорисованным, а не другим по смыслу. */
  .pcard .padd {
    box-sizing: border-box;
    flex: 0 0 88px;
    width: 88px;
    min-height: 40px !important;
    padding: 0 6px !important;
  }

  /* «Тренды Твиттера»: серый бейдж «контекст» слово в слово повторяет подпись
     под ним — «топ-3 по вниманию · только контекст». Два раза одно и то же,
     причём крупной серой заливкой рядом с тикером. */
  #board .widget[data-w="ind-attention"] .cls { display: none !important; }

  /* Модальное окно графика: вкладки и действия остаются в одну строку и
     прокручиваются локально, сам график не задаёт ширину документу. */
  .tvm,
  .tvm-back { max-width: 100vw !important; }
  .tvm-hd {
    display: flex !important;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
  }
  .tvm-hd::-webkit-scrollbar { display: none; }
  .tvm-hd > * { flex: 0 0 auto; min-height: 44px; }
  .tvm-frame,
  .tv-chart-container,
  .tv-chart-container iframe { max-width: 100% !important; width: 100% !important; }

  /* `/chart/`: терминальная поверхность. Верхняя строка короткая, сам график
     забирает почти весь viewport, а данные прогона живут отдельным широким
     блоком ниже — без внутреннего скролла и без обрезанных строк. */
  main.ch { padding-inline: 0 !important; }
  .ch .crumbs,
  .ch .ch-on,
  .ch .ch-how { display: none !important; }
  .ch .ch-hd {
    min-height: 44px;
    margin: 0 !important;
    padding: 10px 16px 0;
  }
  .ch .ch-h {
    min-width: 0;
    margin: 0 !important;
    overflow: hidden;
    font-size: 17px !important;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .ch .ch-hd > .ch-ex { display: none !important; }
  /* ОДНА ПРОКРУЧИВАЕМАЯ СТРОКА, А НЕ СЕТКА. Сетка на четыре колонки жила,
     пока кнопок было четыре. Их семь: две вкладки, «график с индикаторами»,
     кнопка окна и три ссылки из `.ch-ex` (у него `display: contents`, поэтому
     его дети становятся элементами сетки сами). Лишние переносились во вторую
     строку, а `min-width: 0` резал их посреди слова — «График с инди…» и
     «Торговать Binance» налезали друг на друга.
     Строка, которую смахивают пальцем, не ломается ни при семи кнопках, ни при
     десяти: каждая занимает столько, сколько нужно её слову. */
  .ch-mobile-actions {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 6px;
    margin: 8px 0;
    padding-inline: 16px;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    /* Полоса прокрутки на телефоне не нужна: она крадёт высоту у кнопок и на
       iOS всё равно не показывается. Край строки подсказывает жест затуханием. */
    -webkit-mask-image: linear-gradient(90deg, #000 0 calc(100% - 28px), transparent 100%);
            mask-image: linear-gradient(90deg, #000 0 calc(100% - 28px), transparent 100%);
  }
  .ch-mobile-actions::-webkit-scrollbar { display: none; }
  .ch-mobile-actions > a,
  .ch-mobile-actions > button,
  .ch-mobile-actions .ch-ex > a {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    /* Не сжимается и не тянется: ширину кнопке задаёт её слово. Именно
       `flex-shrink` и резал текст, когда кнопок стало больше места. */
    flex: 0 0 auto;
    min-width: 0;
    /* 44px — палец, а не курсор. Было 38. */
    min-height: 44px;
    padding: 0 12px !important;
    scroll-snap-align: start;
    border: 1px solid rgba(232, 236, 233, .22);
    background: #0e1512;
    color: #dce6df;
    font: 700 10.5px/1 'Space Grotesk', system-ui, sans-serif;
    letter-spacing: .04em;
    text-decoration: none;
    white-space: nowrap;
  }
  .ch-mobile-actions > a[aria-current="page"] { border-color: #33ff66; color: #33ff66; }
  .ch-mobile-actions > button { cursor: pointer; }
  .ch-mobile-actions .ch-ex { display: contents; }
  .ch-mobile-actions .ch-ex > a { gap: 5px; }
  .ch-mobile-actions .ch-ex img { width: 14px; height: 14px; }
  .ch-stage {
    position: relative !important;
    width: 100vw !important;
    max-width: none !important;
    /* Почти весь экран телефона (заказ владельца 24.08.2026): снизу остаётся
       полоса, за которую страницу видно и можно тянуть дальше. Было 76px —
       под ней помещалась ещё строка чужого блока, и график читался как
       «одна из карточек», а не как главное на странице.
       `svh`, а не `vh`: в мобильном браузере адресная строка съезжает, и `vh`
       считает по развёрнутому окну — график вылезал за экран ровно на высоту
       панели. */
    height: calc(100svh - 44px) !important;
    /* Пол опущен с 560px: в альбомной ориентации (390px высоты) он делал сцену
       выше экрана, и график нельзя было увидеть целиком вовсе. */
    min-height: 320px !important;
    margin: 0 calc(50% - 50vw) !important;
    border: 0 !important;
    background: #0a0c0a;
    overflow: hidden !important;
  }
  .ch-stage .tvm-full,
  .ch-stage .tvm-full-chart { inset: 0; width: 100%; height: 100%; }
  .ch-stage .tvm-full-chart { flex: 1 1 auto; }
  .ch-stage .tvm-stamp.ch-stamp-source { display: none !important; }
  .ch-stage .tvm-full:fullscreen {
    position: fixed;
    inset: 0;
    width: 100%;
    height: 100%;
    background: #0a0c0a;
  }
  .ch-stage.tt-chart-expanded {
    position: fixed !important;
    z-index: 1000;
    inset: 0;
    width: 100vw !important;
    height: 100svh !important;
    min-height: 0 !important;
    margin: 0 !important;
  }
  .ch-chart-note {
    width: 100%;
    margin: 0;
    border-top: 1px solid rgba(232, 236, 233, .14);
    background: #0e1512;
  }
  .ch-chart-note .tvm-stamp.ch-stamp-copy {
    max-height: none !important;
    overflow: visible !important;
    padding: 12px 16px !important;
  }
  .ch .ch-read,
  .ch .ch-go {
    width: auto;
    margin-right: 16px;
    margin-left: 16px;
  }

  /* Три следующих шага под графиком — один равный ряд, подпись над ним. */
  .ch-go {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px !important;
    width: 100%;
  }
  .ch-go-t { grid-column: 1 / -1; }
  .ch-go-a {
    justify-content: center;
    min-width: 0;
    min-height: 44px !important;
    padding: 0 8px !important;
    text-align: center;
  }

  /* Статус на телефоне читается строками, без обрезанных колонок. */
  table.st,
  table.st tbody,
  table.st tr,
  table.st td { display: block; width: 100%; }
  table.st thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
    border: 0;
  }
  table.st tr { padding: 12px 0; border-bottom: 1px solid rgba(232, 236, 233, .14); }
  table.st td { display: grid; grid-template-columns: minmax(108px, .42fr) minmax(0, 1fr); gap: 12px; padding: 6px 0 !important; border: 0 !important; overflow-wrap: anywhere; }
  table.st td::before { color: #8a948c; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
  html[lang="en"] table.st td:nth-child(1)::before { content: "Product"; }
  html[lang="en"] table.st td:nth-child(2)::before { content: "Kind"; }
  html[lang="en"] table.st td:nth-child(3)::before { content: "Feeds"; }
  html[lang="en"] table.st td:nth-child(4)::before { content: "Last rebuilt"; }
  html[lang="en"] table.st td:nth-child(5)::before { content: "Good until"; }
  html[lang="en"] table.st td:nth-child(6)::before { content: "State"; }
  html[lang="ru"] table.st td:nth-child(1)::before { content: "Продукт"; }
  html[lang="ru"] table.st td:nth-child(2)::before { content: "Тип"; }
  html[lang="ru"] table.st td:nth-child(3)::before { content: "Питает"; }
  html[lang="ru"] table.st td:nth-child(4)::before { content: "Пересобран"; }
  html[lang="ru"] table.st td:nth-child(5)::before { content: "Годен до"; }
  html[lang="ru"] table.st td:nth-child(6)::before { content: "Состояние"; }

  .foot {
    grid-template-columns: minmax(0, 1fr) !important;
    row-gap: 14px !important;
    min-width: 0;
  }
  .foot .foot-side,
  .foot .foot-legal { justify-self: stretch !important; }
  .foot .foot-side,
  .foot .foot-cta { width: 100% !important; }
  .foot .foot-links { min-width: 0; gap: 8px 12px; }
  .foot .foot-legal { flex-wrap: wrap; white-space: normal; gap: 4px 10px; }
  .foot h2,
  .foot .cp,
  .foot .ver { white-space: normal !important; }

  .labrep-list .labrep {
    grid-template-columns: 7px minmax(0, 1fr) 16px;
    gap: 7px 10px;
    padding: 12px 0 !important;
  }
  .labrep-list .labrep-d { grid-column: 2; font-size: 10px; }
  .labrep-list .labrep-go { grid-column: 3; grid-row: 1 / span 2; }
  .labrep-list .labrep-t { font-size: 14px; }
  .labrep-list .labrep-b { font-size: 12px; }
}

/* УЗКИЙ ЭКРАН. При 320px карточке остаётся 232px. Основание кнопки опускается
   с 48 до 40px: от него пять кнопок диапазона (7Д / 30Д / 1 год / 3 года /
   Все) держатся ОДНОЙ строкой и там — 5x40 плюс четыре зазора по 5px это
   220px. При 48px они переносились, и последняя оставалась сиротой. */
@media (max-width: 380px) {
  .ranges > *,
  .periods > * { flex: 1 1 40px; }
  .dash-screener table { font-size: 9.5px !important; }
  .dash-screener th,
  .dash-screener td { padding: 7px 1px !important; }

  /* Заголовок колонки — подпись, а не число: при 320px «объём», «mcap» и
     «% ATH» не влезали в 40px из-за разрядки в 0.08em и обрезались, хотя
     сами данные помещались с запасом. Разрядка снята, кегль на пункт ниже. */
  .dash-screener th {
    font-size: 8.5px !important;
    letter-spacing: 0 !important;
  }

  /* Доли пересчитаны под 230px: имени хватает 25% (57px — «PIEVERSE» просит
     45), а «ОБЪЁМ» в 17.5% не помещался. 25 + 4x18.75 = 100. */
  .dash-screener th:first-child,
  .dash-screener td:first-child { width: 25% !important; }

  .dash-screener th:not(:first-child),
  .dash-screener td:not(:first-child) { width: 18.75% !important; }
}

@media (max-width: 360px) {
  .foot .foot-cta { gap: 6px !important; }
  .foot .foot-cta a { padding-inline: 7px !important; font-size: 9px !important; letter-spacing: .07em !important; }
}
