/* dark_theme.css - полноценная тёмная тема, принудительный светлый текст для всех элементов */

:root {
    --bg-dark: #0a0a0a;
    --bg-card: #1a1a1a;
    --bg-input: #2a2a2a;
    --text-light: #e0e0e0;
    --text-dark: #121212;
    --border-color: #3a3a3a;
    --primary: #0d6efd;
    --primary-hover: #0b5ed7;
    --success-bg: #198754;
    --success-text: #ffffff;
    --danger-bg: #dc3545;
    --danger-text: #ffffff;
    --warning-bg: #ffc107;
    --warning-text: #121212;
    --info-bg: #0dcaf0;
    --info-text: #121212;
    --secondary-bg: #6c757d;
    --secondary-text: #ffffff;
}

/* Базовый цвет текста для всего документа */
body, html {
    background-color: var(--bg-dark);
    color: var(--text-light);
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
}

/* Принудительный светлый текст для всех типовых элементов Bootstrap и кастомных */
body, p, span, div, li, td, th, caption, label, legend, 
input, textarea, select, button, a, h1, h2, h3, h4, h5, h6,
pre, code, .form-label, .form-check-label, .card-title, .card-text,
.navbar-brand, .navbar-nav .nav-link, .dropdown-item, .breadcrumb-item,
.alert, .badge, .toast, .modal-title, .modal-body, .tooltip-inner,
.popover, .list-group-item, .table, .table td, .table th, .table thead th,
.accordion-button, .accordion-body, .page-link, .nav-link, .nav-item,
.list-group-item, .dropdown-menu, .dropdown-item, .btn-link,
.progress-bar, .progress, .close, .btn-close, .navbar-toggler-icon,
.text-muted, .small, .form-text, .time-hint, .block-chip, .theme-history-item,
.widget-item, .debug-info, .log-container, .log-view, .schedule-matrix td,
.schedule-matrix th, .modal-footer .btn-secondary,
.toast-header, .toast-body, .accordion-header button,
.param-row label, .widget-canvas-container .text-muted {
    color: var(--text-light) !important;
}

/* Фоны для карточек, модальных окон, таблиц */
.card, .modal-content, .dropdown-menu, .list-group-item,
.table, .table tbody, .table tr, .table td, .table th,
.modal-body, .modal-header, .modal-footer, .card-body, .card-header,
.card-footer, .accordion-item, .accordion-header, .accordion-body,
.navbar, .navbar-collapse, .navbar-nav, .nav-item, .nav-link,
.progress, .progress-bar, .toast, .toast-header, .toast-body,
.tooltip-inner, .popover, .popover-header, .popover-body,
.schedule-matrix table, .schedule-matrix td, .schedule-matrix th {
    background-color: var(--bg-card) !important;
    border-color: var(--border-color) !important;
}

/* Специально для заголовков таблиц и элементов с фоновым цветом по умолчанию */
.card-header, .modal-header, .card-footer, .table thead th,
.accordion-button, .navbar {
    background-color: #222 !important;
}

/* Формы и поля ввода */
.form-control, .form-select, input, select, textarea,
.input-group-text, .form-range, .form-check-input {
    background-color: var(--bg-input) !important;
    border-color: var(--border-color) !important;
    color: var(--text-light) !important;
}

.form-control:focus, .form-select:focus {
    background-color: #333 !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25) !important;
    color: var(--text-light) !important;
}

.form-check-input:checked {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
}

/* Кнопки */
.btn {
    color: var(--text-light) !important;
    border-color: var(--border-color) !important;
}

.btn-primary {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: #fff !important;
}

.btn-primary:hover {
    background-color: var(--primary-hover) !important;
}

.btn-success {
    background-color: var(--success-bg) !important;
    border-color: var(--success-bg) !important;
    color: var(--success-text) !important;
}

.btn-danger {
    background-color: var(--danger-bg) !important;
    border-color: var(--danger-bg) !important;
    color: var(--danger-text) !important;
}

.btn-warning {
    background-color: var(--warning-bg) !important;
    border-color: var(--warning-bg) !important;
    color: var(--warning-text) !important;
}

.btn-info {
    background-color: var(--info-bg) !important;
    border-color: var(--info-bg) !important;
    color: var(--info-text) !important;
}

.btn-secondary {
    background-color: var(--secondary-bg) !important;
    border-color: var(--secondary-bg) !important;
    color: var(--secondary-text) !important;
}

.btn-outline-light {
    border-color: #ccc !important;
    color: #ccc !important;
    background-color: transparent !important;
}

.btn-outline-light:hover {
    background-color: #ccc !important;
    color: #000 !important;
}

/* Ссылки */
a {
    color: #6ea8fe !important;
    text-decoration: none;
}

a:hover {
    color: #9ec5fe !important;
    text-decoration: underline;
}

