/*
 * Admin Theme — стили (light/dark)
 *
 * Часть модуля inc/admin-theme/. Подключается только для админов
 * (см. inc/admin-theme/admin-theme.php). Активируется при наличии
 * класса .admin-theme-enabled на <html> или <body>.
 *
 * Содержит:
 *   - CSS-переменные обеих тем
 *   - Перебивки оригинальных стилей сайта для тёмной темы
 *   - Стили UI-кнопки переключателя
 *
 * Пути к изображениям (mask-image для стрелок) идут через ../../../imgs/
 * — т.к. файл лежит в inc/admin-theme/assets/, а imgs/ — в корне темы.
 */

/* ===== БАЗОВАЯ ПАЛИТРА (общая для обеих тем) ===== */
:root {
    --igp-brand-blue: #2098D1;
    --igp-brand-blue-hover: #1a7eaf;
    --igp-brand-red: #C23016;
    --igp-brand-red-dark: #BA0000;
    --igp-brand-red-alt: #B43630;
    --igp-accent-pink: #e31e62;
}

/* ===== СВЕТЛАЯ ТЕМА (по умолчанию для админа) =====
   Переменные ставятся И на html, И на body — html-класс работает раньше при первой
   отрисовке, body-класс — резервный. */
html.admin-theme-light,
html.admin-theme-enabled,
body.admin-theme-enabled,
body.admin-theme-enabled.admin-theme-light {
    --igp-bg-primary: #ffffff;
    --igp-bg-secondary: #fafafa;
    --igp-bg-tertiary: #f3f3f3;
    --igp-bg-muted: #f5f5f5;
    --igp-bg-card: #ffffff;
    --igp-bg-overlay: rgba(0, 0, 0, 0.6);

    /* Мост к новой токен-системе (home.css) — светлые значения */
    --igp-bg: #f6f6f6;
    --igp-surface: #ffffff;
    --igp-surface-alt: #ededed;
    --igp-border: #e4e4e4;
    --igp-bg-input: #ffffff;
    --igp-bg-hover: #f1f1f1;

    --igp-text-primary: #000000;
    --igp-text-secondary: #222222;
    --igp-text-muted: #595959;
    --igp-text-inverse: #ffffff;
    --igp-text-link: #d32029;
    --igp-text-link-hover: #b00;

    --igp-border-primary: #e1e1e1;
    --igp-border-secondary: #dbdbdb;
    --igp-border-muted: #ccc;
    --igp-border-strong: #aaa;

    --igp-shadow-sm: rgba(0, 0, 0, 0.05);
    --igp-shadow-md: rgba(0, 0, 0, 0.1);
    --igp-shadow-lg: rgba(0, 0, 0, 0.2);

    --igp-btn-bg: var(--igp-brand-red);
    --igp-btn-text: #ffffff;
    --igp-btn-bg-hover: var(--igp-brand-red-dark);

    color-scheme: light;
}

/* ===== ТЁМНАЯ ТЕМА ===== */
html.admin-theme-dark,
body.admin-theme-enabled.admin-theme-dark {
    --igp-bg-primary: #1a1a1a;
    --igp-bg-secondary: #222222;
    --igp-bg-tertiary: #2a2a2a;
    --igp-bg-muted: #2e2e2e;
    --igp-bg-card: #242424;
    --igp-bg-overlay: rgba(0, 0, 0, 0.85);
    --igp-bg-input: #2a2a2a;
    --igp-bg-hover: #333333;

    /* Мост к новой токен-системе (home.css) — страховка от undefined */
    --igp-bg: #181818;
    --igp-surface: #232323;
    --igp-surface-alt: #2c2c2c;
    --igp-border: #353535;

    --igp-text-primary: #f3f3f3;
    --igp-text-secondary: #e1e1e1;
    --igp-text-muted: #aaaaaa;
    --igp-text-inverse: #1a1a1a;
    --igp-text-link: #ff4a52;
    --igp-text-link-hover: #ff6a72;

    --igp-border-primary: #3a3a3a;
    --igp-border-secondary: #444444;
    --igp-border-muted: #555555;
    --igp-border-strong: #6a6a6a;

    --igp-shadow-sm: rgba(0, 0, 0, 0.3);
    --igp-shadow-md: rgba(0, 0, 0, 0.5);
    --igp-shadow-lg: rgba(0, 0, 0, 0.7);

    --igp-btn-bg: var(--igp-brand-red);
    --igp-btn-text: #ffffff;
    --igp-btn-bg-hover: #d83a1f;

    color-scheme: dark;
}

/* ===== АНТИФЛИКЕР: моментальный тёмный фон на html
   ещё ДО загрузки main.css. Работает с pre-paint <style> в <head>. ===== */
html.admin-theme-dark,
html.admin-theme-dark body {
    background-color: var(--igp-bg-primary) !important;
    color: var(--igp-text-primary) !important;
}

/*
 * ===== ПЕРЕОПРЕДЕЛЕНИЯ ДЛЯ ТЁМНОЙ ТЕМЫ =====
 *
 * Стратегия: широкий "сброс" по всем блочным элементам + точечные исключения.
 * Используем высокую специфичность через селектор `html body.admin-theme-dark`
 * (3 класса/элемента) и !important чтобы перебить хардкод в main.css.
 *
 * Принцип:
 *   1) Глобально все контейнеры — тёмный фон (через background: transparent наследуем).
 *   2) Текст по умолчанию — светлый.
 *   3) Картинки, иконки, цветные кнопки — НЕ трогаем фон (исключения ниже).
 */

html body.admin-theme-dark {
    background-color: var(--igp-bg-primary) !important;
    color: var(--igp-text-primary) !important;
}

/* Принудительно белый текст на цветных фонах (кнопки и фирменные блоки) */
html body.admin-theme-dark .btn,
html body.admin-theme-dark .btn *,
html body.admin-theme-dark .btn-big,
html body.admin-theme-dark .btn-big *,
html body.admin-theme-dark .label,
html body.admin-theme-dark .label *,
html body.admin-theme-dark .digit,
html body.admin-theme-dark .digit *,
html body.admin-theme-dark .lozung,
html body.admin-theme-dark .lozung *,
html body.admin-theme-dark .um-button,
html body.admin-theme-dark .um-button *,
html body.admin-theme-dark .ndg-form input[type="submit"],
html body.admin-theme-dark .accent-bg,
html body.admin-theme-dark .accent-bg *,
html body.admin-theme-dark .iss-clock-date,
html body.admin-theme-dark .iss-clock-date *,
html body.admin-theme-dark .message.mine,
html body.admin-theme-dark .message.mine * {
    color: var(--igp-btn-text) !important;
}

/*
 * ===== ФИНАЛЬНЫЕ ПЕРЕБИВКИ V3 =====
 * На основе аудита по всем CSS-файлам (main.css, footer.css, festival/css/main.css).
 * Конкретные классы с белым фоном из реальных отчётов агентов.
 */

/* Карточки и информационные блоки на странице игры и архива */
html body.admin-theme-dark .game-item,
html body.admin-theme-dark .game-item a,
html body.admin-theme-dark .game-item-title,
html body.admin-theme-dark .gray-section .gray-section-row,
html body.admin-theme-dark .vote-panel .gray-section-row {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}
/* .left-title / .right-field — без собственной подложки, наследуют фон строки */
html body.admin-theme-dark .gray-section .gray-section-row .left-title,
html body.admin-theme-dark .gray-section .gray-section-row .right-field,
html body.admin-theme-dark .gray-section .gray-section-row .right-field h4 {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--igp-text-primary) !important;
}

