/* ===========================================================================
   EVA · пульт — экран «Статус сервиса» на «Стекле» (12.09.2026).

   Был: сводка «EVA сейчас» плюс двенадцать одинаковых плашек и пять панелей
   `.card` колонкой. Девять остальных экранов пульта к тому моменту уже
   стояли на «Стекле», и этот рядом с ними читался как чужая страница.

   Стало три ступени, и порядок — это и есть экран:
     1. ХЕРО «EVA сейчас»: вердикт словом, человеческая строка под ним и
        чипы эфира (модель, версия настроек и сколько раз применялась,
        воркеры, буфер журнала, аптайм, очередь, сессии, база знаний, CRM);
     2. ПРИБОРЫ: пять цифр из точек со спарклайном по дням под каждой —
        диалоги, заявки, открытые вызовы человека, расход против потолка и
        время ответа. Одна цифра не отвечает на вопрос «это много или мало»;
        ряд под ней отвечает;
     3. подробности — связь, каналы, вызовы человека, тихие отказы и хвост
        журнала процесса, всё на стекле.

   Отдельный файл, а не строки в `app.css`, по той же причине, что у
   `orders.css` и `access.css`: `app.css` лежит в CRLF и правка его из
   LF-инструмента даёт дифф на семь тысяч строк вместо десяти настоящих.

   Общие кадры движения (`gDot`, `gDraw`, `gFade`, `gRow`, `gSheen`) живут в
   `overview.css`; второй копии здесь нет.
   ======================================================================== */

/* ============================================ ХЕРО «EVA СЕЙЧАС» */

#tab-status .st-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: var(--s5) var(--s6);
  align-items: start;
  margin-bottom: var(--s4);
  isolation: isolate;
}

#tab-status .st-now {
  display: grid;
  align-content: start;
  gap: var(--s2);
  min-width: 0;
}

/* Знак EVA и вердикт — одной строкой. Знак берётся готовым из «Инбокса»
   (`.ib-orb`), здесь только размер и раскладка: второй копии сферы в пульте
   нет и заводить её незачем. */
#tab-status .st-nowhead {
  display: flex;
  align-items: center;
  gap: var(--s3);
  min-width: 0;
}

#tab-status .st-nowtext {
  min-width: 0;
}

#tab-status .st-orb {
  width: 3.4rem;
  height: 3.4rem;
}

/* Вердикт — самое крупное на экране: его читают с двух метров и первым. */
#tab-status .now-verdict {
  margin: 0;
  font-family: var(--f-disp);
  font-size: var(--t-2xl);
  font-weight: 600;
  letter-spacing: -0.03em;
  line-height: 1.15;
  color: var(--milk);
}

#tab-status .now-line {
  margin: 0;
  max-width: 42rem;
  color: var(--silver);
  font-size: var(--t-sm);
  line-height: 1.6;
}

#tab-status .now-tag {
  margin: 0;
}

#tab-status #status-actions-note {
  margin-top: var(--s2);
  max-width: 42rem;
}

/* Ответ кнопки — своей строкой на ступени фона: его ищут глазами сразу
   после нажатия, и в общем потоке заметок он терялся. */
#tab-status .st-result {
  margin-top: var(--s1);
  padding: var(--s2) var(--s3);
  border: 1px solid var(--line-2);
  border-radius: var(--r-sm);
  background: var(--ink-860);
  color: var(--silver);
}

/* ------------------------------------------------------- чипы эфира
   Те же `.gchip`, что факты персоны в «Обзоре» и карточка клиента в
   «Инбоксе»: подпись сверху, значение снизу, знак в квадратике слева. */
#tab-status .st-chips {
  --col-min: 11.5rem;
  --col-gap: var(--s2);
  --cols: 4;
  display: grid;
  grid-template-columns: repeat(
    auto-fit,
    minmax(max(var(--col-min), calc((100% - (var(--cols) - 1) * var(--col-gap)) / var(--cols))), 1fr)
  );
  gap: var(--col-gap);
  min-width: 0;
}

#tab-status .st-chips .gchip {
  min-width: 0;
}

#tab-status .st-chips .gchip b {
  overflow-wrap: anywhere;
}

/* Тон чипа живёт в знаке и в волоске кромки, а не в заливке: девять цветных
   плашек в ряд перетянули бы на себя весь экран, а искать здесь надо одну. */
