/* ===========================================================
   Тёмная тема портала.
   Включается классом theme-dark у тега <html> (ставит theme/header.php).
   Все цвета - в переменных ниже: поменять оттенок можно в одном месте.
   Подключается последним, после bootstrap.min.css, app.css, other.css.
   =========================================================== */

html.theme-dark {
  color-scheme: dark;              /* тёмные полосы прокрутки, календари и т.п. в браузере */
  --d-bg: #14171c;                 /* фон страницы */
  --d-surface: #1d2128;            /* карточки, меню, шапка */
  --d-surface-2: #252a33;          /* поля ввода, светлые кнопки, наведение */
  --d-surface-3: #2e343e;          /* наведение на светлые кнопки, активные элементы */
  --d-border: #323945;             /* рамки и разделители */
  --d-text: #d3d9e1;               /* основной текст */
  --d-heading: #eef1f5;            /* заголовки */
  --d-muted: #8e98a6;              /* второстепенный текст */
  --d-primary: #4f8ffc;            /* синий акцент (чуть светлее, чтобы читался на тёмном) */
  --d-primary-soft: rgba(79, 143, 252, .16);
  --d-shadow: 0 .25rem .9rem rgba(0, 0, 0, .35);

  /* Переменные модуля "Школьные звонки" (theme/css/bells.css) */
  --zv-border: #323945;
  --zv-soft: #252a33;
  --zv-text: #d3d9e1;
  --zv-muted: #8e98a6;
}

