/*
 * Токены дизайн-системы (ТЗ 5.1.1).
 *
 * Значения не меняются от компонента к компоненту — тёмная тема включается
 * переопределением этих же переменных, поэтому ни одного цвета мимо них:
 * ни в компонентах, ни тем более только внутри блока тёмной темы (тогда он
 * не существовал бы в светлой).
 *
 * Порядок ниже такой, каким его требует задание: полный набор в :root,
 * затем переопределение тех же имён под prefers-color-scheme: dark
 * (следит за системой на лету — это чистый CSS, JS не нужен) и под явный
 * выбор темы человеком ([data-theme]), который перекрывает системный.
 */

:root {
  /* ---------- цвет: светлая тема (ТЗ 5.1.1, значения заказчика) ---------- */
  --bg: #F7F8FA;
  --surface: #FFFFFF;
  --text: #111827;
  --text-2: #6B7280;
  --border: #E5E7EB;
  --hairline: rgba(17, 24, 39, .07);

  --accent: #2563EB;
  --accent-hover: #1D4ED8;
  --accent-tint: #EAF0FE;
  --accent-rgb: 37, 99, 235;
  --on-accent: #FFFFFF;

  --success: #16A34A;
  --success-tint: #E7F6EC;
  --warning: #F59E0B;
  --warning-tint: #FEF3E0;
  --warning-text: #92620A;
  --error: #DC2626;
  --error-tint: #FCE9E9;

  /* серые статусы вне палитры ТЗ: «не назначено» и «перенос/замена» —
     не заменяют акцент, а обслуживают состояния, которых нет в 5.1.1 */
  --neutral-tint: #EEF0F2;
  --neutral-text: #4B5563;
  --neutral-border: #C7CDD6;
  --substitution: #7C3AED;
  --substitution-tint: #F3EEFF;

  /* линия текущего времени — единственный выразительный элемент экрана
     (ТЗ этого шага). В светлой теме — точный волосок без свечения. */
  --now-line: var(--accent);
  --now-glow: none;

  /* ---------- форма ---------- */
  /* Высота шапки кабинета. Под ней прикрепляются шапки таблиц
     расписания, поэтому это общая величина, а не внутреннее дело
     шапки: разойдутся — таблица залезет под шапку или оставит щель. */
  --app-header-h: 60px;

  --radius-card: 12px;
  --radius-control: 8px;
  --radius-pill: 999px;
  /* карточки отделяются от фона волоском границы, а не тенью — тень только
     у того, что действительно висит над плоскостью (см. --shadow-float). */
  --shadow-float: 0 12px 32px rgba(17, 24, 39, .14), 0 2px 8px rgba(17, 24, 39, .06);

  /* ---------- типографика ---------- */
  /* Golos Text рисовался под кириллицу — продукт целиком русскоязычный.
     Запасная цепочка — системные гротески, не Inter: Inter достаточно
     хорош, чтобы его брали по умолчанию для чего угодно, и это делает
     продукт неотличимым от любого другого. */
  --font: 'Golos Text', -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* ---------- тёмная тема: системная (следует за ОС/браузером) ---------- */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --bg: #0B0F1A;
    --surface: #131A29;
    --text: #E7E9EE;
    --text-2: #98A2B3;
    --border: #232B3D;
    --hairline: rgba(255, 255, 255, .07);

    --accent: #60A5FA;
    --accent-hover: #7DB6FB;
    --accent-tint: #152135;
    --accent-rgb: 96, 165, 250;
    --on-accent: #0B0F1A;

    --success: #4ADE80;
    --success-tint: #112A1E;
    --warning: #FBBF24;
    --warning-tint: #2A2110;
    --warning-text: #FBBF24;
    --error: #F87171;
    --error-tint: #2A1414;

    --neutral-tint: #1B2333;
    --neutral-text: #98A2B3;
    --neutral-border: #2E3750;
    --substitution: #A78BFA;
    --substitution-tint: #211A3D;

    --now-line: var(--accent);
    --now-glow: 0 0 10px 1px rgba(var(--accent-rgb), .55);

    --shadow-float: 0 16px 40px rgba(0, 0, 0, .55), 0 2px 10px rgba(0, 0, 0, .4);
  }
}

/* ---------- тёмная тема: выбрана явно (перекрывает систему) ---------- */
:root[data-theme="dark"] {
  --bg: #0B0F1A;
  --surface: #131A29;
  --text: #E7E9EE;
  --text-2: #98A2B3;
  --border: #232B3D;
  --hairline: rgba(255, 255, 255, .07);

  --accent: #60A5FA;
  --accent-hover: #7DB6FB;
  --accent-tint: #152135;
  --accent-rgb: 96, 165, 250;
  --on-accent: #0B0F1A;

  --success: #4ADE80;
  --success-tint: #112A1E;
  --warning: #FBBF24;
  --warning-tint: #2A2110;
  --warning-text: #FBBF24;
  --error: #F87171;
  --error-tint: #2A1414;

  --neutral-tint: #1B2333;
  --neutral-text: #98A2B3;
  --neutral-border: #2E3750;
  --substitution: #A78BFA;
  --substitution-tint: #211A3D;

  --now-line: var(--accent);
  --now-glow: 0 0 10px 1px rgba(var(--accent-rgb), .55);

  --shadow-float: 0 16px 40px rgba(0, 0, 0, .55), 0 2px 10px rgba(0, 0, 0, .4);
}
