/* ═══════════════════════════════════════════════════════════════════════════
   НЕО — Design tokens
   Единственный источник правды для цвета, шрифта, отступов, радиусов и слоёв.
   Ничего, кроме custom properties и @font-face-независимых констант.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {
    /* ── Графит. Одно семейство, холодный подтон. ──────────────────────── */
    --g-1000: #08090b;
    --g-950:  #0b0c0f;   /* фон страницы */
    --g-900:  #101216;
    --g-850:  #14171c;   /* поверхность 1 */
    --g-800:  #191d23;   /* поверхность 2 */
    --g-750:  #1f242b;   /* поверхность 3 / hover */
    --g-700:  #272d35;
    --g-600:  #353c46;
    --g-500:  #495160;
    --g-400:  #7a8492;   /* контраст 5.16:1 на фоне — порог WCAG AA для мелкого текста */
    --g-300:  #8b939f;
    --g-200:  #b4bac3;
    --g-100:  #d7dade;
    --g-50:   #e9ebee;

    /* ── Семантические роли поверхностей ──────────────────────────────── */
    --bg:            var(--g-950);
    --bg-sunken:     var(--g-1000);
    --surface:       var(--g-850);
    --surface-2:     var(--g-800);
    --surface-hover: var(--g-750);

    --border:        rgba(255, 255, 255, 0.07);
    --border-strong: rgba(255, 255, 255, 0.12);
    --border-focus:  var(--accent);

    /* ── Текст ────────────────────────────────────────────────────────── */
    --text:        #e8eaed;   /* не чистый белый — меньше режет глаз */
    --text-strong: #f6f7f8;
    --text-muted:  var(--g-300);
    --text-faint:  var(--g-400);

    /* ── Единственный акцент. Приглушён: hsl(212 68% 59%). ─────────────── */
    --accent:        #4d8ee0;
    --accent-hi:     #6ea3e7;
    --accent-lo:     #3a6fb5;
    --accent-weak:   rgba(77, 142, 224, 0.12);
    --accent-line:   rgba(77, 142, 224, 0.32);
    --accent-text:   #9dc0ee;

    /* ── Статусы. Той же приглушённости, что и акцент. ─────────────────── */
    --ok:      #4f9469;
    --ok-weak: rgba(79, 148, 105, 0.12);
    --ok-text: #86c79c;

    --warn:      #bf8b41;
    --warn-weak: rgba(191, 139, 65, 0.12);
    --warn-text: #dcae6d;

    --danger:      #c05b52;
    --danger-weak: rgba(192, 91, 82, 0.12);
    --danger-text: #e0908a;

    /* ── Оттенок категории. Переопределяется на [data-section]. ─────────
       Используется точечно: рельс у заголовка, активный пункт навигации,
       акцент в статистике. Не заливает интерфейс. */
    --cat:      var(--accent);
    --cat-weak: var(--accent-weak);
    --cat-line: var(--accent-line);
    --cat-text: var(--accent-text);

    /* ── Типографика ──────────────────────────────────────────────────── */
    --font-sans: 'Geist', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-mono: 'Geist Mono', ui-monospace, 'SF Mono', Menlo, monospace;

    /* Шкала на модульном отношении ~1.2, с clamp для крупных ступеней. */
    --t-2xs: 0.6875rem;   /* 11px — мелкие капсы */
    --t-xs:  0.75rem;     /* 12px — метки */
    --t-sm:  0.8125rem;   /* 13px — вторичный текст */
    --t-base:0.9375rem;   /* 15px — основной */
    --t-md:  1.0625rem;   /* 17px */
    --t-lg:  clamp(1.125rem, 0.9rem + 0.9vw, 1.375rem);
    --t-xl:  clamp(1.375rem, 1.05rem + 1.4vw, 1.875rem);
    --t-2xl: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem);
    --t-3xl: clamp(2.125rem, 1.35rem + 3.4vw, 3.5rem);

    --lh-tight:  1.15;
    --lh-snug:   1.35;
    --lh-normal: 1.55;
    --lh-relaxed:1.7;

    /* Отрицательный трекинг на крупном, положительный на капсах. */
    --tr-tight:  -0.022em;
    --tr-snug:   -0.012em;
    --tr-normal: 0;
    --tr-wide:   0.06em;
    --tr-caps:   0.09em;

    /* ── Отступы. База 4px. ───────────────────────────────────────────── */
    --s-1:  4px;
    --s-2:  8px;
    --s-3:  12px;
    --s-4:  16px;
    --s-5:  20px;
    --s-6:  24px;
    --s-8:  32px;
    --s-10: 40px;
    --s-12: 48px;
    --s-16: 64px;
    --s-20: 80px;
    --s-24: 96px;

    /* ── Раскладка ────────────────────────────────────────────────────── */
    --container:      1240px;
    --container-wide: 1440px;
    --container-text: 68ch;      /* предел читаемой строки */
    --gutter:         clamp(16px, 4vw, 40px);
    --header-h:       64px;
    --dock-h:         68px;

    /* ── Радиусы. Внутреннее — туже, контейнер — мягче. ────────────────── */
    --r-xs:   4px;
    --r-sm:   6px;
    --r-md:   10px;
    --r-lg:   14px;
    --r-xl:   20px;
    --r-full: 999px;

    /* ── Тени. Тонированы графитом, свет сверху. ──────────────────────── */
    --sh-1: 0 1px 2px rgba(6, 8, 12, 0.4);
    --sh-2: 0 2px 8px rgba(6, 8, 12, 0.45);
    --sh-3: 0 8px 24px -6px rgba(6, 8, 12, 0.6);
    --sh-4: 0 20px 48px -12px rgba(6, 8, 12, 0.7);
    --sh-inset: inset 0 1px 0 rgba(255, 255, 255, 0.04);

    /* ── Слои ─────────────────────────────────────────────────────────── */
    --z-base:    0;
    --z-raised:  10;
    --z-sticky:  100;
    --z-dock:    200;
    --z-dropdown:300;
    --z-panel:   400;
    --z-overlay: 500;
    --z-toast:   600;

    /* ── Движение ─────────────────────────────────────────────────────── */
    --e-out:    cubic-bezier(0.22, 1, 0.36, 1);
    --e-inout:  cubic-bezier(0.65, 0, 0.35, 1);
    --e-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
    --d-fast:   120ms;
    --d-base:   200ms;
    --d-slow:   320ms;
}

