/* Красные места · стиль «Путеводитель» v1.1 (2026-11-10) — копия src/design/style/tokens.css,
   расширена для продукта: типографика (fs), spacing, z-index, shadow.lifted, radius.app-icon,
   цвета знака (mark.*), шкала данных гексов (--km-dataviz-*). Источник: src/design/style/tokens.json.
   Внедрение — ТЗ 09-Docs/design/PROMPT-design-handoff-coder-2026-11-10.md (v3, §4.1). */
:root{
  --km-bg: #F3F9FF;
  --km-surface: #FFFFFF;
  --km-text: #15324F;
  --km-text-muted: #4A6178;
  --km-accent: #C2281F;
  --km-accent-text: #FFFFFF;
  --km-tint: #FFECEA;
  --km-link: #1E5FA8;
  --km-star: #E8352B;
  --km-pal-cloud: #F4FBFF;
  --km-pal-hill: #3EBE7B;
  --km-pal-sky: #8ED8FF;
  --km-pal-red: #E8352B;
  --km-pal-sun: #FFD84D;
  --km-pal-trail: #FF9F5A;
  --km-font-heading: 'Manrope', 'Noto Sans SC', 'Microsoft YaHei', 'PingFang SC', sans-serif;
  --km-font-body: 'Golos Text', 'Noto Sans SC', 'Microsoft YaHei', 'PingFang SC', sans-serif;
  --km-radius-card: 20px; --km-radius-button: 12px; --km-radius-chip: 999px; --km-radius-app-icon: 26px;
  --km-shadow-card: 0 2px 10px rgba(30,60,120,.07);
  --km-shadow-lifted: 0 12px 28px rgba(30,60,120,.18);
  /* типографика (fs.scale, px) */
  --km-fs-h1: 40px; --km-fs-h2: 28px; --km-fs-h3: 20px; --km-fs-body: 16px; --km-fs-small: 13px; --km-fs-caption: 11.5px;
  /* spacing (fs space, px) */
  --km-space-1: 4px; --km-space-2: 8px; --km-space-3: 12px; --km-space-4: 16px; --km-space-6: 24px; --km-space-8: 32px; --km-space-12: 48px;
  /* z-index слоёв продукта */
  --km-z-map: 1; --km-z-panel: 1000; --km-z-loading: 2000; --km-z-toast: 3000;
  /* знак «Вершина холма» (color.mark.light) */
  --km-mark-star: #E8352B;
  --km-mark-star-edge: #C9221B;
  --km-mark-sky1: #BDE8FF; --km-mark-sky2: #F0FAFF; --km-mark-sun: #FFD84D;
  --km-mark-hill1: #8BE09A; --km-mark-hill2: #3EBE7B; --km-mark-line: #D2F7DA; --km-mark-shade: #2E9E64;
  --km-mark-pin: #FFFFFF; --km-mark-pin2: #E2FAEE; --km-mark-edge: #1E9C62;
  /* шкала данных гекс-слоёв (данные, не декор — перекраске по бренду не подлежит) */
  --km-dataviz-red-max: #b71c1c; --km-dataviz-red-mid: #d32f2f; --km-dataviz-red-min: #c62828;
  --km-dataviz-sci-max: #4a148c; --km-dataviz-sci-mid: #7b1fa2; --km-dataviz-sci-min: #f57c00;
  --km-dataviz-blue-1: #42a5f5; --km-dataviz-blue-2: #90caf9; --km-dataviz-blue-3: #1e88e5; --km-dataviz-blue-4: #2563eb;
  --km-dataviz-ink: #0f172a; --km-dataviz-ink-2: #333; --km-dataviz-ink-3: #555;
  --km-dataviz-line: #ccc; --km-dataviz-line-2: #ddd;
  --km-dataviz-bg-soft: #e3f2fd; --km-dataviz-bg-softer: #f0f0f0; --km-dataviz-bg-faint: #e0e0e0;
  --km-dataviz-muted: #8494a5; --km-dataviz-muted-2: #a8b3c0;
  --km-dataviz-red-0: #fff3e0; --km-dataviz-red-1: #ffcc80; --km-dataviz-red-2: #ff9800; --km-dataviz-red-3: #ffe0b2; --km-dataviz-red-4: #ffab91;
  --km-dataviz-sci-0: #e1bee7; --km-dataviz-sci-1: #b39ddb; --km-dataviz-sci-2: #ce93d8;
  /* синий контур репрессий (E18/E19): холодный сине-синий, специально не
     совпадает с sci-шкалой, у которой верх — фиолетовый */
  --km-dataviz-repress-0: #eaf3fb; --km-dataviz-repress-1: #c3ddf0; --km-dataviz-repress-2: #8fbde4;
  --km-dataviz-repress-3: #5b98cd; --km-dataviz-repress-mid: #2f6ba5; --km-dataviz-repress-max: #17406e;
  --km-dataviz-blue-5: #81d4fa; --km-dataviz-blue-6: #4fc3f7;
  /* Акцент АКТИВНОЙ кнопки контура = цвет этого контура (решение владельца
     Q1=V2, волна W8, находка BAG-26: синий слой подсвечивался брендовым
     красным и контрол противоречил карте). «Точки» контуром не являются,
     поэтому остаются на брендовом акценте. Тексты подобраны под контраст:
     светлая тема #FFFFFF на #d32f2f = 4.98, на #2f6ba5 = 5.57, на #7b1fa2 = 8.20.
     Режим «Точки» контуром не является — он держится на запасном значении
     базового правила (--km-accent / --km-accent-text) и токенов не требует. */
  --km-contour-red: var(--km-dataviz-red-mid); --km-contour-on-red: #FFFFFF;
  --km-contour-repress: var(--km-dataviz-repress-mid); --km-contour-on-repress: #FFFFFF;
  --km-contour-sci: var(--km-dataviz-sci-mid); --km-contour-on-sci: #FFFFFF;
  --km-secondary-text: var(--km-accent);
  /* тосты */
  --km-toast-bg: var(--km-text); --km-toast-text: var(--km-bg);
}
[data-theme="dark"]{
  --km-bg: #1E2D57;
  --km-surface: #283A6B;
  --km-text: #F5F8FF;
  --km-text-muted: #C3CDEA;
  --km-accent: #FF9A8F;
  --km-accent-text: #17324D;
  --km-tint: #33487F;
  --km-link: #9FD3FF;
  --km-shadow-card: 0 2px 10px rgba(0,0,0,.28);
  --km-shadow-lifted: 0 12px 28px rgba(0,0,0,.44);
  /* знак в тёмной теме (color.mark.dark) */
  --km-mark-sky1: #8C97EC; --km-mark-sky2: #FFC1A6; --km-mark-sun: #FFE07A;
  --km-mark-hill1: #86E3B4; --km-mark-hill2: #36B98A; --km-mark-line: #D2F9E6; --km-mark-shade: #2C9C78;
  --km-mark-pin: #FFFFFF; --km-mark-pin2: #E6FBF1; --km-mark-edge: #1E9C62;
  --km-toast-bg: #0E1B3D; --km-toast-text: #F5F8FF;
  --km-secondary-text: var(--km-text); /* FF9A8F на #33487F = 4.33 < 4.5 — берём текст темы */
  /* Контурные акценты в тёмной теме берут СВЕТЛУЮ ступень той же фамилии
     токенов: #d32f2f на поверхности #283A6B даёт 2.21:1, а нужно ≥3 (WCAG 1.4.11).
     Ступени red-2 / repress-2 / sci-0 дают с той же поверхностью 5.11 / 5.54 / 6.67:1,
     а с текстом бренда #17324D — 6.09 / 6.61 / 7.95:1. */
  --km-contour-red: var(--km-dataviz-red-2);
  --km-contour-repress: var(--km-dataviz-repress-2);
  --km-contour-sci: var(--km-dataviz-sci-0);
  --km-contour-on-red: var(--km-accent-text);
  --km-contour-on-repress: var(--km-accent-text);
  --km-contour-on-sci: var(--km-accent-text);
}
