/* Светлая тема (по умолчанию) */
body[data-theme="light"] {
    --bg-primary: #FFFFFF;
    --bg-secondary: #F9FAFB;
    --bg-tertiary: #F3F4F6;
    --text-primary: #111827;
    --text-secondary: #6B7280;
    --border-color: #E5E7EB;
}

/* Темная тема */
body[data-theme="dark"] {
    --bg-primary: #1F2937;
    --bg-secondary: #111827;
    --bg-tertiary: #374151;
    --text-primary: #F9FAFB;
    --text-secondary: #D1D5DB;
    --border-color: #4B5563;
}

body[data-theme="dark"] .data-table thead { background: var(--bg-tertiary); }
body[data-theme="dark"] .filter-panel     { background: var(--bg-tertiary); }
body[data-theme="dark"] .kanban-col       { background: var(--bg-tertiary); }
body[data-theme="dark"] .comments-panel   { background: var(--bg-tertiary); }
body[data-theme="dark"] .search-box       { background: var(--bg-tertiary); }

/* =================================================================
   Pak167 — расширенный dark-theme аудит читабельности.
   Покрывает места с hardcoded white/light-серыми фонами и тёмным текстом,
   которые делали контент нечитаемым в тёмной теме.
   ================================================================= */

/* ── Карточки и контейнеры ──────────────────────────────────────── */
body[data-theme="dark"] .card,
body[data-theme="dark"] .demo-card,
body[data-theme="dark"] .auth-card {
    background: var(--bg-primary);
    color: var(--text-primary);
    border-color: var(--border-color);
}
body[data-theme="dark"] .card-body,
body[data-theme="dark"] .card-header,
body[data-theme="dark"] .card-footer { color: var(--text-primary); }
body[data-theme="dark"] .card-header,
body[data-theme="dark"] .card-footer { border-color: var(--border-color); background: var(--bg-secondary); }