#tab-status .st-chips .gchip.is-warn { border-color: var(--warn-line); }
#tab-status .st-chips .gchip.is-warn .ibox { color: var(--warn); }
#tab-status .st-chips .gchip.is-bad { border-color: var(--bad-line); }
#tab-status .st-chips .gchip.is-bad .ibox { color: var(--bad); }

/* ================================================== ПРИБОРЫ (пять цифр) */

#tab-status .st-tiles {
  --col-min: 12.5rem;
  --col-gap: var(--s3);
  --cols: 5;
  display: grid;
  /* Приборов ровно пять, и пятым столбцом ряд закрывается. Потолок колонок,
     а не «сколько влезет»: на широком мониторе `auto-fit` растянул бы их в
     шесть треков, и пятая цифра осталась бы висеть в пустом ряду. Формула та
     же, что у общих сеток пульта (`layout.css`). */
  grid-template-columns: repeat(
    auto-fit,
    minmax(max(var(--col-min), calc((100% - (var(--cols) - 1) * var(--col-gap)) / var(--cols))), 1fr)
  );
  gap: var(--col-gap);
  align-items: stretch;
  margin-bottom: var(--s4);
}

#tab-status .st-tile {
  display: flex;
  flex-direction: column;
  gap: var(--s2);
  padding: var(--s4);
  border-radius: var(--r-card-sm);
  isolation: isolate;
  transition: translate var(--dur-2) var(--ease);
}

#tab-status .st-tile:hover { translate: 0 -2px; }

/* 🔴 Прибор без цифры. Раньше он был пустым прямоугольником: `evaDotNumber`
   не умеет набирать «—» точками и отдавал svg без единого кружка. Теперь на
   месте цифры стоит слово, а сама плитка приглушается — на ней нечего искать
   глазами, и спорить весом с соседями, у которых цифра есть, она не должна.
   Приглушается кромка и фон, но НЕ текст: подпись «расход видит владелец
   пульта» обязана читаться, иначе приглушение превращается в поломку. */
#tab-status .st-tile.is-quiet {
  background: var(--surface-flat);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-color: var(--line);
  outline-color: transparent;
  box-shadow: none;
}

/* Блик стекла на плоской плитке — обман: он обещает живую карточку. */
#tab-status .st-tile.is-quiet > .g-gloss {
  opacity: 0;
}

/* Слово вместо цифры: тот же ярус, что у матрицы, но спокойным весом —
   это не показание, а объяснение, почему показания нет. */
#tab-status .st-word {
  display: flex;
  align-items: center;
  min-height: var(--dotnum-sm);
  margin: 0;
  color: var(--silver);
  font-family: var(--f-disp);
  font-size: var(--t-base);
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.2;
}

/* Подпись прибора в ДВА ВЕСА (реф 2): существительное обычным, уточнение
   лёгким. Один приём вместо двух кеглей — строка остаётся одной высоты. */
#tab-status .st-cap {
  margin: 0;
  color: var(--silver);
  font-size: var(--t-sm);
  font-weight: 500;
  line-height: 1.3;
}

#tab-status .st-cap span {
  display: block;
  color: var(--mute);
  font-weight: 300;
}

/* 🔴 Свечение точек снимается: оно белое и считано под плотный градиент
   карточки дня. На стекле светлой темы белая тень вокруг тёмной точки даёт
   ореол, от которого матрица перестаёт читаться числом. */
#tab-status .dotnum {
  color: var(--milk);
  filter: none;
}

#tab-status .dotnum svg {
  max-height: var(--dotnum-sm);
  filter: none;
}

#tab-status .dotnum-unit {
  color: var(--mute);
  font-size: var(--t-base);
}

#tab-status .st-sub {
  margin: auto 0 0;
  color: var(--mute);
  font-size: var(--t-micro);
  line-height: 1.45;
}

/* ------------------------------------------------------- спарклайн
   Волна с пунктирной базой и двумя маркерами — общий компонент из
   `overview.js`. Там он нарисован под ПЛОТНЫЙ градиент карточки (белым по
   цвету), здесь лежит на стекле: цвета переопределяются токенами темы. */
#tab-status .st-spark {
  min-height: 2.4rem;
}

