/* Resharper disable all */

/*
 * Контрастность текста во всём приложении (светлая + тёмная тема).
 * Подключается ПОСЛЕ app.min.css, вендорную тему UBold не трогаем.
 *
 * ПРИНЦИП: оттенки акцентов остаются оригинальными (скин flat), меняется
 * только текст — светлый на тёмном фоне становится светлее, тёмный на
 * светлом фоне становится темнее. Плюс в тёмной теме вся лестница фонов
 * (страница / карточка / меню / топбар) опущена на ступень вниз с сохранением
 * порядка: чем темнее подложка, тем сильнее по ней работает светлый текст.
 *
 * Оттенки палитры --theme-* не меняются вообще: заливки кнопок, бейджей
 * и графиков остаются такими, какими их задаёт скин flat.
 *
 * Тема UBold целиком построена на CSS-переменных --theme-*, и почти весь
 * текст приложения наследует четыре токена, поэтому правок нужно немного:
 *   --theme-body-color       основной текст, поля ввода (.form-control), подписи;
 *   --theme-heading-color    заголовки h1-h6, заголовки карточек;
 *   --theme-emphasis-color   выделенный текст (.text-emphasis, strong-блоки темы);
 *   --theme-secondary-color  приглушённый текст (.text-muted, 88 использований).
 * У бокового меню и топбара текст свой, отдельными токенами — они ниже.
 *
 * Ручки настройки — блоки --ac-* и группы «текст» в начале каждой секции.
 *
 * Специфичность подобрана под селекторы темы:
 *   html[data-skin=flat]                       (0,1,1) -> html[data-skin]                       (0,1,1) + порядок
 *   [data-bs-theme=dark][data-skin=flat]       (0,2,0) -> html[data-skin][data-bs-theme=dark]    (0,2,1)
 *   html[data-skin=flat][data-menu-color=...]  (0,2,1) -> html[data-skin][data-menu-color]       (0,2,1) + порядок
 * Селекторы намеренно без значения скина — работают для любого скина из js/config.js.
 */

/* ------------------------------------------------------------------ *
 * Светлая тема — текст темнее
 * ------------------------------------------------------------------ */
