/* ============================================================
   СПЕКТР — визуальный язык v1.0
   Акцент: чернильное индиго #2A3F73 (решение владельца 10.09.2026)
   Все цвета проверены: контраст WCAG, монотонность шкал,
   различимость при дальтонизме — прибором validate_palette.
   ============================================================

   ДВЕ ПОВЕРХНОСТИ, ОДИН АКЦЕНТ
   Интерфейс  — бот, сайт, кабинет: то, что листают и нажимают.
   Документ   — разбор, отчёт третьей стороне, страница метода:
                то, что читают целиком, печатают и пересылают.
                Включается атрибутом data-surface="document".

   ГЛАВНОЕ ПРАВИЛО ЦВЕТА
   Шкала плотности находок — ОДИН тон, светлее к темнее.
   Второго цвета в ней нет, потому что «плохо» сказать нечем:
   прибор отвечает на «что здесь есть», а не «хорошо ли это».
   Зелёный и красный означают только состояние системы
   (гейт прошёл или нет, платёж прошёл или нет) и никогда —
   оценку вещи.
   ============================================================ */

:root{
  /* — поверхность: интерфейс, светлая — */
  --sp-ground:      #F3EEE3;   /* бумага, решение владельца 15.09 (ред. 4) */
  --sp-surface:     #FFFFFF;
  --sp-surface-2:   #EDF0F1;
  --sp-ink:         #1C1F26;   /* 16.8:1 к ground */
  --sp-ink-2:       #3C464E;
  --sp-ink-3:       #5D6771;   /* 5.4:1 — служебное, но читаемое */
  --sp-rule:        #DFE4E7;
  --sp-rule-soft:   #EAEDEF;

  /* — акцент — */
  --sp-accent:      #2A3F73;   /* 9.6:1 к ground */
  --sp-accent-hi:   #3A5495;   /* наведение */
  --sp-accent-soft: #EBEEF6;   /* подложка выделения */
  --sp-accent-on:   #FFFFFF;   /* текст на акцентной заливке, 10.2:1 */

  /* — шкала плотности находок: 5 ступеней одного тона —
       «не смотрел» цветом НЕ обозначается: пустая клетка с контуром */
  --sp-d-0:         transparent;
  --sp-d-0-border:  #C9D0D5;
  --sp-d-1:         #C6CDE3;
  --sp-d-2:         #9DA8CC;
  --sp-d-3:         #7181B0;
  --sp-d-4:         #485991;
  --sp-d-5:         #2A3F73;
  --sp-d-text-lo:   #12181D;   /* текст на ступенях 1–3 */
  --sp-d-text-hi:   #FFFFFF;   /* текст на ступенях 4–5 */

  /* — состояние системы. Только гейты, платежи, доступность.
       Цвет здесь никогда не работает один: рядом обязательны
       точка и слово. Различие зелёного и янтарного при
       протанопии ΔE 6,1 — у нижней границы. — */
  --sp-ok:          #2F7D4F;
  --sp-warn:        #A97400;
  --sp-stop:        #A32B3D;
  --sp-ok-soft:     #E8F2EC;
  --sp-warn-soft:   #F6EFDE;
  --sp-stop-soft:   #F7E9EB;

  /* — типографика — */
  --sp-font-ui:     "IBM Plex Sans","Golos Text","Segoe UI",system-ui,sans-serif;
  --sp-font-doc:    Literata,"PT Serif",Georgia,serif;
  --sp-font-mono:   "IBM Plex Mono",ui-monospace,Menlo,monospace;

  --sp-size-xs:     11.5px;   /* служебные пометы: масштаб, язык, грейд */
  --sp-size-sm:     13.5px;
  --sp-size-base:   15.5px;
  --sp-size-lg:     18px;
  --sp-size-h3:     21px;
  --sp-size-h2:     26px;
  --sp-size-h1:     34px;
  --sp-lh-text:     1.6;
  --sp-lh-head:     1.18;

  /* — форма — */
  --sp-radius:      3px;       /* прибор, не карточка маркетплейса */
  --sp-radius-pill: 100px;
  --sp-gap:         16px;
  --sp-measure:     68ch;      /* ширина колонки чтения */

  /* — медь: только цитата-улика и её адрес, больше нигде.
       В интерфейсе не используется, но объявлена здесь,
       чтобы токен существовал на всех поверхностях. — */
  --sp-cite:        #8A5A2B;
  --sp-cite-soft:   #FBF8F2;
}