#tab-status .ovspark {
  height: 2.4rem;
}

#tab-status .ovspark-line { stroke: var(--accent-2); }
#tab-status .ovspark-area { fill: var(--accent-soft-2); }
#tab-status .ovspark-base { stroke: var(--line-3); }
#tab-status .ovspark-dot { fill: var(--accent-2); }

#tab-status .ovspark-dot.is-hollow {
  fill: none;
  stroke: var(--accent-2);
}

/* Ряда нет — так и написано. Ровная линия по нулям неотличима от «данные не
   пришли», и это ровно та разница, ради которой экран существует. */
#tab-status .st-nospark {
  display: flex;
  align-items: center;
  gap: var(--s2);
  min-height: 2.4rem;
  margin: 0;
  color: var(--faint);
  font-size: var(--t-micro);
  line-height: 1.4;
}

/* Пунктир вместо волны: место графика занято и подписано. Пустой
   прямоугольник на его месте читается как «экран не догрузился» — ровно та
   ошибка, ради которой прибор и рисуют. */
#tab-status .st-dash {
  flex: none;
  width: 2.4rem;
  height: 0;
  border-top: 1px dashed var(--line-3);
}

/* ------------------------------------------------- гейдж суточного потолка */
#tab-status .st-gauge {
  min-height: 2.4rem;
}

#tab-status .stg {
  display: block;
  width: 100%;
  max-width: 6.5rem;
  height: auto;
  overflow: visible;
}

.stg-track {
  fill: none;
  stroke: var(--line-2);
  stroke-width: 6;
  stroke-linecap: round;
}

.stg-fill {
  fill: none;
  stroke: var(--accent-2);
  stroke-width: 6;
  stroke-linecap: round;
}

/* ------------------------------------------------------- пилюли p50 / p90 */
#tab-status .st-pair {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
  min-height: 2.4rem;
  align-items: center;
}

#tab-status .st-pill {
  display: inline-flex;
  align-items: baseline;
  gap: 0.3rem;
  padding: 0.1rem var(--s2);
  border: 1px solid var(--line-2);
  border-radius: var(--r-pill);
  background: var(--surface-flat);
}

#tab-status .st-pill small {
  color: var(--mute);
  font-size: var(--t-micro);
}

#tab-status .st-pill b {
  color: var(--silver);
  font-size: var(--t-xs);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

/* ================================================== ПАНЕЛИ ПОДРОБНОСТЕЙ */

#tab-status .st-card {
  isolation: isolate;
  transition: translate var(--dur-2) var(--ease);
}

#tab-status .st-card:hover { translate: 0 -2px; }

#tab-status .pair { align-items: start; }

#tab-status .pair > section.st-card { margin: 0; }

#tab-status .st-card > h3 {
  margin: 0 0 var(--s2);
  font-family: var(--f-disp);
  font-size: var(--t-base);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--milk);
}

#tab-status .st-card > h3 + .muted,
#tab-status .st-card > h3 + .note {
  margin-bottom: var(--s4);
}

#tab-status section.st-card {
  margin: 0 0 var(--s4);
}

/* Таблица вызовов человека распахнута до кромки стекла — как в «Заказах». */
#tab-status .st-card .table-wrap {
  margin: 0 calc(var(--s5) * -1) calc(var(--s5) * -1);
}

/* Слово в ячейке вызова не режется по буквам.

   🔴 Общий пульт рвёт слова где угодно: `.tab td, .tab th {overflow-wrap:
   anywhere}` (`layout.css`) плюс `.table{table-layout:fixed}` ниже 56rem
   (`app.css`). Обоим правилам есть за что жить — «Новая Пошта, отделение 214»
   в «Заказах» иначе растаскивает строку, — но здесь они давали «Telegra/m»
   даже на 1440 и «Клие/нт спра/шива/ет» на телефоне.

   `break-word` вместо `anywhere` — разница ровно в одном: ширину колонки
   считают по САМОМУ ДЛИННОМУ СЛОВУ, а не по одной букве, и рвут слово, только
   если оно не помещается в строку целиком. Правило адресное, на своей
   таблице; общие правила не тронуты. */
#tab-status #esc-table td,
#tab-status #esc-table th {
  overflow-wrap: break-word;
}