html[data-skin] {
    /* Текст. В скобках контраст на белом фоне, было -> стало. */
    --theme-body-color: #262933; /* #4c4c5c, 8.4:1 -> 14.1:1 */
    --theme-body-color-rgb: 38, 41, 51;
    --theme-heading-color: #101219; /* было inherit -> 17.6:1 */
    --theme-emphasis-color: #101219; /* rgba(76,76,92,.75), 5.5:1 -> 17.6:1 */
    --theme-emphasis-color-rgb: 16, 18, 25;
    --theme-secondary-color: #5b6472; /* #9ba6b7, 2.6:1 -> 6.1:1 */
    --theme-secondary-color-rgb: 91, 100, 114;
    --theme-tertiary-color: #7b8492; /* rgba(76,76,92,.5), 3.3:1 -> 4.2:1 */
    --theme-tertiary-color-rgb: 123, 132, 146;

    /*
     * ПАЛИТРА — сдвинута на «дельту бренда».
     *
     * Эталон взят с stage.arvizio.com (--brand-green / --accent = #44d62c).
     * Разница с success скина flat (#22c55e) в HSL:
     *     тон -30.6°, насыщенность -3.1 пп, светлота +5.3 пп
     * Насыщенность и светлота применены ко всем акцентам, тон — только к
     * зелёному: поворот на -30.6° увёл бы danger в малиновый, а warning
     * в салатовый. За счёт этого success становится ровно брендовым
     * #44d62c, а остальные цвета получают тот же подъём яркости и
     * остаются собой по тону.
     *
     * Ручка настройки — семь значений ниже; всё остальное в файле от них
     * производное. Чтобы вернуть исходную палитру, подставьте
     * #4f46e5 #06b6d4 #22c55e #0ea5e9 #f59e0b #ef4444 #a855f7.
     */
    --ac-primary: #6861e5; /* было #4f46e5 */
    --ac-secondary: #0bcaea; /* было #06b6d4 */
    --ac-success: #44d62c; /* было #22c55e — бренд */
    --ac-info: #24afee; /* было #0ea5e9 */
    --ac-warning: #f3a728; /* было #f59e0b */
    --ac-danger: #ee6060; /* было #ef4444 */
    --ac-purple: #b571f6; /* было #a855f7 */

    --ac-primary-rgb: 104, 97, 229;
    --ac-secondary-rgb: 11, 202, 234;
    --ac-success-rgb: 68, 214, 44;
    --ac-info-rgb: 36, 175, 238;
    --ac-warning-rgb: 243, 167, 40;
    --ac-danger-rgb: 238, 96, 96;
    --ac-purple-rgb: 181, 113, 246;

    /*
     * Цветной ТЕКСТ (.text-*, .badge-soft-*, ссылки) — те же оттенки,
     * приглушённые до читаемых на белом. Тема красила их в саму заливку,
     * из-за чего .text-success давал ~2:1.
     *
     * Дельта бренда сюда НЕ применяется по светлоте: +5.3 пп на светлом
     * фоне уронили бы success с 5.0:1 до 3.9:1, warning до 4.1:1 — то есть
     * ровно то, ради чего сделан этот файл. Зелёному повёрнут только тон,
     * контраст при этом не меняется (5.02 -> 5.03).
     */
    --ac-primary-text: #4338ca; /* 8.2:1 */
    --ac-secondary-text: #0e7490; /* 5.3:1 */
    --ac-success-text: #248015; /* 5.0:1, тон повёрнут вслед за брендом */
    --ac-info-text: #0369a1; /* 5.9:1 */
    --ac-warning-text: #b45309; /* 5.0:1 */
    --ac-danger-text: #b91c1c; /* 6.5:1 */
    --ac-purple-text: #7e22ce; /* 7.0:1 */

    /*
     * Акцент бокового меню и топбара, см. секцию в конце файла.
     * Здесь намеренно чистый success, а не приглушённый --ac-success-text:
     * это акцент, а не текст, и он должен оставаться ярким. Один и тот же
     * оттенок работает в обеих темах — #22c55e ярче исходного #1ab394.
     */
    --ac-menu-accent: var(--theme-success);

    /*
     * Наведение на кнопки со сплошной заливкой.
     * Нужны своими токенами, потому что тема берёт сюда
     * --theme-*-text-emphasis, а он ниже отдан под цвет текста: без этих
     * строк кнопка при наведении уехала бы в цвет надписи.
     * Значения — исходные -text-emphasis скина flat, сдвинутые на ту же
     * дельту бренда, что и заливки: наведение сохраняет прежнюю разницу
     * с основным цветом кнопки.
     */
    --ac-primary-hover: #463fbd; /* было #3b35ac */
    --ac-secondary-hover: #099db6; /* было #05899f */
    --ac-success-hover: #34a821; /* было #1a9447 */
    --ac-info-hover: #108dc5; /* было #0b7caf */
    --ac-warning-hover: #cf870d; /* было #b87708 */
    --ac-danger-hover: #c33e3e; /* было #b33333 */
    --ac-purple-hover: #8b55bf; /* было #7e40b9 */

    /*
     * Значки состояний внутри поля ввода (галочка и восклицательный знак
     * справа в .form-control). Тема зашивает цвет прямо в data:URI
     * (app.css:2897 и 2993), подставить var() внутрь url() нельзя,
     * поэтому оба значка выписаны целиком. Разметка SVG — из темы,
     * изменены только %23-коды цвета: они совпадают с заливкой кнопки.
     * Один набор на обе темы — --ac-success и --ac-danger в тёмной те же.
     */
    --ac-form-valid-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2344d62c' d='M2.3 6.73.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
    --ac-form-invalid-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23ee6060'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23ee6060' stroke='none'/%3e%3c/svg%3e");

    /* --- маппинг на токены темы, ниже править не нужно --- */
    --theme-primary: var(--ac-primary);
    --theme-secondary: var(--ac-secondary);
    --theme-success: var(--ac-success);
    --theme-info: var(--ac-info);
    --theme-warning: var(--ac-warning);
    --theme-danger: var(--ac-danger);
    --theme-purple: var(--ac-purple);

    --theme-primary-rgb: var(--ac-primary-rgb);
    --theme-secondary-rgb: var(--ac-secondary-rgb);
    --theme-success-rgb: var(--ac-success-rgb);
    --theme-info-rgb: var(--ac-info-rgb);
    --theme-warning-rgb: var(--ac-warning-rgb);
    --theme-danger-rgb: var(--ac-danger-rgb);
    --theme-purple-rgb: var(--ac-purple-rgb);

    --theme-primary-bg-subtle: rgba(var(--ac-primary-rgb), 0.15);
    --theme-secondary-bg-subtle: rgba(var(--ac-secondary-rgb), 0.15);
    --theme-success-bg-subtle: rgba(var(--ac-success-rgb), 0.15);
    --theme-info-bg-subtle: rgba(var(--ac-info-rgb), 0.15);
    --theme-warning-bg-subtle: rgba(var(--ac-warning-rgb), 0.15);
    --theme-danger-bg-subtle: rgba(var(--ac-danger-rgb), 0.15);
    --theme-purple-bg-subtle: rgba(var(--ac-purple-rgb), 0.15);

    --theme-primary-border-subtle: rgba(var(--ac-primary-rgb), 0.3);
    --theme-secondary-border-subtle: rgba(var(--ac-secondary-rgb), 0.3);
    --theme-success-border-subtle: rgba(var(--ac-success-rgb), 0.3);
    --theme-info-border-subtle: rgba(var(--ac-info-rgb), 0.3);
    --theme-warning-border-subtle: rgba(var(--ac-warning-rgb), 0.3);
    --theme-danger-border-subtle: rgba(var(--ac-danger-rgb), 0.3);
    --theme-purple-border-subtle: rgba(var(--ac-purple-rgb), 0.3);

    /* Валидация полей, см. секцию «Поля ввода» ниже */
    --theme-form-valid-border-color: var(--ac-success);
    --theme-form-invalid-border-color: var(--ac-danger);
    --theme-form-valid-color: var(--ac-success-text);
    --theme-form-invalid-color: var(--ac-danger-text);

    /* Серии графиков (app.js:1124 читает их через getComputedStyle) */
    --theme-chart-primary: var(--ac-primary);
    --theme-chart-primary-rgb: var(--ac-primary-rgb);
    --theme-chart-secondary: var(--ac-secondary);
    --theme-chart-secondary-rgb: var(--ac-secondary-rgb);
    --theme-chart-alpha: var(--ac-success);
    --theme-chart-alpha-rgb: var(--ac-success-rgb);
    --theme-chart-beta: var(--ac-danger);
    --theme-chart-beta-rgb: var(--ac-danger-rgb);
    --theme-chart-gamma: var(--ac-warning);
    --theme-chart-gamma-rgb: var(--ac-warning-rgb);
    --theme-chart-delta: var(--ac-info);
    --theme-chart-delta-rgb: var(--ac-info-rgb);
    --theme-chart-zeta: var(--ac-purple);
    --theme-chart-zeta-rgb: var(--ac-purple-rgb);

    --theme-primary-text-emphasis: var(--ac-primary-text);
    --theme-secondary-text-emphasis: var(--ac-secondary-text);
    --theme-success-text-emphasis: var(--ac-success-text);
    --theme-info-text-emphasis: var(--ac-info-text);
    --theme-warning-text-emphasis: var(--ac-warning-text);
    --theme-danger-text-emphasis: var(--ac-danger-text);
    --theme-purple-text-emphasis: var(--ac-purple-text);

    --theme-link-color: var(--ac-primary-text);
    --theme-link-color-rgb: var(--ac-primary-rgb);
    --theme-link-hover-color: var(--ac-primary-hover);
}