/* Игровые комментарии (полная замена) */
html body.admin-theme-dark .game-comments .game-comment,
html body.admin-theme-dark .game-comments .game-comment .autor,
html body.admin-theme-dark .game-comments .game-comment .autor h3,
html body.admin-theme-dark .game-comments .game-comment .autor span,
html body.admin-theme-dark .game-comments .game-comment .comment-body,
html body.admin-theme-dark .game-comments .game-comment .comment-body .comment-content,
html body.admin-theme-dark .game-comments .game-comment .comment-body .comment-meta,
html body.admin-theme-dark .game-comments .game-comment .comment-body .comment-meta .comment-data,
html body.admin-theme-dark .reply-comment,
html body.admin-theme-dark .reply-form,
html body.admin-theme-dark .reply-form textarea,
html body.admin-theme-dark .comment-form,
html body.admin-theme-dark .comment-form textarea,
html body.admin-theme-dark .comment-lk,
html body.admin-theme-dark .comment-lk a,
html body.admin-theme-dark .comment-lk a h3,
html body.admin-theme-dark .comment-lk .comment-text p {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* Sidebar архива игр */
html body.admin-theme-dark #games-sidebar,
html body.admin-theme-dark #games-sidebar .searchandfilter ul li,
html body.admin-theme-dark #games-sidebar .searchandfilter ul li ul,
html body.admin-theme-dark #games-sidebar .sf-field-reset,
html body.admin-theme-dark #games-sidebar .sf-field-reset a,
html body.admin-theme-dark #games-sidebar .sf-input-text,
html body.admin-theme-dark #games-sidebar label:before {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* Формы (особо часто используются) */
html body.admin-theme-dark .ndg-form .form-section,
html body.admin-theme-dark .ndg-form input,
html body.admin-theme-dark .ndg-form select,
html body.admin-theme-dark .ndg-form textarea,
html body.admin-theme-dark .forma-page .container,
html body.admin-theme-dark .ndg-popup,
html body.admin-theme-dark .tnx-popup {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}

/* SumoSelect — полное покрытие */
html body.admin-theme-dark .SumoSelect,
html body.admin-theme-dark .SumoSelect > .CaptionCont,
html body.admin-theme-dark .SumoSelect > .optWrapper,
html body.admin-theme-dark .SumoSelect > .optWrapper > .MultiControls,
html body.admin-theme-dark .SumoSelect .select-all,
html body.admin-theme-dark .SumoSelect .select-all > span i {
    background: var(--igp-bg-input) !important;
    background-color: var(--igp-bg-input) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}
html body.admin-theme-dark .SumoSelect > .optWrapper.multiple > .MultiControls > p:hover {
    background-color: var(--igp-bg-hover) !important;
}

/* ACF формы (#fest-form) — редизайн формы add-game плоский (см. site.css):
   у контейнеров полей НЕ должно быть подложки. Здесь оставляем фон
   только функциональным контролам (select, radio/checkbox-маркеры),
   а контейнеры .acf-field/.acf-field-group/.acf-label держим прозрачными
   (фон им гасит site.css; здесь дублируем, чтобы не вернуть подложку). */
html body.admin-theme-dark #fest-form .acf-field,
html body.admin-theme-dark #fest-form .acf-field-group,
html body.admin-theme-dark #fest-form .acf-field-group .acf-field,
html body.admin-theme-dark #fest-form .acf-field-group .acf-field .acf-label,
html body.admin-theme-dark #fest-form .acf-field-group .acf-field .acf-label label,
html body.admin-theme-dark #fest-form .acf-fields.-left > .acf-field {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--igp-text-primary) !important;
    border-color: transparent !important;
}
html body.admin-theme-dark #fest-form .acf-field select,
html body.admin-theme-dark #fest-form .acf-radio-list label:before,
html body.admin-theme-dark #fest-form .acf-checkbox-list label:before {
    background: var(--igp-bg-input) !important;
    background-color: var(--igp-bg-input) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}