/* ------------------------------------------------------- тихие отказы
   Чипами, а не списком строк: имя счётчика машинное и короткое, а число при
   нём — главное. Списком они читались как журнал, в котором надо что-то
   искать. */
#tab-status .st-fchips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s2);
}

#tab-status .st-fchip {
  display: inline-flex;
  align-items: center;
  gap: var(--s2);
  padding: 0.2rem var(--s3);
  border: 1px solid var(--warn-line);
  border-radius: var(--r-pill);
  background: var(--warn-soft);
  color: var(--warn);
}

/* Подпись по-русски — обычным шрифтом; машинный ключ (когда подписи нет в
   словаре) — мелким моноширинным. Разница в начертании и есть ответ на
   вопрос «это слово или это код». */
#tab-status .st-fchip .st-fname {
  font-size: var(--t-xs);
}

#tab-status .st-fchip code {
  padding: 0;
  border: 0;
  background: none;
  color: inherit;
  font-size: var(--t-micro);
}

#tab-status .st-fchip b {
  font-size: var(--t-xs);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* Растущий счётчик — уже не «внимание», а «система болеет, оставаясь
   зелёной». Порог тот же, что и в прежнем списке: больше десяти. */
#tab-status .st-fchip.is-bad {
  border-color: var(--bad-line);
  background: var(--bad-soft);
  color: var(--bad);
}

/* --------------------------------------------- панель «Как продаёт EVA» */
#tab-status .metrics {
  isolation: isolate;
  margin-bottom: var(--s4);
}

#tab-status .metrics h3 {
  margin: 0;
  font-family: var(--f-disp);
  font-size: var(--t-base);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--milk);
}

#tab-status .metrics .tile {
  border-radius: var(--r-card-sm);
}

/* Все принты за неделю набрали поровну — лидера нет. Общее правило пульта
   красит первую строку рейтинга светлее (`app.css`), и на ровном ряду оно
   выдумывает победителя. Полосы одинаковой длины обязаны быть одного цвета. */
#tab-status .bars.is-flat li:first-child .bar-fill {
  background: var(--line-3);
}

#tab-status #status-raw-card {
  margin-bottom: var(--s6);
}