/* ------------------------------------------------------------------ *
 * Тёмная тема — текст светлее, фон возвращён к исходному тёмному
 * ------------------------------------------------------------------ */
html[data-skin][data-bs-theme=dark] {
    /* Текст. В скобках контраст на фоне карточки #1b1c22, было -> стало. */
    --theme-body-color: #e3e9f2; /* #aab8c5, 8.4:1 -> 13.9:1 */
    --theme-body-color-rgb: 227, 233, 242;
    --theme-heading-color: #f4f7fb; /* #aab8c5, 8.4:1 -> 16.0:1 */
    --theme-emphasis-color: #ffffff; /* #b0bbc5, 8.9:1 -> 17.4:1 */
    --theme-emphasis-color-rgb: 255, 255, 255;
    --theme-secondary-color: #aab8c8; /* #8391a2, 5.3:1 -> 8.4:1 */
    --theme-secondary-color-rgb: 170, 184, 200;
    --theme-tertiary-color: #9aa7b7;
    --theme-tertiary-color-rgb: 154, 167, 183;

    /*
     * Цветной текст — те же оттенки, осветлённые до читаемых на тёмном.
     * Тема этого не делала: html[data-skin=flat] (0,1,1) перебивает
     * [data-bs-theme=dark] (0,1,0), поэтому в тёмной теме оставались
     * тёмные #3b35ac, #1a9447 и т.п. — почти неразличимые на фоне.
     */
    --ac-primary-text: #b3aaff; /* 8.0:1 */
    --ac-secondary-text: #67e8f9; /* 12.5:1 */
    --ac-success-text: #96ef86; /* 12.4:1, тон повёрнут вслед за брендом */
    --ac-info-text: #7dd3fc; /* 11.0:1 */
    --ac-warning-text: #fcd34d; /* 12.7:1 */
    --ac-danger-text: #fca5a5; /* 8.9:1 */
    --ac-purple-text: #d8b4fe; /* 9.6:1 */

    /*
     * ПОВЕРХНОСТИ. Вся лестница фонов опущена на одну ступень вниз с
     * сохранением порядка: страница темнее карточки, карточка темнее меню,
     * меню темнее топбара. Оттенок (сине-фиолетовый серый) сохранён.
     * Светлый текст по более тёмной подложке читается выразительнее:
     * основной текст на карточке 13.9:1 -> 15.0:1.
     * Границы --theme-border-color намеренно не трогаем — на осветлённом
     * относительно фона они и так стали заметнее.
     */
    --theme-body-bg: #0e0f14; /* было #17181e, фон страницы */
    --theme-body-bg-rgb: 14, 15, 20;
    --theme-secondary-bg: #121319; /* было #1b1c22, карточки, модалки, выпадашки */
    --theme-secondary-bg-rgb: 18, 19, 25;
    --theme-tertiary-bg: #1b1c25; /* было #272832, полосы таблиц, disabled-поля */
    --theme-tertiary-bg-rgb: 27, 28, 37;

    /*
     * Заливка кнопок и наведение здесь НЕ переопределяются: подпись на них
     * белая в обеих темах, значит и требования к светлоте заливки те же.
     * Значения наследуются из блока светлой темы.
     */
}