/* — поверхность: документ, светлая (бумага и чернила) — */
[data-surface="document"]{
  --sp-ground:      #F3EEE3;
  --sp-surface:     #FFFFFF;
  --sp-surface-2:   #EFEEEA;
  --sp-ink:         #1C1F26;
  --sp-ink-2:       #4A4E56;
  --sp-ink-3:       #71757C;
  --sp-rule:        #DEDBD4;
  --sp-rule-soft:   #E9E7E1;
  --sp-accent-soft: #ECEEF5;

  --sp-d-0-border:  #D3CFC7;
  --sp-d-1:         #CBCDDE;
  --sp-d-2:         #A3A9C8;
  --sp-d-3:         #7681AE;
  --sp-d-4:         #4B5B90;
  --sp-d-5:         #2A3F73;

  /* медь — только цитата-улика и её адрес. Больше нигде. */
  --sp-cite:        #8A5A2B;   /* 5.2:1 к бумаге */
  --sp-cite-soft:   #FBF8F2;
}

/* — тёмная тема: системная — */
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --sp-ground:      #10141B;
    --sp-surface:     #171C25;
    --sp-surface-2:   #1E2530;
    --sp-ink:         #E7ECF2;
    --sp-ink-2:       #B4BDC8;
    --sp-ink-3:       #8B95A2;
    --sp-rule:        #252C37;
    --sp-rule-soft:   #1C222B;

    --sp-accent:      #8FA8E8;   /* 7.9:1 к ground */
    --sp-accent-hi:   #A8BCF0;
    --sp-accent-soft: #1A2133;
    --sp-accent-on:   #0B0F16;

    --sp-d-0-border:  #2C343F;
    --sp-d-1:         #2F3A57;
    --sp-d-2:         #3F4E75;
    --sp-d-3:         #556699;
    --sp-d-4:         #7285C4;
    --sp-d-5:         #8FA8E8;
    --sp-d-text-lo:   #E7ECF2;
    --sp-d-text-hi:   #0B0F16;

    --sp-ok:          #5FB183;
    --sp-warn:        #D2A03A;
    --sp-stop:        #DE7A88;
    --sp-ok-soft:     #14251C;
    --sp-warn-soft:   #241D0C;
    --sp-stop-soft:   #261418;

    --sp-cite:        #C9925A;
    --sp-cite-soft:   #1D1912;
  }
}

/* — тёмная тема: выбранная переключателем — */
:root[data-theme="dark"]{
  --sp-ground:      #10141B;
  --sp-surface:     #171C25;
  --sp-surface-2:   #1E2530;
  --sp-ink:         #E7ECF2;
  --sp-ink-2:       #B4BDC8;
  --sp-ink-3:       #8B95A2;
  --sp-rule:        #252C37;
  --sp-rule-soft:   #1C222B;

  --sp-accent:      #8FA8E8;
  --sp-accent-hi:   #A8BCF0;
  --sp-accent-soft: #1A2133;
  --sp-accent-on:   #0B0F16;

  --sp-d-0-border:  #2C343F;
  --sp-d-1:         #2F3A57;
  --sp-d-2:         #3F4E75;
  --sp-d-3:         #556699;
  --sp-d-4:         #7285C4;
  --sp-d-5:         #8FA8E8;
  --sp-d-text-lo:   #E7ECF2;
  --sp-d-text-hi:   #0B0F16;

  --sp-ok:          #5FB183;
  --sp-warn:        #D2A03A;
  --sp-stop:        #DE7A88;
  --sp-ok-soft:     #14251C;
  --sp-warn-soft:   #241D0C;
  --sp-stop-soft:   #261418;

  --sp-cite:        #C9925A;
  --sp-cite-soft:   #1D1912;
}

/* ============================================================
   ЧЕГО В ЭТОЙ СИСТЕМЕ НЕТ И НЕ ДОЛЖНО ПОЯВИТЬСЯ

   1. Балла, звёзд, процента качества, места в списке.
      Согласие людей об оценке измерено и оно низкое даже
      у экспертов. Одно число поверх такого разброса прячет
      разногласие вместо того, чтобы его показать.

   2. Радуги внутри данных. Спектр — метафора опознания:
      логотип, обложка отчёта. В таблицах и картах — один тон
      на шкалу, иначе шкала перестаёт читаться как порядок.

   3. Индиго как метки на графике. Акцент слишком тёмен и
      малонасыщен для категориальной метки — он проходит как
      текст и заливка, но не как точка в легенде. Для данных
      есть шкала плотности; для состояний — статусный набор.

   4. Зелёного и красного на клетках разбора. Только гейты.
   ============================================================ */
