/* Шрифты (локально, latin + cyrillic) */
@font-face { font-family: "Fira Sans"; font-weight: 400; font-display: swap; src: url(../fonts/fira-sans-cyrillic-400-normal.woff2) format("woff2"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Fira Sans"; font-weight: 400; font-display: swap; src: url(../fonts/fira-sans-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
@font-face { font-family: "Fira Sans"; font-weight: 500; font-display: swap; src: url(../fonts/fira-sans-cyrillic-500-normal.woff2) format("woff2"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Fira Sans"; font-weight: 500; font-display: swap; src: url(../fonts/fira-sans-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+2000-206F,U+2212; }
@font-face { font-family: "Fira Sans"; font-weight: 600; font-display: swap; src: url(../fonts/fira-sans-cyrillic-600-normal.woff2) format("woff2"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Fira Sans"; font-weight: 600; font-display: swap; src: url(../fonts/fira-sans-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+2000-206F,U+2212; }
@font-face { font-family: "Fira Code"; font-weight: 400; font-display: swap; src: url(../fonts/fira-code-cyrillic-400-normal.woff2) format("woff2"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Fira Code"; font-weight: 400; font-display: swap; src: url(../fonts/fira-code-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+2000-206F,U+2212; }
@font-face { font-family: "Fira Code"; font-weight: 600; font-display: swap; src: url(../fonts/fira-code-cyrillic-600-normal.woff2) format("woff2"); unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116; }
@font-face { font-family: "Fira Code"; font-weight: 600; font-display: swap; src: url(../fonts/fira-code-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF,U+2000-206F,U+2212; }

:root {
  color-scheme: light;
  /* Основа — палитра «Industrial slate» */
  --bg: #F8FAFC;
  --surface: #FFFFFF;
  --surface-2: #F1F5F9;
  --border: #E2E8F0;
  --border-strong: #CBD5E1;
  --text: #0F172A;
  --text-2: #475569;
  --text-3: #64748B;            /* 4.76:1 на белом — минимум для подписей */
  --primary: #334155;
  --primary-hover: #1E293B;
  --on-primary: #FFFFFF;
  /* Фирменный акцент из логотипа */
  --brand: #BA4A37;             /* 5.3:1 на белом */
  --brand-soft: #FBEAE6;
  --brand-bright: #F06D50;      /* только мелкие элементы, не текст */
  /* Состояния */
  --ok: #047857;                /* «линия работает», текст 5.5:1 */
  --ok-bg: #ECFDF5;
  --ok-border: #A7F3D0;
  --down: #B91C1C;              /* «идёт простой» */
  --down-strong: #991B1B;
  --down-bg: #FEF2F2;
  --warn: #B45309;              /* текст предупреждения 5:1 */
  --warn-fill: #F59E0B;
  --warn-bg: #FFFBEB;
  --warn-border: #FCD34D;
  --pending: #475569;
  --pending-bg: #F1F5F9;
  --danger: #B91C1C;
  --focus: #BA4A37;

  --sans: "Fira Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono: "Fira Code", ui-monospace, "SF Mono", Menlo, monospace;

  --r-sm: 8px;
  --r-md: 12px;
  --r-lg: 16px;
  --shadow-1: 0 1px 2px rgb(15 23 42 / .06), 0 1px 3px rgb(15 23 42 / .08);
  --shadow-2: 0 10px 30px rgb(15 23 42 / .18);
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px; --sp-5: 24px; --sp-6: 32px;
  --tap: 48px;
  --tap-main: 64px;
  --header-h: 56px;
  --nav-h: 64px;
  --sidebar-w: 232px;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --dur: 160ms;
  --ease: cubic-bezier(.2, .8, .2, 1);

  /* Цвета причин для графиков: фиксированный порядок */
  /* палитра dataviz (проверена validate_palette.js: CVD ΔE ≥ 9.1, normal ≥ 19.6) */
  --c1: #2a78d6; --c2: #eb6834; --c3: #1baf7a; --c4: #eda100;
  --c5: #e87ba4; --c6: #008300; --c7: #4a3aa7; --c8: #e34948;
  /* последовательная шкала для тепловой карты (синий 100→700) */
  --s0: #F1F5F9; --s1: #cde2fb; --s2: #9ec5f4; --s3: #6da7ec; --s4: #3987e5; --s5: #256abf; --s6: #184f95; --s7: #0d366b;
}
@media (prefers-reduced-motion: reduce) { :root { --dur: 0ms; } }
