/**
 * Дизайн-токены. Единственное место, где определены цвет, размер, тень и радиус — экраны
 * используют только переменные. В court-scoreboard-box CSS складывался по мере появления
 * экранов (один style.css на всё, значения вписаны по месту), из-за чего «сделать читаемо на
 * солнце» означало бы ручную правку десятков мест.
 *
 * ЧТО ЗДЕСЬ ПРОДИКТОВАНО ПОЛЕВЫМИ УСЛОВИЯМИ, А НЕ ВКУСОМ
 * ------------------------------------------------------
 * Экран оператора — телефон в руках у корта, часто под прямым солнцем, часто одной рукой,
 * часто в спешке между розыгрышами. Отсюда:
 *  • Тёмная основа и БЕЛЫЙ текст максимальной насыщенности. На солнце решает контраст, а не
 *    «светлая тема»: у светлой темы отражение экрана съедает именно светлые участки, а крупный
 *    белый текст на почти чёрном читается лучше всего.
 *  • Минимальная площадь касания 64 px (--tap-min) — больше рекомендованных 44 px, потому что
 *    целятся не глядя, в движении.
 *  • Цвета команд — синий и янтарный, а не красный/зелёный: различимы при дальтонизме (самый
 *    частый тип — красно-зелёный), и оба читаются поверх видео в эфире.
 *  • Акцент «в эфире» — единственный красный в системе. Красный здесь не декоративный: он
 *    означает ровно одно состояние, поэтому его невозможно перепутать ни с чем.
 */
:root {
  color-scheme: dark;

  /* --- основа --- */
  --bg:            #0b0f14;
  --bg-raised:     #141a22;
  --bg-sunken:     #070a0e;
  --line:          #232c38;
  --line-strong:   #33404f;

  /* --- текст --- */
  --text:          #ffffff;
  --text-muted:    #9fb0c3;
  --text-dim:      #6b7c90;

  /* --- команды --- */
  --team-a:        #2f7cf6;
  --team-a-deep:   #123a78;
  --team-b:        #f5a524;
  --team-b-deep:   #6b4405;

  /* --- состояния --- */
  --live:          #e5484d;
  --live-deep:     #4a1113;
  --ok:            #30a46c;
  --warn:          #f5a524;
  --serve:         #ffd60a;

  /* --- типографика ---
     Системный стек: никаких веб-шрифтов. Загрузка шрифта на стадионном 4G — это секунда,
     в течение которой оператор смотрит на пустой экран, плюс внешний домен в CSP. */
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-numeric: ui-monospace, "SF Mono", "Roboto Mono", Menlo, monospace;

  --text-xs:   12px;
  --text-sm:   14px;
  --text-md:   16px;
  --text-lg:   20px;
  --text-xl:   26px;
  --text-2xl:  34px;
  --text-3xl:  48px;

  /* --- ритм --- */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;

  --radius-sm: 8px;
  --radius-md: 14px;
  --radius-lg: 20px;

  --tap-min: 64px;

  --shadow-raised: 0 2px 12px rgba(0, 0, 0, .45);
  --shadow-sheet:  0 -8px 32px rgba(0, 0, 0, .6);

  /* Безопасные зоны телефона: без них нижняя панель уезжает под жест «домой» на iPhone. */
  --safe-top:    env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* Кабинеты (владелец/клиент) открывают с ноутбука в помещении — там уместна светлая тема,
   и она же заметно отличает «настройка» от «работа в эфире», чтобы их нельзя было спутать. */
.theme-console {
  color-scheme: light;
  --bg:          #f6f8fb;
  --bg-raised:   #ffffff;
  --bg-sunken:   #eef2f7;
  --line:        #dde4ec;
  --line-strong: #c3cedb;
  --text:        #0e1725;
  --text-muted:  #4d5f75;
  --text-dim:    #7d8fa5;
  --shadow-raised: 0 1px 3px rgba(16, 30, 54, .08), 0 4px 16px rgba(16, 30, 54, .06);
}