/* Кабинет: дополнительные классы из аудита */
html body.admin-theme-dark .cabinet-sidebar,
html body.admin-theme-dark .cabinet-sidebar a,
html body.admin-theme-dark .ndg-chat .comment-meta,
html body.admin-theme-dark .wdp-lk-notifications-list,
html body.admin-theme-dark .wdp-lk-notifications-list a,
html body.admin-theme-dark .ndg-sidebar {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
}
/* Popover-меню профиля — surface (как остальные поповеры) */
html body.admin-theme-dark .wdp-lk-user-panel-menu a {
    background: var(--igp-surface, #232323) !important;
    background-color: var(--igp-surface, #232323) !important;
    color: var(--igp-text-primary) !important;
}

/* Фестивальные блоки (.nomination*, .expert*, .streamers, .partners) */
html body.admin-theme-dark .nomination,
html body.admin-theme-dark .nomination h2,
html body.admin-theme-dark .nomination-grid .nomination-item,
html body.admin-theme-dark .nomination-grid .nomination-item:last-child,
html body.admin-theme-dark .nomination-grid .nomination-item:last-child .nomination-icon,
html body.admin-theme-dark .nomination-grid .nomination-item:last-child .nomination-text,
html body.admin-theme-dark .nomination-grid .nomination-item .nomination-icon,
html body.admin-theme-dark .nomination-grid .nomination-item .nomination-name,
html body.admin-theme-dark .nomination-grid .nomination-item .nomination-subtitle,
html body.admin-theme-dark .nomination-name-row,
html body.admin-theme-dark .nomination-tooltip,
html body.admin-theme-dark .streamers,
html body.admin-theme-dark .streamers h3,
html body.admin-theme-dark .sreaamers-grid,
html body.admin-theme-dark .sreaamers-grid a,
html body.admin-theme-dark .sreaamers-grid a .streamer-subtitle,
html body.admin-theme-dark .sreaamers-grid a .streamer-name,
html body.admin-theme-dark .expert,
html body.admin-theme-dark .expert .expert_title-grid,
html body.admin-theme-dark .expert .expert_title-grid a,
html body.admin-theme-dark .expert .expert_title-grid a .experts-subtitle,
html body.admin-theme-dark .expert .expert_title-grid a .experts-position,
html body.admin-theme-dark .expert .expert_title-grid a .experts-name,
html body.admin-theme-dark .org .expert_title-grid,
html body.admin-theme-dark .org .experts-item,
html body.admin-theme-dark .experts-designation,
html body.admin-theme-dark .experts-name,
html body.admin-theme-dark .experts-text p,
html body.admin-theme-dark .partners,
html body.admin-theme-dark .fest-text,
html body.admin-theme-dark .white-lozung,
html body.admin-theme-dark .key-row,
html body.admin-theme-dark .rait-done {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* Голосование Yes/No */
html body.admin-theme-dark .wdp-vote-yesno,
html body.admin-theme-dark .wdp-vote-yesno .vote-btn,
html body.admin-theme-dark .wdp-vote-yesno .vote-btn.selected-no {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}

/* Поиск/инпут с серой рамкой */
html body.admin-theme-dark .my-projects-search,
html body.admin-theme-dark .games-search-input,
html body.admin-theme-dark .smoke-dialog,
html body.admin-theme-dark .smoke-prompt-input {
    background: var(--igp-bg-input) !important;
    background-color: var(--igp-bg-input) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}

/* Меню разные */
html body.admin-theme-dark .ndg-top-menu a:after {
    background: var(--igp-brand-blue) !important;
}
html body.admin-theme-dark .ndg-top-menu a,
html body.admin-theme-dark .bottom-menu li a,
html body.admin-theme-dark .current-menu-item a,
html body.admin-theme-dark .mobile-nav a,
html body.admin-theme-dark .links_menu-wrap,
html body.admin-theme-dark .archive .links_menu-wrap.active,
html body.admin-theme-dark .lk-filter-wrap,
html body.admin-theme-dark .ndg-blog-loop-info h3 a,
html body.admin-theme-dark .page-numbers a,
html body.admin-theme-dark .filter_btn,
html body.admin-theme-dark .join-btn,
html body.admin-theme-dark .simply-title strong,
html body.admin-theme-dark .soclink,
html body.admin-theme-dark .nw1,
html body.admin-theme-dark .nw2,
html body.admin-theme-dark .header-pfki:before {
    color: var(--igp-text-primary) !important;
}
html body.admin-theme-dark .links_menu-wrap,
html body.admin-theme-dark .archive .links_menu-wrap.active,
html body.admin-theme-dark .lk-filter-wrap,
html body.admin-theme-dark .nw2,
html body.admin-theme-dark .edit-post {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
}

/* Welcome-feature spans (мелкие декорации) */
html body.admin-theme-dark .welcome-features-ul .welcome-feature span {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
}

/* big-list hover */
html body.admin-theme-dark .big-list ul li h3,
html body.admin-theme-dark .big-list ul li:hover {
    background: var(--igp-bg-hover) !important;
    background-color: var(--igp-bg-hover) !important;
    color: var(--igp-text-primary) !important;
}

/* W-collapse-panel (открытая панель) */
html body.admin-theme-dark .w-collapse-panel,
html body.admin-theme-dark .w-collapse-panel .w-title,
html body.admin-theme-dark .new-aq .w-collapse-panel.on .w-panel,
html body.admin-theme-dark .ce-block--selected .ce-block__content {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
}

/* Hover-эффекты с белым/серым фоном — приглушаем */
html body.admin-theme-dark .hvr-radial-out,
html body.admin-theme-dark .hvr-radial-in:before,
html body.admin-theme-dark .hvr-rectangle-in:before,
html body.admin-theme-dark .hvr-rectangle-out,
html body.admin-theme-dark .hvr-shutter-in-horizontal:before,
html body.admin-theme-dark .hvr-shutter-out-horizontal,
html body.admin-theme-dark .hvr-shutter-in-vertical:before,
html body.admin-theme-dark .hvr-shutter-out-vertical {
    background: var(--igp-bg-hover) !important;
}
html body.admin-theme-dark .hvr-curl-top-left:before,
html body.admin-theme-dark .hvr-curl-top-right:before,
html body.admin-theme-dark .hvr-curl-bottom-right:before,
html body.admin-theme-dark .hvr-curl-bottom-left:before {
    background: var(--igp-bg-hover) !important;
}

/* Stream promo banner — нейтральная плашка.
   Фон-поверхность и текст задаём явно через --igp-* токены.
   Акцент — только кнопка, на едином токене --igp-accent (см. home.css),
   чтобы цвет бренда менялся в одном месте. */
html body.admin-theme-dark .stream-promo-banner {
    background: var(--igp-surface) !important;
    background-color: var(--igp-surface) !important;
    border: 1px solid var(--igp-border) !important;
}
html body.admin-theme-dark .stream-promo-banner__title {
    color: var(--igp-text) !important;
}
html body.admin-theme-dark .stream-promo-banner__text {
    color: var(--igp-text-muted) !important;
}
html body.admin-theme-dark .stream-promo-banner__btn {
    background: var(--igp-accent) !important;
    background-color: var(--igp-accent) !important;
    color: var(--igp-on-accent, #ffffff) !important;
}

/* .acf-switch hover */
html body.admin-theme-dark .acf-switch:hover {
    background: var(--igp-bg-hover) !important;
    background-color: var(--igp-bg-hover) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-strong) !important;
}

/* Edit-post nav */
html body.admin-theme-dark .edit-post-nav,
html body.admin-theme-dark .ce-toolbox__button {
    color: var(--igp-text-primary) !important;
}

/*
 * ===== ШАПКА И ФУТЕР: непрозрачный фон =====
 * В оригинале .ndg-header не имеет background — она прозрачная по дизайну.
 * В тёмной теме это даёт плохую читаемость текста на фоне контента под ней.
 * Принудительно даём шапке тёмный непрозрачный фон + лёгкую тень снизу.
 *
 * Высокая специфичность через html[lang] body[class] чтобы перебить
 * любые правила внутри @media и универсальный сброс выше.
 */
html[lang] body[class].admin-theme-dark header.ndg-header,
html[lang] body[class].admin-theme-dark .ndg-header,
html[lang] body[class].admin-theme-dark header[class*="ndg-header"],
html[lang] body[class].admin-theme-dark > header,
html[lang] body[class].admin-theme-dark .ndg-header .container {
    background: var(--igp-bg-secondary) !important;
    background-color: var(--igp-bg-secondary) !important;
}
html[lang] body[class].admin-theme-dark header.ndg-header,
html[lang] body[class].admin-theme-dark .ndg-header {
    box-shadow: 0 2px 12px var(--igp-shadow-md) !important;
    border-bottom: 1px solid var(--igp-border-primary) !important;
}

/* Аналогично для футера */
html[lang] body[class].admin-theme-dark footer.ndg-footer,
html[lang] body[class].admin-theme-dark .ndg-footer,
html[lang] body[class].admin-theme-dark .footer-main,
html[lang] body[class].admin-theme-dark .ndg-copy-row {
    background: var(--igp-bg-secondary) !important;
    background-color: var(--igp-bg-secondary) !important;
}
html[lang] body[class].admin-theme-dark footer.ndg-footer {
    border-top: 1px solid var(--igp-border-primary) !important;
}

/*
 * ===== SVG-СТРЕЛКИ ЧЕРЕЗ MASK-IMAGE =====
 * Стрелки в теме — чёрные SVG (fill="black"), подключены через background: url(...).
 * В тёмной теме они становятся невидимыми (чёрное на чёрном).
 *
 * Решение: для админа подменяем background на mask-image + background-color
 * из переменной. Цвет стрелки автоматически адаптируется к теме.
 *
 * Покрывает:
 *   - main.css:1163 — .faq-accordion .toggle::after
 *   - main.css:1361 — .big-list .arrow (arrow-more.svg)
 *   - main.css:1535 — другие стрелки
 *   - footer.css:301, 2169 — UM-формы и др.
 *   - vacancy.css:70 — фильтры вакансий
 */

/* === Стрелки arrow-down.svg ===
   Все известные селекторы из main.css, footer.css, vacancy.css.
   Селектор повторён с :after И ::after — для совместимости с разными парсерами. */
html body.admin-theme-enabled .faq-accordion .toggle:after,
html body.admin-theme-enabled .faq-accordion .toggle::after,
html body.admin-theme-enabled .ndg-form .selecta .wpcf7-form-control-wrap:before,
html body.admin-theme-enabled .ndg-form .selecta .wpcf7-form-control-wrap::before,
html body.admin-theme-enabled .chosen-container-single .chosen-single div b,
html body.admin-theme-enabled .w-collapse-panel .w-title:before,
html body.admin-theme-enabled .w-collapse-panel .w-title:after,
html body.admin-theme-enabled .w-collapse-panel .w-title::before,
html body.admin-theme-enabled .w-collapse-panel .w-title::after,
html body.admin-theme-enabled .vacancy-toggle:after,
html body.admin-theme-enabled .vacancy-toggle::after,
html body.admin-theme-enabled .toggle:after,
html body.admin-theme-enabled .toggle::after,
html body.admin-theme-enabled .accordion-toggle:after,
html body.admin-theme-enabled .accordion-toggle::after,
html body.admin-theme-enabled .panel .toggle:after,
html body.admin-theme-enabled .panel .toggle::after,
html body.admin-theme-enabled .game-update-header:after,
html body.admin-theme-enabled .game-update-header::after,
html body.admin-theme-enabled .acc-toggle:after,
html body.admin-theme-enabled .acc-toggle::after,
html body.admin-theme-enabled .vacancy-filter .filter-toggle:after,
html body.admin-theme-enabled .vacancy-filter .filter-toggle::after {
    background: var(--igp-text-primary) !important;
    background-image: none !important;
    -webkit-mask-image: url("../../../imgs/arrow-down.svg") !important;
            mask-image: url("../../../imgs/arrow-down.svg") !important;
    -webkit-mask-repeat: no-repeat !important;
            mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
            mask-position: center !important;
    -webkit-mask-size: contain !important;
            mask-size: contain !important;
}

/* === Стрелка arrow-more.svg (.big-list "узнать подробнее") === */
html body.admin-theme-enabled .big-list ul li a:after,
html body.admin-theme-enabled .big-list ul li a::after,
html body.admin-theme-enabled .big-list a:after,
html body.admin-theme-enabled .big-list a::after,
html body.admin-theme-enabled .more-link:after,
html body.admin-theme-enabled .more-link::after {
    background: var(--igp-text-primary) !important;
    background-image: none !important;
    -webkit-mask-image: url("../../../imgs/arrow-more.svg") !important;
            mask-image: url("../../../imgs/arrow-more.svg") !important;
    -webkit-mask-repeat: no-repeat !important;
            mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
            mask-position: center !important;
    -webkit-mask-size: contain !important;
            mask-size: contain !important;
}

/* Стрелки slick перенесены в css/single-games.css (inline SVG data: URL).
   Файлов /imgs/arrow-left.svg и /imgs/arrow-right.svg в репо нет — старое
   правило здесь грузило 404 и било наши стили через !important. */

/* В светлой теме (.admin-theme-light) — стрелки автоматически чёрные,
   потому что --igp-text-primary = #000000 для светлой темы. */

/* --- Явно тёмный фон для крупных блоков-контейнеров (header/footer/карточки) --- */
html body.admin-theme-dark header,
html body.admin-theme-dark footer,
html body.admin-theme-dark .ndg-header,
html body.admin-theme-dark .ndg-footer,
html body.admin-theme-dark .wdp-footer-menus,
html body.admin-theme-dark .wdp-lk-top-panel {
    background-color: var(--igp-bg-secondary) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- Карточки, попапы, формы — отдельный "card" фон --- */
html body.admin-theme-dark .game-item,
html body.admin-theme-dark .wdp-lk,
html body.admin-theme-dark .wdp-lk-notifications,
html body.admin-theme-dark .wdp-lk-notifications-list,
html body.admin-theme-dark .ndg-popup,
html body.admin-theme-dark .ndg-popup-frame > div,
html body.admin-theme-dark .form-section,
html body.admin-theme-dark .ndg-form,
html body.admin-theme-dark .logout-modal,
html body.admin-theme-dark .big-list > li {
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- Текст: универсально светлый для всех текстовых элементов --- */
html body.admin-theme-dark,
html body.admin-theme-dark p,
html body.admin-theme-dark span,
html body.admin-theme-dark li,
html body.admin-theme-dark dt,
html body.admin-theme-dark dd,
html body.admin-theme-dark td,
html body.admin-theme-dark th,
html body.admin-theme-dark label,
html body.admin-theme-dark blockquote,
html body.admin-theme-dark figcaption,
html body.admin-theme-dark small,
html body.admin-theme-dark strong,
html body.admin-theme-dark em,
html body.admin-theme-dark .game-item-title,
html body.admin-theme-dark .game-item-excerpt,
html body.admin-theme-dark .label,
html body.admin-theme-dark .lep,
html body.admin-theme-dark .digit {
    color: var(--igp-text-primary) !important;
}

/* --- Заголовки: светлые --- */
html body.admin-theme-dark h1,
html body.admin-theme-dark h2,
html body.admin-theme-dark h3,
html body.admin-theme-dark h4,
html body.admin-theme-dark h5,
html body.admin-theme-dark h6 {
    color: var(--igp-text-primary) !important;
}

/* --- Ссылки: фирменный синий, но светлее в тёмной теме --- */
html body.admin-theme-dark a {
    color: var(--igp-text-link) !important;
}
html body.admin-theme-dark a:hover {
    color: var(--igp-text-link-hover) !important;
}
/* Ссылки в шапке/меню часто имеют свой цвет — не ломаем фирменные */
html body.admin-theme-dark .ndg-top-menu a,
html body.admin-theme-dark .wdp-footer-menus a,
html body.admin-theme-dark nav a {
    color: var(--igp-text-primary) !important;
}
html body.admin-theme-dark .ndg-top-menu a:hover,
html body.admin-theme-dark .wdp-footer-menus a:hover,
html body.admin-theme-dark nav a:hover {
    color: var(--igp-text-link) !important;
}

/* --- Поля ввода --- */
html body.admin-theme-dark input[type="text"],
html body.admin-theme-dark input[type="email"],
html body.admin-theme-dark input[type="password"],
html body.admin-theme-dark input[type="number"],
html body.admin-theme-dark input[type="search"],
html body.admin-theme-dark input[type="tel"],
html body.admin-theme-dark input[type="url"],
html body.admin-theme-dark input[type="date"],
html body.admin-theme-dark input[type="time"],
html body.admin-theme-dark input:not([type]),
html body.admin-theme-dark textarea,
html body.admin-theme-dark select {
    background-color: var(--igp-bg-input) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}
html body.admin-theme-dark ::placeholder {
    color: var(--igp-text-muted) !important;
    opacity: 1;
}

/* --- Таблицы --- */
html body.admin-theme-dark table {
    background-color: var(--igp-bg-card) !important;
    border-color: var(--igp-border-primary) !important;
}
html body.admin-theme-dark hr,
html body.admin-theme-dark .distable-scroll table,
html body.admin-theme-dark .distable-scroll th,
html body.admin-theme-dark .distable-scroll td,
html body.admin-theme-dark th,
html body.admin-theme-dark td {
    border-color: var(--igp-border-primary) !important;
}
html body.admin-theme-dark .distable-scroll thead,
html body.admin-theme-dark .distable-scroll tr:nth-child(even),
html body.admin-theme-dark thead,
html body.admin-theme-dark tr:nth-child(even) {
    background-color: var(--igp-bg-tertiary) !important;
}

/* --- INLINE STYLES перебиваем для типичных белых фонов через [style*=] ---
   Эти селекторы перебивают атрибуты вида style="background:#fff" в HTML. --- */
html body.admin-theme-dark [style*="background:#fff"],
html body.admin-theme-dark [style*="background: #fff"],
html body.admin-theme-dark [style*="background-color:#fff"],
html body.admin-theme-dark [style*="background-color: #fff"],
html body.admin-theme-dark [style*="background:#FFF"],
html body.admin-theme-dark [style*="background: #FFF"],
html body.admin-theme-dark [style*="background:white"],
html body.admin-theme-dark [style*="background: white"],
html body.admin-theme-dark [style*="background-color:white"],
html body.admin-theme-dark [style*="background-color: white"],
html body.admin-theme-dark [style*="background:#f"],
html body.admin-theme-dark [style*="background: #f"],
html body.admin-theme-dark [style*="background-color:#f"],
html body.admin-theme-dark [style*="background-color: #f"] {
    background-color: var(--igp-bg-card) !important;
    background-image: none !important;
}

/* Inline color: тёмный → светлый */
html body.admin-theme-dark [style*="color:#000"],
html body.admin-theme-dark [style*="color: #000"],
html body.admin-theme-dark [style*="color:black"],
html body.admin-theme-dark [style*="color: black"],
html body.admin-theme-dark [style*="color:#222"],
html body.admin-theme-dark [style*="color: #222"],
html body.admin-theme-dark [style*="color:#333"],
html body.admin-theme-dark [style*="color: #333"] {
    color: var(--igp-text-primary) !important;
}

/* --- ИСКЛЮЧЕНИЯ: то, что НЕ должно становиться тёмным/светлым --- */

/* Цветные кнопки (.btn / .btn-big) — оставляем фирменный фон.
   Inline style="background:..." в кнопках обычно красный/синий — не #fff. */
html body.admin-theme-dark .btn,
html body.admin-theme-dark .btn-big,
html body.admin-theme-dark button.wp-block-button__link,
html body.admin-theme-dark .rbtn {
    color: var(--igp-btn-text) !important;
}

/* Логотипы / SVG-иконки в шапке — не приглушать */
html body.admin-theme-dark .ndg-header img,
html body.admin-theme-dark .ndg-header svg,
html body.admin-theme-dark header img,
html body.admin-theme-dark header svg,
html body.admin-theme-dark .ndg-footer img,
html body.admin-theme-dark .ndg-footer svg,
html body.admin-theme-dark footer img,
html body.admin-theme-dark footer svg {
    filter: none !important;
}

/* Картинки в карточках — НЕ трогаем фон вокруг них (transparent уже задан выше) */
html body.admin-theme-dark .game-item img,
html body.admin-theme-dark img.cover,
html body.admin-theme-dark img.thumbnail {
    filter: none !important;
}

/* --- SVG: цвет fill для иконок с fill="currentColor" работает автоматически.
   Для иконок с явно тёмным fill — переопределяем. --- */
html body.admin-theme-dark svg [fill="#000"],
html body.admin-theme-dark svg [fill="#000000"],
html body.admin-theme-dark svg [fill="black"] {
    fill: var(--igp-text-primary) !important;
}

/* Лёгкое приглушение прочих картинок (не в шапке/футере/карточках) */
html body.admin-theme-dark .content img:not(.no-theme-dim),
html body.admin-theme-dark article img:not(.no-theme-dim) {
    filter: brightness(0.95);
}

/*
 * ===== ТОЧЕЧНЫЕ ПЕРЕБИВКИ ИЗ АУДИТА =====
 * Высокая специфичность через html[lang] чтобы перебить даже inline <style>
 * из footer.php (его блок вставляется в конец DOM с цветами из ACF Options).
 */

/* --- Контент: основной "белый лист" .text и компоненты welcome --- */
html[lang] body.admin-theme-dark .text,
html[lang] body.admin-theme-dark .welcome,
html[lang] body.admin-theme-dark .welcome .welcome-title,
html[lang] body.admin-theme-dark .welcome-features .welcome-feature,
html[lang] body.admin-theme-dark .cta,
html[lang] body.admin-theme-dark .big-list li,
html[lang] body.admin-theme-dark .post-gazeta {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* Footer-main — обычно тёмно-серый из ACF, делаем явно тёмным */
html[lang] body.admin-theme-dark .footer-main {
    background: var(--igp-bg-secondary) !important;
    background-color: var(--igp-bg-secondary) !important;
    color: var(--igp-text-primary) !important;
}

/* --- Заголовок игры (с !important в исходнике!) --- */
html[lang] body.admin-theme-dark .game-title-fix {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
}

/* --- Мобильная навигация (!important на белом фоне в мобильной версии) --- */
@media (max-width: 1024px) {
    html[lang] body.admin-theme-dark .mobile-nav {
        background: var(--igp-bg-secondary) !important;
        background-color: var(--igp-bg-secondary) !important;
    }
    html[lang] body.admin-theme-dark .mobile-nav a,
    html[lang] body.admin-theme-dark .mobile-nav .current-menu-item a {
        color: var(--igp-text-primary) !important;
    }
}

/* Текущий пункт меню (был с !important и color: #000) */
html[lang] body.admin-theme-dark .current-menu-item > a {
    color: var(--igp-brand-blue) !important;
}

/* --- Кнопки wishlist (.outwish/.inwish — белый фон) --- */
html[lang] body.admin-theme-dark .outwish,
html[lang] body.admin-theme-dark .inwish,
html[lang] body.admin-theme-dark .join-btn {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}
html[lang] body.admin-theme-dark .outwish {
    color: var(--igp-brand-red-alt) !important;
}

/* --- Виджеты (сайдбар) --- */
html[lang] body.admin-theme-dark .widget a {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
    color: var(--igp-text-primary) !important;
}

/* --- Popup --- */
html[lang] body.admin-theme-dark .ndg-popup,
html[lang] body.admin-theme-dark .ndg-popup-frame,
html[lang] body.admin-theme-dark .forma-page .container {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
}

/* --- SumoSelect (выпадающие списки форм) --- */
html[lang] body.admin-theme-dark .SumoSelect > .CaptionCont,
html[lang] body.admin-theme-dark .SumoSelect > .optWrapper,
html[lang] body.admin-theme-dark .SumoSelect > .optWrapper > .MultiControls,
html[lang] body.admin-theme-dark .SumoSelect > .optWrapper.multiple > .options li span i {
    background: var(--igp-bg-input) !important;
    background-color: var(--igp-bg-input) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}
html[lang] body.admin-theme-dark .SumoSelect > .CaptionCont > span.placeholder {
    color: var(--igp-text-muted) !important;
}
html[lang] body.admin-theme-dark .SumoSelect > .optWrapper > .options li.opt:hover,
html[lang] body.admin-theme-dark .SumoSelect > .optWrapper.multiple > .MultiControls > p:hover {
    background-color: var(--igp-bg-hover) !important;
}
html[lang] body.admin-theme-dark .SumoSelect > .optWrapper > .options li.opt {
    border-bottom-color: var(--igp-border-primary) !important;
}

/* --- ACF Switch и панели --- */
html[lang] body.admin-theme-dark .acf-switch,
html[lang] body.admin-theme-dark .w-collapse-panel.on .w-panel {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
    border-color: var(--igp-border-secondary) !important;
}

/* --- Streamers и nomination-grid --- */
html[lang] body.admin-theme-dark .streamers,
html[lang] body.admin-theme-dark .nomination-grid .nomination-item,
html[lang] body.admin-theme-dark .nomination-grid .nomination-item:last-child {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- Эксперты / партнёры --- */
html[lang] body.admin-theme-dark .org .experts-item,
html[lang] body.admin-theme-dark .org .expert_title-grid a p,
html[lang] body.admin-theme-dark body .media-page .expert_title-grid a p {
    color: var(--igp-text-primary) !important;
}

/* --- Блики на кнопках (.btn:before) — выключаем, чтобы не светили белым --- */
html[lang] body.admin-theme-dark .btn:before,
html[lang] body.admin-theme-dark .wt-cli-accept-all-btn:before {
    background: rgba(255, 255, 255, 0.18) !important;
}

/* --- text-page.css: оглавление и контент текстовых страниц --- */
html[lang] body.admin-theme-dark .text-page__toc,
html[lang] body.admin-theme-dark .text-page-toc {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
    color: var(--igp-text-primary) !important;
}

/* --- game-updates.css: модалки обновлений --- */
html[lang] body.admin-theme-dark .game-update-last,
html[lang] body.admin-theme-dark .game-update-modal-content,
html[lang] body.admin-theme-dark .game-update-header {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}
html[lang] body.admin-theme-dark .game-update-header:hover {
    background-color: var(--igp-bg-hover) !important;
}

/* --- Festival slick-слайдер: точки --- */
html[lang] body.admin-theme-dark .slick-loading .slick-list {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
}
html[lang] body.admin-theme-dark .slick-dots li button {
    background-color: var(--igp-border-secondary) !important;
}
html[lang] body.admin-theme-dark .slick-dots li.slick-active button {
    background-color: var(--igp-brand-blue) !important;
}

/* --- Stream-schedule плагин --- */
html[lang] body.admin-theme-dark .stream-schedule,
html[lang] body.admin-theme-dark .stream-schedule-table,
html[lang] body.admin-theme-dark .stream-schedule-table td,
html[lang] body.admin-theme-dark .stream-schedule-table th,
html[lang] body.admin-theme-dark .stream-day,
html[lang] body.admin-theme-dark .stream-item {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- Social-auth плагин --- */
html[lang] body.admin-theme-dark .social-auth-title {
    color: var(--igp-text-primary) !important;
}

/* --- mark/highlight в редакторе --- */
html[lang] body.admin-theme-dark mark {
    background: rgba(194, 48, 22, 0.25) !important;
    background-color: rgba(194, 48, 22, 0.25) !important;
    color: var(--igp-text-primary) !important;
}

/* --- Карточки игр и обложки с inline background-image (style="background:url(...)").
   Эти инлайны мы не трогаем — там картинка обложки, она нужна. --- */
html[lang] body.admin-theme-dark .game-item[style*="background"],
html[lang] body.admin-theme-dark .archive-games .game-item[style],
html[lang] body.admin-theme-dark [style*="background: url"],
html[lang] body.admin-theme-dark [style*="background:url"] {
    /* НЕ перебиваем — фон-картинка нужна. Только цвет текста сверху. */
    color: var(--igp-text-inverse) !important;
}
html[lang] body.admin-theme-dark [style*="background: url"] .game-item-title,
html[lang] body.admin-theme-dark [style*="background:url"] .game-item-title,
html[lang] body.admin-theme-dark [style*="background: url"] .game-item-excerpt,
html[lang] body.admin-theme-dark [style*="background:url"] .game-item-excerpt {
    color: var(--igp-btn-text) !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.85);
}

/* --- Хлебные крошки и мета --- */
html[lang] body.admin-theme-dark .breadcrumbs,
html[lang] body.admin-theme-dark .breadcrumbs *,
html[lang] body.admin-theme-dark .post-meta,
html[lang] body.admin-theme-dark .post-meta * {
    color: var(--igp-text-muted) !important;
}

/* --- Аккордеоны / FAQ (типичные классы) --- */
html[lang] body.admin-theme-dark .accordion-item,
html[lang] body.admin-theme-dark .faq-item,
html[lang] body.admin-theme-dark .toggle-block {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- Кнопки .btn оставляем фирменные, но обязательно белый текст --- */
html[lang] body.admin-theme-dark .btn,
html[lang] body.admin-theme-dark .btn-big,
html[lang] body.admin-theme-dark .um-button,
html[lang] body.admin-theme-dark .ndg-form input[type="submit"] {
    color: var(--igp-btn-text) !important;
}

/*
 * =====================================================================
 * РАСШИРЕНИЕ V2: на основе аудита 10 агентов
 * Добавлены классы из реальной DOM-структуры:
 * .gray-section / .left-title / .right-field — основной "серый" макет
 * .wdp-lk* — кабинет (12 inline-границ #e4e4e4)
 * .single-game / .about-game / .developer-game / .comment-game
 * UM-формы / festival слайдер / stream-schedule плагин
 * =====================================================================
 */

/* --- ГЛАВНОЕ: серые секции на single-games и т.п. --- */
html[lang] body.admin-theme-dark .gray-section,
html[lang] body.admin-theme-dark .gray-section-row,
html[lang] body.admin-theme-dark .about-game,
html[lang] body.admin-theme-dark .developer-game,
html[lang] body.admin-theme-dark .comment-game,
html[lang] body.admin-theme-dark .game-comments,
html[lang] body.admin-theme-dark .fanat-game,
html[lang] body.admin-theme-dark .experts-game,
html[lang] body.admin-theme-dark .game-updates-section {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- .left-title — без собственной подложки (наследует фон строки),
       .right-field (#f3f3f3) — на card-фоне --- */
html[lang] body.admin-theme-dark .gray-section .gray-section-row .left-title,
html[lang] body.admin-theme-dark .gray-section-row .left-title,
html[lang] body.admin-theme-dark .left-title {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--igp-text-primary) !important;
}
html[lang] body.admin-theme-dark .gray-section .gray-section-row .right-field,
html[lang] body.admin-theme-dark .gray-section-row .right-field,
html[lang] body.admin-theme-dark .right-field {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--igp-text-primary) !important;
}
html[lang] body.admin-theme-dark .gray-section-row {
    border-bottom-color: var(--igp-border-primary) !important;
}

/* --- .lozung (заголовки секций с фоном из ACF $red1) ---
   Оставляем красный фирменный фон, но текст должен оставаться белым. --- */
html[lang] body.admin-theme-dark .lozung,
html[lang] body.admin-theme-dark .lozung strong,
html[lang] body.admin-theme-dark .lozung h1,
html[lang] body.admin-theme-dark .lozung h2,
html[lang] body.admin-theme-dark .lozung .breadcrumbs,
html[lang] body.admin-theme-dark .lozung .breadcrumbs * {
    color: var(--igp-btn-text) !important;
}

/* --- Single game: галерея, кнопки, slick --- */
html[lang] body.admin-theme-dark .single-game,
html[lang] body.admin-theme-dark .single-game-gallery,
html[lang] body.admin-theme-dark .gameslider-main,
html[lang] body.admin-theme-dark .gameslider-nav {
    background: transparent !important;
    background-color: transparent !important;
}

/* --- ЛИЧНЫЙ КАБИНЕТ (.wdp-lk*) — много inline border:#e4e4e4 --- */
html[lang] body.admin-theme-dark .wdp-lk,
html[lang] body.admin-theme-dark .wdp-lk-top-panel,
html[lang] body.admin-theme-dark .wdp-lk-collapse-menu,
html[lang] body.admin-theme-dark .wdp-lk-collapse-menu-panel,
html[lang] body.admin-theme-dark .wdp-lk-mainframe,
html[lang] body.admin-theme-dark .wdp-lk-tab,
html[lang] body.admin-theme-dark .wdp-lk-tab-content,
html[lang] body.admin-theme-dark .wdp-lk-user-panel,
html[lang] body.admin-theme-dark .wdp-lk-user-panel-text,
html[lang] body.admin-theme-dark .wdp-lk-user-panel-menu,
html[lang] body.admin-theme-dark .wdp-lk-user-role-profile,
html[lang] body.admin-theme-dark .wdp-lk-main-panel,
html[lang] body.admin-theme-dark .wdp-user-panel,
html[lang] body.admin-theme-dark .wdp-user-panel-info {
    /* .lk-panel-button намеренно исключён — у него красная плашка с
       SVG-иконкой «бургер» (см. css/main.css ≤1024px), которая ломалась
       перебивкой фона. Стили мобильной кнопки/панели — в css/site.css. */
    background: var(--igp-surface, #232323) !important;
    background-color: var(--igp-surface, #232323) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border, #353535) !important;
}
/* Промежуточные обёртки ЛК — фон страницы (≤2 видимых уровня в любой ветке) */
html[lang] body.admin-theme-dark .wdp-lk,
html[lang] body.admin-theme-dark .wdp-lk-main-panel{
    background: var(--igp-bg, #181818) !important;
    background-color: var(--igp-bg, #181818) !important;
}
/* Inline border-bottom: 2px solid #e4e4e4 в шаблонах кабинета —
   перебиваем атрибут селектором [style*="..."] */
html[lang] body.admin-theme-dark [style*="border-bottom"][style*="#e4e4e4"],
html[lang] body.admin-theme-dark [style*="border-bottom"][style*="#E4E4E4"],
html[lang] body.admin-theme-dark [style*="border:"][style*="#e4e4e4"] {
    border-bottom-color: var(--igp-border-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- ЧАТ в кабинете --- */
html[lang] body.admin-theme-dark .ndg-chat,
html[lang] body.admin-theme-dark .chat-screen,
html[lang] body.admin-theme-dark .chat-message-form,
html[lang] body.admin-theme-dark .message {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}
html[lang] body.admin-theme-dark .message.mine {
    background: var(--igp-brand-blue) !important;
    background-color: var(--igp-brand-blue) !important;
    color: var(--igp-btn-text) !important;
}

/* --- Игровые комментарии (особо проблемные классы) --- */
html[lang] body.admin-theme-dark .game-comments .game-comment,
html[lang] body.admin-theme-dark .game-comments .game-comment .autor,
html[lang] body.admin-theme-dark .game-comments .game-comment .comment-body,
html[lang] body.admin-theme-dark .reply-comment,
html[lang] body.admin-theme-dark .reply-form textarea,
html[lang] body.admin-theme-dark .comment-form textarea,
html[lang] body.admin-theme-dark .comment-lk,
html[lang] body.admin-theme-dark .comment-body .comment-content {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}
html[lang] body.admin-theme-dark .game-comments .game-comment .autor h3,
html[lang] body.admin-theme-dark .game-comments .game-comment .autor span,
html[lang] body.admin-theme-dark .game-comments .game-comment .autor *,
html[lang] body.admin-theme-dark .reply-comment * {
    color: var(--igp-text-primary) !important;
}

/* --- Карточки игр в архиве (.game-item с фоном-обложкой) --- */
html[lang] body.admin-theme-dark .game-item {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
}
/* .game-item-thumb имеет inline background: url(...) — не трогаем фон */

/* --- Поля и форма голосования (.vote-panel) --- */
html[lang] body.admin-theme-dark .vote-panel,
html[lang] body.admin-theme-dark .vote-panel .gray-section-row {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
}
/* .left-title / .right-field в vote-panel — без подложки, наследуют фон строки */
html[lang] body.admin-theme-dark .vote-panel .left-title,
html[lang] body.admin-theme-dark .vote-panel .right-field {
    background: transparent !important;
    background-color: transparent !important;
    color: var(--igp-text-primary) !important;
}

/* --- Sidebar для архива игр (#games-sidebar) --- */
html[lang] body.admin-theme-dark #games-sidebar,
html[lang] body.admin-theme-dark #games-sidebar .sf-field-reset,
html[lang] body.admin-theme-dark .ndg-sidebar,
html[lang] body.admin-theme-dark .ndg-sidebar-page,
html[lang] body.admin-theme-dark .ndg-sidebar-page-content,
html[lang] body.admin-theme-dark .searchandfilter,
html[lang] body.admin-theme-dark .searchandfilter input,
html[lang] body.admin-theme-dark .searchandfilter select,
html[lang] body.admin-theme-dark .searchandfilter ul li {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- Уведомления игры (game-notice) --- */
html[lang] body.admin-theme-dark .game-notice,
html[lang] body.admin-theme-dark .game-notice-warning {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-strong) !important;
}

/* --- Stream Schedule плагин (iss-*) --- */
html[lang] body.admin-theme-dark .iss-calendar-wrap,
html[lang] body.admin-theme-dark .iss-calendar-grid,
html[lang] body.admin-theme-dark .iss-day,
html[lang] body.admin-theme-dark .iss-day-details,
html[lang] body.admin-theme-dark .iss-today,
html[lang] body.admin-theme-dark .iss-stream-card,
html[lang] body.admin-theme-dark .iss-stream-card-body,
html[lang] body.admin-theme-dark .iss-stream-card-cover,
html[lang] body.admin-theme-dark .iss-stream-card-clock,
html[lang] body.admin-theme-dark .iss-clock-time,
html[lang] body.admin-theme-dark .iss-stream-card-streamer,
html[lang] body.admin-theme-dark .iss-modal,
html[lang] body.admin-theme-dark .iss-modal-content,
html[lang] body.admin-theme-dark .iss-modal-title,
html[lang] body.admin-theme-dark .iss-game-streams,
html[lang] body.admin-theme-dark .iss-game-streams-title,
html[lang] body.admin-theme-dark .iss-form-group,
html[lang] body.admin-theme-dark .iss-form-group label,
html[lang] body.admin-theme-dark .iss-tab,
html[lang] body.admin-theme-dark .iss-day-number,
html[lang] body.admin-theme-dark .iss-stream-card-game,
html[lang] body.admin-theme-dark .iss-calendar-hint,
html[lang] body.admin-theme-dark .iss-nav-btn,
html[lang] body.admin-theme-dark .iss-about-role {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}
/* iss-clock-date — оставляем фирменный red фон */
html[lang] body.admin-theme-dark .iss-clock-date {
    color: var(--igp-btn-text) !important;
}
/* Кнопки-стрелки навигации по месяцам: на тёмной теме делаем фон-карту с тёмной
   рамкой (в плагине белый фон → стрелка терялась). Стрелка (текст ←/→) красится
   общим тёмным text-сбросом в светлый — на тёмном фоне теперь читается. */
html[lang] body.admin-theme-dark .iss-nav-btn:hover {
    border-color: var(--igp-accent) !important;
    color: var(--igp-accent) !important;
}
/* Шапка дней недели календаря. В site.css ей задан background: var(--igp-text)
   + белый текст — на светлой теме это тёмная нейтральная плашка (ок), а на
   тёмной теме --igp-text становится светлым → белый текст пропадает. На тёмной
   теме принудительно держим тёмный фон-поверхность под белым текстом. */
html[lang] body.admin-theme-dark .iss-day-header,
html[lang] body.admin-theme-dark .iss-weekday,
html[lang] body.admin-theme-dark .iss-calendar-header {
    background: var(--igp-surface-alt) !important;
    background-color: var(--igp-surface-alt) !important;
    border-color: var(--igp-border) !important;
    color: var(--igp-text-primary) !important;
}

/* --- Festival страницы --- */
html[lang] body.admin-theme-dark .nomination,
html[lang] body.admin-theme-dark .nomination-grid,
html[lang] body.admin-theme-dark .nomination-grid .nomination-item,
html[lang] body.admin-theme-dark .nomination-text,
html[lang] body.admin-theme-dark .nomination-icon,
html[lang] body.admin-theme-dark .nomination-groups,
html[lang] body.admin-theme-dark .nomination-item-accordeon,
html[lang] body.admin-theme-dark .expert,
html[lang] body.admin-theme-dark .expert .expert_title-grid,
html[lang] body.admin-theme-dark .experts-item,
html[lang] body.admin-theme-dark .sreaamers-grid,
html[lang] body.admin-theme-dark .streamer-name,
html[lang] body.admin-theme-dark .partners,
html[lang] body.admin-theme-dark .fest-text,
html[lang] body.admin-theme-dark .faq,
html[lang] body.admin-theme-dark .faq-accordion,
html[lang] body.admin-theme-dark .faq-accordion .panel,
html[lang] body.admin-theme-dark .panel,
html[lang] body.admin-theme-dark .toggle,
html[lang] body.admin-theme-dark .answer,
html[lang] body.admin-theme-dark .pobediteli,
html[lang] body.admin-theme-dark .f-w-item,
html[lang] body.admin-theme-dark .w-collapse-panel,
html[lang] body.admin-theme-dark .w-featured,
html[lang] body.admin-theme-dark .w-panel {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* .banner имеет inline background: url(...) — картинку-баннер не трогаем */

/* --- Ultimate Member формы (.um-*) --- */
html[lang] body.admin-theme-dark .um-field-type_terms_conditions,
html[lang] body.admin-theme-dark .um-account-side,
html[lang] body.admin-theme-dark .um-modal-body,
html[lang] body.admin-theme-dark .um-modal-content,
html[lang] body.admin-theme-dark .um-members-pagi,
html[lang] body.admin-theme-dark .um-tip {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}
html[lang] body.admin-theme-dark .um-field input,
html[lang] body.admin-theme-dark .um-field textarea,
html[lang] body.admin-theme-dark .um-field select,
html[lang] body.admin-theme-dark .um-field-label,
html[lang] body.admin-theme-dark .um-field-area input,
html[lang] body.admin-theme-dark .um-field-area textarea {
    background: var(--igp-bg-input) !important;
    background-color: var(--igp-bg-input) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}

/* --- Отзывы / Testimonials (виджет) --- */
html[lang] body.admin-theme-dark .testimonials,
html[lang] body.admin-theme-dark .testimonial-slider,
html[lang] body.admin-theme-dark .testimonial-item,
html[lang] body.admin-theme-dark .testimonial-popup,
html[lang] body.admin-theme-dark .testimonial-text,
html[lang] body.admin-theme-dark .testimonial-title,
html[lang] body.admin-theme-dark .testiomonial-excerpt {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
}

/* --- Голосование Yes/No (vote-yes/vote-no — оставляем зелёный/красный) --- */
html[lang] body.admin-theme-dark .vote-btn {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}
html[lang] body.admin-theme-dark .selected-yes,
html[lang] body.admin-theme-dark .selected-no {
    border-color: var(--igp-text-primary) !important;
}

/* --- Вакансии и резюме --- */
html[lang] body.admin-theme-dark .vacancy-top,
html[lang] body.admin-theme-dark .vacancy-filter,
html[lang] body.admin-theme-dark .vacancy-grid,
html[lang] body.admin-theme-dark .vacancy-item,
html[lang] body.admin-theme-dark .vacancy-toggle-panel,
html[lang] body.admin-theme-dark .vacancy-panel,
html[lang] body.admin-theme-dark .vacancy-title,
html[lang] body.admin-theme-dark .vacancy-company,
html[lang] body.admin-theme-dark .vacancy-type,
html[lang] body.admin-theme-dark .vacancy-salary,
html[lang] body.admin-theme-dark .vacancy-time {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}
html[lang] body.admin-theme-dark .vacancy-item.archived {
    opacity: 0.6;
}

/* --- Блог: post-gazeta и его потроха --- */
html[lang] body.admin-theme-dark .post-gazeta,
html[lang] body.admin-theme-dark .ndg-blog-loop-info,
html[lang] body.admin-theme-dark .ndg-blog-loop-excerpt,
html[lang] body.admin-theme-dark .ndg-search-blog-meta {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* --- Форма комментариев / send-btn --- */
html[lang] body.admin-theme-dark .gameplay-btn,
html[lang] body.admin-theme-dark .trailer-btn {
    background: var(--igp-bg-tertiary) !important;
    background-color: var(--igp-bg-tertiary) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}

/* --- Chosen.js (jQuery select alternative) --- */
html[lang] body.admin-theme-dark .chosen-single,
html[lang] body.admin-theme-dark .chosen-container,
html[lang] body.admin-theme-dark .chosen-results,
html[lang] body.admin-theme-dark .chosen-drop {
    background: var(--igp-bg-input) !important;
    background-color: var(--igp-bg-input) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-secondary) !important;
}

/* --- TNX popup (всплывающее "спасибо") --- */
html[lang] body.admin-theme-dark .tnx-popup{
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
}
html[lang] body.admin-theme-dark .tnx-popup span {
    color: var(--igp-text-primary) !important;
}

/* --- Inline color:#dc2126 (красный кабинет в header) — оставляем красным,
   но используем фирменный --- */
html[lang] body.admin-theme-dark [style*="color:#dc2126"],
html[lang] body.admin-theme-dark [style*="color: #dc2126"] {
    color: var(--igp-brand-red) !important;
}

/* --- Inline color:#000 для ссылок/партнёров --- */
html[lang] body.admin-theme-dark [style*="color: #000"][href],
html[lang] body.admin-theme-dark [style*="color:#000"][href] {
    color: var(--igp-text-link) !important;
}

/* --- Yandex.Metrika и WP-rocket placeholders — невидимые элементы, не трогаем --- */
html[lang] body.admin-theme-dark .ymaps-2-1-79-events-pane,
html[lang] body.admin-theme-dark .rocket-lazyload,
html[lang] body.admin-theme-dark noscript {
    background: transparent !important;
}

/* --- Cookies banner (.wt-cli-*) --- */
html[lang] body.admin-theme-dark #wt-cli-cookie-bar,
html[lang] body.admin-theme-dark .wt-cli-cookie-bar-container,
html[lang] body.admin-theme-dark .cli-bar-container {
    background: var(--igp-bg-secondary) !important;
    background-color: var(--igp-bg-secondary) !important;
    color: var(--igp-text-primary) !important;
}

/* --- Универсальная страховка для типичных контейнеров с белым фоном
   inline-style которое мы могли пропустить выше. --- */
html[lang] body.admin-theme-dark [style*="background-color: rgb(255"],
html[lang] body.admin-theme-dark [style*="background-color:rgb(255"],
html[lang] body.admin-theme-dark [style*="background: rgb(255"],
html[lang] body.admin-theme-dark [style*="background:rgb(255"] {
    background-color: var(--igp-bg-card) !important;
}

/* --- Главная (front-page): карточки/секции на var(--igp-surface) ---
   Эти блоки уже задают тёмный фон через переменную (data-theme="dark"
   → --igp-surface:#232323). Но универсальный сброс выше делает их
   прозрачными. Возвращаем тот же surface-фон через перебивку.

   ВАЖНО про специфичность: блоки <article>/<section>/<details>
   (.home-card, .home-stages, .home-stages-ocard, .home-faq__item)
   ловит только лёгкий сброс (`section/article {…}` без :not, спец. 0,2,3),
   поэтому правила ниже (спец. 0,3,2) его перебивают. А вот блоки <div>
   (.home-nominations__card, .home-festival__inner) ловит ТЯЖЁЛЫЙ сброс
   `div[class]:not()…×14` (спец. ~0,30,4) — его перебиваем отдельным
   правилом с такой же :not()-цепочкой ниже. --- */
html[lang] body.admin-theme-dark .home-card,
html[lang] body.admin-theme-dark .home-stages,
html[lang] body.admin-theme-dark .home-stages-ocard,
html[lang] body.admin-theme-dark .home-faq__item {
    background: var(--igp-surface, #232323) !important;
    background-color: var(--igp-surface, #232323) !important;
    color: var(--igp-text, #f3f3f3) !important;
}

/* DIV-карточки главной (.home-nominations__card, .home-festival__inner)
   исключены из тяжёлого сброса выше (см. :not(.home-nominations__card)…),
   но остаётся простой сброс `html body.admin-theme-dark div` (спец. 0,2,3
   с !important). Перебиваем его коротким `div.<class>` (спец. 0,3,3). */
html body.admin-theme-dark div.home-nominations__card,
html body.admin-theme-dark div.home-festival__inner {
    background: var(--igp-surface, #232323) !important;
    background-color: var(--igp-surface, #232323) !important;
    color: var(--igp-text, #f3f3f3) !important;
}
/* Задняя карточка номинаций — полупрозрачная по анимации (opacity);
   фон базовый, не surface. */
html body.admin-theme-dark div.home-nominations__card--back {
    background: var(--igp-bg, #181818) !important;
    background-color: var(--igp-bg, #181818) !important;
}

/* --- Страница лауреатов: карточки победителей/финалистов на surface ---
   DIV-блоки, исключены из тяжёлого сброса выше; перебиваем лёгкий сброс
   `html body.admin-theme-dark div` коротким `div.<class>` (спец. 0,3,2). */
html body.admin-theme-dark div.laureaty-winner,
html body.admin-theme-dark div.laureaty-finalist {
    background: var(--igp-surface, #232323) !important;
    background-color: var(--igp-surface, #232323) !important;
    color: var(--igp-text, #f3f3f3) !important;
}

/* --- Остатки footer.css: пагинация и контент записи --- */
html[lang] body.admin-theme-dark .page-numbers li,
html[lang] body.admin-theme-dark .postsingle .hentry {
    background: var(--igp-bg-card) !important;
    background-color: var(--igp-bg-card) !important;
    color: var(--igp-text-primary) !important;
    border-color: var(--igp-border-primary) !important;
}

/* ===== UI ПЕРЕКЛЮЧАТЕЛЯ (виден всегда, когда админ-тема включена) ===== */
.admin-theme-toggle {
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 99999;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: var(--igp-bg-card, #ffffff);
    color: var(--igp-text-primary, #000000);
    border: 1px solid var(--igp-border-secondary, #dbdbdb);
    border-radius: 24px;
    box-shadow: 0 4px 12px var(--igp-shadow-md, rgba(0, 0, 0, 0.15));
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 13px;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.admin-theme-toggle:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px var(--igp-shadow-lg, rgba(0, 0, 0, 0.25));
}

.admin-theme-toggle__icon {
    display: inline-block;
    width: 18px;
    height: 18px;
    line-height: 18px;
    text-align: center;
    font-size: 16px;
}

.admin-theme-toggle__label {
    font-weight: 500;
}

.admin-theme-toggle__badge {
    display: inline-block;
    padding: 2px 6px;
    margin-left: 4px;
    background: var(--igp-brand-red, #C23016);
    color: var(--igp-btn-text);
    border-radius: 8px;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

@media (max-width: 600px) {
    .admin-theme-toggle {
        bottom: 12px;
        right: 12px;
        padding: 8px 12px;
        font-size: 12px;
    }
}