/* ------------------------------------------------------------- телефон */
@media (max-width: 62rem) {
  #tab-status .st-hero {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* ============ УЗКИЙ ЭКРАН: ВЫЗОВЫ ЧЕЛОВЕКА → КАРТОЧКИ (ревизия 13.09) ======

   До правки таблица на 375/390 держалась шестью колонками: «Причина» жила в
   полосе шириной в три буквы, и связный текст читался по слогам — «Клие/нт
   спра/шива/ет». Причина — и есть ответ на вопрос, ради которого на строку
   смотрят; в колонке, куда она не помещается, её нет.

   Порог — 54rem (864 px), тот же, что у таблицы людей на «Доступе»: ниже
   шесть колонок перестают помещаться без сжатия. Ниже него таблицы нет
   вовсе — строка становится карточкой вызова: сверху «когда» и состояние,
   под ними тип и сколько ждал, затем канал, и во всю ширину — причина.
   Подписи колонок едут с ячейками (`data-label` ставит `status.js`, читая их
   из этой же шапки). Приём и разметка — как в `access.css`; общего места для
   такой таблицы в пульте нет, поэтому здесь своя копия правил, а не
   переименованная чужая. */
@media (max-width: 54rem) {
  /* Прокручивать вбок больше нечего: карточки шире окна не бывают. */
  #tab-status .st-card:has(#esc-table) .table-wrap {
    overflow-x: visible;
    padding-bottom: var(--s5);
  }

  #tab-status #esc-table {
    display: block;
    min-width: 0;
  }

  /* Шапка не `display: none`, а вынесена за экран: `status.js` читает её
     подписи (`escColumnLabels()`), и убранная из раскладки она читается так
     же — и глазами скринридера тоже. */
  #tab-status #esc-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }

  #tab-status #esc-table tbody {
    display: block;
  }

  #tab-status #esc-table tbody tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 0.3rem var(--s3);
    margin-bottom: var(--s3);
    padding: var(--s3);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
  }

  #tab-status #esc-table tbody tr:last-child {
    margin-bottom: 0;
  }

  /* Просроченная карточка — волоском по кромке, а не полосой по ячейке:
     ячеек-полос в карточке больше нет. */
  #tab-status #esc-table tbody tr.over-sla {
    border-color: var(--bad-line);
  }

  #tab-status #esc-table td {
    display: block;
    /* 🔴 `width: auto` обязателен: общее `.table td:first-child{width:4.2rem}`
       (`app.css`, тот же узкий блок) продолжает действовать и на ячейке вне
       таблицы — «когда» получало полосу в 67 px, а хвост «показаны последние
       20 из 36» читался в четыре строки по одному слову. */
    width: auto;
    padding: 0;
    border-bottom: 0;
  }

  /* «Когда» и «состояние» — одной строкой сверху: два ответа, за которыми на
     эту таблицу и заходят. «Тип» и «ждал» — второй строкой той же парой. */
  #tab-status #esc-table td.st-c-when {
    grid-area: 1 / 1 / 2 / 2;
    color: var(--milk);
    font-weight: 600;
  }

  #tab-status #esc-table td.st-c-state {
    grid-area: 1 / 2 / 2 / 3;
    justify-self: end;
    text-align: right;
  }

  #tab-status #esc-table td.st-c-kind {
    grid-area: 2 / 1 / 3 / 2;
  }

  #tab-status #esc-table td.st-c-waited {
    grid-area: 2 / 2 / 3 / 3;
    justify-self: end;
    text-align: right;
    white-space: nowrap;
  }

  #tab-status #esc-table td.st-c-chan {
    grid-area: 3 / 1 / 4 / 3;
  }

  /* 🔵 M-15 (QA 24.09): на 320 «ждал 23 ч 16 мин» (nowrap) забирал вторую
     колонку, и тип эскалации оставался в 90 px — «Валидатор» рвался посреди
     слова. На самых узких экранах тип идёт во всю ширину карточки, а «ждал»
     встаёт в строку канала справа. */
  @media (max-width: 22.5rem) {
    #tab-status #esc-table td.st-c-kind {
      grid-area: 2 / 1 / 3 / 3;
    }

    #tab-status #esc-table td.st-c-chan {
      grid-area: 3 / 1 / 4 / 2;
    }

    #tab-status #esc-table td.st-c-waited {
      grid-area: 3 / 2 / 4 / 3;
    }
  }

  /* Причина — во всю ширину карточки и с отбивкой сверху: это связный текст,
     а не пометка, и делить с ним строку нечему. */
  #tab-status #esc-table td.st-c-why {
    grid-area: 4 / 1 / 5 / 3;
    margin-top: 0.15rem;
    padding-top: var(--s2);
    border-top: 1px solid var(--line-2);
    color: var(--milk);
  }

  /* Подпись колонки перед значением — строчная, а не блочная: подпись над
     значением давала бы восемь строк там, где хватает пяти, а карточек на
     экране двадцать. Сама подпись не ломается: «СОСТОЯНИЕ» в две строки — это
     ровно то обрезание, ради которого карточки и заведены. */
  #tab-status #esc-table td[data-label]::before {
    content: attr(data-label);
    display: inline;
    margin-right: var(--s2);
    color: var(--mute);
    font-size: var(--t-micro);
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    white-space: nowrap;
  }

  /* У «когда» и «состояния» подписи нет: «21 мин назад» и «открыта» сами себя
     называют, а две капслочные метки в верхней строке карточки перекрикивают
     сами данные. */
  #tab-status #esc-table td.st-c-when::before,
  #tab-status #esc-table td.st-c-state::before {
    display: none;
  }

  /* Хвост «показаны последние 20 из 36» — приписка под карточками, а не ещё
     одна карточка без данных. */
  #tab-status #esc-table tbody tr.st-esc-more {
    display: block;
    margin-top: var(--s3);
    padding: 0;
    border: 0;
  }
}

@media (max-width: 40rem) {
  #tab-status .st-tiles {
    /* Пять приборов в две колонки: в одну они дают полтора экрана прокрутки
       до первой подробности, а рядом по два читаются парами. */
    --cols: 2;
    --col-min: 0;
  }

  #tab-status .st-chips {
    --cols: 1;
    --col-min: 0;
  }

  /* 🔴 Не `--t-xl`: такого токена в системе нет намеренно (комментарий в
     `app.css` — «ступень убрана, ни одного обращения»). Кегль вердикта на
     телефоне задан числом, а не выдуманной переменной. */
  #tab-status .now-verdict {
    font-size: 1.45rem;
  }

  #tab-status .dotnum svg {
    max-height: 2.2rem;
  }
}