/* ------------------------------------------------------------------ *
 * Кнопки со сплошной заливкой
 *
 * Заливка и цвет подписи — оригинальные, из темы. Здесь только наведение
 * и нажатие: тема берёт их из --theme-*-text-emphasis (app.css:17011
 * и далее), а этот токен отдан под цвет текста.
 * ------------------------------------------------------------------ */
.btn-primary {
    --theme-btn-hover-bg: var(--ac-primary-hover);
    --theme-btn-hover-border-color: var(--ac-primary-hover);
    --theme-btn-active-bg: var(--ac-primary-hover);
    --theme-btn-active-border-color: var(--ac-primary-hover);
}

.btn-secondary {
    --theme-btn-hover-bg: var(--ac-secondary-hover);
    --theme-btn-hover-border-color: var(--ac-secondary-hover);
    --theme-btn-active-bg: var(--ac-secondary-hover);
    --theme-btn-active-border-color: var(--ac-secondary-hover);
}

.btn-success {
    --theme-btn-hover-bg: var(--ac-success-hover);
    --theme-btn-hover-border-color: var(--ac-success-hover);
    --theme-btn-active-bg: var(--ac-success-hover);
    --theme-btn-active-border-color: var(--ac-success-hover);
}

.btn-info {
    --theme-btn-hover-bg: var(--ac-info-hover);
    --theme-btn-hover-border-color: var(--ac-info-hover);
    --theme-btn-active-bg: var(--ac-info-hover);
    --theme-btn-active-border-color: var(--ac-info-hover);
}

.btn-warning {
    --theme-btn-hover-bg: var(--ac-warning-hover);
    --theme-btn-hover-border-color: var(--ac-warning-hover);
    --theme-btn-active-bg: var(--ac-warning-hover);
    --theme-btn-active-border-color: var(--ac-warning-hover);
}

.btn-danger {
    --theme-btn-hover-bg: var(--ac-danger-hover);
    --theme-btn-hover-border-color: var(--ac-danger-hover);
    --theme-btn-active-bg: var(--ac-danger-hover);
    --theme-btn-active-border-color: var(--ac-danger-hover);
}

