/* ============================================================
   crm-utilities.css — переиспользуемые утилитарные классы CRM.
   Подключается в layout/partials/head.blade.php ПОСЛЕ style.css
   с cache-bust версией (?v=YYYYMMDD).

   ВАЖНО (грабля июня 2026): источник этого файла — resources/css/
   (vite-plugin-static-copy копирует его в public/build/css/ при
   `npm run build`). НЕ класть файл только в public/build/css/ —
   vite-билд очищает public/build и файл без источника пропадёт
   (так уже теряли: пропал .table-h-scroll → «исчез» drag-scroll
   таблицы сметы /finance/estimates).

   Правило проекта: если CSS-паттерн повторяется на 2+ страницах —
   выносить сюда, а не дублировать в @push('styles').
   ============================================================ */

/* ── Фирменные цвета (бренд) ──
   Единственное место, где живут акцентные цвета бренда.
   Для белого лейбла клиента — переопределить :root-переменные
   в клиентском override-CSS, подключённом ПОСЛЕ этого файла.
   В Blade/CSS страниц — никаких hardcoded hex, только var(--brand-*). */
:root {
    --brand-cherry:    #a52a37; /* насыщенный вишнёвый: бордеры, акценты, иконки */
    --brand-cherry-bg: #fde0e3; /* пастельный светло-вишнёвый: фон ячеек, бейджей */
}

.brand-cherry        { color: var(--brand-cherry); }
.brand-cherry-bg     { background-color: var(--brand-cherry-bg); }
.brand-cherry-border { border-color: var(--brand-cherry); }

/* ── Перемикач теми інтерфейсу (кружечки-свотчі у дропдауні профілю,
      header.blade.php #ui-theme-switcher). Система тем: theme-tokens.css,
      config/themes.php, CLAUDE.md → «Система тем (design tokens)». ── */
.ui-theme-dot {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--border, #E8E8E8);
    padding: 0;
    cursor: pointer;
    flex: 0 0 auto;
}
.ui-theme-dot:hover {
    border-color: var(--text-muted, #898989);
}
.ui-theme-dot.active {
    border-color: var(--primary, #E41F07);
    box-shadow: 0 0 0 2px var(--primary-100, #FCE9E6);
}

/* ── .table-h-scroll — горизонтальный скролл широких таблиц ──
   Использовать вместо Bootstrap .table-responsive.
   Реагирует на реальную ширину контейнера (учитывает сайдбар),
   скролл появляется только когда таблица реально не помещается:
   - сумма ширин колонок < контейнера → таблица растягивается на 100%;
   - сумма ширин ≥ контейнера → горизонтальный скролл, колонки НЕ сжимаются.
   Кастомный wrapper-класс можно добавлять рядом, но НЕ переопределять
   на нём overflow. Потребители: personnel/salary/_rows_table,
   components/estimate-table, components/finance/estimate-payment-distribution,
   production/orders/index. */
.table-h-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;                 /* Firefox */
    scrollbar-color: #c9cfdb #f1f3f7;      /* Firefox */
}

.table-h-scroll > table {
    width: max-content;
    min-width: 100%;
}

/* Тонкий (8px) скролбар в тон проекта, с подсветкой на hover */
.table-h-scroll::-webkit-scrollbar {
    height: 8px;
    width: 8px;
}

.table-h-scroll::-webkit-scrollbar-track {
    background: #f1f3f7;
    border-radius: 8px;
}

.table-h-scroll::-webkit-scrollbar-thumb {
    background: #c9cfdb;
    border-radius: 8px;
}

.table-h-scroll::-webkit-scrollbar-thumb:hover {
    background: #a8b0c0;
}

/* ============================================================
   Скрол лівого сайдбара — НАТИВНИЙ CSS (серпень 2026)
   ============================================================
   Історія: скрол сайдбара робив jQuery slimScroll (script.js), який
   загортав .sidebar-inner у .slimScrollDiv. Липень 2026 — додано цей
   фолбек на випадок НЕініціалізованого плагіна. Але плагін ще й
   періодично ініціалізувався з НЕПРАВИЛЬНОЮ висотою (гонка з
   відрисовкою/зміною теми) — меню знову не скролилось, а фолбек уже
   не діяв (обгортка .slimScrollDiv створена). Тому з серпня 2026
   головний сайдбар ВИКЛЮЧЕНО зі slimScroll у script.js
   (`.not('.sidebar > .sidebar-inner')`) і це правило — ЄДИНИЙ і
   постійний механізм скролу головного меню. Не видаляти. */
.sidebar > .sidebar-inner.slimscroll {
    overflow-y: auto;
    overflow-x: hidden;
    max-height: calc(100vh - 56px); /* .sidebar: fixed, top 56px */
    scrollbar-width: thin;          /* Firefox */
}

.sidebar > .sidebar-inner.slimscroll::-webkit-scrollbar {
    width: 7px;
}

.sidebar > .sidebar-inner.slimscroll::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 7px;
}
