/* ══════════════════════════════════════════════════════════
   DESIGN TOKENS — semantic colour & sizing system
   ══════════════════════════════════════════════════════════
   Single source of truth for visual primitives. Module-level
   CSS files (estimates.css, catalog_sidebar.css, base.css)
   reference these tokens via var(--token-name).

   Theme overrides: a body[data-theme="X"] selector can later
   re-bind these vars to switch themes without touching the
   modules that consume them.
   ══════════════════════════════════════════════════════════ */
:root {
    /* === SURFACES (фоны) === */
    --bg-page: #f8fafc;            /* основной фон страницы */
    --bg-card: #ffffff;            /* фон карточек, таблиц, панелей */
    --bg-subtle: #f1f5f9;          /* лёгкий tint (hover, sub-headers) */
    --bg-elevated: #ffffff;        /* всплывающие блоки (popups, dropdowns) */
    --bg-tinted-blue: #eff6ff;     /* акцентный фон (selected category, info) */
    --bg-tinted-warning: #fef3c7;  /* hover на editable, warning highlights */
    --bg-tinted-success: #dcfce7;  /* success-tinted backgrounds */
    --bg-tinted-danger: #fef2f2;   /* danger-tinted backgrounds */

    /* === BORDERS === */
    --border-strong: #cbd5e1;      /* акцентные/hover границы */
    --border-default: #e2e8f0;     /* обычные границы */
    --border-subtle: #f1f5f9;      /* очень лёгкие разделители */

    /* === TEXT === */
    --text-primary: #334155;       /* основной текст */
    --text-secondary: #64748b;     /* ослабленный (muted) */
    --text-tertiary: #94a3b8;      /* третичный (light) */
    --text-inverse: #ffffff;       /* на тёмном фоне */
    --text-link: #2563eb;          /* ссылки */

    /* === ACCENT (primary brand) === */
    --accent-primary: #2563eb;
    --accent-primary-hover: #1d4ed8;
    --accent-primary-soft: #eff6ff;        /* blue-50, very light tint */
    --accent-primary-soft-strong: #dbeafe; /* blue-100, stronger tint */
    --accent-primary-border: #93c5fd;      /* blue-300, for tinted borders */
    --accent-primary-text: #ffffff;

    /* === STATUS === */
    --status-success: #22c55e;
    --status-success-soft: #dcfce7;
    --status-success-text: #166534;
    --status-warning: #eab308;
    --status-warning-soft: #fef9c3;
    --status-warning-text: #d97706;
    --status-danger: #ef4444;
    --status-danger-soft: #fef2f2;
    --status-danger-text: #dc2626;
    --status-info: #0ea5e9;
    --status-info-soft: #f0f9ff;
    --status-info-text: #0284c7;

    /* === ROLES (бейджи групп оборудования) === */
    --role-sound: #2563eb;         /* звук */
    --role-light: #eab308;         /* свет */
    --role-video: #7c3aed;         /* видео */
    --role-stage: #f97316;         /* сцена */
    --role-rigging: #475569;       /* такелаж */
    --role-logistics: #0ea5e9;     /* логистика */
    --role-consumables: #94a3b8;   /* расходники */
    --role-subrent: #d97706;       /* субаренда */

    /* === LOGISTICS (модуль «Рейсы», Task C2) === */
    --logi-hoz-bg: #fce7f3;        /* хоз. рейс (без проекта) — фон блока */
    --logi-hoz-border: #ec4899;    /* хоз. рейс — граница/свотч */
    --logi-hoz-text: #9d174f;      /* хоз. рейс — текст (недоступен цвету свотча) */

    /* === TEXT EXTENSIONS (адопция тёмной темы, спека 2026-07-17) === */
    --text-strong: #1f2937;        /* усиленный текст (лейблы) */
    --text-emphasis: #111827;      /* максимально тёмный текст (заголовки строк) */
    --text-ink: #212529;           /* легаси BS5 body-text */
    --gray-text-strong: #495057;   /* легаси BS5 text-700 */
    --gray-text-mid: #6c757d;      /* легаси BS5 secondary */
    --gray-text-soft: #adb5bd;     /* легаси BS5 muted */
    --gray-bg-soft: #e9ecef;       /* легаси BS5 светло-серый фон */

    /* === STATUS EXTENSIONS === */
    --status-success-strong: #16a34a;        /* green-600 текст/иконки «ок» */
    --status-success-strong-hover: #15803d;
    --success-deep-text: #059669;            /* emerald-600 текст */
    --success-deep-text-hover: #047857;
    --accent-text-deep: #1e40af;             /* blue-800 текст на голубой подложке */
    --warning-bg-softest: #fffbeb;           /* amber-50 hover */
    --warning-text-deep: #b45309;            /* amber-700 */
    --chip-warning-text: #854d0e;            /* текст чипа на --status-warning-soft */
    --chip-danger-text: #991b1b;             /* текст чипа на --bg-tinted-danger */
    --chip-danger-bg: #fee2e2;
    --chip-danger-border: #fecaca;
    --chip-neutral-bg: #e5e7eb;
    --chip-neutral-text: #374151;
    --info-chip-bg: #e0f2fe;                 /* sky-100 бейдж поставщика */
    --info-chip-text: #0369a1;               /* sky-700 */

    /* === SPARE (внутренний запас — тёплый оранжевый) === */
    --spare-accent: #ea580c;
    --spare-border-soft: #fed7aa;

    /* === TRANSFER (трансферы — циан) === */
    --transfer-accent: #0c8599;
    --transfer-border-soft: #99e9f2;
    --transfer-bg-soft: #c5f6fa;

    /* === COMPONENT TINTS (лёгкие подложки строк/панелей сметы) === */
    --rack-child-bg: #f0fff0;                /* строки состава река */
    --folder-row-bg: #e8f5e9;                /* строка папки display-group */
    --subrent-block-bg: #fafbfc;             /* блок субаренды под позицией */
    --subrent-toggle-active-bg: #eef2ff;     /* активный суб-тогл */
    --combo-soft-bg: #f5f3ff;                /* violet-50 панель комбо */
    --combo-soft-bg-2: #faf8ff;
    --combo-soft-bg-hover: #ede9fe;          /* violet-100 hover */
    --combo-soft-border: #ddd6fe;            /* violet-200 */
    --accent-selected-hover: #bfdbfe;        /* blue-200 hover выделенной строки */
    --input-border-soft: #d1d5db;            /* gray-300 бордер мелких инпутов */
    --text-caps: #475569;                    /* uppercase-заголовки групп */
    --text-title: #0f172a;                   /* заголовки панелей (slate-900) */
    --text-heading: #1e293b;                 /* заголовки строк/уведомлений (slate-800) */
    --text-gray-500: #6b7280;                /* легаси gray-500 muted-текст */

    /* === ACCENT EXTENSIONS (легаси-оттенки синего в шаблонах) === */
    --accent-bright: #3b82f6;                /* blue-500 текст/бордеры */
    --accent-deep: #1565c0;                  /* material blue-800 (календарь персонала) */
    --bs-accent: #0d6efd;                    /* легаси Bootstrap primary */
    --warning-bright: #f59e0b;               /* amber-500 текст/бордеры */

    /* === LEGACY GRAY SURFACES === */
    --gray-border-soft: #dee2e6;             /* легаси BS border */
    --gray-bg-softest: #f8f9fa;              /* легаси BS gray-100 фон */
    --bg-tinted-success-soft: #f0fdf4;       /* green-50 подложка */
    --bg-chip-slate: #e2e8f0;                /* slate-200 нейтральный чип */

    /* === ROSE (rose-семейство: закрыть/удалить/критично) === */
    --rose-accent: #e11d48;                  /* rose-600 */
    --rose-bg-soft: #fff1f2;                 /* rose-50 */
    --rose-border-soft: #fecdd3;             /* rose-200 */

    /* === ДОБОРНЫЕ СТАТУС-ОТТЕНКИ === */
    --amber-border-soft: #fde68a;            /* amber-200 */
    --amber-text-deep: #92400e;              /* amber-800 */
    --success-border-soft: #bbf7d0;          /* green-200 */
    --teardown-accent: #0891b2;              /* канон циан фазы демонтажа (текст) */

    --row-hover-bg: #fafbfd;                 /* hover строк таймлайнов */
    --scanner-banner-bg: #d1e7dd;            /* плашка режима сканера */
    --scanner-banner-border: #a3cfbb;
    --scanner-banner-blue-bg: #cfe2ff;       /* синий вариант плашки (приёмка) */
    --scanner-banner-blue-border: #9ec5fe;
    --panel-head-bg: #eef2f7;                /* шапки аккордеонов/панелей */
    --deep-navy-text: #1a4069;               /* фирменный deep-navy как текст/иконка */
    --indigo-chip-bg: #e0e7ff;               /* indigo-100 кнопка-чип */
    --indigo-chip-text: #4338ca;             /* indigo-700 */
    --selected-warm-bg: #fefce8;             /* yellow-50 активная карточка */
    --gantt-weekend-bg: #fafafa;             /* выходные в свето-гантах */
    --gantt-grid-line: #d4d8e0;              /* сетка ганта расписания */

    /* === КАЛЕНДАРЬ ПЕРСОНАЛА (зебра чётных дней) === */
    --bg-tinted-orange: #fff7ed;             /* orange-50 (агрегат-строки субаренды) */
    --staffcal-even-bg: #fafbfc;
    --staffcal-even-hdr: #eef2f7;
    --staffcal-even-subhdr: #e8edf3;

    /* === SHAPE === */
    --radius-sm: 4px;
    --radius-md: 6px;
    --radius-lg: 8px;
    --radius-pill: 999px;

    /* === MOTION === */
    --transition-fast: 0.15s ease;
    --transition-default: 0.3s cubic-bezier(0.4, 0, 0.2, 1);

    /* === GANTT panel (availability bottom sheet — intentionally dark for contrast) === */
    --gantt-panel-bg:          #0f172a;  /* slate-900 — panel background */
    --gantt-panel-bg-elev:     #1e293b;  /* slate-800 — tooltips, sub-elevations */
    --gantt-panel-text:        #e2e8f0;  /* slate-200 — primary text */
    --gantt-panel-text-bright: #f8fafc;  /* slate-50  — emphasized text */
    --gantt-panel-text-muted:  #94a3b8;  /* slate-400 — secondary text */
    --gantt-panel-text-dim:    #64748b;  /* slate-500 — tertiary text */
    --gantt-panel-text-faint:  #475569;  /* slate-600 — quaternary (date col) */
    --gantt-panel-text-accent: #cbd5e1;  /* slate-300 — names, accents */
    --gantt-panel-border:      rgba(255, 255, 255, 0.06);
    --gantt-panel-border-soft: rgba(255, 255, 255, 0.04);
    --gantt-panel-hover-bg:    rgba(255, 255, 255, 0.08);
    --gantt-panel-track-bg:    rgba(255, 255, 255, 0.06);
    --gantt-panel-grid-bg:     rgba(255, 255, 255, 0.03);

    /* === GANTT bar colours (booking bars colour-coded by relation to current estimate) === */
    --gantt-current:           #3b82f6;  /* current estimate's bookings */
    --gantt-current-conflict:  #ef4444;  /* current estimate when over capacity */
    --gantt-same-proj:         #8b5cf6;  /* other estimates of same project */
    --gantt-other:             #475569;  /* other projects (non-conflicting) */
    --gantt-other-conflict:    #f97316;  /* other projects when conflicting */
    --gantt-balance-full-bg:   rgba(34, 197, 94, 0.2);
    --gantt-balance-full-fg:   #4ade80;
    --gantt-balance-partial-bg:rgba(234, 179, 8, 0.25);
    --gantt-balance-partial-fg:#fbbf24;
    --gantt-balance-deficit:   #dc2626;
    --gantt-now-line:          rgba(59, 130, 246, 0.4);
    --gantt-day-today-bg:      rgba(59, 130, 246, 0.05);
    --gantt-day-weekend:       #334155;

    /* === SIDEBAR (left navigation, dark by default) === */
    --sidebar-bg-start: #1e293b;
    --sidebar-bg-end: #0f172a;
    --sidebar-text: #ffffff;
    --sidebar-text-muted: #94a3b8;
    --sidebar-item-hover: rgba(255, 255, 255, 0.08);
    --sidebar-item-active: var(--accent-primary);
    --sidebar-border: rgba(255, 255, 255, 0.1);

    /* === TOPBAR (Linear-style dark top nav, only in themes that use it) === */
    --topbar-bg: var(--bg-card);
    --topbar-text: var(--text-primary);
    --topbar-active: var(--accent-primary);
}