/* Алёрты Bootstrap */
.alert {
    background-color: var(--bg-card) !important;
    color: var(--text-light) !important;
    border-color: var(--border-color) !important;
}

.alert-success {
    background-color: var(--success-bg) !important;
    color: var(--success-text) !important;
    border-color: #2b8a5e !important;
}

.alert-danger {
    background-color: var(--danger-bg) !important;
    color: var(--danger-text) !important;
    border-color: #b02a37 !important;
}

.alert-warning {
    background-color: var(--warning-bg) !important;
    color: var(--warning-text) !important;
    border-color: #e6a700 !important;
}

.alert-info {
    background-color: #1a2a3a !important;
    color: #bbd4ff !important;
    border-color: #0d6efd !important;
}

.alert-secondary {
    background-color: var(--secondary-bg) !important;
    color: var(--secondary-text) !important;
    border-color: #565e64 !important;
}

/* Пагинация */
.pagination .page-link {
    background-color: #1a1a1a !important;
    border-color: #333 !important;
    color: var(--text-light) !important;
}

.pagination .page-item.active .page-link {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: white !important;
}

/* Таблицы */
.table-striped > tbody > tr:nth-of-type(odd) {
    background-color: #141414 !important;
}

.table-hover > tbody > tr:hover {
    background-color: #2a2a2a !important;
}

/* Бейджи */
.badge.bg-secondary {
    background-color: #2a2a2a !important;
    color: #e0e0e0 !important;
}

/* Навигация */
.navbar-brand, .navbar-nav .nav-link {
    color: #ccc !important;
}

.navbar-nav .nav-link:hover {
    color: white !important;
}

/* Логи и код */
.log-container, .log-view {
    background-color: #050505 !important;
    color: #0f0 !important;
    font-family: monospace;
    font-size: 12px;
    padding: 10px;
    border-radius: 6px;
    overflow-y: auto;
}

pre, code {
    background-color: #1a1a1a !important;
    color: #f8f8f2 !important;
    border-radius: 4px;
}

/* Модальные окна */
.modal-header .btn-close {
    filter: invert(1) !important;
}

/* Выпадающие списки */
.dropdown-menu .dropdown-item {
    color: #e0e0e0 !important;
}

.dropdown-menu .dropdown-item:hover {
    background-color: #333 !important;
    color: white !important;
}

/* Виджеты */
.theme-history-item,
.widget-item {
    background: #1e1e1e !important;
    color: var(--text-light) !important;
}

.widget-item.active {
    background: #0d6efd !important;
    color: white !important;
}

/* Канвас */
canvas {
    background: #000;
    display: block;
    margin: 0 auto;
    border-radius: 8px;
    cursor: move;
}

/* Справка */
.time-hint {
    font-size: 0.8rem;
    color: #6c757d !important;
    margin-top: 4px;
}

/* Тосты */
.toast-container {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 9999;
}

/* Расписание */
.schedule-matrix table {
    background-color: #0f0f0f !important;
}

.schedule-matrix td {
    background-color: #0f0f0f !important;
}

.schedule-matrix select {
    background-color: #1e1e1e !important;
    color: white !important;
    border: 1px solid #333 !important;
}

.time-col {
    background-color: #0d6efd !important;
    color: white !important;
    font-weight: bold;
}

.block-chip {
    background-color: #1e1e1e !important;
    border: 1px solid #333 !important;
    border-radius: 20px;
    padding: 4px 12px;
    cursor: pointer;
    color: var(--text-light) !important;
}

.block-chip:hover {
    background-color: #0d6efd !important;
    color: white !important;
}

/* Прочее */
.alert-success a,
.alert-danger a,
.alert-warning a,
.alert-info a,
.alert-secondary a {
    color: inherit !important;
    text-decoration: underline;
}

.editable {
    background-color: #2c2c2c !important;
}

input::placeholder,
textarea::placeholder {
    color: #aaa !important;
}

.btn-close-white {
    filter: brightness(0) invert(1) !important;
}

/* Исправление для тёмного текста в подсказках */
.tooltip-inner, .popover, .popover-header, .popover-body {
    background-color: #1a1a1a !important;
    color: var(--text-light) !important;
}

/* Дополнительные элементы, которые могли остаться тёмными */
.dropdown-item, .list-group-item, .page-link, .nav-link,
.toast-header, .toast-body, .accordion-button,
.modal-footer .btn-secondary, .btn-close {
    color: var(--text-light) !important;
}

/* Таблицы в db_viewer */
#videosTbody input, #videosTbody select {
    background-color: var(--bg-input) !important;
    color: var(--text-light) !important;
}

/* Мелкие текстовые элементы */
.text-muted, .small, .form-text, .time-hint, .debug-info {
    color: #b0b0b0 !important;
}

/* Аккордеон */
.accordion-button:not(.collapsed) {
    background-color: var(--primary) !important;
    color: white !important;
}

.accordion-button::after {
    filter: invert(1);
}