/* ---------- Основа ---------- */
html.theme-dark body { background-color: var(--d-bg); color: var(--d-text); }
html.theme-dark h1, html.theme-dark h2, html.theme-dark h3,
html.theme-dark h4, html.theme-dark h5, html.theme-dark h6,
html.theme-dark .h1, html.theme-dark .h2, html.theme-dark .h3,
html.theme-dark .h4, html.theme-dark .h5, html.theme-dark .h6 { color: var(--d-heading); }
html.theme-dark hr { color: var(--d-border); opacity: 1; background-color: var(--d-border); }
html.theme-dark code { color: #f07fb0; }
html.theme-dark pre { color: var(--d-text); }
html.theme-dark ::selection { background: rgba(79, 143, 252, .35); }
html.theme-dark input::placeholder,
html.theme-dark textarea::placeholder { color: #fff !important; opacity: .35 !important; }

/* ---------- Меню слева, шапка, подвал ---------- */
html.theme-dark .sidebar-wrapper,
html.theme-dark .sidebar-header { background: var(--d-surface); border-color: var(--d-border); }
html.theme-dark .sidebar-wrapper { box-shadow: none; }
html.theme-dark .sidebar-wrapper .metismenu a { color: #b6bfcb; }
html.theme-dark .sidebar-wrapper .metismenu a:hover,
html.theme-dark .sidebar-wrapper .metismenu a:focus,
html.theme-dark .sidebar-wrapper .metismenu .mm-active > a,
html.theme-dark .sidebar-wrapper .metismenu a:active { color: #fff; background: var(--d-primary-soft); }
html.theme-dark .sidebar-wrapper .metismenu ul { background: var(--d-surface); border-color: var(--d-border); }
html.theme-dark .menu-label { color: #6c7684; }
html.theme-dark .logo-text, html.theme-dark .toggle-icon { color: var(--d-primary); }

html.theme-dark .topbar { background: var(--d-surface); border-bottom: 1px solid var(--d-border); box-shadow: none; }
html.theme-dark .topbar .navbar .navbar-nav .nav-link,
html.theme-dark .mobile-toggle-menu,
html.theme-dark .search-bar-box { color: var(--d-text); }
html.theme-dark .user-box { border-left-color: var(--d-border); }
html.theme-dark .user-info .user-name { color: var(--d-heading); }
html.theme-dark .user-info .designattion { color: var(--d-muted); }
html.theme-dark .topbar .navbar .dropdown-menu::after,
html.theme-dark .topbar .navbar .dropdown-large .dropdown-menu::after { background: var(--d-surface); border-color: var(--d-border); }
html.theme-dark .dropdown-large .msg-header { background: var(--d-surface); border-color: var(--d-border); }
html.theme-dark .dropdown-large .msg-header .msg-header-title { color: var(--d-heading); }
html.theme-dark .dropdown-large .msg-header .msg-header-clear,
html.theme-dark .dropdown-large .msg-time { color: var(--d-muted); }
html.theme-dark .dropdown-large .msg-footer { color: var(--d-text); border-color: var(--d-border); }
html.theme-dark .dropdown-large .dropdown-menu .dropdown-item { border-color: var(--d-border); }
html.theme-dark .app-title { color: var(--d-text); }
html.theme-dark .page-footer { background: var(--d-surface); border-color: var(--d-border); color: var(--d-muted); }
html.theme-dark .back-to-top { background: var(--d-surface-3); }
html.theme-dark .search-control { background-color: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text); }

/* ---------- Карточки ---------- */
html.theme-dark .card { background-color: var(--d-surface); border-color: var(--d-border); box-shadow: none; color: var(--d-text); }
html.theme-dark .card-header,
html.theme-dark .card-footer { background-color: rgba(255, 255, 255, .03); border-color: var(--d-border); }
html.theme-dark .shadow, html.theme-dark .shadow-sm, html.theme-dark .shadow-lg { box-shadow: var(--d-shadow) !important; }
html.theme-dark .widgets-icons, html.theme-dark .icon-badge { background-color: var(--d-surface-2); }

/* ---------- Цветовые классы Bootstrap ---------- */
html.theme-dark .bg-white, html.theme-dark .bg-body { background-color: var(--d-surface) !important; }
html.theme-dark .bg-light { background-color: var(--d-surface-2) !important; }
html.theme-dark .text-dark, html.theme-dark .text-black, html.theme-dark .text-body { color: var(--d-text) !important; }
html.theme-dark .text-muted, html.theme-dark .text-secondary { color: var(--d-muted) !important; }
html.theme-dark .text-primary { color: var(--d-primary) !important; }
html.theme-dark .border, html.theme-dark .border-top, html.theme-dark .border-bottom,
html.theme-dark .border-start, html.theme-dark .border-end { border-color: var(--d-border) !important; }
html.theme-dark .border-light { border-color: var(--d-border) !important; }
/* Плитки с градиентом и текстом text-dark (меню приложений в шапке) - текст остаётся тёмным */
html.theme-dark .app-box.text-dark, html.theme-dark [class*="bg-gradient"].text-dark { color: #212529 !important; }
html.theme-dark .bg-warning.text-dark, html.theme-dark .badge.bg-warning, html.theme-dark .bg-info.text-dark { color: #212529 !important; }

/* ---------- Таблицы ---------- */
html.theme-dark .table {
  color: var(--d-text);
  border-color: var(--d-border);
  --bs-table-accent-bg: transparent;
  --bs-table-striped-color: var(--d-text);
  --bs-table-striped-bg: rgba(255, 255, 255, .035);
  --bs-table-hover-color: var(--d-text);
  --bs-table-hover-bg: rgba(255, 255, 255, .05);
  --bs-table-active-bg: rgba(255, 255, 255, .07);
}
html.theme-dark .table > :not(caption) > * > * { border-bottom-color: var(--d-border); }
html.theme-dark .table > :not(:last-child) > :last-child > * { border-bottom-color: #46505e; }
html.theme-dark .table-light, html.theme-dark .table-light > th, html.theme-dark .table-light > td,
html.theme-dark thead.table-light th { --bs-table-bg: var(--d-surface-2); background-color: var(--d-surface-2); color: var(--d-heading); border-color: var(--d-border); }
html.theme-dark .table-bordered > :not(caption) > * { border-color: var(--d-border); }
html.theme-dark .table td, html.theme-dark .table th { color: inherit; }
html.theme-dark table.table thead th.pt-sortable:hover { background-color: rgba(255, 255, 255, .04); }
html.theme-dark .page-content .table td .btn.btn-sm:not(.btn-link):not(.dropdown-toggle) { background-color: var(--d-surface-2); border-color: var(--d-surface-2); color: var(--d-text); }
html.theme-dark .page-content .table td .btn.btn-sm:not(.btn-link):not(.dropdown-toggle):hover { background-color: var(--d-surface-3); border-color: var(--d-surface-3); }
html.theme-dark .page-content .table td .btn.btn-sm.text-danger:not(.btn-link):not(.dropdown-toggle) { color: #ff6b78; }
html.theme-dark .page-content .table td .btn.btn-sm.text-danger:not(.btn-link):not(.dropdown-toggle):hover { background-color: rgba(244, 17, 39, .18); border-color: transparent; }
/* DataTables */
html.theme-dark .dataTables_wrapper .dataTables_info,
html.theme-dark .dataTables_wrapper .dataTables_length,
html.theme-dark .dataTables_wrapper .dataTables_filter { color: var(--d-muted); }

/* ---------- Формы ---------- */
html.theme-dark .form-control,
html.theme-dark .form-select,
html.theme-dark .input-group-text {
  background-color: var(--d-surface-2);
  border-color: var(--d-border);
  color: var(--d-text);
}
html.theme-dark .form-control:focus,
html.theme-dark .form-select:focus { background-color: var(--d-surface-2); color: var(--d-heading); border-color: var(--d-primary); box-shadow: 0 0 0 .2rem rgba(79, 143, 252, .25); }
html.theme-dark .form-control:disabled, html.theme-dark .form-control[readonly],
html.theme-dark .form-select:disabled { background-color: #1a1e24; color: var(--d-muted); }
html.theme-dark .form-control-plaintext { color: var(--d-text); }
/* Стрелка у выпадающего списка - светлая */
html.theme-dark .form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23b6bfcb' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");
}
html.theme-dark .form-select[multiple], html.theme-dark .form-select[size]:not([size="1"]) { background-image: none; }
html.theme-dark .form-check-input { background-color: var(--d-surface-3); border-color: #4a5462; }
html.theme-dark .form-check-input:checked { background-color: #0d6efd; border-color: #0d6efd; }
html.theme-dark .form-switch .form-check-input:not(:checked) {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%28255,255,255,.4%29'/%3e%3c/svg%3e");
}
html.theme-dark .form-text { color: var(--d-muted); }
html.theme-dark .form-range::-webkit-slider-runnable-track { background-color: var(--d-surface-3); }
html.theme-dark .form-range::-moz-range-track { background-color: var(--d-surface-3); }
html.theme-dark .form-control::file-selector-button { background-color: var(--d-surface-3); color: var(--d-text); }
html.theme-dark .form-control::-webkit-file-upload-button { background-color: var(--d-surface-3); color: var(--d-text); }

/* ---------- Кнопки ---------- */
html.theme-dark .btn-light,
html.theme-dark .btn-white { background-color: var(--d-surface-2); border-color: var(--d-surface-2); color: var(--d-text); }
html.theme-dark .btn-light:hover, html.theme-dark .btn-light:focus,
html.theme-dark .btn-white:hover { background-color: var(--d-surface-3); border-color: var(--d-surface-3); color: var(--d-heading); }
html.theme-dark .btn-light.text-danger { color: #ff6b78 !important; }
html.theme-dark .btn-outline-secondary { color: #b6bfcb; border-color: #4a5462; }
html.theme-dark .btn-outline-secondary:hover { background-color: var(--d-surface-3); color: #fff; border-color: #5a6574; }
html.theme-dark .btn-outline-dark { color: var(--d-text); border-color: #5a6574; }
html.theme-dark .btn-outline-dark:hover { background-color: var(--d-surface-3); color: #fff; }
html.theme-dark .btn-outline-light { color: var(--d-text); border-color: var(--d-border); }
html.theme-dark .btn-dark { background-color: #3a414c; border-color: #3a414c; }
html.theme-dark .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
html.theme-dark .btn-link { color: #6ea2ff; }

/* ---------- Окна, меню, списки ---------- */
html.theme-dark .modal-content { background-color: var(--d-surface); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .modal-header, html.theme-dark .modal-footer { border-color: var(--d-border); }
html.theme-dark .modal-backdrop.show { opacity: .7; }
html.theme-dark .dropdown-menu { background-color: var(--d-surface); border: 1px solid var(--d-border); color: var(--d-text); box-shadow: var(--d-shadow); }
html.theme-dark .dropdown-item { color: var(--d-text); }
html.theme-dark .dropdown-item:hover, html.theme-dark .dropdown-item:focus { background-color: var(--d-surface-2); color: var(--d-heading); }
html.theme-dark .dropdown-divider { border-color: var(--d-border); }
html.theme-dark .dropdown-header { color: var(--d-muted); }
html.theme-dark .list-group-item { background-color: var(--d-surface); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .list-group-item-action:hover, html.theme-dark .list-group-item-action:focus { background-color: var(--d-surface-2); color: var(--d-heading); }
html.theme-dark .list-group-item.active { background-color: #0d6efd; border-color: #0d6efd; color: #fff; }
html.theme-dark .popover { background-color: var(--d-surface-2); border-color: var(--d-border); }
html.theme-dark .popover-body { color: var(--d-text); }
html.theme-dark .popover-header { background-color: var(--d-surface-3); border-color: var(--d-border); color: var(--d-heading); }
html.theme-dark .toast { background-color: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .toast-header { background-color: var(--d-surface-3); color: var(--d-heading); border-color: var(--d-border); }
html.theme-dark .offcanvas { background-color: var(--d-surface); color: var(--d-text); }
html.theme-dark .accordion-item { background-color: var(--d-surface); border-color: var(--d-border); }
html.theme-dark .accordion-button { background-color: var(--d-surface); color: var(--d-text); }
html.theme-dark .accordion-button:not(.collapsed) { background-color: var(--d-primary-soft); color: #9cc0ff; }
html.theme-dark .accordion-button::after { filter: invert(1) grayscale(100%) brightness(180%); }

/* ---------- Вкладки, навигация, пагинация ---------- */
html.theme-dark .nav-tabs { border-bottom-color: var(--d-border); }
html.theme-dark .nav-tabs .nav-link { color: var(--d-muted); }
html.theme-dark .nav-tabs .nav-link:hover { border-color: var(--d-border) var(--d-border) transparent; color: var(--d-text); }
html.theme-dark .nav-tabs .nav-link.active,
html.theme-dark .nav-tabs .nav-item.show .nav-link { background-color: var(--d-surface); color: var(--d-heading); border-color: var(--d-border) var(--d-border) var(--d-surface); }
html.theme-dark .nav-primary.nav-tabs .nav-link.active { color: #6ea2ff; border-color: var(--d-primary) var(--d-primary) var(--d-surface); }
html.theme-dark .nav-pills .nav-link { color: var(--d-text); }
html.theme-dark .page-link { background-color: var(--d-surface); border-color: var(--d-border); color: #6ea2ff; }
html.theme-dark .page-link:hover { background-color: var(--d-surface-2); border-color: var(--d-border); }
html.theme-dark .page-item.disabled .page-link { background-color: var(--d-surface); border-color: var(--d-border); color: var(--d-muted); }
html.theme-dark .page-item.active .page-link { background-color: #0d6efd; border-color: #0d6efd; color: #fff; }
html.theme-dark .breadcrumb-item.active, html.theme-dark .breadcrumb-item + .breadcrumb-item::before { color: var(--d-muted); }
html.theme-dark .breadcrumb-title { border-right-color: var(--d-border); }

/* ---------- Сообщения, значки, прогресс ---------- */
html.theme-dark .alert-primary { background-color: rgba(13, 110, 253, .15); border-color: rgba(13, 110, 253, .35); color: #9cc0ff; }
html.theme-dark .alert-secondary { background-color: rgba(108, 117, 125, .18); border-color: rgba(108, 117, 125, .4); color: #c3c9d1; }
html.theme-dark .alert-success { background-color: rgba(25, 135, 84, .16); border-color: rgba(25, 135, 84, .4); color: #7fd6a8; }
html.theme-dark .alert-danger { background-color: rgba(220, 53, 69, .16); border-color: rgba(220, 53, 69, .4); color: #ff9aa5; }
html.theme-dark .alert-warning { background-color: rgba(255, 193, 7, .14); border-color: rgba(255, 193, 7, .35); color: #ffd666; }
html.theme-dark .alert-info { background-color: rgba(13, 202, 240, .14); border-color: rgba(13, 202, 240, .35); color: #7fdcf2; }
html.theme-dark .alert-light { background-color: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .alert-dark { background-color: var(--d-surface-3); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .alert .alert-link { color: inherit; }
html.theme-dark .badge.bg-light { background-color: var(--d-surface-3) !important; color: var(--d-text) !important; }
html.theme-dark .progress { background-color: var(--d-surface-3); }
html.theme-dark .spinner-border.text-dark, html.theme-dark .spinner-grow.text-dark { color: var(--d-text) !important; }

/* ---------- Цвета, вписанные прямо в разметку (style="background:#fff" и т.п.) ---------- */
html.theme-dark [style*="background:#fff"], html.theme-dark [style*="background: #fff"],
html.theme-dark [style*="background-color:#fff"], html.theme-dark [style*="background-color: #fff"],
html.theme-dark [style*="background:white"], html.theme-dark [style*="background: white"],
html.theme-dark [style*="background-color: white"], html.theme-dark [style*="background-color:white"] { background-color: var(--d-surface) !important; }
html.theme-dark [style*="background:#f8f9fa"], html.theme-dark [style*="background: #f8f9fa"],
html.theme-dark [style*="background-color:#f8f9fa"], html.theme-dark [style*="background-color: #f8f9fa"],
html.theme-dark [style*="background:#f5f5f5"], html.theme-dark [style*="background: #f5f5f5"],
html.theme-dark [style*="background:#f4f4f4"], html.theme-dark [style*="background: #f4f4f4"] { background-color: var(--d-surface-2) !important; }
html.theme-dark [style*="color:#000"], html.theme-dark [style*="color: #000"],
html.theme-dark [style*="color:#212529"], html.theme-dark [style*="color: #212529"],
html.theme-dark [style*="color:#333"], html.theme-dark [style*="color: #333"] { color: var(--d-text) !important; }

/* ---------- Школьные звонки (theme/css/bells.css) ---------- */
html.theme-dark .zv-icon-btn { background: var(--d-surface-2); border-color: var(--d-surface-2); color: var(--d-text); }
html.theme-dark .zv-icon-btn:hover { background: var(--d-surface-3); border-color: var(--d-surface-3); }
html.theme-dark .zv-icon-btn.zv-play { color: var(--d-primary); }
html.theme-dark .zv-icon-btn.zv-danger { color: #ff6b78; }
html.theme-dark .zv-icon-btn.zv-danger:hover { background: rgba(220, 53, 69, .18); border-color: transparent; }
html.theme-dark .zv-dev-title { color: var(--d-heading); }
html.theme-dark .zv-badge.ok { background: rgba(25, 135, 84, .2); color: #7fd6a8; }
html.theme-dark .zv-badge.bad { background: rgba(220, 53, 69, .2); color: #ff9aa5; }
html.theme-dark .zv-badge.warn { background: rgba(253, 126, 20, .2); color: #ffb26b; }
html.theme-dark .zv-badge.info { background: rgba(13, 110, 253, .2); color: #9cc0ff; }
html.theme-dark .zv-badge.gray { background: var(--d-surface-3); color: #b6bfcb; }
html.theme-dark .zv-chip { background: var(--d-surface-3); color: #b6bfcb; }
html.theme-dark .zv-chip.ok { background: rgba(25, 135, 84, .2); color: #7fd6a8; }
html.theme-dark .zv-chip.bad { background: rgba(220, 53, 69, .2); color: #ff9aa5; }
html.theme-dark .zv-chip.warn { background: rgba(253, 126, 20, .2); color: #ffb26b; }
/* Страница "Радио" */
html.theme-dark .zr-pick:hover, html.theme-dark .zr-st:hover { background: var(--d-surface-3); border-color: #46505e; }
html.theme-dark .zr-pick-icon { background: var(--d-surface); }
html.theme-dark .zr-pick-title, html.theme-dark .zr-name, html.theme-dark .zr-st-title { color: var(--d-heading); }
html.theme-dark .zr-device, html.theme-dark .zr-st { background: var(--d-surface); }
html.theme-dark .zr-device.selected, html.theme-dark .zr-st.selected { background: var(--d-primary-soft); }
html.theme-dark .zr-check { background: var(--d-surface-2); border-color: #4a5462; }
/* Отдельные мелодии в расписании */
html.theme-dark .b2-single, html.theme-dark .b2-single-inline { background: var(--d-surface) !important; border-color: var(--d-border); border-left-color: #4a5462; }
html.theme-dark .b2s-icon { background: var(--d-surface-2); color: #b6bfcb; }
html.theme-dark .b2s-title .b2s-track { color: var(--d-muted); }

/* ---------- Кнопка переключения темы в шапке ---------- */
.theme-toggle-btn { background: none; border: 0; padding: 0 .8rem; font-size: 22px; line-height: 60px; color: #252323; cursor: pointer; }
html.theme-dark .theme-toggle-btn { color: var(--d-text); }
.theme-toggle-btn .bx-sun { display: none; }
html.theme-dark .theme-toggle-btn .bx-sun { display: inline-block; }
html.theme-dark .theme-toggle-btn .bx-moon { display: none; }

/* ---------- Выбор темы в профиле ---------- */
.theme-choice { display: flex; flex-wrap: wrap; gap: .75rem; }
.theme-choice label { display: flex; flex-direction: column; align-items: center; gap: .4rem; width: 128px; padding: .6rem; border: 2px solid #e4e7eb; border-radius: .6rem; cursor: pointer; transition: border-color .15s; }
.theme-choice label:hover { border-color: #b6c6e3; }
.theme-choice input { position: absolute; opacity: 0; pointer-events: none; }
.theme-choice input:checked + label { border-color: #0d6efd; }
.theme-choice .theme-preview { width: 100%; height: 62px; border-radius: .4rem; overflow: hidden; display: flex; border: 1px solid rgba(0, 0, 0, .1); }
.theme-choice .theme-preview span { display: block; }
.theme-preview-light { background: #f4f4f4; }
.theme-preview-light .pv-side { width: 28%; background: #fff; }
.theme-preview-light .pv-card { margin: 10px; flex: 1; background: #fff; border-radius: 4px; }
.theme-preview-dark { background: #14171c; }
.theme-preview-dark .pv-side { width: 28%; background: #1d2128; }
.theme-preview-dark .pv-card { margin: 10px; flex: 1; background: #1d2128; border-radius: 4px; }
.theme-preview-auto { background: linear-gradient(135deg, #f4f4f4 50%, #14171c 50%); }
.theme-choice .theme-name { font-size: 13px; }
html.theme-dark .theme-choice label { border-color: var(--d-border); }
html.theme-dark .theme-choice input:checked + label { border-color: var(--d-primary); }

/* ===========================================================
   Доработка по модулям (2)
   =========================================================== */

/* ---------- Dashboard ---------- */
html.theme-dark .dash-stat { background: var(--d-surface-2); }
html.theme-dark .dash-stat-label, html.theme-dark .dash-row-sub, html.theme-dark .dash-empty { color: var(--d-muted); }
html.theme-dark .dash-edit-bar { background: var(--d-surface-2); color: var(--d-text); }
html.theme-dark .dash-row { border-bottom-color: var(--d-border); }
html.theme-dark .dash-dot-off { background: #5a6574; }
html.theme-dark .dash-bar-empty { background: var(--d-surface-3); }
html.theme-dark .dash-bars-legend { color: var(--d-muted); }
html.theme-dark .dash-progress { background: var(--d-surface-3); }
html.theme-dark .dash-empty > i { color: #4a5462; }
html.theme-dark .dash-chip { background: var(--d-primary-soft); color: #8fb6ff; }
html.theme-dark .dash-card-header .dash-icon { background: var(--d-primary-soft); color: #8fb6ff; }

/* ---------- Объявления на главной ---------- */
html.theme-dark .advert-item { background-color: var(--d-surface); color: var(--d-text); }
html.theme-dark .advert-item .advert-text { color: var(--d-text); }

/* ---------- Ваша организация ---------- */
html.theme-dark .org-logo-box, html.theme-dark .org-chip { background: var(--d-surface-2); color: var(--d-text); }
html.theme-dark .org-stat { background: var(--d-surface-2); }

/* ---------- Поддержка: переписка ---------- */
html.theme-dark .support-msg-support, html.theme-dark .ticket-msg-user { background: var(--d-surface-2); color: var(--d-text); }
html.theme-dark .support-msg-mine, html.theme-dark .ticket-msg-admin { background: rgba(13, 110, 253, .22); color: var(--d-heading); }
html.theme-dark .support-drop.dragover { background: var(--d-primary-soft); }

/* ---------- Карта организаций (Яндекс): тёмная подложка, метки остаются цветными ---------- */
html.theme-dark #yandexmap [class*="ground-pane"] { filter: invert(1) hue-rotate(180deg) brightness(.92) contrast(.9); }
html.theme-dark #yandexmap [class*="copyrights-pane"] { filter: invert(1) hue-rotate(180deg); }

/* ---------- Школьные звонки: остальные элементы bells.css ---------- */
html.theme-dark .zv-stat:hover { box-shadow: var(--d-shadow); }
html.theme-dark .zv-next-ico { background: var(--d-surface); box-shadow: none; }
html.theme-dark .zv-next-title,
html.theme-dark .zv-lesson-num,
html.theme-dark .zv-time-label .form-control,
html.theme-dark .zv-item-title,
html.theme-dark .zv-table .zv-title-text,
html.theme-dark .zv-storage-used,
html.theme-dark .zv-file-name { color: var(--d-heading); }
html.theme-dark .zv-meter-bar, html.theme-dark .zv-storage-bar, html.theme-dark .zv-file-progress { background: var(--d-surface-3); }
html.theme-dark .zv-lesson-comment.empty, html.theme-dark .zv-melody-pick.empty .zv-melody-name { color: #6c7684; }
html.theme-dark .zv-melody-pick { background: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .zv-melody-pick:hover { border-color: #46608e; box-shadow: 0 0 0 3px rgba(79, 143, 252, .15); }
html.theme-dark .zv-break::before, html.theme-dark .zv-break::after { background: repeating-linear-gradient(90deg, #3a424e 0 4px, transparent 4px 8px); }
html.theme-dark .zv-item { background: var(--d-surface); }
html.theme-dark .zv-item:hover { border-color: #46608e; box-shadow: none; }
html.theme-dark .zv-tabs { background: var(--d-surface); box-shadow: none; border: 1px solid var(--d-border); }
html.theme-dark .zv-tabs button:not(.active) { color: var(--d-muted); }
html.theme-dark .zv-tabs button:not(.active):hover { color: var(--d-heading); }
html.theme-dark .zv-table tr.playing td { background: var(--d-primary-soft); }
html.theme-dark .zv-pick-row.selected { background: var(--d-primary-soft); border-color: #46608e; }
html.theme-dark .zv-player { background: var(--d-surface); box-shadow: 0 -4px 16px rgba(0, 0, 0, .4); }
html.theme-dark .zv-player-title { color: var(--d-heading); }
html.theme-dark .zv-player-close:hover { background: var(--d-surface-2); color: var(--d-heading); }
html.theme-dark .zv-storage-ico, html.theme-dark .zv-file-ico { background: var(--d-primary-soft); }
html.theme-dark .zv-dropzone { background: var(--d-surface); border-color: #46505e; color: var(--d-text); }
html.theme-dark .zv-dropzone:hover, html.theme-dark .zv-dropzone.dragover { background: var(--d-primary-soft); }
html.theme-dark .zv-file { background: var(--d-surface); }
html.theme-dark .zv-file.invalid { background: rgba(220, 53, 69, .1); border-color: rgba(220, 53, 69, .4); }
html.theme-dark .zv-nav { background: var(--d-surface); }
html.theme-dark .zv-nav-link { color: var(--d-muted); }
html.theme-dark .zv-nav-link:hover { background: var(--d-surface-2); color: var(--d-heading); }
html.theme-dark .zv-nav-link.active { background: #0d6efd; color: #fff; }
/* Меню "три точки" у устройства */
html.theme-dark .zv-dev .dropdown-menu.b2-menu { background: var(--d-surface); border-color: var(--d-border); box-shadow: var(--d-shadow) !important; }
html.theme-dark .zv-dev .b2-menu .dropdown-item { color: var(--d-text); }
html.theme-dark .zv-dev .b2-menu .dropdown-item i { background: var(--d-primary-soft); color: #8fb6ff; }
html.theme-dark .zv-dev .b2-menu .dropdown-item:hover,
html.theme-dark .zv-dev .b2-menu .dropdown-item:focus { background: var(--d-surface-2); color: #fff; }
html.theme-dark .zv-dev .b2-menu .dropdown-item.text-danger i { background: rgba(220, 53, 69, .18); color: #ff6b78; }
html.theme-dark .zv-dev .b2-menu .dropdown-item.text-danger:hover { background: rgba(220, 53, 69, .12); color: #ff8a95 !important; }
html.theme-dark .zv-dev .b2-menu .dropdown-divider { border-color: var(--d-border); }
/* Строка "Сейчас играет" и окна устройства */
html.theme-dark .b2-now { background: rgba(25, 135, 84, .14); border-color: rgba(25, 135, 84, .35); }
html.theme-dark .b2-now.is-melody { background: var(--d-primary-soft); border-color: #3b5788; }
html.theme-dark #bells2PinModal .b2p-legacy { background: rgba(255, 193, 7, .12); color: #ffd666; }
html.theme-dark #bells2PinModal .b2p-legacy-code { color: var(--d-heading); }
html.theme-dark #bells2InfoModal .b2i-icon { background: var(--d-primary-soft); color: #8fb6ff; }
html.theme-dark #bells2InfoModal .b2i-sec h6,
html.theme-dark #bells2InfoModal td:first-child,
html.theme-dark #bells2InfoModal .b2i-meta { color: var(--d-muted); }
html.theme-dark .b2-now-title { color: #7fd6a8; }
html.theme-dark .b2-now.is-melody .b2-now-title { color: #8fb6ff; }
html.theme-dark .b2-now-sub { color: var(--d-muted); }
html.theme-dark .b2-now-stop { background: var(--d-surface); border-color: rgba(25, 135, 84, .4); color: #7fd6a8; }
html.theme-dark .b2-now.is-melody .b2-now-stop { border-color: #3b5788; color: #8fb6ff; }
html.theme-dark .b2-now-stop:hover { background: var(--d-surface-2); }
html.theme-dark #bells2PinModal .b2p-icon { background: var(--d-primary-soft); color: #8fb6ff; }
html.theme-dark #bells2PinModal .b2p-digit { background: var(--d-surface-2); border-color: var(--d-border); color: var(--d-heading); }
html.theme-dark #bells2PinModal .b2p-steps { background: var(--d-surface-2); color: var(--d-text); }
html.theme-dark #bells2CalendarModal .b2c-row { border-bottom-color: var(--d-border); }
html.theme-dark #bells2CalendarModal .b2c-form { background: var(--d-surface-2); }
html.theme-dark .support-thumb { border-color: var(--d-border); }
html.theme-dark .sert-dropzone.dragover, html.theme-dark .token-cert.active { background: var(--d-primary-soft); }
/* Цветные рамки (border-warning и т.п.) не перекрашиваем в серый */
html.theme-dark .border-primary { border-color: #0d6efd !important; }
html.theme-dark .border-success { border-color: #198754 !important; }
html.theme-dark .border-danger { border-color: #dc3545 !important; }
html.theme-dark .border-warning { border-color: #ffc107 !important; }
html.theme-dark .border-info { border-color: #0dcaf0 !important; }
html.theme-dark .border-secondary { border-color: #6c757d !important; }

/* ---------- Ссылки в тексте: мягкий голубой вместо насыщенного синего ---------- */
html.theme-dark { --d-link: #8ab4f8; --d-link-hover: #b3cdfb; }
html.theme-dark .page-content a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item):not(.page-link):not([class*="bg-"]):not(.zv-nav-link):not(.badge),
html.theme-dark .modal-body a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item),
html.theme-dark .dropdown-large .msg-header a,
html.theme-dark .page-content a.text-primary { color: var(--d-link); }
html.theme-dark .page-content a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item):not(.page-link):not([class*="bg-"]):not(.zv-nav-link):not(.badge):hover,
html.theme-dark .modal-body a:not(.btn):not(.nav-link):not(.dropdown-item):not(.list-group-item):hover { color: var(--d-link-hover); }
html.theme-dark .page-content .text-primary { color: var(--d-link) !important; }
html.theme-dark .btn-link { color: var(--d-link); }

/* ---------- Select2 (выбор пользователей в админке уведомлений и т.п.) ---------- */
html.theme-dark .select2-container--bootstrap4 .select2-selection,
html.theme-dark .select2-container--default .select2-selection--single,
html.theme-dark .select2-container--default .select2-selection--multiple { background-color: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .select2-container .select2-selection__rendered,
html.theme-dark .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--d-text); }
html.theme-dark .select2-container .select2-selection__placeholder,
html.theme-dark .select2-container .select2-search__field::placeholder { color: var(--d-muted) !important; opacity: 1 !important; }
html.theme-dark .select2-container--bootstrap4.select2-container--focus .select2-selection,
html.theme-dark .select2-container--bootstrap4.select2-container--open .select2-selection { border-color: var(--d-primary); box-shadow: 0 0 0 .2rem rgba(79, 143, 252, .25); }
html.theme-dark .select2-container .select2-selection__arrow b { border-top-color: #b6bfcb !important; }
html.theme-dark .select2-container--open .select2-selection__arrow b { border-bottom-color: #b6bfcb !important; border-top-color: transparent !important; }
html.theme-dark .select2-dropdown { background-color: var(--d-surface); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .select2-search--dropdown .select2-search__field,
html.theme-dark .select2-container .select2-search--inline .select2-search__field { background-color: var(--d-surface-2); border-color: var(--d-border); color: var(--d-text); }
html.theme-dark .select2-results__option { color: var(--d-text); }
html.theme-dark .select2-results__option[aria-selected="true"],
html.theme-dark .select2-results__option--selected { background-color: var(--d-surface-3); }
html.theme-dark .select2-results__option--highlighted,
html.theme-dark .select2-container--bootstrap4 .select2-results__option--highlighted,
html.theme-dark .select2-container--default .select2-results__option--highlighted[aria-selected] { background-color: #0d6efd; color: #fff; }
html.theme-dark .select2-results__group { color: var(--d-muted); }
html.theme-dark .select2-selection__choice { background-color: var(--d-surface-3) !important; border-color: var(--d-border) !important; color: var(--d-text) !important; }
html.theme-dark .select2-selection__choice__remove { color: var(--d-muted) !important; }
html.theme-dark .select2-selection__clear { color: var(--d-muted); }
