/* ============================================================
   PrintCRM — Design Tokens (tokens.css)
   ЕДИНСТВЕННЫЙ источник цветов, геометрии, теней и движения.
   Порядок подключения в base.html: tokens → base → layout →
   components → semantics → motion → dark (последним).

   Бренд: индиго (#4f46e5). Семантика статусов привязана к токенам
   --c-success/--c-warning/--c-danger/--c-info — НЕ менять цвета
   в шаблонах, только эти переменные.

   Bootstrap 5.3 переопределяется через его собственные CSS-переменные
   (--bs-rgb, --bs-text-emphasis, --bs-bg-subtle и т.д.), поэтому
   утилиты bg-, text-, progress-bar, badge автоматически становятся
   фирменными и в светлой, и в тёмной теме.
   ============================================================ */

:root {
    /* Нативные элементы (иконка календаря, скроллбары, автозаполнение)
       следуют теме — иначе в тёмной теме они остаются светлыми */
    color-scheme: light;

    /* ---------- Бренд (индиго) ---------- */
    --c-primary: #4f46e5;
    --c-primary-hover: #4338ca;
    --c-primary-active: #3730a3;
    --c-primary-soft: #eef2ff;                 /* подложка акцента (светлая) */
    --c-primary-ring: rgba(79, 70, 229, 0.35);
    --c-primary-2: #6366f1;                    /* индиго-500 (градиенты, графики) */
    --c-primary-grad-end: #8b5cf6;             /* финал градиента логотипа */

    /* Текст и иконки НА акцентной заливке (кнопки, активные страницы,
       пузыри чата). В светлой теме заливки тёмные → белый текст;
       в тёмной теме заливки пастельно-яркие → тёмные «чернила». */
    --c-on-accent: #ffffff;

    /* ---------- Нейтрали (светлая тема) ---------- */
    --c-bg: #f6f7f9;
    --c-surface: #ffffff;
    --c-surface-2: #f1f3f5;
    --c-border: #e6e8eb;
    --c-border-strong: #d5d9de;
    --c-text: #1a1f2b;
    --c-text-muted: #6b7280;
    --c-text-soft: #9aa1ab;

    /* ---------- Семантика: основной цвет + мягкая подложка + текст на ней ---------- */
    --c-success: #16a34a;
    --c-success-text: #166534;
    --c-success-soft: rgba(22, 163, 74, 0.12);

    --c-warning: #d97706;
    --c-warning-text: #92400e;
    --c-warning-soft: rgba(217, 119, 6, 0.14);

    --c-danger: #dc2626;
    --c-danger-text: #991b1b;
    --c-danger-soft: rgba(220, 38, 38, 0.12);

    --c-info: #0284c7;
    --c-info-text: #075985;
    --c-info-soft: rgba(2, 132, 199, 0.12);

    --c-secondary: #64748b;
    --c-secondary-text: #475569;
    --c-secondary-soft: rgba(100, 116, 139, 0.14);

    /* ---------- Сайдбар ---------- */
    --c-sidebar: #0f172a;
    --c-sidebar-hover: rgba(255, 255, 255, 0.06);
    --c-sidebar-active: rgba(99, 102, 241, 0.16);
    --c-sidebar-text: #94a3b8;
    --c-sidebar-text-hover: #e2e8f0;

    /* ---------- Геометрия ---------- */
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-pill: 999px;
    --sidebar-w: 248px;

    /* ---------- Тени ---------- */
    --shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.05);
    --shadow-md: 0 4px 12px rgba(16, 24, 40, 0.08);
    --shadow-lg: 0 12px 32px rgba(16, 24, 40, 0.12);

    /* ---------- Типографика ---------- */
    --font-ui: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, sans-serif;
    --font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;

    /* ---------- Движение (единые длительности и кривая) ---------- */
    --dur-fast: 0.15s;
    --dur-base: 0.2s;
    --dur-slow: 0.3s;
    --ease-out: cubic-bezier(0.2, 0, 0, 1);

    /* ============================================================
       Bootstrap 5.3 → фирменная палитра (светлая тема)
       ============================================================ */
    /* ВАЖНО: тройки для rgba() — через ЗАПЯТЫЕ. Bootstrap подставляет их
       внутрь rgba(var(--bs-xxx-rgb), α); пробелы делают значение
       невалидным, и браузер молча выбрасывает объявление (фон пропадает). */
    --bs-primary: #4f46e5;           --bs-primary-rgb: 79, 70, 229;
    --bs-success: #16a34a;           --bs-success-rgb: 22, 163, 74;
    --bs-danger: #dc2626;            --bs-danger-rgb: 220, 38, 38;
    --bs-warning: #d97706;           --bs-warning-rgb: 217, 119, 6;
    --bs-info: #0284c7;              --bs-info-rgb: 2, 132, 199;
    --bs-secondary: #64748b;         --bs-secondary-rgb: 100, 116, 139;
    --bs-light: #f1f3f5;             --bs-light-rgb: 241, 243, 245;
    --bs-dark: #1a1f2b;              --bs-dark-rgb: 26, 31, 43;

    --bs-primary-text-emphasis: #3730a3;
    --bs-success-text-emphasis: #166534;
    --bs-danger-text-emphasis: #991b1b;
    --bs-warning-text-emphasis: #92400e;
    --bs-info-text-emphasis: #075985;
    --bs-secondary-text-emphasis: #475569;
    --bs-light-text-emphasis: #6b7280;
    --bs-dark-text-emphasis: #d8dee8;

    --bs-primary-bg-subtle: #e0e7ff;
    --bs-success-bg-subtle: #dcfce7;
    --bs-danger-bg-subtle: #fee2e2;
    --bs-warning-bg-subtle: #fef3c7;
    --bs-info-bg-subtle: #cffafe;
    --bs-secondary-bg-subtle: #eef0f4;
    --bs-light-bg-subtle: #f6f7f9;

    --bs-primary-border-subtle: #c7d2fe;
    --bs-success-border-subtle: #bbf7d0;
    --bs-danger-border-subtle: #fecaca;
    --bs-warning-border-subtle: #fde68a;
    --bs-info-border-subtle: #a5f3fc;
    --bs-secondary-border-subtle: #dde1e7;

    /* muted/tertiary текст Bootstrap → токены нейтралей */
    --bs-secondary-color: #6b7280;
    --bs-secondary-color-rgb: 107, 114, 128;
    --bs-tertiary-color: #9aa1ab;
    --bs-tertiary-color-rgb: 154, 161, 171;
    --bs-border-color: #e6e8eb;

    /* ============================================================
       Bootstrap 5.3 → токены темы (поверхности и служебные цвета).
       Компоненты Bootstrap читают СВОИ переменные (--bs-body-bg,
       --bs-progress-bg, --bs-form-check-bg …) с жёсткими светлыми
       значениями. Привязываем их к нашим токенам: тогда один и тот
       же CSS работает в обеих темах, без правил на каждый класс.
       Проверять после правок: _analysis/_dark_theme_audit.py
       ============================================================ */
    --bs-body-bg: var(--c-surface);
    --bs-body-color: var(--c-text);
    --bs-emphasis-color: var(--c-text);
    --bs-secondary-bg: var(--c-surface-2);
    --bs-tertiary-bg: var(--c-surface-2);
    --bs-border-color-translucent: var(--c-border);

    /* Ссылки, навигация, код, активные пункты — фирменный индиго
       вместо дефолтного синего Bootstrap (#0d6efd) */
    --bs-link-color: var(--c-primary);
    --bs-link-hover-color: var(--c-primary-hover);
    --bs-code-color: var(--c-danger);
    --bs-list-group-active-bg: var(--c-primary);
    --bs-list-group-active-border-color: var(--c-primary);
    --bs-list-group-active-color: var(--c-on-accent);

    /* Прогресс: дорожка — второй уровень поверхности */
    --bs-progress-bg: var(--c-surface-2);
}