/* ===========================================================================
   ДВИЖЕНИЕ

   Границы те же, что на «Обзоре», в «Заказах» и в «Доступе»: в кадре только
   transform / opacity / stroke-dashoffset, микроанимации ≤ 300 мс,
   декоративные циклы ≥ 6 с. Общие кадры берутся из `overview.css`.

   🔴 Главное правило ЭТОГО экрана: он опрашивает себя раз в 15 секунд и
   обязан при этом СТОЯТЬ. Всё, что ниже, играется только по смене показания
   (класс ставит `status.js`, css не знает, изменилось ли число) или один раз
   на входе. Экран, который четыре раза в минуту пересобирается на глазах,
   читать невозможно.
   ======================================================================== */

/* Цифра из точек зажигается волной, спарклайн дорисовывается слева направо —
   общие правила в `overview.css` (`.dotnum.is-lit svg circle`,
   `.is-drawn .ovspark-*`). Классы и `--i` на каждой точке ставит js. */

/* --------------------------------------------------------- живой херо
   🔴 До 13.09 «Статус» был одним из трёх экранов пульта, где `getAnimations()`
   не находил НИ ОДНОГО бесконечного цикла: херо — абзац текста, и рядом с
   «Обзором» (четыре цикла) и «Инбоксом» (два) он читался как мёртвая
   страница. Теперь у вердикта стоит знак EVA — тот же объект и те же два
   цикла, что в «Инбоксе»: дрейф 6,4 с и поворот дуг 22 с (`ibFloat`/`ibSpin`,
   `inbox.css`). Второй копии кадров здесь нет намеренно.

   Точка состояния дышит и без нас (`breathe`, `app.css`), но на общий пульс
   в 3,4 с: там она стоит в узкой пилюле рельсы. На «Статусе» она размером с
   вердикт, и на таком кегле цикл в 3,4 с уже мигает. Замедляем до 6,4 с —
   ровно в такт дрейфу знака рядом. Красная точка не трогается: там уже не
   фон, а сигнал, и её частота — часть сообщения. */
#tab-status .now-dot.ok::after,
#tab-status .now-dot.warn::after {
  animation-duration: 6.4s;
}

/* Гейдж наливается при появлении и при СМЕНЕ доли. Длину дуги и смещение
   штриха ставит js по данным — кадр двигает только смещение. */
#tab-status .st-gauge.is-filled .stg-fill {
  animation: gDraw 720ms var(--ease-out) backwards;
}

/* Строки таблицы вызовов человека идут каскадом — его ставит `cascade()`. */
/* Блик под курсором — общее правило в `overview.css`; здесь только контекст
   наложения. */
#tab-status .glass { isolation: isolate; }

#tab-status button.sqbtn:active:not(:disabled),
#tab-status .st-pill:active { translate: 0 1px; }

@media (prefers-reduced-motion: reduce) {
  /* Знак EVA замирает вместе со всем остальным. Общее правило для `.ib-orb`
     в `inbox.css` его уже гасит; здесь — та же остановка по своему селектору,
     чтобы выключатель этого экрана не зависел от файла соседнего. */
  #tab-status .st-orb,
  #tab-status .st-orb svg,
  #tab-status .now-dot::after {
    animation: none !important;
  }

  #tab-status .st-gauge.is-filled .stg-fill,
  #tab-status .st-tile,
  #tab-status .st-card {
    /* 🔴 `opacity: 1` здесь НЕ ставится (та же грабля, что в `access.css`):
       селектор с `#tab-status` весит больше базового правила, и приглушённые
       элементы стали бы сплошными. Анимации с `backwards` сами возвращают
       свойству его собственное значение, стоит их выключить. */
    animation: none !important;
    transition: none !important;
    stroke-dashoffset: 0 !important;
    transform: none !important;
    scale: none !important;
  }

  #tab-status .st-tile:hover,
  #tab-status .st-card:hover { translate: 0; }
}