.btn-purple {
    --theme-btn-hover-bg: var(--ac-purple-hover);
    --theme-btn-hover-border-color: var(--ac-purple-hover);
    --theme-btn-active-bg: var(--ac-purple-hover);
    --theme-btn-active-border-color: var(--ac-purple-hover);
}

/*
 * Контурные и полупрозрачные кнопки: заливка при наведении остаётся
 * оригинальной, а подпись в спокойном состоянии — это цветной текст
 * на фоне страницы, поэтому берём читаемый вариант оттенка.
 */
.btn-soft-primary, .btn-ghost-primary, .btn-outline-primary {
    --theme-btn-color: var(--ac-primary-text);
}

.btn-soft-secondary, .btn-ghost-secondary, .btn-outline-secondary {
    --theme-btn-color: var(--ac-secondary-text);
}

.btn-soft-success, .btn-ghost-success, .btn-outline-success {
    --theme-btn-color: var(--ac-success-text);
}

.btn-soft-info, .btn-ghost-info, .btn-outline-info {
    --theme-btn-color: var(--ac-info-text);
}

.btn-soft-warning, .btn-ghost-warning, .btn-outline-warning {
    --theme-btn-color: var(--ac-warning-text);
}

.btn-soft-danger, .btn-ghost-danger, .btn-outline-danger {
    --theme-btn-color: var(--ac-danger-text);
}

.btn-soft-purple, .btn-ghost-purple, .btn-outline-purple {
    --theme-btn-color: var(--ac-purple-text);
}

/* ------------------------------------------------------------------ *
 * Цветной текст и мягкие бейджи
 *
 * Тема красит .text-* и .badge-soft-* в саму заливку (--theme-success и т.п.).
 * На фоне страницы это самый нечитаемый вариант: .text-success на белом
 * давал ~2:1. В разметке 35 использований .text-danger и 22 .badge-soft-danger.
 * ------------------------------------------------------------------ */
.text-primary {
    color: var(--ac-primary-text) !important;
}

.text-secondary {
    color: var(--ac-secondary-text) !important;
}

.text-success {
    color: var(--ac-success-text) !important;
}

.text-info {
    color: var(--ac-info-text) !important;
}

.text-warning {
    color: var(--ac-warning-text) !important;
}

.text-danger {
    color: var(--ac-danger-text) !important;
}

.text-purple {
    color: var(--ac-purple-text) !important;
}

.badge-soft-primary {
    --theme-badge-color: var(--ac-primary-text);
}

.badge-soft-secondary {
    --theme-badge-color: var(--ac-secondary-text);
}

.badge-soft-success {
    --theme-badge-color: var(--ac-success-text);
}

.badge-soft-info {
    --theme-badge-color: var(--ac-info-text);
}

.badge-soft-warning {
    --theme-badge-color: var(--ac-warning-text);
}

.badge-soft-danger {
    --theme-badge-color: var(--ac-danger-text);
}

.badge-soft-purple {
    --theme-badge-color: var(--ac-purple-text);
}

/* ------------------------------------------------------------------ *
 * Поля ввода — состояния валидации
 *
 * Тема красит рамку и значок валидного поля в бирюзовый #1abc9c, а
 * невалидного — в розовый #f1556c (app.css:153-156 и 212-215). Оба оттенка
 * не связаны с палитрой скина: рамка и галочка не совпадали с кнопкой,
 * стоящей в той же карточке.
 *
 * Рамка и значок берут саму заливку (--ac-success / --ac-danger) — ровно
 * цвет .btn-success и .btn-danger. Подпись под полем (.valid-feedback,
 * .invalid-feedback) — читаемый вариант оттенка: это текст на фоне
 * карточки, а не акцент; токены заданы выше, в блоке маппинга.
 *
 * Ниже — только значки: их цвет зашит в data:URI темы и через переменную
 * не подставляется. Селекторы повторяют селекторы темы (0,2,0 и 0,3,0),
 * поэтому переопределение работает за счёт порядка подключения файлов.
 * ------------------------------------------------------------------ */
.was-validated .form-control:valid,
.form-control.is-valid {
    background-image: var(--ac-form-valid-icon);
}

.was-validated .form-control:invalid,
.form-control.is-invalid {
    background-image: var(--ac-form-invalid-icon);
}

