/* ─── ScalpTV: ОДИН источник правды о токенах (редизайн 06.09) ─────────────
   Раньше их было четыре: терминал, лендинг, витрина тарифов и юр-страницы —
   у каждого свои цвета, свои скругления и свой вордмарк. Аудит показал, что
   расходятся они не «когда-нибудь», а уже: страница входа жила на числах
   #0d1117 и старом жёлтом акценте, а файлы web/ui/themes.css и
   components.css не подключала НИ ОДНА страница.

   Этот файл подключают все статические страницы, а gateway подставляет его
   строкой в /auth. Терминал держит свои токены в собственном :root — он
   переключает тему из JS (иначе канвас PixiJS не перекрасить), — и
   расхождение стережёт тест: значения обязаны совпадать.

   Палитра — «Сланец», выбор владельца. Тёмная база НЕ near-black намеренно:
   фон читается как материал, а слои различаются светлотой, не тенями.
   Цвета рынка в темах РАЗНЫЕ: на светлой прежний #ED7A70 даёт 3.6 при
   пороге 4.5, поэтому там он углублён. Один hex на обе темы — самая частая
   ошибка таких систем.
   --ok — УСПЕХ И СВЯЗЬ: «сохранено», «бот на связи», включённый тумблер,
   LIVE. Заведён отдельно от --up по той же причине, что и --warn отдельно от
   --down: зелёный в этом продукте занят РОСТОМ ЦЕНЫ, и пока «получилось»
   красилось цветом растущей свечи, правка рыночной палитры перекрашивала
   подтверждения, а сами они рядом с ценой читались как «выросло». Тон уведён
   из бирюзы свечей (157°) в лист (117° на тёмной, 104° на светлой).
   Контраст к своему фону: 8.24 и 4.98.
   --warn — ОТКАЗ И ОПАСНОСТЬ: «не сохранилось», «нет связи», «удалить ключ».
   Заведён отдельным токеном, а не ссылкой на --down, потому что красный в
   этом продукте занят НАПРАВЛЕНИЕМ РЫНКА: пока ошибки красились --down,
   любая правка цвета падающей свечи молча перекрашивала сообщения об
   ошибках, а рядом с ценой они читались как «упало». Оттенок сдвинут в
   оранжевый (тон 14° против 5° у рынка) и насыщеннее его — различимо
   рядом; от акцента (42°) отличается тоном. Контраст к своему фону: 5.97
   на тёмной, 5.14 на светлой. */
:root{
  --bg:#191D24; --panel:#212630; --panel2:#29303B; --border:#353D4A;
  --line-hard:#555D68; --text:#E7ECF3; --dim:#94A0B0;
  --accent:#E7B94A; --accent-fg:#12140F; --accent-dim:#3E392B;
  --up:#35BE8A; --down:#ED7A70; --up-dim:#245D4D; --down-dim:#724444;
  --logo:#E7B94A;
  --ok:#6FC96A; --warn:#FF6B3D;
  --scrim:rgba(0,0,0,.55); --shadow:0 10px 28px rgba(0,0,0,.40);
  --r-sm:4px; --r:6px; --r-panel:10px; --r-modal:14px;
  --ease:.13s ease;
  --font-ui:'Golos Text',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  --font-num:'JetBrains Mono',ui-monospace,Menlo,Consolas,monospace;
}
/* Светлая — по системной настройке; явный выбор человека перебивает её
   атрибутом data-theme на <html>. */
@media (prefers-color-scheme: light){
  :root:not([data-theme="dark"]){
    --bg:#EFF2F6; --panel:#FFFFFF; --panel2:#E4E9F0; --border:#CBD4E0;
    --line-hard:#AAB2BE; --text:#141922; --dim:#55606F;
    --accent:#8A6210; --accent-fg:#FFFFFF; --accent-dim:#DDD8CD;
    --up:#0F7351; --down:#B8302A; --up-dim:#9AC2B7; --down-dim:#D9A4A4;
    --logo:#A87B18;
    --ok:#3B7526; --warn:#B93815;
    --scrim:rgba(20,24,31,.34); --shadow:0 8px 24px rgba(20,24,31,.12);
  }
}
:root[data-theme="light"]{
  --bg:#EFF2F6; --panel:#FFFFFF; --panel2:#E4E9F0; --border:#CBD4E0;
  --line-hard:#AAB2BE; --text:#141922; --dim:#55606F;
  --accent:#8A6210; --accent-fg:#FFFFFF; --accent-dim:#DDD8CD;
  --up:#0F7351; --down:#B8302A; --up-dim:#9AC2B7; --down-dim:#D9A4A4;
  --logo:#A87B18;
  --ok:#3B7526; --warn:#B93815;
  --scrim:rgba(20,24,31,.34); --shadow:0 8px 24px rgba(20,24,31,.12);
}
/* ЦВЕТА-ИДЕНТИЧНОСТИ типов событий. Это не палитра темы: радар всегда
   янтарный, а айсберг всегда синий — по ним тип узнают в ленте и на /stats,
   как по имени. Поэтому они одни на обе темы и живут здесь, а не в
   переключаемом блоке. Потребитель — страница статистики; в терминале те же
   значения лежат в CFG.SIG. */
:root{
  --sig-radar:#E5A52E; --sig-pump:#FF9F43; --sig-ob:#4DA6FF; --sig-fade:#C77DFF;
}
/* Кольцо фокуса — общее правило системы: работать можно и с клавиатуры, а
   невидимый фокус означает, что человек не знает, где находится. */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;
  border-radius:var(--r-sm)}