/* ── Модалки ───────────────────────────────────────────────────── */
body[data-theme="dark"] .modal-content,
body[data-theme="dark"] .modal-dialog,
body[data-theme="dark"] .modal-container { background: var(--bg-primary); color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .modal-header,
body[data-theme="dark"] .modal-footer { border-color: var(--border-color); background: var(--bg-secondary); }
body[data-theme="dark"] .modal-title,
body[data-theme="dark"] .modal-header h2,
body[data-theme="dark"] .modal-header h3 { color: var(--text-primary); }
body[data-theme="dark"] .modal-close,
body[data-theme="dark"] .btn-close { color: var(--text-secondary); }
body[data-theme="dark"] .modal-close:hover,
body[data-theme="dark"] .btn-close:hover { background: var(--bg-tertiary); color: var(--text-primary); }
body[data-theme="dark"] .modal-overlay { background: rgba(0,0,0,.65); }

/* ── Формы ─────────────────────────────────────────────────────── */
body[data-theme="dark"] .form-control,
body[data-theme="dark"] input[type="text"]:not(.no-theme),
body[data-theme="dark"] input[type="email"]:not(.no-theme),
body[data-theme="dark"] input[type="password"]:not(.no-theme),
body[data-theme="dark"] input[type="number"]:not(.no-theme),
body[data-theme="dark"] input[type="date"]:not(.no-theme),
body[data-theme="dark"] input[type="datetime-local"]:not(.no-theme),
body[data-theme="dark"] input[type="time"]:not(.no-theme),
body[data-theme="dark"] input[type="search"]:not(.no-theme),
body[data-theme="dark"] input[type="url"]:not(.no-theme),
body[data-theme="dark"] input[type="tel"]:not(.no-theme),
body[data-theme="dark"] textarea:not(.no-theme),
body[data-theme="dark"] select:not(.no-theme) {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}
body[data-theme="dark"] .form-control:focus,
body[data-theme="dark"] input:focus:not(.no-theme),
body[data-theme="dark"] textarea:focus:not(.no-theme),
body[data-theme="dark"] select:focus:not(.no-theme) {
    background: var(--bg-tertiary);
    border-color: var(--primary);
    color: var(--text-primary);
}
body[data-theme="dark"] .form-label,
body[data-theme="dark"] label { color: var(--text-primary); }
body[data-theme="dark"] .text-muted,
body[data-theme="dark"] .text-secondary,
body[data-theme="dark"] small { color: var(--text-secondary) !important; }
body[data-theme="dark"] ::placeholder { color: #9ca3af; }

/* ── Кнопки ────────────────────────────────────────────────────── */
body[data-theme="dark"] .btn-outline,
body[data-theme="dark"] .btn-outline-secondary,
body[data-theme="dark"] .btn-secondary {
    background: transparent;
    color: var(--text-primary);
    border-color: var(--border-color);
}
body[data-theme="dark"] .btn-outline:hover,
body[data-theme="dark"] .btn-outline-secondary:hover,
body[data-theme="dark"] .btn-secondary:hover {
    background: var(--bg-tertiary);
    color: var(--text-primary);
    border-color: var(--text-secondary);
}
body[data-theme="dark"] .btn-icon { color: var(--text-secondary); }
body[data-theme="dark"] .btn-icon:hover { background: var(--bg-tertiary); color: var(--text-primary); }
body[data-theme="dark"] .btn-mini {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}
body[data-theme="dark"] .btn-mini:hover { background: var(--bg-tertiary); }

/* ── Таблицы ───────────────────────────────────────────────────── */
body[data-theme="dark"] table,
body[data-theme="dark"] .data-table,
body[data-theme="dark"] .table {
    background: var(--bg-primary);
    color: var(--text-primary);
}
body[data-theme="dark"] table th,
body[data-theme="dark"] .data-table th { background: var(--bg-tertiary); color: var(--text-secondary); border-color: var(--border-color); }
body[data-theme="dark"] table td,
body[data-theme="dark"] .data-table td { border-color: var(--border-color); color: var(--text-primary); }
body[data-theme="dark"] table tr:hover td,
body[data-theme="dark"] .data-table tr:hover td { background: var(--bg-secondary); }
body[data-theme="dark"] tfoot td { background: var(--bg-tertiary); color: var(--text-primary); }

/* ── Dropdowns / поповеры ──────────────────────────────────────── */
body[data-theme="dark"] .dropdown-menu,
body[data-theme="dark"] .user-dropdown,
body[data-theme="dark"] .notif-dropdown,
body[data-theme="dark"] .board-context-menu,
body[data-theme="dark"] .mention-dropdown {
    background: var(--bg-primary);
    color: var(--text-primary);
    border-color: var(--border-color);
}
body[data-theme="dark"] .dropdown-item:hover,
body[data-theme="dark"] .user-dropdown a:hover,
body[data-theme="dark"] .notif-dropdown a:hover,
body[data-theme="dark"] .board-context-menu__item:hover { background: var(--bg-tertiary); color: var(--text-primary); }

/* ── Алерты / тосты ────────────────────────────────────────────── */
body[data-theme="dark"] .alert { color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .alert-success { background: rgba(16,185,129,.15); color: #6ee7b7; }
body[data-theme="dark"] .alert-info    { background: rgba(59,130,246,.15); color: #93c5fd; }
body[data-theme="dark"] .alert-warning { background: rgba(245,158,11,.15); color: #fcd34d; }
body[data-theme="dark"] .alert-danger  { background: rgba(239,68,68,.15);  color: #fca5a5; }
body[data-theme="dark"] .auth-alert    { background: rgba(239,68,68,.12); color: #fca5a5; border-color: rgba(239,68,68,.25); }

/* ── Бейджи / chips ────────────────────────────────────────────── */
body[data-theme="dark"] .badge { color: var(--text-primary); }
body[data-theme="dark"] .badge-secondary { background: var(--bg-tertiary); color: var(--text-primary); }
body[data-theme="dark"] .badge-info      { background: rgba(59,130,246,.2);  color: #93c5fd; }
body[data-theme="dark"] .badge-success   { background: rgba(16,185,129,.2);  color: #6ee7b7; }
body[data-theme="dark"] .badge-warning   { background: rgba(245,158,11,.2);  color: #fcd34d; }
body[data-theme="dark"] .badge-danger    { background: rgba(239,68,68,.2);   color: #fca5a5; }

/* ── Sidebar / header ──────────────────────────────────────────── */
body[data-theme="dark"] .sidebar,
body[data-theme="dark"] .nav-menu { background: var(--bg-primary); border-color: var(--border-color); }
body[data-theme="dark"] .nav-link { color: var(--text-secondary); }
body[data-theme="dark"] .nav-link:hover { background: var(--bg-tertiary); color: var(--text-primary); }
body[data-theme="dark"] .nav-link.active { background: rgba(99,102,241,.18); color: #a5b4fc; }
body[data-theme="dark"] .header,
body[data-theme="dark"] .topbar { background: var(--bg-primary); border-color: var(--border-color); }

/* ── Page header / breadcrumb ──────────────────────────────────── */
body[data-theme="dark"] .page-title,
body[data-theme="dark"] h1, body[data-theme="dark"] h2, body[data-theme="dark"] h3,
body[data-theme="dark"] h4, body[data-theme="dark"] h5, body[data-theme="dark"] h6 { color: var(--text-primary); }
body[data-theme="dark"] .page-subtitle { color: var(--text-secondary); }
body[data-theme="dark"] .breadcrumb-nav,
body[data-theme="dark"] .breadcrumb-nav a { color: var(--text-secondary); }
body[data-theme="dark"] .breadcrumb-nav a:hover { color: var(--text-primary); }

/* ── KPI плитки / report-cards ─────────────────────────────────── */
body[data-theme="dark"] .report-kpi,
body[data-theme="dark"] .report-section,
body[data-theme="dark"] .pc-kpi,
body[data-theme="dark"] .pc-widget {
    background: var(--bg-primary); color: var(--text-primary); border-color: var(--border-color);
}
body[data-theme="dark"] .report-kpi-label,
body[data-theme="dark"] .pc-kpi-label { color: var(--text-secondary); }
body[data-theme="dark"] .report-kpi-value,
body[data-theme="dark"] .pc-kpi-value { color: var(--text-primary); }

/* ── Конкретные элементы (inline-стили в Blade перебиваем) ─────── */
body[data-theme="dark"] [style*="background:#fff"]:not(.no-theme-bg),
body[data-theme="dark"] [style*="background: #fff"]:not(.no-theme-bg),
body[data-theme="dark"] [style*="background:#ffffff"]:not(.no-theme-bg),
body[data-theme="dark"] [style*="background:white"]:not(.no-theme-bg) {
    background: var(--bg-primary) !important;
    color: var(--text-primary);
}
body[data-theme="dark"] [style*="background:#fafbfc"]:not(.no-theme-bg),
body[data-theme="dark"] [style*="background:#f9fafb"]:not(.no-theme-bg),
body[data-theme="dark"] [style*="background:#f3f4f6"]:not(.no-theme-bg) {
    background: var(--bg-secondary) !important;
}
body[data-theme="dark"] [style*="color:#1f2937"]:not(.no-theme-text),
body[data-theme="dark"] [style*="color: #1f2937"]:not(.no-theme-text),
body[data-theme="dark"] [style*="color:#111827"]:not(.no-theme-text),
body[data-theme="dark"] [style*="color:#374151"]:not(.no-theme-text) {
    color: var(--text-primary) !important;
}
body[data-theme="dark"] [style*="color:#6b7280"]:not(.no-theme-text),
body[data-theme="dark"] [style*="color:#9ca3af"]:not(.no-theme-text),
body[data-theme="dark"] [style*="color:#475569"]:not(.no-theme-text) {
    color: var(--text-secondary) !important;
}

/* ── Inputs / radio / checkbox улучшения ──────────────────────── */
body[data-theme="dark"] input[type="checkbox"],
body[data-theme="dark"] input[type="radio"] { accent-color: var(--primary); }

/* ── HR / разделители ──────────────────────────────────────────── */
body[data-theme="dark"] hr { border-color: var(--border-color); background: var(--border-color); }

/* ── Code / pre ────────────────────────────────────────────────── */
body[data-theme="dark"] code,
body[data-theme="dark"] pre,
body[data-theme="dark"] kbd { background: var(--bg-tertiary); color: var(--text-primary); border-color: var(--border-color); }

/* ── Empty state ───────────────────────────────────────────────── */
body[data-theme="dark"] .empty-state { color: var(--text-secondary); }
body[data-theme="dark"] .empty-state-title { color: var(--text-primary); }

/* ── Body тоже надо ──────────────────────────────────────────── */
body[data-theme="dark"] { background: var(--bg-secondary); color: var(--text-primary); }
body[data-theme="dark"] .content,
body[data-theme="dark"] .main-container,
body[data-theme="dark"] .dashboard-container { background: var(--bg-secondary); color: var(--text-primary); }

/* ── Линки ─────────────────────────────────────────────────────── */
body[data-theme="dark"] a { color: #93c5fd; }
body[data-theme="dark"] a:hover { color: #bfdbfe; }
body[data-theme="dark"] .btn { /* кнопки сохраняют свои цвета */ }

/* ── Settings sidebar ─────────────────────────────────────────── */
body[data-theme="dark"] .settings-side,
body[data-theme="dark"] .logs-sidebar,
body[data-theme="dark"] .logs-toolbar,
body[data-theme="dark"] .logs-table { background: var(--bg-primary); border-color: var(--border-color); color: var(--text-primary); }
body[data-theme="dark"] .settings-side a { color: var(--text-secondary); }
body[data-theme="dark"] .settings-side a:hover { background: var(--bg-tertiary); color: var(--text-primary); }
body[data-theme="dark"] .settings-side a.active { background: rgba(99,102,241,.15); color: #a5b4fc; }
body[data-theme="dark"] .settings-side h4 { color: var(--text-secondary); }

/* =================================================================
   Pak169 — точечная читабельность 6 страниц.
   Каждая view содержит @push('styles') с hardcoded #fff/#fafbfc/#f3f4f6
   фонами и тёмным текстом — атрибут-селекторы pak167 их не ловят
   (это CSS-классы, не inline-стили). Здесь делаем явные overrides.
   ================================================================= */

/* /me/personal-calendar (.pc-*) */
body[data-theme="dark"] .pc-cell { background: var(--bg-primary); color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .pc-cell.is-other { background: var(--bg-secondary); color: var(--text-secondary); }
body[data-theme="dark"] .pc-cell.is-weekend { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.03), rgba(255,255,255,.03) 4px, transparent 4px, transparent 8px); }
body[data-theme="dark"] .pc-day-header { background: var(--bg-tertiary); color: var(--text-secondary); border-color: var(--border-color); }
body[data-theme="dark"] .pc-calendar-grid { background: var(--border-color); border-color: var(--border-color); }
body[data-theme="dark"] .pc-inbox-item { background: var(--bg-primary); color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .pc-inbox-item:hover { background: var(--bg-tertiary); }
body[data-theme="dark"] .pc-inbox-severity-3 { background: rgba(220, 38, 38, .15); }
body[data-theme="dark"] .pc-inbox-severity-2 { background: rgba(245, 158, 11, .15); }
body[data-theme="dark"] .pc-inbox-severity-1 { background: rgba(107, 114, 128, .15); }
body[data-theme="dark"] .pc-inbox-meta,
body[data-theme="dark"] .pc-meeting-link,
body[data-theme="dark"] .pc-task-stat-label,
body[data-theme="dark"] .pc-kpi-section-label i,
body[data-theme="dark"] .pc-forecast-amount-zero,
body[data-theme="dark"] .pc-section-hint { color: var(--text-secondary); }
body[data-theme="dark"] .pc-meeting-time { color: var(--text-primary); }
body[data-theme="dark"] .pc-meeting-title { color: var(--text-primary); }
body[data-theme="dark"] .pc-task-stat { background: var(--bg-secondary); color: var(--text-primary); }
body[data-theme="dark"] .pc-task-stat:hover { background: var(--bg-tertiary); }
body[data-theme="dark"] .pc-task-stat-danger { background: rgba(239, 68, 68, .18); }
body[data-theme="dark"] .pc-task-stat-danger:hover { background: rgba(239, 68, 68, .26); }
body[data-theme="dark"] .pc-task-stat-danger .pc-task-stat-value { color: #fca5a5; }
body[data-theme="dark"] .pc-tab { color: var(--text-secondary); }
body[data-theme="dark"] .pc-tab:hover { color: var(--text-primary); }
body[data-theme="dark"] .pc-tab.active { color: #a5b4fc; }
body[data-theme="dark"] .pc-tab-count { background: var(--bg-tertiary); color: var(--text-secondary); }
body[data-theme="dark"] .pc-tab.active .pc-tab-count { background: rgba(99, 102, 241, .25); color: #a5b4fc; }
body[data-theme="dark"] .pc-tabs { border-color: var(--border-color); }
body[data-theme="dark"] .pc-kpi-section-label { color: var(--text-primary); }
body[data-theme="dark"] .pc-widget,
body[data-theme="dark"] .pc-widget-header { background: var(--bg-primary); color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .pc-widget-header { background: var(--bg-secondary); }
body[data-theme="dark"] .pc-forecast-bar-wrap { background: var(--bg-tertiary); }
body[data-theme="dark"] .modal-close { color: var(--text-secondary); }

/* /calendar (.calendar-*) */
body[data-theme="dark"] .calendar-cell { background: var(--bg-primary); color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .calendar-cell.is-other { background: var(--bg-secondary); color: var(--text-secondary); }
body[data-theme="dark"] .calendar-cell.is-weekend { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.03), rgba(255,255,255,.03) 4px, transparent 4px, transparent 8px); }
body[data-theme="dark"] .calendar-day-header { background: var(--bg-tertiary); color: var(--text-secondary); border-color: var(--border-color); }
body[data-theme="dark"] .calendar-grid { background: var(--border-color); border-color: var(--border-color); }
body[data-theme="dark"] .calendar-task { background: var(--bg-secondary); color: var(--text-primary); }
body[data-theme="dark"] .calendar-task:hover { background: var(--bg-tertiary); }
body[data-theme="dark"] .calendar-task-project { color: var(--text-secondary); }

/* /workload (.workload-*) */
body[data-theme="dark"] .workload-user-cell,
body[data-theme="dark"] .workload-day-cell,
body[data-theme="dark"] .workload-summary-cell { background: var(--bg-tertiary); color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .workload-day-cell.is-today { background: rgba(59, 130, 246, .25); color: #93c5fd; }
body[data-theme="dark"] .workload-day-name { color: var(--text-secondary); }
body[data-theme="dark"] .workload-cell { border-color: var(--border-color); }
body[data-theme="dark"] .workload-cell.is-weekend { background-image: repeating-linear-gradient(45deg, rgba(255,255,255,.03), rgba(255,255,255,.03) 4px, transparent 4px, transparent 8px); }
body[data-theme="dark"] .workload-cell-summary { color: var(--text-secondary); }
body[data-theme="dark"] .workload-task { background: var(--bg-primary); color: var(--text-primary); }
body[data-theme="dark"] .workload-task:hover { background: var(--bg-tertiary); }
body[data-theme="dark"] .workload-task-project { color: var(--text-secondary); }
body[data-theme="dark"] .workload-personal-busy { color: var(--text-secondary); border-color: rgba(255,255,255,.25); }

/* /chats (.chat-*) */
body[data-theme="dark"] .chat-sidebar,
body[data-theme="dark"] .chat-main { background: var(--bg-primary); color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .chat-sidebar-header,
body[data-theme="dark"] .chat-main-header,
body[data-theme="dark"] .chat-composer { border-color: var(--border-color); }
body[data-theme="dark"] .chat-list-item { color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .chat-list-item:hover { background: var(--bg-tertiary); }
body[data-theme="dark"] .chat-list-item.active { background: rgba(99, 102, 241, .18); }
body[data-theme="dark"] .chat-list-icon { background: var(--bg-tertiary); color: var(--text-secondary); }
body[data-theme="dark"] .chat-list-last,
body[data-theme="dark"] .chat-message-meta,
body[data-theme="dark"] .chat-empty { color: var(--text-secondary); }
body[data-theme="dark"] .chat-message-bubble { background: var(--bg-tertiary); color: var(--text-primary); }
body[data-theme="dark"] .chat-message.is-self .chat-message-bubble { background: var(--primary); color: #fff; }
body[data-theme="dark"] .chat-message-bubble .mention { color: #93c5fd; }
body[data-theme="dark"] .chat-message-bubble .chat-link { color: #93c5fd; }
body[data-theme="dark"] .chat-message.is-self .chat-message-bubble .chat-link { color: #fef3c7; }
body[data-theme="dark"] .chat-mention-dropdown { background: var(--bg-primary); color: var(--text-primary); border-color: var(--border-color); }
body[data-theme="dark"] .chat-mention-item:hover,
body[data-theme="dark"] .chat-mention-item.active { background: var(--bg-tertiary); color: var(--text-primary); }

/* /finance/counterparties (.cp-*) */
body[data-theme="dark"] .cp-table th { background: var(--bg-tertiary); color: var(--text-secondary); border-color: var(--border-color); }
body[data-theme="dark"] .cp-table td { border-color: var(--border-color); color: var(--text-primary); }
body[data-theme="dark"] .cp-table tr:hover td { background: var(--bg-secondary); }
body[data-theme="dark"] .cp-type-client { background: rgba(16, 185, 129, .18); color: #6ee7b7; }
body[data-theme="dark"] .cp-type-vendor { background: rgba(59, 130, 246, .18); color: #93c5fd; }
body[data-theme="dark"] .cp-type-contractor { background: rgba(245, 158, 11, .18); color: #fcd34d; }
body[data-theme="dark"] .cp-type-employee { background: rgba(168, 85, 247, .18); color: #d8b4fe; }
body[data-theme="dark"] .cp-type-government { background: rgba(239, 68, 68, .18); color: #fca5a5; }

/* /finance/recurring-expenses (.re-*) */
body[data-theme="dark"] .re-table th { color: var(--text-secondary); border-color: var(--border-color); }
body[data-theme="dark"] .re-table td { border-color: var(--border-color); color: var(--text-primary); }
body[data-theme="dark"] .re-table tr:hover td { background: var(--bg-secondary); }
body[data-theme="dark"] .re-freq-badge { background: rgba(59, 130, 246, .18); color: #93c5fd; }
body[data-theme="dark"] .re-freq-badge.onetime { background: rgba(245, 158, 11, .18); color: #fcd34d; }
body[data-theme="dark"] .re-status-active { color: #6ee7b7; }
body[data-theme="dark"] .re-status-inactive { color: var(--text-secondary); }
body[data-theme="dark"] .re-next-soon { color: #fca5a5; }

/* Дополнительно: на /chats/finance/workload используется паттерн
   <div style="background:#fff;border:1px solid var(--border-color)">  — table-wrapper.
   pak167 inline-style overrides уже ловят #fff и заменяют на --bg-primary, но без
   font color → текст оставался тёмный. Здесь подстраховываемся через :is(). */
body[data-theme="dark"] [style*="background:#fff"]:not(.no-theme-bg),
body[data-theme="dark"] [style*="background: #fff"]:not(.no-theme-bg) {
    color: var(--text-primary);
    border-color: var(--border-color) !important;
}

/* =================================================================
   Pak171 — добиваем dark-theme второй проход.
   После pak169 пользователь сообщал что часть контента на этих же
   страницах остаётся нечитабельной. Здесь добавляем элементы которые
   я пропустил в первой итерации.
   ================================================================= */

/* personal_calendar — детали внутри сетки + модалка */
body[data-theme="dark"] .pc-item {
    background: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}
body[data-theme="dark"] .pc-item:hover { background: var(--bg-tertiary); }
body[data-theme="dark"] .pc-task { background: rgba(99, 102, 241, .15); }
body[data-theme="dark"] .pc-cell.is-today { box-shadow: inset 0 0 0 2px #818cf8; }
body[data-theme="dark"] .pc-cell.is-today .pc-cell-date { color: #a5b4fc; }
body[data-theme="dark"] .pc-month-label { color: var(--text-primary); }
body[data-theme="dark"] .pc-legend { color: var(--text-secondary); }
body[data-theme="dark"] .pe-swatch { border-color: var(--border-color); }
body[data-theme="dark"] .pe-swatch.active,
body[data-theme="dark"] .pe-swatch:has(input:checked) {
    border-color: var(--text-primary);
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .25);
}
body[data-theme="dark"] .pc-widget-link { color: #93c5fd; }
body[data-theme="dark"] .pc-widget-link:hover { color: #bfdbfe; }
body[data-theme="dark"] .pc-forecast-bar { /* gradient остаётся — на тёмном bg хорошо видно */ }
body[data-theme="dark"] .pc-forecast-amount { text-shadow: 0 0 2px #000; }
body[data-theme="dark"] .pc-forecast-label { color: var(--text-secondary); }

/* calendar — задача-карточка + сегодня */
body[data-theme="dark"] .calendar-cell.is-today { box-shadow: inset 0 0 0 2px #818cf8; }
body[data-theme="dark"] .calendar-cell.is-today .calendar-cell-date { color: #a5b4fc; }
body[data-theme="dark"] .calendar-task-duration { background: rgba(99, 102, 241, .25); color: #a5b4fc; }

/* workload — служебные элементы */
body[data-theme="dark"] .workload-est { color: var(--text-primary); }
body[data-theme="dark"] .workload-log { color: #6ee7b7; }

/* chats — group-label, unread-badge, sidebar tweaks */
body[data-theme="dark"] .chat-group-label {
    /* style*="background:#fafbfc" уже перекрыт inline-overrides pak167 → --bg-secondary,
       но цвет/border у inline-style не меняется — здесь финальный полировочный слой */
    color: var(--text-secondary) !important;
    border-color: var(--border-color) !important;
}
body[data-theme="dark"] .chat-list-name { color: var(--text-primary); }

/* Модалки в этих view'ах — у .modal-header/footer внутренние стили на border:#e5e7eb,
   pak167 их перекрывает через `body[data-theme="dark"] .modal-header`, но для надёжности
   добавляем text-primary, чтобы заголовки внутри hardcoded #fff не сливались */
body[data-theme="dark"] .modal-header,
body[data-theme="dark"] .modal-footer,
body[data-theme="dark"] .modal-body { color: var(--text-primary); }
body[data-theme="dark"] .modal-header h2,
body[data-theme="dark"] .modal-header h3,
body[data-theme="dark"] .modal-header h4 { color: var(--text-primary); }

/* Селекты и инпуты внутри inline-style боксов (без явного класса form-control) */
body[data-theme="dark"] [style*="background:#fff"] select,
body[data-theme="dark"] [style*="background:#fff"] input,
body[data-theme="dark"] [style*="background:#fff"] textarea {
    background: var(--bg-secondary) !important;
    color: var(--text-primary) !important;
    border-color: var(--border-color) !important;
}

/* Empty-states с фоном #f9fafb (counterparties / recurring-expenses)
   pak167 inline-override уже перекрашивает background, но не цвет
   служебных иконок (`<i style="color:#d1d5db">`). Делаем чуть видимее. */
body[data-theme="dark"] [style*="color:#d1d5db"] { color: var(--text-secondary) !important; opacity: .7; }

/* Дополнительная страховка: текст внутри ALL pastel hardcoded-фонов
   (зелёный/синий/жёлтый/красный) — остаётся читаемым, но не сливается с тёмным окружением.
   Эти селекторы НЕ переопределяют bg/text — они только добавляют subtle box-shadow,
   чтобы рамка визуально отделяла бейдж от тёмного фона. */
body[data-theme="dark"] [style*="background:#fee2e2"],
body[data-theme="dark"] [style*="background:#fef3c7"],
body[data-theme="dark"] [style*="background:#d1fae5"],
body[data-theme="dark"] [style*="background:#dbeafe"],
body[data-theme="dark"] [style*="background:#e0e7ff"] {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .15);
}