/* ============================================================
   Тёмная тема: переопределяем токены (переменные переживают все
   файлы — компоненты не нужно дублировать).
   ============================================================ */
html[data-theme="dark"] {
    color-scheme: dark;

    /* Иерархия: фон темнее поверхности, surface-2 светлее поверхности */
    --c-bg: #0a0e15;
    --c-surface: #141a24;
    --c-surface-2: #1e2634;
    --c-border: #263041;
    --c-border-strong: #334058;
    --c-text: #d8dee8;
    --c-text-muted: #93a0b1;
    --c-text-soft: #6d7a8d;

    --c-primary: #818cf8;
    --c-primary-hover: #a5b4fc;
    --c-primary-active: #6366f1;
    --c-primary-soft: rgba(99, 102, 241, 0.18);
    --c-primary-ring: rgba(129, 140, 248, 0.35);

    /* Заливки в тёмной теме светлые → текст на них тёмный */
    --c-on-accent: #0a0e15;

    --c-success: #4ade80;        --c-success-text: #86efac;   --c-success-soft: rgba(34, 197, 94, 0.16);
    --c-warning: #fbbf24;        --c-warning-text: #fcd34d;   --c-warning-soft: rgba(251, 191, 36, 0.14);
    --c-danger: #f87171;         --c-danger-text: #fca5a5;    --c-danger-soft: rgba(248, 113, 113, 0.16);
    --c-info: #38bdf8;           --c-info-text: #7dd3fc;      --c-info-soft: rgba(56, 189, 248, 0.16);

    --c-secondary: #64748b;
    --c-secondary-text: #cbd5e1;
    --c-secondary-soft: rgba(148, 163, 184, 0.16);

    /* Тени в тёмной теме почти не работают — заменяем на границы */
    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: none;

    /* Bootstrap → приглушённые «тёмные» значения (тройки — через запятые) */
    --bs-primary: #818cf8;       --bs-primary-rgb: 129, 140, 248;
    --bs-success: #4ade80;       --bs-success-rgb: 74, 222, 128;
    --bs-danger: #f87171;        --bs-danger-rgb: 248, 113, 113;
    --bs-warning: #fbbf24;       --bs-warning-rgb: 251, 191, 36;
    --bs-info: #38bdf8;          --bs-info-rgb: 56, 189, 248;
    --bs-secondary: #94a3b8;     --bs-secondary-rgb: 148, 163, 184;
    --bs-light: #1e2634;         --bs-light-rgb: 30, 38, 52;
    --bs-dark: #0a0e15;          --bs-dark-rgb: 10, 14, 21;

    /* Тройки для rgba() там, где нужен компонент RGB, а не токен:
       «белый» в тёмной теме — это поверхность (см. dark.css .bg-white),
       «цвет текста» — светлые чернила темы. */
    --bs-body-bg-rgb: 20, 26, 36;
    --bs-body-color-rgb: 216, 222, 232;
    --bs-emphasis-color-rgb: 216, 222, 232;
    --bs-secondary-bg-rgb: 30, 38, 52;
    --bs-white-rgb: 20, 26, 36;

    --bs-primary-text-emphasis: #c7d2fe;
    --bs-success-text-emphasis: #86efac;
    --bs-danger-text-emphasis: #fca5a5;
    --bs-warning-text-emphasis: #fcd34d;
    --bs-info-text-emphasis: #7dd3fc;
    --bs-secondary-text-emphasis: #cbd5e1;
    --bs-light-text-emphasis: #93a0b1;
    --bs-dark-text-emphasis: #d8dee8;

    --bs-primary-bg-subtle: rgba(79, 70, 229, 0.22);
    --bs-success-bg-subtle: rgba(22, 163, 74, 0.2);
    --bs-danger-bg-subtle: rgba(220, 38, 38, 0.2);
    --bs-warning-bg-subtle: rgba(217, 119, 6, 0.2);
    --bs-info-bg-subtle: rgba(2, 132, 199, 0.2);
    --bs-secondary-bg-subtle: rgba(100, 116, 139, 0.25);
    --bs-light-bg-subtle: #1e2634;

    --bs-primary-border-subtle: rgba(129, 140, 248, 0.4);
    --bs-success-border-subtle: rgba(74, 222, 128, 0.3);
    --bs-danger-border-subtle: rgba(248, 113, 113, 0.3);
    --bs-warning-border-subtle: rgba(251, 191, 36, 0.3);
    --bs-info-border-subtle: rgba(56, 189, 248, 0.3);
    --bs-secondary-border-subtle: rgba(148, 163, 184, 0.3);

    /* muted/tertiary текст Bootstrap → токены нейтралей */
    --bs-secondary-color: #93a0b1;
    --bs-secondary-color-rgb: 147, 160, 177;
    --bs-tertiary-color: #6d7a8d;
    --bs-tertiary-color-rgb: 109, 122, 141;
    --bs-border-color: #263041;
}