/*
 * У .form-select значок валидации — вторая картинка фона рядом со
 * стрелкой, тема подставляет его отдельным токеном.
 */
.was-validated .form-select:valid:not([multiple]):not([size]),
.was-validated .form-select:valid:not([multiple])[size="1"],
.form-select.is-valid:not([multiple]):not([size]),
.form-select.is-valid:not([multiple])[size="1"] {
    --theme-form-select-bg-icon: var(--ac-form-valid-icon);
}

.was-validated .form-select:invalid:not([multiple]):not([size]),
.was-validated .form-select:invalid:not([multiple])[size="1"],
.form-select.is-invalid:not([multiple]):not([size]),
.form-select.is-invalid:not([multiple])[size="1"] {
    --theme-form-select-bg-icon: var(--ac-form-invalid-icon);
}

/* ------------------------------------------------------------------ *
 * Боковое меню и топбар
 *
 * У них свои токены текста, наследование от body-color не работает.
 *
 * АКЦЕНТ. Тема ставит в --theme-sidenav-item-active-color бирюзовый #1ab394,
 * не связанный ни с одним цветом палитры, и только в светлой теме — в тёмной
 * там нейтральный #ced6df. Из-за этого светлая и тёмная тема расходились:
 * заголовки разделов меню (.side-nav-title-pill, см. Sidenav.razor.css:9 —
 * он красится тем же токеном) и активный пункт зеленели только в светлой.
 * Обе темы переведены на --ac-menu-accent = чистый success (#22c55e).
 * На белом фоне меню это ~2.3:1 — ниже нормы для текста, но исходный #1ab394
 * давал 2.6:1, то есть было ровно так же. Это осознанный выбор в пользу
 * яркости акцента; читаемый вариант оттенка лежит в --ac-success-text.
 * ------------------------------------------------------------------ */
html[data-skin][data-menu-color=light],
html[data-skin][data-menu-color=gray] {
    --theme-sidenav-item-color: #3f4854; /* #6c757d -> темнее */
    --theme-sidenav-item-hover-color: var(--ac-menu-accent); /* было #1ab394 */
    --theme-sidenav-item-active-color: var(--ac-menu-accent); /* было #1ab394 */
}

html[data-skin][data-topbar-color=light],
html[data-skin][data-topbar-color=gray] {
    --theme-topbar-item-color: #3f4854; /* #6c757d -> темнее */
    --theme-topbar-item-hover-color: var(--ac-menu-accent); /* было #1ab394 */
}

html[data-skin][data-bs-theme=dark][data-menu-color] {
    --theme-sidenav-item-color: #b3c1d1; /* #8495ab -> светлее */
    --theme-sidenav-item-hover-color: var(--ac-menu-accent); /* было #bccee4 */
    --theme-sidenav-item-active-color: var(--ac-menu-accent); /* было #ced6df */
}

html[data-skin][data-bs-theme=dark][data-topbar-color] {
    --theme-topbar-item-color: #ced7e2; /* #adb5bf -> светлее */
    --theme-topbar-item-hover-color: var(--ac-menu-accent); /* было #e0eeff */
}

/*
 * Фоны меню и топбара в тёмной теме — та же ступень вниз, что и у страницы
 * с карточками выше. Варианты gradient и image не перечислены намеренно:
 * там фон задан картинкой/градиентом, подменять его нечем.
 */
html[data-skin][data-bs-theme=dark][data-menu-color=light],
html[data-skin][data-bs-theme=dark][data-menu-color=gray],
html[data-skin][data-bs-theme=dark][data-menu-color=dark] {
    --theme-sidenav-bg: #14151c; /* было #1e1f27 */
    --theme-sidenav-border-color: #23242e; /* было #2c2d38 */
    --theme-sidenav-item-hover-bg: #262d36; /* было #2f3742, он же фон плашек заголовков */
    --theme-sidenav-item-active-bg: #1c1d26; /* было #22232c */
}

html[data-skin][data-bs-theme=dark][data-topbar-color=light],
html[data-skin][data-bs-theme=dark][data-topbar-color=gray],
html[data-skin][data-bs-theme=dark][data-topbar-color=dark] {
    --theme-topbar-bg: #191a22; /* было #252630 */
    --theme-topbar-search-bg: #22232e; /* было #2d2e3c */
    --theme-topbar-search-border: #22232e; /* было #2d2e3c */
}
