/* ============================================================================
   RetroNet · операторская консоль — токены
   ----------------------------------------------------------------------------
   Порт принятого языка V3 «Горизонт» (design/retronet-horizon/styles/tokens.css
   на ветке design/event-horizon-concept). Отличия от исходника осознанные:

   - шрифты — woff2-сабсеты вместо variable-TTF: консоль по-русски, и полный
     файл на 165 КБ здесь не нужен; Unbounded не используется вовсе;
   - добавлен --font-mono: в концепте не было журналов и идентификаторов,
     в консоли они на каждом экране;
   - блоки эпох (data-era) и сценического света удалены: у консоли нет сцены;
   - реакция на сниженную анимацию — через prefers-reduced-motion, а не
     data-атрибут: консолью управляет система, а не пульт концепта.

   Цвет закреплён за смыслом и это не оспаривается страницами:
     белый   — главное действие;
     янтарь  — включено, в строю, успех;
     алый    — только ограничение и отказ, на органах управления не бывает;
     сталь   — инертное и справочное.
   Зелёного в системе не существует.
   ========================================================================== */

@font-face { font-family: 'Manrope'; font-weight: 400; font-display: swap; src: url('/static/fonts/manrope400-cyr.woff2') format('woff2'); unicode-range: U+0400-04FF, U+2116; }
@font-face { font-family: 'Manrope'; font-weight: 400; font-display: swap; src: url('/static/fonts/manrope400-lat.woff2') format('woff2'); unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: 'Manrope'; font-weight: 500; font-display: swap; src: url('/static/fonts/manrope500-cyr.woff2') format('woff2'); unicode-range: U+0400-04FF, U+2116; }
@font-face { font-family: 'Manrope'; font-weight: 500; font-display: swap; src: url('/static/fonts/manrope500-lat.woff2') format('woff2'); unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: 'Manrope'; font-weight: 700; font-display: swap; src: url('/static/fonts/manrope700-cyr.woff2') format('woff2'); unicode-range: U+0400-04FF, U+2116; }
@font-face { font-family: 'Manrope'; font-weight: 700; font-display: swap; src: url('/static/fonts/manrope700-lat.woff2') format('woff2'); unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: 'JetBrains Mono'; font-weight: 400; font-display: swap; src: url('/static/fonts/jbmono400-cyr.woff2') format('woff2'); unicode-range: U+0400-04FF, U+2116; }
@font-face { font-family: 'JetBrains Mono'; font-weight: 400; font-display: swap; src: url('/static/fonts/jbmono400-lat.woff2') format('woff2'); unicode-range: U+0000-00FF, U+2000-206F; }
@font-face { font-family: 'JetBrains Mono'; font-weight: 700; font-display: swap; src: url('/static/fonts/jbmono700-cyr.woff2') format('woff2'); unicode-range: U+0400-04FF, U+2116; }
@font-face { font-family: 'JetBrains Mono'; font-weight: 700; font-display: swap; src: url('/static/fonts/jbmono700-lat.woff2') format('woff2'); unicode-range: U+0000-00FF, U+2000-206F; }

:root {
  --font-ui: 'Manrope', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Helvetica Neue', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

  /* --- Поверхности -------------------------------------------------------
     Пустота почти чёрная, панели заметно светлее и сплошные: плита читается
     предметом, а не тенью. */
  --void: #08090b;
  --void-2: #0c0d10;
  --panel: #14161b;
  --panel-2: #1b1e24;      /* приподнятое: кнопки, сегменты, активный пункт */
  --panel-3: #24272f;      /* наведение */
  --sunken: #0d0e12;       /* утопленное: поля ввода, списки, журналы */

  --line: rgba(255, 255, 255, 0.09);
  --line-strong: rgba(255, 255, 255, 0.15);

  /* Чернила сплошным цветом, а не альфой: на разных подложках альфа давала
     разную светлоту, и текст «плавал» между панелями. */
  --ink: #f4f5f7;
  --ink-2: #aeb3bd;
  --ink-3: #7e848f;
  --ink-4: #565b66;
  --ink-5: #33373f;

  /* --- Значения цвета ---------------------------------------------------- */
  --white: #ffffff;
  --amber: #ffb224;
  --amber-soft: #ffcb63;
  --amber-dim: #a8721a;
  --red: #ff5c52;
  --red-dim: #a13731;
  --steel: #8b93a3;

  /* --- Графики -----------------------------------------------------------
     Ступени проверены валидатором палитр: полоса светлоты, порог
     насыщенности, разделение при дальтонизме и контраст к поверхности. */
  --chart-down: #5590f2;
  --chart-up: #bc7f22;
  --chart-single: #25a18e;
  --chart-grid: rgba(255, 255, 255, 0.055);
  --chart-axis: #7e848f;
  --chart-ink: 244, 245, 247;
  --chart-surface: #14161b;

  /* --- Тени: мягкие и широкие, без чернильных провалов -------------------- */
  --lift-1: 0 2px 8px rgba(0, 0, 0, 0.4);
  --lift-2: 0 8px 28px -8px rgba(0, 0, 0, 0.7);
  --lift-3: 0 24px 60px -16px rgba(0, 0, 0, 0.8);

  /* --- Метрика ----------------------------------------------------------- */
  --topbar-h: 48px;
  --rail-w: 74px;
  --gutter: 20px;

  --r-panel: 16px;
  --r-control: 11px;
  --r-chip: 8px;
  --r-round: 999px;

  --t-fast: 130ms;
  --t-ui: 240ms;
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}

/* ============================================================================
   Типографика: один гротеск, контраст веса и размера. Крупное — плотное и
   полужирное; мелкое — обычным регистром. Капса вразрядку в системе нет.
   ========================================================================== */

/* Величины: табличные цифры и плотный трекинг. Вес и кегль, а не засечки,
   делают число главным в кадре. */
.t-figure {
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: 'tnum' 1, 'lnum' 1;
  letter-spacing: -0.03em;
}

.t-title {
  font-size: 21px;
  font-weight: 600;
  letter-spacing: -0.025em;
}

.t-label {
  font-size: 11px;
  font-weight: 500;
  letter-spacing: -0.002em;
  color: var(--ink-3);
}

.t-row { font-size: 13.5px; font-weight: 500; letter-spacing: -0.008em; }
.t-sub { font-size: 12px; font-weight: 400; line-height: 1.45; color: var(--ink-2); }
.t-foot { font-size: 11.5px; font-weight: 400; line-height: 1.5; color: var(--ink-3); }

/* ============================================================================
   Доступность
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}

:focus-visible {
  outline: 2px solid var(--white);
  outline-offset: 2px;
  border-radius: 6px;
}

[hidden] { display: none !important; }