/* ═══════════════════════════════════════════════════════════════════════
   Оттенки категорий.
   Каждый раздел получает служебный тон — по нему видно, где ты находишься.
   Насыщенность держим низкой: это подпись, а не заливка.
   ═══════════════════════════════════════════════════════════════════════ */

/* База — контакты, компании, реестр */
[data-section='base'] {
    --cat:      var(--accent);
    --cat-weak: var(--accent-weak);
    --cat-line: var(--accent-line);
    --cat-text: var(--accent-text);
}

/* Разведка — аналитика, новости, отрасли, проблемы */
[data-section='intel'] {
    --cat:      #3f9c8d;
    --cat-weak: rgba(63, 156, 141, 0.12);
    --cat-line: rgba(63, 156, 141, 0.32);
    --cat-text: #7fc7ba;
}

/* Маркетинг — стратегия, лиды, брендбук */
[data-section='marketing'] {
    --cat:      #bf8b41;
    --cat-weak: rgba(191, 139, 65, 0.12);
    --cat-line: rgba(191, 139, 65, 0.32);
    --cat-text: #dcae6d;
}

/* Финансы — бюджет */
[data-section='finance'] {
    --cat:      #4f9469;
    --cat-weak: rgba(79, 148, 105, 0.12);
    --cat-line: rgba(79, 148, 105, 0.32);
    --cat-text: #86c79c;
}

/* Поездки */
[data-section='ops'] {
    --cat:      #7c8798;
    --cat-weak: rgba(124, 135, 152, 0.12);
    --cat-line: rgba(124, 135, 152, 0.32);
    --cat-text: #aab2be;
}

/* ═══════════════════════════════════════════════════════════════════════
   Совместимость. Старые имена из V6 всё ещё встречаются в dashboard.css и
   в разметке, которую строит dashboard.js. Держим как псевдонимы, чтобы не
   переписывать всё разом; новый код их не использует.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
    --bg-color:      var(--bg);
    --surface-color: var(--surface);
    --text-main:     var(--text);
    --accent-blue:   var(--accent);
    --radius-md:     var(--r-md);
    --radius-lg:     var(--r-lg);
}

/* ═══════════════════════════════════════════════════════════════════════
   Данные для графиков. Порядок = порядок выдачи.
   Один тон, шаг по светлоте — читается как шкала, а не как радуга.
   ═══════════════════════════════════════════════════════════════════════ */
:root {
    --dv-1: #4d8ee0;
    --dv-2: #4f9fc9;
    --dv-3: #4fa9ae;
    --dv-4: #57ab90;
    --dv-5: #6bab76;
    --dv-6: #8fa966;
    --dv-7: #b3a25e;
    --dv-8: #c78f5c;
    --dv-9: #c5745f;
    --dv-10:#b06068;
}
