/* ============================================================================
   cp.lv — вид панели HostBill в стиле сайта (шаблон Snowlake).

   ЧТО ЭТО. Панель идёт на своей теме 2019 (Bootstrap 4) и CSS сайта не подключает.
   Здесь её вид приводится к сайту БЕЗ правки разметки: файл подключён из
   templates/2019/custom/auth.tpl, а тот включён в header.tpl — значит, работает
   на ВСЕХ страницах панели сразу. Поменял правило здесь — изменилось везде:
   /panel/products/, /panel/clientarea/ccard/, корзина, тикеты, партнёрка.
   Именно поэтому вёрстку страниц трогать не нужно и не следует.

   ОТКУДА ЗНАЧЕНИЯ. Сняты с живых эталонов шаблона Snowlake
   (snowlake.tortoizthemes.com/elements/icon_box и /elements/tabs, секции
   «Icons with Background» и «Tabs with Icons in Box»), локальный исходник —
   template/elements/*.html и template/assets/css/{style,plugins}.css:
     бокс      #fff, border 0, radius 4px, тень 0 5px 20px rgba(0,0,0,.04),
               тень при наведении 0 1px 2px rgba(0,0,0,.07)
     заголовок 20px/500 #404040, текст 16px/28px #606060
     вкладка   иконка НАД подписью, вкладки равной ширины, активная — белая
               плашка с той же тенью, обычная — прозрачная
     кнопка    зелёная #9ccd7e, радиус 1.25rem

   Файл лежит в custom/ — папка в auto-upgrade exclude, стоковые файлы темы целы.
   Копия в репозитории: hostbill/panel-templates/cplv-panel.css
   ============================================================================ */

/* ============================================================================
   ТОКЕНЫ И ДВЕ ТЕМЫ

   Тему выбирает УСТРОЙСТВО, а не клиент: переключателя в панели нет, всё решает
   системная настройка (prefers-color-scheme). Светлый режим — значения ниже,
   тёмный — переопределения в медиазапросе.

   ⚠️ Каждый цвет объявлен в базовом :root, а в медиазапросе только меняет
   значение. Цвет, у которого единственное объявление лежит внутри @media,
   в другой теме не применится — это классическая причина «белый на белом».

   ⚠️ Левое меню и шапка тёмные в ОБЕИХ темах (решение владельца 30.08.2026):
   это навигация, она не должна спорить с рабочей областью. Их цвета живут
   в теме и здесь не трогаются.
   ============================================================================ */
:root {
    /* --- поверхности и текст (светлый режим) --- */
    --cplv-bg: #f6f7f9;           /* полотно страницы */
    --cplv-surface: #ffffff;      /* блок: карточка, список, форма */
    --cplv-surface-2: #eef0f4;    /* вложенная плашка, неактивная вкладка, полоса */
    --cplv-line: #e2e5ea;         /* контур блока и разделители внутри него */
    --cplv-line-strong: #cdd2da;  /* контур под курсором */
    --cplv-ink: #14181f;          /* основной текст */
    --cplv-muted: #6b7280;        /* подписи и второстепенное */

    /* --- действие ---
       ⚠️ Фирменный зелёный #9ccd7e кнопкой работает только на тёмном: на белом
       контраст с белым текстом ниже 3:1. Поэтому в светлом режиме действие —
       #3f8f57, а #9ccd7e остаётся индикатором состояния. */
    --cplv-accent: #3f8f57;
    --cplv-accent-hover: #35784a;
    --cplv-on-accent: #ffffff;

    /* --- состояния (значение, а не украшение) --- */
    --cplv-ok: #2f7a53;
    --cplv-warn: #8a6a15;
    --cplv-danger: #b3423a;

    /* --- форма блока --- */
    --cplv-radius: 12px;
    --cplv-radius-sm: 8px;
    --cplv-shadow: 0 1px 2px rgba(16, 20, 28, .04);
    --cplv-shadow-hover: 0 6px 18px rgba(16, 20, 28, .08);
    --cplv-ink-shadow: 0 6px 16px rgba(0, 0, 0, .18);
    --cplv-glow: 0 0 0 3px rgba(63, 143, 87, .30);

    /* --- навигация ---
       ⚠️ Левое меню и шапка МЕНЯЮТСЯ ВМЕСТЕ С ТЕМОЙ (решение владельца
       30.08.2026, после того как неизменно тёмное меню в светлом режиме было
       воспринято как поломка). Токены отдельные не потому, что цвет другой, а
       потому что у навигации свои роли: подложка, линия, активный пункт. */
    --cplv-nav-bg: #ffffff;
    --cplv-nav-line: #e2e5ea;
    --cplv-nav-ink: #14181f;
    --cplv-nav-muted: #5c6472;   /* подписи меню: темнее, чем общий muted — иначе бледнят */
    --cplv-nav-active: #eef0f4;
    --cplv-nav-hover: #f3f4f7;

    /* --- совместимость со старыми правилами файла ---
       Имена ниже встречаются в правилах, написанных до перехода на две темы.
       Переписывать их все ради переименования смысла нет: пусть указывают на
       новые токены — тогда цвет остаётся один и меняется в одном месте. */
    --cplv-green: var(--cplv-accent);
    --cplv-green-dark: var(--cplv-accent-hover);
    --cplv-dark: var(--cplv-ink);
    --cplv-text: var(--cplv-muted);
    --cplv-border: var(--cplv-line);
}

/* ---- ручной выбор темы ----
   По умолчанию режим берётся у устройства, но человек может решить иначе:
   переключатель в шапке ставит на <html> атрибут data-theme и запоминает выбор
   (localStorage, скрипт — в header.shared.tpl и custom/auth.tpl).
   Поэтому тёмные значения объявлены ДВАЖДЫ: в медиазапросе — со страховкой
   :root:not([data-theme="light"]), чтобы явно выбранная светлая тема побеждала
   тёмную систему, и отдельно для data-theme="dark", чтобы выбранная тёмная
   побеждала светлую систему. */
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        --cplv-bg: #0f1216;
        --cplv-surface: #171c22;
        --cplv-surface-2: #1e242c;
        --cplv-line: #262e37;
        --cplv-line-strong: #3a444f;
        --cplv-ink: #e6eaf0;
        --cplv-muted: #8b95a3;

        --cplv-accent: #9ccd7e;
        --cplv-accent-hover: #aed992;
        --cplv-on-accent: #0f1216;

        --cplv-ok: #9ccd7e;
        --cplv-warn: #c9a227;
        --cplv-danger: #e0736b;

        --cplv-shadow: 0 1px 2px rgba(0, 0, 0, .30);
        --cplv-shadow-hover: 0 6px 18px rgba(0, 0, 0, .45);
        --cplv-glow: 0 0 0 3px rgba(156, 205, 126, .30);

        --cplv-nav-bg: #0b0e11;
        --cplv-nav-line: #1e242c;
        --cplv-nav-ink: #e6eaf0;
        --cplv-nav-muted: #6f7c8b;
        --cplv-nav-active: #1a2129;
        --cplv-nav-hover: #151a20;
    }
}

:root[data-theme="dark"] {
        --cplv-bg: #0f1216;
        --cplv-surface: #171c22;
        --cplv-surface-2: #1e242c;
        --cplv-line: #262e37;
        --cplv-line-strong: #3a444f;
        --cplv-ink: #e6eaf0;
        --cplv-muted: #8b95a3;

        --cplv-accent: #9ccd7e;
        --cplv-accent-hover: #aed992;
        --cplv-on-accent: #0f1216;

        --cplv-ok: #9ccd7e;
        --cplv-warn: #c9a227;
        --cplv-danger: #e0736b;

        --cplv-shadow: 0 1px 2px rgba(0, 0, 0, .30);
        --cplv-shadow-hover: 0 6px 18px rgba(0, 0, 0, .45);
        --cplv-glow: 0 0 0 3px rgba(156, 205, 126, .30);

        --cplv-nav-bg: #0b0e11;
        --cplv-nav-line: #1e242c;
        --cplv-nav-ink: #e6eaf0;
        --cplv-nav-muted: #6f7c8b;
        --cplv-nav-active: #1a2129;
        --cplv-nav-hover: #151a20;
    }

/* ============================================================================
   0. КНОПКИ И ПОЛЯ — без изменений с 13.08.2026
   ============================================================================ */

/* ---- базовая форма кнопки: скругление и вес как на сайте ---- */
.btn,
.btn.btn-sm,
.btn.btn-lg {
    border-radius: 1.25rem;
    font-weight: 600;
    letter-spacing: .01em;
    transition: background-color .15s ease, box-shadow .15s ease, color .15s ease;
}

/* ---- главные действия: зелёные, как «Заказать» на сайте ---- */
.btn-primary,
.btn-success,
.btn-info {
    background-color: var(--cplv-green);
    border-color: var(--cplv-green);
    color: #fff;
}

.btn-primary:hover, .btn-primary:focus, .btn-primary:active,
.btn-success:hover, .btn-success:focus, .btn-success:active,
.btn-info:hover, .btn-info:focus, .btn-info:active {
    background-color: var(--cplv-green-dark);
    border-color: var(--cplv-green-dark);
    color: #fff;
    box-shadow: var(--cplv-glow);
}

/* «Оплатить сейчас!» и прочие ключевые действия в списках — тот же зелёный */
.btn_pay, .btn-paynow, .btn-paynow2 {
    background-color: var(--cplv-green);
    border-color: var(--cplv-green);
    border-radius: 1.25rem;
    color: #fff;
}
.btn_pay:hover, .btn-paynow:hover, .btn-paynow2:hover {
    background-color: var(--cplv-green-dark);
    color: #fff;
}

/* ---- второстепенные действия: светлая кнопка с рамкой ---- */
.btn-secondary,
.btn-light,
.btn-default {
    background-color: #fff;
    /* Рамка задаётся целиком, а не одним border-color: у кнопок темы ширина
       рамки нулевая, и белая кнопка на белой карточке читалась как простой
       текст — «Управление доменом» в карточке выглядело неактивным. */
    border: 1px solid var(--cplv-border);
    color: var(--cplv-dark);
}
.btn-secondary:hover, .btn-secondary:focus,
.btn-light:hover, .btn-light:focus,
.btn-default:hover, .btn-default:focus {
    background-color: #f7f8fa;
    border-color: #cfd4dc;
    color: var(--cplv-dark);
}

.btn-dark {
    background-color: var(--cplv-dark);
    border-color: var(--cplv-dark);
    color: #fff;
}
.btn-dark:hover { background-color: #2b2b2b; border-color: #2b2b2b; color: #fff; }

/* ---- контурные кнопки ---- */
.btn-outline-primary,
.btn-outline-success {
    color: var(--cplv-green-dark);
    border-color: var(--cplv-green);
    background-color: transparent;
}
.btn-outline-primary:hover,
.btn-outline-success:hover {
    background-color: var(--cplv-green);
    border-color: var(--cplv-green);
    color: #fff;
}

/* Опасные действия остаются красными — цвет здесь несёт смысл, меняем только форму */
.btn-danger, .btn-outline-danger { border-radius: 1.25rem; }

/* ---- элементы, которые смотрятся вместе с кнопками ---- */
/* фокус полей — той же зелёной подсветкой, а не bootstrap-синим */
.form-control:focus,
.custom-select:focus {
    border-color: var(--cplv-green);
    box-shadow: var(--cplv-glow);
}

/* ссылки-действия в таблицах и карточках */
a.btn-link, .btn-link { color: var(--cplv-green-dark); }
a.btn-link:hover, .btn-link:hover { color: var(--cplv-dark); }

/* статус счёта: зелёный «оплачен» в тон кнопкам */
.badge-Paid, .badge-Active { background-color: var(--cplv-green); color: #fff; }

/* ---------------------------------------------------------------------------
   Ниже те же правила, но с приоритетом: файл подключается раньше основного CSS
   темы, поэтому без усиления селектора тема перебивала цвет и скругление.
   Область ограничена кнопками — на остальную вёрстку панели это не влияет.
   --------------------------------------------------------------------------- */
body .btn, body .btn.btn-sm, body .btn.btn-lg,
body .btn_pay, body .btn-paynow, body .btn-paynow2 {
    border-radius: 1.25rem !important;
    font-weight: 600;
}
body .btn-primary, body .btn-success, body .btn-info,
body .btn_pay, body .btn-paynow, body .btn-paynow2 {
    background-color: var(--cplv-green) !important;
    border-color: var(--cplv-green) !important;
    color: #fff !important;
}
body .btn-primary:hover, body .btn-success:hover, body .btn-info:hover,
body .btn_pay:hover, body .btn-paynow:hover, body .btn-paynow2:hover {
    background-color: var(--cplv-green-dark) !important;
    border-color: var(--cplv-green-dark) !important;
    box-shadow: var(--cplv-glow);
}
body .btn-secondary, body .btn-light, body .btn-default {
    background-color: #fff !important;
    border: 1px solid var(--cplv-border) !important;
    color: var(--cplv-dark) !important;
}
body .btn-secondary:hover, body .btn-light:hover, body .btn-default:hover {
    background-color: #f7f8fa !important;
    color: var(--cplv-dark) !important;
}
body .btn-dark { background-color: var(--cplv-dark) !important; border-color: var(--cplv-dark) !important; color: #fff !important; }
/* Контурные кнопки. Исключаем те, у которых уже есть цветовой класс темы сайта
   (.btn-green/.btn-red/.btn-dark/.btn-blue/.btn-sky): такими свёрстаны кнопки входа
   и соцсетей на страницах логина, регистрации и восстановления пароля — им нужен
   свой фон, а не прозрачный. */
body .btn-outline-primary:not(.btn-green):not(.btn-red):not(.btn-dark):not(.btn-blue):not(.btn-cobalt):not(.btn-sky),
body .btn-outline-success:not(.btn-green):not(.btn-red):not(.btn-dark):not(.btn-blue):not(.btn-cobalt):not(.btn-sky) {
    color: var(--cplv-green-dark) !important;
    border-color: var(--cplv-green) !important;
    background-color: transparent !important;
}
body .btn-outline-primary:not(.btn-green):not(.btn-red):not(.btn-dark):not(.btn-blue):not(.btn-cobalt):not(.btn-sky):hover,
body .btn-outline-success:not(.btn-green):not(.btn-red):not(.btn-dark):not(.btn-blue):not(.btn-cobalt):not(.btn-sky):hover {
    background-color: var(--cplv-green) !important;
    color: #fff !important;
}

/* ---- цветные кнопки темы сайта: вход и соцсети ----
   Значения те же, что в sites/cp.lv/assets/css (--color-red/blue/sky/dark/green). */
body .btn-green { background-color: var(--cplv-green) !important; border-color: var(--cplv-green) !important; color: #fff !important; }
body .btn-green:hover { background-color: var(--cplv-green-dark) !important; border-color: var(--cplv-green-dark) !important; color: #fff !important; }
body .btn-red { background-color: #d75959 !important; border-color: #d75959 !important; color: #fff !important; }
body .btn-red:hover { background-color: #c44e4e !important; border-color: #c44e4e !important; color: #fff !important; }
body .btn-cobalt { background-color: #4267b2 !important; border-color: #4267b2 !important; color: #fff !important; }
body .btn-cobalt:hover { background-color: #375593 !important; border-color: #375593 !important; color: #fff !important; }
body .btn-blue { background-color: #5ca7db !important; border-color: #5ca7db !important; color: #fff !important; }
body .btn-blue:hover { background-color: #4b95c8 !important; border-color: #4b95c8 !important; color: #fff !important; }
body .btn-sky { background-color: #5f86be !important; border-color: #5f86be !important; color: #fff !important; }
body .btn-sky:hover { background-color: #4f74a9 !important; border-color: #4f74a9 !important; color: #fff !important; }
body .form-control:focus, body .custom-select:focus {
    border-color: var(--cplv-green) !important;
    box-shadow: var(--cplv-glow) !important;
}
body .badge-Paid, body .badge-Active { background-color: var(--cplv-green) !important; color: #fff !important; }

/* Выбранный тариф в каталоге: тема красит его синим — переводим в фирменный зелёный,
   чтобы выделение совпадало с кнопкой заказа. */
body .cart-product.selected,
body .card.cart-product.selected {
    background-color: var(--cplv-green) !important;
    border-color: var(--cplv-green) !important;
}
body .cart-product.selected * { color: #fff !important; }
body .cart-product.selected .text-muted { color: rgba(255, 255, 255, .8) !important; }

/* ---- полотно панели ----
   Белое (решение владельца 30.08.2026). Сначала было наоборот: серое полотно
   #f3f4f7 под белыми боксами, как в эталонной секции Snowlake. Теперь роли
   поменялись — полотно белое, а блок держится не заливкой, а контуром в 1px
   и мягкой тенью (см. --cplv-line): цветных заливок в панели нет.
   Шапка, боковое меню и сами боксы красят себя сами и не затрагиваются. */
body.template_2019 { background-color: var(--cplv-bg); }

/* ============================================================================
   1. БОКСЫ — один вид на всю панель
   ============================================================================
   Эталон — «Icons with Background» шаблона Snowlake: белый блок без рамки,
   слабое скругление и мягкая тень. В теме 2019 «бокс» встречается под разными
   именами, поэтому перечислены все, а не переписана разметка страниц:
     .card                     — карточки Bootstrap (каталог /panel/products/,
                                 тикеты, кредитные карты, апгрейды, корзина);
     .table-responsive.table-borders — обёртка ЛЮБОГО списка-таблицы в панели
                                 (50 мест в шаблонах — все списки услуг, счетов,
                                 доменов, тикетов, контактов, партнёрки);
     .info-box .info-box-items — виджеты-сводки;
     .box                      — блоки страниц заказа;
     .cplv-card                — наши карточки клиентской зоны.
   ⚠️ Рамку снимаем, а не перекрашиваем: в эталоне её нет, глубину даёт тень.
   Если оставить рамку и добавить тень — получается «двойная обводка», самый
   заметный признак чужеродного блока. */
.cplv-box,
body .card,
body .table-responsive.table-borders,
body .info-box .info-box-items,
body .box,
body .cplv-card {
    background: var(--cplv-surface);
    /* ⚠️ Здесь рамка НУЖНА, хотя в эталоне Snowlake её нет. В эталоне белый бокс
       лежит на сером полотне, и границу рисует сам контраст; у нас полотно тоже
       белое, поэтому без линии блок теряет края и страница «разъезжается». */
    border: 1px solid var(--cplv-line) !important;
    border-radius: var(--cplv-radius) !important;
    box-shadow: var(--cplv-shadow);
}

/* ⚠️ У бокса тень при наведении НЕ меняется: в эталоне правила `.shadow:hover`
   нет вовсе, тень одна и та же. Подсветку оставляем только там, где карточка
   целиком кликабельна, — там это не украшение, а единственный признак ссылки. */
/* Под курсором карточка не меняет цвет — темнеет только контур. В монохроме
   это единственный способ показать «сюда можно нажать», не вводя лишний цвет. */
body .cplv-card--link:hover {
    box-shadow: var(--cplv-shadow-hover);
    border-color: var(--cplv-line-strong) !important;
}

/* Внутренние линии карточки Bootstrap: в стоке это серые полосы во всю ширину,
   в эталоне их нет — оставляем только тонкий разделитель у подвала карточки. */
body .card > .card-header,
body .card > .card-footer {
    background-color: transparent;
    border-color: var(--cplv-line);
}
body .card > .card-body { padding: 30px; }

/* Каталог услуг /panel/products/: заголовок карточки в стоке синий и мелкий —
   приводим к типографике эталона (20px/500, тёмно-серый), описание — 16/28. */
body .section-product-card .card-title {
    color: var(--cplv-dark) !important;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.35;
}
body .section-product-card .card-title:hover { color: var(--cplv-accent) !important; }
body .section-product-card .card-text {
    color: var(--cplv-text);
    font-size: 15px;
    line-height: 1.6;
}

/* Таблицы внутри бокса: у бокса теперь своё скругление, поэтому у таблицы
   верхняя рамка не нужна — иначе она рисует линию поперёк скруглённого угла. */
body .table-responsive.table-borders > .table > thead > tr > th { border-top: 0; }

/* ============================================================================
   2. ВКЛАДКИ РАЗДЕЛОВ — «Tabs with Icons in Box»
   ============================================================================
   Эталон — одноимённая секция Snowlake: иконка НАД подписью, вкладки равной
   ширины, активная лежит белой плашкой с тенью, остальные — на фоне страницы.

   ⚠️ КОГО ТРОГАЕМ. Тем же классом .nav-tabs в теме свёрстаны ДВЕ разные вещи:
     а) навигация по разделам — биллинг, детали аккаунта, история, контакты,
        партнёрка, безопасность, вкладки услуг на главной. Их и переделываем;
     б) ФИЛЬТРЫ списков — «Все / Активные / Отменённые» в услугах, доменах,
        тикетах. У них у ссылки класс .nav-link-slider, href="#Active" и
        data-sorter. Это не разделы: иконки им не нужны, а крупные боксы вместо
        строки фильтров сделали бы список неудобным.
   Разделяем их по .nav-link-slider — единственному надёжному признаку в разметке.

   ⚠️ Область правил задана через :has(): ширину и отступы надо менять у того
   <ul>, ВНУТРИ которого лежат вкладки, а он в разных шаблонах на разной глубине
   (на главной — сам .nav-tabs, в биллинге и партнёрке — вложенный <ul>).
   Браузер без :has() просто не применит блок и покажет стоковые вкладки —
   безопасная деградация.

   ⚠️ Префикс `body` у КАЖДОГО селектора обязателен. Тема описывает ту же вкладку
   селектором ровно такой же силы (.nav-tabs-wrapper .nav-tabs li.nav-item a.nav-link),
   а её app.css подключается ПОЗЖЕ нашего файла — при равном весе побеждает она.
   Без префикса молча терялись padding, кегль, начертание, цвет и white-space:
   вкладка оставалась стоковой (padding: 0, 16px/300, nowrap), хотя правила в файле
   были. Наступали на это 30.08.2026 — то же самое уже описано выше про кнопки. */

/* Тень активной вкладки выходит за пределы обёртки, а в теме у неё
   overflow:hidden — без этого тень срезается ровной линией. */
body .nav-tabs-wrapper:has(li.nav-item > a.nav-link:not(.nav-link-slider)) {
    overflow: visible;
    margin: 24px 0 28px;
}

/* Полоса вкладок */
body .nav-tabs-wrapper ul:has(> li.nav-item > a.nav-link:not(.nav-link-slider)) {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
    background: none;
    overflow: visible !important;
    width: 100%;
}

/* Внешний <ul class="nav-tabs">, когда вкладки лежат во вложенном списке:
   он делит строку между полосой вкладок и кнопкой справа («Фильтр», «Создать
   тикет»). Полосе отдаём всю свободную ширину, кнопке — сколько нужно. */
body .nav-tabs-wrapper > ul.nav-tabs:has(li.nav-item > a.nav-link:not(.nav-link-slider)) {
    align-items: flex-start;
    flex-wrap: wrap;
}
body .nav-tabs-wrapper > ul.nav-tabs > li:has(> ul > li.nav-item > a.nav-link:not(.nav-link-slider)) {
    flex: 1 1 100%;
    min-width: 0;
    padding: 0;
    margin: 0 0 12px;
    list-style: none;
}

/* Вкладка равной ширины. min-width держит подпись читаемой: когда разделов
   много (в биллинге их девять), полоса переносится на вторую строку, а не
   сдавливает вкладки до нечитаемых столбиков. */
/* Расстояние между вкладками даёт правое поле у пункта — ровно как в эталоне
   (`li { margin: 0 15px 0 0 }`), а не gap у списка: с gap последняя вкладка в ряду
   вставала иначе, чем в оригинале. min-width — страховка на случай, когда разделов
   много (в биллинге их до девяти): полоса переносится на вторую строку, а не
   сдавливает вкладки. Пока вкладки помещаются, на вид она не влияет. */
body .nav-tabs-wrapper li.nav-item:has(> a.nav-link:not(.nav-link-slider)) {
    flex: 1 1 0;
    min-width: 132px;
    /* Просвет между вкладками шире эталонных 15px: вкладка теперь вдвое ниже,
       и при прежнем зазоре ряд читался как одна сплошная полоса. */
    margin: 0 28px 0 0;
    padding: 0;
    border: 0;
    list-style: none;
    display: flex;
}
body .nav-tabs-wrapper li.nav-item:has(> a.nav-link:not(.nav-link-slider)):last-child { margin-right: 0; }

body .nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider) {
    /* ⚠️ border-box обязателен: иначе padding прибавляется к ширине и активная
       плашка выпирает из ряда. */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 6px;                  /* в эталоне mb-10; при вдвое меньшей вкладке — 6px */
    width: 100%;
    /* Половина эталонного размера (решение владельца 30.08.2026): в эталоне
       `.nav-tabs-bg .nav-link { padding: 1.4rem 1.2rem }` при корневом кегле 20px,
       то есть 28px и 24px, подпись 19px/25px, иконка 60px. У панели вкладок-разделов
       бывает до девяти, и в полный рост они съедали первый экран.
       ⚠️ Кегль подписи уменьшен не вдвое, а до 16px: вдвое — это 9–10px, подпись
       перестала бы читаться. Уменьшены отступы и иконка — их и видно как «размер». */
    padding: 14px 12px;
    margin: 0;
    border: 0;
    border-radius: var(--cplv-radius);
    /* Полотно белое, поэтому «прозрачная» вкладка выглядела бы дырой в ряду:
       обычная вкладка — светло-серая плашка, активная — почти чёрная. */
    background: var(--cplv-surface-2);
    color: var(--cplv-dark);
    font-size: 16px;
    font-weight: 500;
    line-height: 21px;
    text-align: center;
    white-space: normal;       /* в теме nowrap — длинные подписи вылезали */
    cursor: pointer;
    transition: background-color .15s ease, box-shadow .15s ease, color .15s ease;
}

/* Иконка. Вставлена фоном, а не разметкой: часть вкладок рисуют закрытые
   плагины HostBill — их вёрстку не поправить, а псевдоэлементу фон достаётся
   по селектору. Сами картинки — в блоке «ИКОНКИ ВКЛАДОК» ниже. */
body .nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)::before {
    content: "";
    width: 30px;               /* в эталоне 60×60 — здесь ровно половина */
    height: 30px;
    flex: 0 0 30px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

/* ⚠️ Наведение и активная вкладка выглядят ОДИНАКОВО — в эталоне это буквально одно
   правило (`.nav-tabs-bg .nav-link:hover, .nav-tabs-bg .nav-link.active`): та же
   белая плашка, то же скругление, ТА ЖЕ тень. Разная тень у наведения и у активной
   сразу бросается в глаза: вкладка под курсором «мельче» соседней активной.
   Отдельной «тени наведения» у вкладок в эталоне нет вовсе.
   Тема помечает активной то <li class="nav-item active"> (навигация по разделам),
   то саму ссылку (переключение вкладок на месте), поэтому оба варианта. */
body .nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider):hover,
body .nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider),
body .nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider) {
    background: var(--cplv-ink);
    border-radius: var(--cplv-radius-sm);
    box-shadow: var(--cplv-shadow-hover);
    /* ⚠️ Цвет подписи — полотно, а не #fff: в тёмном режиме --cplv-ink светлый,
       и белая подпись на нём становится нечитаемой (наступали 30.08.2026). */
    color: var(--cplv-bg) !important;
}

/* ⚠️ Тема впрыскивает в полосу вкладок свой индикатор-подчёркивание
   (div.slider) и рельсы PerfectScrollbar, а по бокам обёртки — стрелки
   прокрутки. Во флекс-раскладке они становятся полноценными колонками:
   слайдер рисует полосу под вкладками, рельсы съедают место. Вкладки у нас
   переносятся сами, прокрутка не нужна — прячем. Только там, где переделали:
   у фильтров подчёркивание остаётся стоковым. */
body .nav-tabs-wrapper:has(li.nav-item > a.nav-link:not(.nav-link-slider)) .slider,
body .nav-tabs-wrapper:has(li.nav-item > a.nav-link:not(.nav-link-slider)) .ps__rail-x,
body .nav-tabs-wrapper:has(li.nav-item > a.nav-link:not(.nav-link-slider)) .ps__rail-y,
body .nav-tabs-wrapper:has(li.nav-item > a.nav-link:not(.nav-link-slider)) > .nav-tabs-arrow-left,
body .nav-tabs-wrapper:has(li.nav-item > a.nav-link:not(.nav-link-slider)) > .nav-tabs-arrow-right {
    display: none !important;
}

/* Единственный раздел — полосу не показываем: выбирать не из чего, а место
   она занимает как полноценный переключатель. Считаем соседа: правило
   срабатывает, только если второго .nav-item в полосе нет. */
body .nav-tabs-wrapper ul:has(> li.nav-item > a.nav-link:not(.nav-link-slider)):not(:has(> li.nav-item ~ li.nav-item)) {
    display: none;
}

/* На телефоне размеры эталона не помещаются: две вкладки в ряд и шаг мельче.
   На десктопе, где идёт сравнение с сайтом, действуют значения эталона. */
@media (max-width: 767px) {
    body .nav-tabs-wrapper li.nav-item:has(> a.nav-link:not(.nav-link-slider)) { min-width: calc(50% - 10px); margin-right: 0; }
    body .nav-tabs-wrapper ul:has(> li.nav-item > a.nav-link:not(.nav-link-slider)) { gap: 20px; }
    body .nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider) { padding: 12px 10px; font-size: 15px; line-height: 20px; }
    body .nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)::before { width: 26px; height: 26px; flex-basis: 26px; }
}
@media (prefers-reduced-motion: reduce) {
    body .nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider) { transition: none; }
}

/* ---- одна-единственная вкладка: ряд не нужен ----
   Если у клиента услуги только одного вида, переключать нечего: ряд из одной
   вкладки лишь занимает первый экран и обманывает — выглядит как выбор, которого
   нет. Прячем его целиком, заголовок раздела остаётся.

   Считаем именно <li>, а не детей списка: тема впрыскивает в <ul> свой .slider
   и рельсы прокрутки, поэтому :nth-child ошибся бы. Условие «есть второй
   li.nav-item» читается как li.nav-item ~ li.nav-item.

   Класс cplv-tabs-wrap стоит только на вкладках услуг клиентской зоны — в других
   разделах панели единственная вкладка бывает подписью раздела, её не трогаем. */
body .cplv-tabs-wrap:not(:has(li.nav-item ~ li.nav-item)) {
    display: none;
}

/* ============================================================================
   3. КАРТОЧКИ КЛИЕНТСКОЙ ЗОНЫ
   ============================================================================
   Раньше эти правила лежали в <style> внутри clientarea/dashboard.tpl и
   действовали на одной странице. Перенесены сюда: карточка — такой же элемент
   панели, как бокс и вкладка, и должна выглядеть одинаково везде, где появится.
   Форма (фон, скругление, тень) теперь берётся из общего правила боксов выше —
   здесь остаётся только внутреннее устройство карточки. */

.cplv-cards { margin-top: 4px; }
.cplv-cards > [class^="col-"] { margin-bottom: 24px; display: flex; }
.cplv-card {
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 24px 26px;
    transition: box-shadow .15s ease, transform .15s ease;
}

/* Кликабельная карточка: нажимается вся площадь, а не только кнопка.
   Приём stretched-link — ссылке-кнопке ::after растягивается на весь блок,
   поэтому ссылка в карточке остаётся ОДНА (заголовок — обычный текст), так же
   её читают скринридеры.
   ⚠️ Сама ссылка НЕ должна быть позиционированной: ::after считает координаты
   от ближайшего позиционированного предка, и стоит поставить кнопке
   position:relative — растянутая область схлопнется до размера кнопки. */
.cplv-card--link { position: relative; cursor: pointer; }
.cplv-card--link:hover { transform: translateY(-2px); }
.cplv-card--link:active { transform: translateY(0); }
.cplv-card--link .cplv-stretch::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    border-radius: var(--cplv-radius);
}
.cplv-card--link:hover .cplv-card__title { color: var(--cplv-accent); text-decoration: underline; }
/* Бейдж поднимаем над растянутой областью, иначе он в неё проваливается */
.cplv-card--link .badge { position: relative; z-index: 2; }
/* Клавиатурная доступность: фокус на ссылке подсвечивает всю карточку */
.cplv-card--link:focus-within { box-shadow: 0 0 0 3px rgba(29, 29, 31, .22) !important; }

.cplv-card__head { display: flex; align-items: flex-start; gap: 12px; }
.cplv-card__headtext { flex: 1 1 auto; min-width: 0; }

/* Иконка типа услуги. Размер ОДИНАКОВЫЙ у всех карточек — это опорная точка,
   по которой глаз находит и сравнивает карточки; меняются только знак и
   подсветка. Различаются ЗНАКОМ, а не только цветом: так карточки читаются
   и при дальтонизме, и в чёрно-белой печати. */
.cplv-icon {
    flex: 0 0 44px; width: 44px; height: 44px; border-radius: 12px;
    display: inline-flex; align-items: center; justify-content: center;
    /* Схема бело-чёрная, поэтому плашка серая, а знак чернильный — у ВСЕХ типов.
       Цветные знаки (синий VPS, зелёный домен и прочие) убраны вместе с цветными
       заливками: тип услуги различается САМИМ ЗНАКОМ, и это работает одинаково
       в цвете, при дальтонизме и в чёрно-белой печати. */
    background: var(--cplv-surface-2); color: var(--cplv-ink);
    border: 1px solid var(--cplv-line);
}
.cplv-icon .cplv-svg { width: 22px; height: 22px; display: block; }

.cplv-card__head > .cplv-card__title,
.cplv-card__head > .badge { align-self: center; }
.cplv-card__head > .cplv-card__title { flex: 1 1 auto; min-width: 0; }
.cplv-card__cat { display: block; text-transform: uppercase; letter-spacing: .04em; font-size: 11px; font-weight: 700; color: #8a92a6; margin-bottom: 2px; }
.cplv-card__title { display: block; font-size: 17px; font-weight: 600; line-height: 1.3; color: var(--cplv-dark); word-break: break-word; transition: color .15s ease; }
.cplv-card__sub { font-size: 13px; color: #8a92a6; margin-top: 2px; word-break: break-all; }
.cplv-card__meta { margin: 14px 0 18px; }
.cplv-card__meta > div { display: flex; justify-content: space-between; gap: 12px; padding: 7px 0; border-top: 1px solid var(--cplv-line); }
.cplv-card__meta dt { font-weight: 400; color: #8a92a6; font-size: 13px; margin: 0; }
.cplv-card__meta dd { margin: 0; font-size: 13px; font-weight: 600; color: var(--cplv-dark); text-align: right; }
/* margin-top:auto прижимает кнопку к низу — в ряду кнопки соседних карточек
   встают на одну линию при разной высоте содержимого. Отступ сверху задаём
   нижним полем блока характеристик: margin-top у кнопки перебил бы auto. */
.cplv-card__cta { margin-top: auto; padding-top: 10px; padding-bottom: 10px; }
.cplv-card--empty { align-items: center; text-align: center; padding: 40px 24px; }

/* ---- Карточка счёта ----
   Порядок как на образце от владельца: в первой строке знак, сумма и статус,
   под ней — за что счёт, затем срок оплаты и кнопка. Сумма поднята в шапку
   намеренно: это единственное, ради чего карточку открывают, и она должна
   читаться первой, без перевода взгляда на вторую строку. */
.cplv-card--invoice .cplv-card__amount {
    flex: 1 1 auto;
    min-width: 0;
    align-self: center;
    margin: 0;
    font-size: 28px;
    font-weight: 800;
    line-height: 1.1;
    color: var(--cplv-dark);
    letter-spacing: -.01em;
}
.cplv-card--invoice .cplv-card__subject {
    margin: 14px 0 0;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.4;
    color: var(--cplv-dark);
    word-break: break-word;
}
.cplv-card--invoice .cplv-card__meta { margin-top: 10px; }

@media (max-width: 575px) {
    .cplv-card { padding: 18px; }
    .cplv-card--invoice .cplv-card__amount { font-size: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .cplv-card--link { transition: none; }
    .cplv-card--link:hover { transform: none; }
}

/* ============================================================================
   4. ИКОНКИ ВКЛАДОК
   ============================================================================
   Ниже — сгенерированный блок. Правится НЕ здесь, а так:
     1) иконка меняется/добавляется в библиотеке сайта
        sites/cp.lv/_includes/my/svg-icon.html (она же рисует иконки на сайте);
     2) раздел -> имя иконки прописывается в карте BY_HREF / BY_ITEMS скрипта
        hostbill/panel-templates/gen-panel-icons.py;
     3) python3 hostbill/panel-templates/gen-panel-icons.py — и вставить вывод сюда.
   Так знак на вкладке панели и знак на сайте не могут разойтись.
   ============================================================================ */

/* Сгенерировано hostbill/panel-templates/gen-panel-icons.py
   из sites/cp.lv/_includes/my/svg-icon.html — руками не править. */

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%208%2012%203%203%208v8l9%205%209-5z%22%2F%3E%3Cpath%20d%3D%22M3%208l9%205%209-5M12%2013v8%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%208%2012%203%203%208v8l9%205%209-5z%22%2F%3E%3Cpath%20d%3D%22M3%208l9%205%209-5M12%2013v8%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/invoices/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202h12v20l-3-2-3%202-3-2-3%202z%22%2F%3E%3Cline%20x1%3D%229%22%20y1%3D%228%22%20x2%3D%2215%22%20y2%3D%228%22%2F%3E%3Cline%20x1%3D%229%22%20y1%3D%2212%22%20x2%3D%2215%22%20y2%3D%2212%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/invoices/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/invoices/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%202h12v20l-3-2-3%202-3-2-3%202z%22%2F%3E%3Cline%20x1%3D%229%22%20y1%3D%228%22%20x2%3D%2215%22%20y2%3D%228%22%2F%3E%3Cline%20x1%3D%229%22%20y1%3D%2212%22%20x2%3D%2215%22%20y2%3D%2212%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/transactions/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%2217%204%2021%208%2017%2012%22%2F%3E%3Cline%20x1%3D%2221%22%20y1%3D%228%22%20x2%3D%224%22%20y2%3D%228%22%2F%3E%3Cpolyline%20points%3D%227%2020%203%2016%207%2012%22%2F%3E%3Cline%20x1%3D%223%22%20y1%3D%2216%22%20x2%3D%2220%22%20y2%3D%2216%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/transactions/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/transactions/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%2217%204%2021%208%2017%2012%22%2F%3E%3Cline%20x1%3D%2221%22%20y1%3D%228%22%20x2%3D%224%22%20y2%3D%228%22%2F%3E%3Cpolyline%20points%3D%227%2020%203%2016%207%2012%22%2F%3E%3Cline%20x1%3D%223%22%20y1%3D%2216%22%20x2%3D%2220%22%20y2%3D%2216%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/creditreceipts/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v10M14.5%209.3a2.5%202.5%200%200%200-2.5-1.8h-.3a2.2%202.2%200%200%200%200%204.5h.6a2.2%202.2%200%200%201%200%204.5H12a2.5%202.5%200%200%201-2.5-1.8%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/creditreceipts/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/creditreceipts/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v10M14.5%209.3a2.5%202.5%200%200%200-2.5-1.8h-.3a2.2%202.2%200%200%200%200%204.5h.6a2.2%202.2%200%200%201%200%204.5H12a2.5%202.5%200%200%201-2.5-1.8%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/addfunds/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%228%22%20x2%3D%2212%22%20y2%3D%2216%22%2F%3E%3Cline%20x1%3D%228%22%20y1%3D%2212%22%20x2%3D%2216%22%20y2%3D%2212%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/addfunds/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/addfunds/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%228%22%20x2%3D%2212%22%20y2%3D%2216%22%2F%3E%3Cline%20x1%3D%228%22%20y1%3D%2212%22%20x2%3D%2216%22%20y2%3D%2212%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/creditlogs/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%205h13v15H5a1%201%200%200%201-1-1z%22%2F%3E%3Cpath%20d%3D%22M17%208h3v10a2%202%200%200%201-2%202%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%228%22%20x2%3D%2214%22%20y2%3D%228%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2212%22%20x2%3D%2214%22%20y2%3D%2212%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2216%22%20x2%3D%2211%22%20y2%3D%2216%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/creditlogs/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/creditlogs/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%205h13v15H5a1%201%200%200%201-1-1z%22%2F%3E%3Cpath%20d%3D%22M17%208h3v10a2%202%200%200%201-2%202%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%228%22%20x2%3D%2214%22%20y2%3D%228%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2212%22%20x2%3D%2214%22%20y2%3D%2212%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2216%22%20x2%3D%2211%22%20y2%3D%2216%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/ccard/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cline%20x1%3D%222%22%20y1%3D%2210%22%20x2%3D%2222%22%20y2%3D%2210%22%2F%3E%3Cline%20x1%3D%226%22%20y1%3D%2215%22%20x2%3D%2210%22%20y2%3D%2215%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/ccard/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/ccard/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cline%20x1%3D%222%22%20y1%3D%2210%22%20x2%3D%2222%22%20y2%3D%2210%22%2F%3E%3Cline%20x1%3D%226%22%20y1%3D%2215%22%20x2%3D%2210%22%20y2%3D%2215%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/ach/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2010%2012%204l9%206%22%2F%3E%3Cpath%20d%3D%22M5%2010v8M10%2010v8M14%2010v8M19%2010v8%22%2F%3E%3Cpath%20d%3D%22M3%2021h18%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/ach/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/ach/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2010%2012%204l9%206%22%2F%3E%3Cpath%20d%3D%22M5%2010v8M10%2010v8M14%2010v8M19%2010v8%22%2F%3E%3Cpath%20d%3D%22M3%2021h18%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/estimates/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%203a2.83%202.83%200%200%201%204%204L7.5%2020.5%202%2022l1.5-5.5z%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/estimates/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/estimates/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%203a2.83%202.83%200%200%201%204%204L7.5%2020.5%202%2022l1.5-5.5z%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/contracts/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%204h6a3%203%200%200%201%203%203v13a2.5%202.5%200%200%200-2.5-2.5H3z%22%2F%3E%3Cpath%20d%3D%22M21%204h-6a3%203%200%200%200-3%203v13a2.5%202.5%200%200%201%202.5-2.5H21z%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/contracts/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/contracts/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%204h6a3%203%200%200%201%203%203v13a2.5%202.5%200%200%200-2.5-2.5H3z%22%2F%3E%3Cpath%20d%3D%22M21%204h-6a3%203%200%200%200-3%203v13a2.5%202.5%200%200%201%202.5-2.5H21z%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/overview/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%209.5%2012%203l9%206.5V20a1%201%200%200%201-1%201h-5v-6H9v6H4a1%201%200%200%201-1-1z%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/overview/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/overview/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%209.5%2012%203l9%206.5V20a1%201%200%200%201-1%201h-5v-6H9v6H4a1%201%200%200%201-1-1z%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/details/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%2211%22%20x2%3D%2212%22%20y2%3D%2216%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%228%22%20x2%3D%2212.01%22%20y2%3D%228%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/details/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/details/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%2211%22%20x2%3D%2212%22%20y2%3D%2216%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%228%22%20x2%3D%2212.01%22%20y2%3D%228%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/profilepassword/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%227.5%22%20cy%3D%2215.5%22%20r%3D%224.5%22%2F%3E%3Cpath%20d%3D%22M10.7%2012.3%2020%203M16%207l2%202M19%204l2%202%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/profilepassword/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/profilepassword/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%227.5%22%20cy%3D%2215.5%22%20r%3D%224.5%22%2F%3E%3Cpath%20d%3D%22M10.7%2012.3%2020%203M16%207l2%202M19%204l2%202%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/email/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m2.6%206.6%209.4%206.2%209.4-6.2%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/email/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/email/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m2.6%206.6%209.4%206.2%209.4-6.2%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/password/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%2210%22%20width%3D%2216%22%20height%3D%2211%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%2010V7a4%204%200%200%201%208%200v3%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/password/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/password/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%2210%22%20width%3D%2216%22%20height%3D%2211%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M8%2010V7a4%204%200%200%201%208%200v3%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/settings/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M12%202v3M12%2019v3M4.9%204.9l2.1%202.1M17%2017l2.1%202.1M2%2012h3M19%2012h3M4.9%2019.1%207%2017M17%207l2.1-2.1%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/settings/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/settings/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M12%202v3M12%2019v3M4.9%204.9l2.1%202.1M17%2017l2.1%202.1M2%2012h3M19%2012h3M4.9%2019.1%207%2017M17%207l2.1-2.1%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/logs/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpolyline%20points%3D%2212%207%2012%2012%2015%2014%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/logs/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/logs/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpolyline%20points%3D%2212%207%2012%2012%2015%2014%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/emails/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m2.6%206.6%209.4%206.2%209.4-6.2%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/emails/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/emails/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22m2.6%206.6%209.4%206.2%209.4-6.2%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/portal_notifications/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%208a6%206%200%200%200-12%200c0%206-2%207-2%207h16s-2-1-2-7%22%2F%3E%3Cpath%20d%3D%22M13.7%2020a2%202%200%200%201-3.4%200%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/portal_notifications/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/portal_notifications/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%208a6%206%200%200%200-12%200c0%206-2%207-2%207h16s-2-1-2-7%22%2F%3E%3Cpath%20d%3D%22M13.7%2020a2%202%200%200%201-3.4%200%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/profiles/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2021a8%208%200%200%201%2016%200%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/profiles/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/profiles/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%224%22%2F%3E%3Cpath%20d%3D%22M4%2021a8%208%200%200%201%2016%200%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/teams/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223.5%22%2F%3E%3Cpath%20d%3D%22M3%2020a6%206%200%200%201%2012%200%22%2F%3E%3Cpath%20d%3D%22M16%204.5a3.5%203.5%200%200%201%200%206.9M18.5%2020a6%206%200%200%200-3.5-5.4%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/teams/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/teams/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223.5%22%2F%3E%3Cpath%20d%3D%22M3%2020a6%206%200%200%201%2012%200%22%2F%3E%3Cpath%20d%3D%22M16%204.5a3.5%203.5%200%200%201%200%206.9M18.5%2020a6%206%200%200%200-3.5-5.4%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/affiliates/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%225%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%226%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M12%208v3M12%2011l-6%205M12%2011l6%205%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/affiliates/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/affiliates/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%225%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%2218%22%20r%3D%222%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%226%22%20r%3D%222%22%2F%3E%3Cpath%20d%3D%22M12%208v3M12%2011l-6%205M12%2011l6%205%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/commissions/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2219%22%20y1%3D%225%22%20x2%3D%225%22%20y2%3D%2219%22%2F%3E%3Ccircle%20cx%3D%227.5%22%20cy%3D%227.5%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2216.5%22%20cy%3D%2216.5%22%20r%3D%222.5%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/commissions/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/commissions/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2219%22%20y1%3D%225%22%20x2%3D%225%22%20y2%3D%2219%22%2F%3E%3Ccircle%20cx%3D%227.5%22%20cy%3D%227.5%22%20r%3D%222.5%22%2F%3E%3Ccircle%20cx%3D%2216.5%22%20cy%3D%2216.5%22%20r%3D%222.5%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/payouts/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v10M14.5%209.3a2.5%202.5%200%200%200-2.5-1.8h-.3a2.2%202.2%200%200%200%200%204.5h.6a2.2%202.2%200%200%201%200%204.5H12a2.5%202.5%200%200%201-2.5-1.8%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/payouts/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/payouts/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cpath%20d%3D%22M12%207v10M14.5%209.3a2.5%202.5%200%200%200-2.5-1.8h-.3a2.2%202.2%200%200%200%200%204.5h.6a2.2%202.2%200%200%201%200%204.5H12a2.5%202.5%200%200%201-2.5-1.8%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/vouchers/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%208V6a1%201%200%200%201%201-1h16a1%201%200%200%201%201%201v2a2.5%202.5%200%200%200%200%205v3a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1v-3a2.5%202.5%200%200%200%200-5z%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%227%22%20x2%3D%2212%22%20y2%3D%229%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%2215%22%20x2%3D%2212%22%20y2%3D%2217%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/vouchers/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/vouchers/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%208V6a1%201%200%200%201%201-1h16a1%201%200%200%201%201%201v2a2.5%202.5%200%200%200%200%205v3a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1v-3a2.5%202.5%200%200%200%200-5z%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%227%22%20x2%3D%2212%22%20y2%3D%229%22%2F%3E%3Cline%20x1%3D%2212%22%20y1%3D%2215%22%20x2%3D%2212%22%20y2%3D%2217%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/commission_plans/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%205h13v15H5a1%201%200%200%201-1-1z%22%2F%3E%3Cpath%20d%3D%22M17%208h3v10a2%202%200%200%201-2%202%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%228%22%20x2%3D%2214%22%20y2%3D%228%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2212%22%20x2%3D%2214%22%20y2%3D%2212%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2216%22%20x2%3D%2211%22%20y2%3D%2216%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/commission_plans/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/commission_plans/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%205h13v15H5a1%201%200%200%201-1-1z%22%2F%3E%3Cpath%20d%3D%22M17%208h3v10a2%202%200%200%201-2%202%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%228%22%20x2%3D%2214%22%20y2%3D%228%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2212%22%20x2%3D%2214%22%20y2%3D%2212%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2216%22%20x2%3D%2211%22%20y2%3D%2216%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href$="/mfa/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%227%22%20y%3D%222%22%20width%3D%2210%22%20height%3D%2220%22%20rx%3D%222%22%2F%3E%3Cline%20x1%3D%2211%22%20y1%3D%2218%22%20x2%3D%2213%22%20y2%3D%2218%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href$="/mfa/"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href$="/mfa/"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%227%22%20y%3D%222%22%20width%3D%2210%22%20height%3D%2220%22%20rx%3D%222%22%2F%3E%3Cline%20x1%3D%2211%22%20y1%3D%2218%22%20x2%3D%2213%22%20y2%3D%2218%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href*="#ipaccess"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2022s8-4%208-10V5l-8-3-8%203v7c0%206%208%2010%208%2010z%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href*="#ipaccess"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href*="#ipaccess"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2022s8-4%208-10V5l-8-3-8%203v7c0%206%208%2010%208%2010z%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[href*="#ssh"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpolyline%20points%3D%227%2010%2010%2012.5%207%2015%22%2F%3E%3Cline%20x1%3D%2213%22%20y1%3D%2215%22%20x2%3D%2217%22%20y2%3D%2215%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[href*="#ssh"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[href*="#ssh"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%222%22%2F%3E%3Cpolyline%20points%3D%227%2010%2010%2012.5%207%2015%22%2F%3E%3Cline%20x1%3D%2213%22%20y1%3D%2215%22%20x2%3D%2217%22%20y2%3D%2215%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[data-items="vps"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolygon%20points%3D%2212%202%2022%207%2012%2012%202%207%22%2F%3E%3Cpolyline%20points%3D%222%2017%2012%2022%2022%2017%22%2F%3E%3Cpolyline%20points%3D%222%2012%2012%2017%2022%2012%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[data-items="vps"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[data-items="vps"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolygon%20points%3D%2212%202%2022%207%2012%2012%202%207%22%2F%3E%3Cpolyline%20points%3D%222%2017%2012%2022%2022%2017%22%2F%3E%3Cpolyline%20points%3D%222%2012%2012%2017%2022%2012%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[data-items="dedicated"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%227%22%20rx%3D%222%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2214%22%20width%3D%2218%22%20height%3D%227%22%20rx%3D%222%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%226.5%22%20x2%3D%227.01%22%20y2%3D%226.5%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2217.5%22%20x2%3D%227.01%22%20y2%3D%2217.5%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[data-items="dedicated"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[data-items="dedicated"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%227%22%20rx%3D%222%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2214%22%20width%3D%2218%22%20height%3D%227%22%20rx%3D%222%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%226.5%22%20x2%3D%227.01%22%20y2%3D%226.5%22%2F%3E%3Cline%20x1%3D%227%22%20y1%3D%2217.5%22%20x2%3D%227.01%22%20y2%3D%2217.5%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[data-items="cloud"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17.5%2019a4.5%204.5%200%200%200%200-9%206%206%200%200%200-11.5-1.5A4%204%200%200%200%206%2019z%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[data-items="cloud"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[data-items="cloud"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17.5%2019a4.5%204.5%200%200%200%200-9%206%206%200%200%200-11.5-1.5A4%204%200%200%200%206%2019z%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[data-items="domains"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%223%22%20y1%3D%2212%22%20x2%3D%2221%22%20y2%3D%2212%22%2F%3E%3Cpath%20d%3D%22M12%203a14%2014%200%200%201%203.5%209%2014%2014%200%200%201-3.5%209%2014%2014%200%200%201-3.5-9A14%2014%200%200%201%2012%203z%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[data-items="domains"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[data-items="domains"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%223%22%20y1%3D%2212%22%20x2%3D%2221%22%20y2%3D%2212%22%2F%3E%3Cpath%20d%3D%22M12%203a14%2014%200%200%201%203.5%209%2014%2014%200%200%201-3.5%209%2014%2014%200%200%201-3.5-9A14%2014%200%200%201%2012%203z%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[data-items="domain"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%223%22%20y1%3D%2212%22%20x2%3D%2221%22%20y2%3D%2212%22%2F%3E%3Cpath%20d%3D%22M12%203a14%2014%200%200%201%203.5%209%2014%2014%200%200%201-3.5%209%2014%2014%200%200%201-3.5-9A14%2014%200%200%201%2012%203z%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[data-items="domain"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[data-items="domain"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%223%22%20y1%3D%2212%22%20x2%3D%2221%22%20y2%3D%2212%22%2F%3E%3Cpath%20d%3D%22M12%203a14%2014%200%200%201%203.5%209%2014%2014%200%200%201-3.5%209%2014%2014%200%200%201-3.5-9A14%2014%200%200%201%2012%203z%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[data-items="dns"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%223%22%20y1%3D%2212%22%20x2%3D%2221%22%20y2%3D%2212%22%2F%3E%3Cpath%20d%3D%22M12%203a14%2014%200%200%201%203.5%209%2014%2014%200%200%201-3.5%209%2014%2014%200%200%201-3.5-9A14%2014%200%200%201%2012%203z%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[data-items="dns"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[data-items="dns"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%2F%3E%3Cline%20x1%3D%223%22%20y1%3D%2212%22%20x2%3D%2221%22%20y2%3D%2212%22%2F%3E%3Cpath%20d%3D%22M12%203a14%2014%200%200%201%203.5%209%2014%2014%200%200%201-3.5%209%2014%2014%200%200%201-3.5-9A14%2014%200%200%201%2012%203z%22%2F%3E%3C%2Fsvg%3E"); }

.nav-tabs-wrapper li.nav-item > a.nav-link:not(.nav-link-slider)[data-items="admin"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%236e6e73%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M12%202v3M12%2019v3M4.9%204.9l2.1%202.1M17%2017l2.1%202.1M2%2012h3M19%2012h3M4.9%2019.1%207%2017M17%207l2.1-2.1%22%2F%3E%3C%2Fsvg%3E"); }
.nav-tabs-wrapper li.nav-item.active > a.nav-link:not(.nav-link-slider)[data-items="admin"]::before,
.nav-tabs-wrapper li.nav-item > a.nav-link.active:not(.nav-link-slider)[data-items="admin"]::before { background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23ffffff%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3Cpath%20d%3D%22M12%202v3M12%2019v3M4.9%204.9l2.1%202.1M17%2017l2.1%202.1M2%2012h3M19%2012h3M4.9%2019.1%207%2017M17%207l2.1-2.1%22%2F%3E%3C%2Fsvg%3E"); }

/* ============================================================================
   5. ПЕРЕХОД С ВИТРИНЫ /panel/ В КЛИЕНТСКУЮ ЗОНУ

   Клиента с услугами страница /panel/ переадресует на /panel/clientarea/
   (условие и разметка — в templates/2019/root.tpl). Пока грузится следующая
   страница, вместо мигания витрины показывается тот же экран ожидания, что и
   на сайте: полотно панели и расширяющееся кольцо из шаблона Snowlake
   (.page-loading, @keyframes loader-scale в assets/css/style.css).
   ============================================================================ */

.cplv-goto {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9999999;
    background: var(--cplv-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.cplv-goto-in {
    padding: 0 1.5rem;
}

/* Кольцо расходится из центра и гаснет — один в один анимация лоадера сайта.
   Высота задана явно: у пустого элемента её нет, а кольцо нарисовано
   псевдоэлементом, и без коробки текст подпрыгнул бы к самому верху. */
.cplv-goto-spinner {
    position: relative;
    width: 2.5rem;
    height: 2.5rem;
    margin: 0 auto 1.5rem;
}

.cplv-goto-spinner::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 2.5rem;
    height: 2.5rem;
    border: 4px solid var(--cplv-dark);
    border-radius: 50%;
    animation: cplv-goto-scale 1s ease-out infinite;
}

@keyframes cplv-goto-scale {
    0%   { transform: scale(0); opacity: 0; }
    50%  { opacity: 1; }
    100% { transform: scale(1); opacity: 0; }
}

/* Кому анимация мешает (укачивает, отвлекает) — показываем спокойное кольцо. */
@media (prefers-reduced-motion: reduce) {
    .cplv-goto-spinner::after {
        animation: none;
        opacity: .35;
    }
}

.cplv-goto-text {
    margin: 0 0 .75rem;
    color: var(--cplv-text);
    font-size: 16px;
    line-height: 28px;
}

/* Ссылка — страховка: если переход не сработал (JS выключен, медленная сеть,
   заблокированный redirect), человек всё равно видит, куда идти. */
.cplv-goto-link {
    color: var(--cplv-green-dark);
    font-weight: 600;
    text-decoration: underline;
}

/* ============================================================================
   6. ТЁМНЫЙ РЕЖИМ УСТРОЙСТВА И ТИПОГРАФИКА ТЕМЫ cp-lv

   Тема HostBill свёрстана под светлый интерфейс: у неё жёстко заданы белые
   подложки, тёмный текст и серые рамки. Ниже эти места переведены на токены,
   поэтому в тёмном режиме устройства панель становится тёмной целиком, а не
   пятнами. Правила намеренно перечисляют стоковые классы: своей разметки у нас
   почти нет — её рисует закрытый код HostBill.
   ============================================================================ */

/* ---- типографика ----
   Onest — интерфейс, IBM Plex Mono — адреса, хосты, имена ОС и ключи: они
   должны читаться как код, а не как проза. Шрифты подключены в
   templates/cp-lv/header.shared.tpl. */
body,
body.template_2019,
body input, body select, body textarea, body button {
    font-family: Onest, "Segoe UI", system-ui, -apple-system, sans-serif;
}
/* ⚠️ Иконочный шрифт возвращаем ЯВНО. Тема опирается на лигатуры Material Icons:
   в разметке написано слово («shopping_cart»), а шрифт рисует значок. Стоит
   перебить у них font-family — и в шапке вместо иконок появляются слова
   «shopping_cart», «notifications», «dark_mode» (наступали 30.08.2026, когда
   общий Onest применился и к ним). */
body .material-icons,
body i.material-icons,
body .material-icons-outlined {
    font-family: "Material Icons" !important;
    font-weight: normal;
    font-style: normal;
    letter-spacing: normal;
    text-transform: none;
    white-space: nowrap;
    direction: ltr;
    -webkit-font-feature-settings: "liga";
    font-feature-settings: "liga";
}
body code, body pre, body kbd, body samp,
body .cplv-mono,
body .cplv-card__sub {
    font-family: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
/* Деньги, даты и объёмы — табличными цифрами: в списке они встают в колонку. */
body .cplv-card__amount,
body .cplv-card__meta dd,
body table td, body table th {
    font-variant-numeric: tabular-nums;
}

/* ---- полотно и текст ---- */
body.template_2019 {
    background-color: var(--cplv-bg);
    color: var(--cplv-ink);
}
body h1, body h2, body h3, body h4, body h5, body h6,
body .h1, body .h2, body .h3, body .h4, body .h5, body .h6 {
    color: var(--cplv-ink);
}
body p, body span, body div, body li, body dt, body dd, body label {
    color: inherit;
}
body .text-muted, body .text-secondary, body small.text-muted {
    color: var(--cplv-muted) !important;
}

/* ---- блоки ----
   Форму блоку даёт контур: в тёмном режиме тень не видна вовсе, а в светлом
   одной тени мало — полотно светло-серое, но близкое к белому. */
.cplv-box,
body .card,
body .table-responsive.table-borders,
body .info-box .info-box-items,
body .box,
body .cplv-card {
    background: var(--cplv-surface);
    border: 1px solid var(--cplv-line) !important;
    border-radius: var(--cplv-radius) !important;
    box-shadow: var(--cplv-shadow);
    color: var(--cplv-ink);
}

/* ---- таблицы ----
   Стоковые списки остаются таблицами (их рисует закрытый код), но перестают
   быть белым пятном: подложка прозрачная, линии — токеном, шапка приглушена. */
body .table,
body .table > thead > tr > th,
body .table > tbody > tr > td,
body .table > tbody > tr > th {
    background-color: transparent;
    color: var(--cplv-ink);
    border-color: var(--cplv-line);
}
body .table > thead > tr > th {
    color: var(--cplv-muted);
    font-weight: 600;
    background-color: var(--cplv-surface-2);
}
body .table-hover > tbody > tr:hover,
body .table-striped > tbody > tr:nth-of-type(odd) {
    background-color: var(--cplv-surface-2);
}
body .table a { color: var(--cplv-ink); }
body .table a:hover { color: var(--cplv-accent); }

/* ---- поля ввода ----
   ⚠️ Поле обязано отличаться от блока, в котором лежит: в тёмном режиме это
   заметнее всего — одинаковый фон превращает форму в сплошное пятно. */
body .form-control,
body .custom-select,
body textarea.form-control,
body .selectize-input,
body .input-group-text {
    background-color: var(--cplv-bg);
    border: 1px solid var(--cplv-line);
    color: var(--cplv-ink);
    border-radius: var(--cplv-radius-sm);
}
body .form-control::placeholder,
body textarea.form-control::placeholder { color: var(--cplv-muted); }
body .form-control:focus,
body .custom-select:focus,
body .selectize-input.focus {
    background-color: var(--cplv-bg);
    border-color: var(--cplv-accent);
    box-shadow: var(--cplv-glow);
    color: var(--cplv-ink);
}
body label, body .form-group label { color: var(--cplv-muted); }

/* ---- всплывающие поверхности ----
   Меню, модалки и подсказки рисуются поверх страницы и в стоке всегда белые. */
body .dropdown-menu,
body .modal-content,
body .popover,
body .selectize-dropdown {
    background-color: var(--cplv-surface);
    border: 1px solid var(--cplv-line);
    color: var(--cplv-ink);
    border-radius: var(--cplv-radius);
}
body .dropdown-item, body .selectize-dropdown-content .option { color: var(--cplv-ink); }
body .dropdown-item:hover,
body .dropdown-item:focus,
body .selectize-dropdown-content .option.active {
    background-color: var(--cplv-surface-2);
    color: var(--cplv-ink);
}
body .dropdown-divider,
body .modal-header, body .modal-footer { border-color: var(--cplv-line); }

/* ---- прочие подложки темы ---- */
body .list-group-item,
body .card-header, body .card-footer,
body .nav-tabs, body .breadcrumb, body .page-link, body .accordion .card {
    background-color: transparent;
    border-color: var(--cplv-line);
    color: var(--cplv-ink);
}
body hr { border-color: var(--cplv-line); }

/* ---- кнопки в новой схеме ----
   Действие — единственное цветное пятно на экране; всё остальное контурное. */
body .btn,
body .btn.btn-sm,
body .btn.btn-lg { border-radius: var(--cplv-radius-sm); }
body .btn-primary, body .btn-success, body .btn-info,
body .btn_pay, body .btn-paynow, body .btn-paynow2 {
    background-color: var(--cplv-accent) !important;
    border-color: var(--cplv-accent) !important;
    color: var(--cplv-on-accent) !important;
}
body .btn-primary:hover, body .btn-success:hover, body .btn-info:hover,
body .btn_pay:hover, body .btn-paynow:hover, body .btn-paynow2:hover {
    background-color: var(--cplv-accent-hover) !important;
    border-color: var(--cplv-accent-hover) !important;
    color: var(--cplv-on-accent) !important;
}
body .btn-secondary, body .btn-light, body .btn-default {
    background-color: transparent !important;
    border: 1px solid var(--cplv-line) !important;
    color: var(--cplv-ink) !important;
}
body .btn-secondary:hover, body .btn-light:hover, body .btn-default:hover {
    background-color: var(--cplv-surface-2) !important;
    border-color: var(--cplv-line-strong) !important;
    color: var(--cplv-ink) !important;
}

/* ---- бейджи состояний ----
   Состояние читается словом и цветом сразу: цвет не единственный носитель
   смысла (дальтонизм, чёрно-белая печать). */
body .badge {
    border-radius: 6px;
    font-weight: 600;
    padding: 5px 10px;
    background-color: var(--cplv-surface-2);
    color: var(--cplv-muted);
}
body .badge-Paid, body .badge-Active {
    background-color: var(--cplv-surface-2) !important;
    color: var(--cplv-ok) !important;
}
body .badge-Unpaid, body .badge-Pending, body .badge-Suspended {
    background-color: var(--cplv-surface-2) !important;
    color: var(--cplv-warn) !important;
}
body .badge-Cancelled, body .badge-Terminated, body .badge-Overdue {
    background-color: var(--cplv-surface-2) !important;
    color: var(--cplv-danger) !important;
}

/* ---- фокус с клавиатуры ----
   Видимое кольцо на всём, что можно активировать: без него тёмная тема
   становится непроходимой для клавиатуры. */
body a:focus-visible,
body button:focus-visible,
body .btn:focus-visible,
body .nav-link:focus-visible {
    outline: 2px solid var(--cplv-accent);
    outline-offset: 2px;
}

@media (prefers-reduced-motion: reduce) {
    body * { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ---- шапка и всплывающие меню ----
   ⚠️ Шапка и левое меню тёмные В ОБЕИХ темах, поэтому их цвета — отдельные
   токены, а не общие: в светлом режиме они не должны светлеть вместе с полотном.
   Стоковый .navbar белый; тёмный вид ему даёт вложенный блок темы, но сам nav
   всё равно просвечивает по краям — красим явно.
   Выпадающие меню (корзина, уведомления, язык, аккаунт) тема красит белым с
   высокой специфичностью, поэтому здесь !important: без него в тёмном режиме
   из шапки вываливается белый прямоугольник. */
/* ⚠️ Шапка красится в цвет ПОЛОТНА, а не в цвет бокового меню: по макету это
   верхний край рабочей области, отделённый одной линией, а не второй тёмный
   слой. Белая шапка на сером полотне выглядела чужой (правка 30.08.2026). */
body .navbar,
body .navbar.fixed-top,
body .navbar > .container-fluid,
body .navbar-header,
body .navbar-body,
body .main-overlay {
    background-color: var(--cplv-bg) !important;
    border-bottom: 1px solid var(--cplv-line) !important;
    box-shadow: none !important;
}
body .navbar .nav-link,
body .navbar .navbar-text,
body .navbar a { color: var(--cplv-ink); }

body .dropdown-menu,
body .dropdown-menu.dropdown-menu-lg,
body .dropdown-menu.notifications-drop,
body .dropdown-menu.dropdown-order-items {
    background-color: var(--cplv-surface) !important;
    border: 1px solid var(--cplv-line) !important;
    color: var(--cplv-ink) !important;
    box-shadow: var(--cplv-shadow-hover);
}
body .dropdown-menu .dropdown-item,
body .dropdown-menu a,
body .dropdown-menu .media-body,
body .dropdown-menu h6, body .dropdown-menu p { color: var(--cplv-ink) !important; }
body .dropdown-menu .text-muted { color: var(--cplv-muted) !important; }
body .dropdown-menu .dropdown-item:hover,
body .dropdown-menu .dropdown-item:focus {
    background-color: var(--cplv-surface-2) !important;
}

/* Иконки шапки — корзина, уведомления, язык, аккаунт — остаются на месте:
   убран из шапки только поиск. Приводим их к одному размеру и расстоянию,
   чтобы ряд читался как один блок, а не как случайный набор. */
body .navbar .navbar-icon { color: var(--cplv-muted); }
body .navbar .badge { background-color: var(--cplv-accent); color: var(--cplv-on-accent); }

/* Пустая полоса, оставшаяся в шапке от удалённого поиска, в стоке белая. */
body .navbar-body,
body .navbar-collapse,
body .navbar .navbar-nav { background-color: transparent !important; }
body .navbar > .container-fluid,
body .navbar-header { background-color: var(--cplv-nav-bg) !important; }

/* Иконки шапки (корзина, уведомления, баланс, язык, аккаунт) в стоке лежат на
   белых плашках — шапка изначально была светлой. Красим их подложку в цвет
   шапки, иначе справа от кнопки «Заказать» тянется белая полоса. Сами кнопки
   остаются на месте: из шапки убран только поиск. */
body .navbar .nav-link,
body .navbar .nav-item,
body .navbar .nav-item > a,
body .navbar .dropdown > a {
    background-color: transparent !important;
    color: var(--cplv-ink) !important;
    border-color: var(--cplv-line) !important;
}
body .navbar .nav-link:hover,
body .navbar .nav-item > a:hover {
    background-color: var(--cplv-surface-2) !important;
    border-radius: var(--cplv-radius-sm);
}
body .navbar .nav-link .text-muted,
body .navbar .nav-link small { color: var(--cplv-muted) !important; }
body .navbar .material-icons { color: var(--cplv-muted) !important; }
body .navbar .nav-link:hover .material-icons { color: var(--cplv-ink) !important; }

/* ============================================================================
   7. СПИСКИ: ТАБЛИЦА, КОТОРАЯ ЧИТАЕТСЯ КАК СТРОКИ

   Списки счетов, услуг и доменов остаются <table> — на них завязаны сортировка,
   фильтры, пагинация и массовые действия темы. Меняем не разметку, а вид:
   строка получает воздух, действие вместо стрелки, а на телефоне таблица
   превращается в карточки (подписи берутся из data-label, которые тема уже
   проставляет ячейкам).
   ============================================================================ */

body .table > tbody > tr > td,
body .table > thead > tr > th { padding: 14px 16px; vertical-align: middle; }
body .table > tbody > tr > td { font-size: 15px; }
body .table > thead > tr > th { font-size: 12px; letter-spacing: .03em; text-transform: uppercase; }
body .table td.cplv-col-action { text-align: right; white-space: nowrap; width: 1%; }
body .table .cplv-inv-num { font-weight: 600; }

/* Пустое состояние списка: заголовок и объяснение вместо «Нечего отобразить». */
body .table td.cplv-empty {
    padding: 44px 20px;
    text-align: center;
}
body .cplv-empty__title {
    display: block;
    font-size: 17px;
    font-weight: 600;
    color: var(--cplv-ink);
}
body .cplv-empty__text {
    display: block;
    margin: 8px auto 0;
    max-width: 460px;
    font-size: 14px;
    line-height: 1.6;
    color: var(--cplv-muted);
}

@media (max-width: 767px) {
    /* Таблица → карточки. Шапка не нужна: подпись каждой величины уходит в саму
       строку из data-label, иначе на 390 px колонки схлопываются в кашу. */
    body .table-responsive.table-borders > .table > thead { display: none; }
    body .table-responsive.table-borders > .table,
    body .table-responsive.table-borders > .table > tbody,
    body .table-responsive.table-borders > .table > tbody > tr,
    body .table-responsive.table-borders > .table > tbody > tr > td { display: block; width: 100%; }
    body .table-responsive.table-borders > .table > tbody > tr {
        border: 1px solid var(--cplv-line);
        border-radius: var(--cplv-radius);
        margin-bottom: 12px;
        padding: 6px 4px;
    }
    body .table-responsive.table-borders > .table > tbody > tr > td {
        border: 0;
        display: flex;
        justify-content: space-between;
        gap: 14px;
        padding: 9px 14px;
        text-align: right;
    }
    body .table-responsive.table-borders > .table > tbody > tr > td::before {
        content: attr(data-label);
        color: var(--cplv-muted);
        font-size: 14px;
        text-align: left;
    }
    /* Действие — во всю ширину карточки: это единственная цель для пальца. */
    body .table td.cplv-col-action { width: auto; text-align: center; }
    body .table td.cplv-col-action::before { content: none; }
    body .table td.cplv-col-action .btn { width: 100%; padding: 13px 18px; font-size: 15px; }
}

/* ============================================================================
   8. ЛЕВОЕ МЕНЮ ПО МАКЕТУ

   Тема подсвечивает текущий раздел ярко-синей плашкой — единственным синим
   пятном во всей панели: он спорит и с зелёной кнопкой действия, и с бейджами
   статусов. В макете текущий раздел показан спокойной тёмной плашкой и белой
   подписью, а остальные пункты приглушены.
   ============================================================================ */
body .sidebar,
body .sidebar-wrap,
body aside.sidebar {
    /* !important: тему сайдбара задаёт её собственный CSS с высокой
       специфичностью, и без этого в светлом режиме он остаётся тёмным. */
    background-color: var(--cplv-nav-bg) !important;
    border-right: 1px solid var(--cplv-nav-line);
    color: var(--cplv-nav-ink);
}
body .sidebar .sidebar-heading {
    color: var(--cplv-nav-muted);
    font-size: 11px;
    letter-spacing: .08em;
    text-transform: uppercase;
    padding-top: 18px;
}
body .sidebar .nav-link,
body .sidebar a {
    color: var(--cplv-nav-muted);
    border-radius: var(--cplv-radius-sm);
    margin: 2px 10px;
    padding: 10px 12px;
    font-size: 14px;
}
body .sidebar .nav-link .material-icons,
body .sidebar .nav-link .cplv-svg { color: inherit; }
body .sidebar .nav-link:hover {
    background-color: var(--cplv-nav-hover);
    color: var(--cplv-nav-ink);
}
body .sidebar .nav-link.active,
body .sidebar .nav-item.active > .nav-link {
    background-color: var(--cplv-nav-active) !important;
    color: var(--cplv-nav-ink) !important;
    font-weight: 600;
}
/* Подменю раздела «Услуги» — тем же приглушённым цветом, с отступом. */
body .sidebar .sub-nav .nav-link { padding-left: 42px; font-size: 14px; }

/* Строка списка услуг по макету: имя крупно, под ним — адрес приглушённым
   моноширинным. Дальше идут значения и действие. */
body .cplv-row-title { font-weight: 600; font-size: 15px; display: block; }
body .cplv-row-sub {
    display: block;
    margin-top: 3px;
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: 13px;
    color: var(--cplv-muted);
}
body .table td.cplv-mono {
    font-family: "IBM Plex Mono", ui-monospace, monospace;
    font-size: 14px;
    color: var(--cplv-muted);
}

/* Точка состояния в строке услуги: цвет дублирует бейдж, но виден раньше —
   глаз находит проблемную строку до того, как прочитает слово. */
body .cplv-row-name { display: flex; align-items: center; gap: 10px; }
body .cplv-dot { width: 9px; height: 9px; flex: 0 0 9px; border-radius: 50%; background: var(--cplv-muted); }
body .cplv-dot--Active { background: var(--cplv-ok); }
body .cplv-dot--Pending { background: var(--cplv-warn); }
body .cplv-dot--Suspended { background: var(--cplv-danger); }
body .cplv-dot--Cancelled, body .cplv-dot--Terminated { background: var(--cplv-muted); }

/* ---- сайдбар целиком, а не только его корень ----
   Тема красит тёмным несколько вложенных блоков: шапку с логотипом и кнопкой
   «скрыть панель», обёртку списка и раскрывающееся подменю раздела «Услуги».
   Пока они не переведены на токены, светлая тема выглядит поломанной: верх
   меню тёмный, низ белый (наступали 30.08.2026). */
body .sidebar,
body .sidebar-wrap,
body .sidebar-header,
body .sidebar-brand,
body .sidebar .sub-nav,
body .sidebar .collapse,
body .sidebar .collapsing,
body .sidebar .nav,
body .sidebar .nav-item,
body .navbar-brand-wrapper {
    background-color: var(--cplv-nav-bg) !important;
    color: var(--cplv-nav-ink);
}
/* Раскрытое подменю раздела отличается не цветом фона, а отступом и приглушённым
   текстом: лишняя заливка внутри меню делит его на несвязанные куски. */
body .sidebar .sub-nav .nav-link {
    background-color: transparent !important;
    color: var(--cplv-nav-muted) !important;
}
body .sidebar .sub-nav .nav-link:hover,
body .sidebar .sub-nav .nav-link.active {
    background-color: var(--cplv-nav-active) !important;
    color: var(--cplv-nav-ink) !important;
}
/* Счётчик услуг в пункте меню — приглушённая плашка, а не цветной бейдж. */
body .sidebar .badge {
    background-color: var(--cplv-nav-active) !important;
    color: var(--cplv-nav-muted) !important;
    font-weight: 600;
}
/* Кнопка «скрыть панель» и логотип. */
body .sidebar-toggler,
body .navbar-toggler,
body .sidebar .navbar-toggler {
    background-color: transparent !important;
    color: var(--cplv-ink) !important;
    border-color: var(--cplv-line) !important;
}
body .sidebar-toggler .material-icons,
body .navbar-toggler .material-icons,
body .navbar-toggler-icon { color: var(--cplv-ink) !important; }

/* ---- выпадающие меню шапки ----
   Их содержимое (аватар, строки, разделители, подписи) тема тоже красит своими
   цветами, поэтому перечисляем внутренности, а не только контейнер. */
body .dropdown-menu .media,
body .dropdown-menu .media-body,
body .dropdown-menu .list-group-item,
body .dropdown-menu .dropdown-header,
body .dropdown-menu .notification-item {
    background-color: transparent !important;
    color: var(--cplv-ink) !important;
    border-color: var(--cplv-line) !important;
}
body .dropdown-menu .dropdown-divider { border-top-color: var(--cplv-line) !important; }
body .dropdown-menu .material-icons { color: var(--cplv-muted) !important; }
body .dropdown-menu .dropdown-item:hover .material-icons { color: var(--cplv-ink) !important; }

/* ---- левый верхний блок шапки ----
   Тема красит .navbar .navbar-left (полоса над сайдбаром с логотипом и кнопкой
   «скрыть панель») в свой серый #464851 — он не менялся вместе с темой и в
   светлом режиме выглядел серым пятном между белой шапкой и белым меню.
   Тот же цвет тема даёт .sidebar и мобильной .navbar-body — перекрываем все три.
   ⚠️ Правило нужно ПОСЛЕ секций про меню и шапку: селекторы темы короткие,
   но подключается её файл раньше нашего, поэтому берём !important. */
/* Только .navbar-left принадлежит меню (он над сайдбаром). Остальные полосы
   шапки — часть рабочей области и красятся в цвет полотна, иначе сверху
   тянется белый прямоугольник. */
body .navbar > .navbar-collapse,
body .navbar .navbar-body {
    background-color: var(--cplv-bg) !important;
    border-color: var(--cplv-line) !important;
}
body .navbar .navbar-left {
    background-color: var(--cplv-nav-bg) !important;
    border-color: var(--cplv-nav-line) !important;
    color: var(--cplv-nav-ink) !important;
}
body .navbar .navbar-left .material-icons { color: var(--cplv-nav-ink) !important; }
/* Полоса-перетяжка ширины сайдбара и затемнение под мобильным меню — тоже
   стоковый #464851; в светлой теме от них остаются серые артефакты. */
body .sidebar-resizer,
body .sidebar .resizer { background-color: var(--cplv-nav-line) !important; }
body .sidebar-overlay { background-color: var(--cplv-ink) !important; }

/* ---- разделители в шапке ----
   В стоковой теме кнопки шапки разделены тонкими вертикальными линиями: они
   показывают, где кончается одна кликабельная зона и начинается другая. Когда
   подложки кнопок стали прозрачными, линии пропали и ряд слипся в кашу.
   Возвращаем их — и нижнюю границу самой шапки. */
body .navbar { border-bottom: 1px solid var(--cplv-line) !important; }
body .navbar .navbar-nav > .nav-item,
body .navbar .navbar-nav > li.nav-item {
    border-left: 1px solid var(--cplv-line);
}
body .navbar .navbar-nav > .nav-item:first-child { border-left: 0; }
body .navbar .navbar-nav > .nav-item > .nav-link,
body .navbar .navbar-nav > .nav-item > a,
body .navbar .navbar-nav > .nav-item > span.nav-link {
    padding-left: 18px;
    padding-right: 18px;
    height: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
}
/* Кнопка «Заказать» — отдельное действие, а не пункт ряда: разделитель ей не нужен. */
body .navbar .btn,
body .navbar .btn-group { border-left: 0; }

/* ---- марка cp.lv в шапке меню ----
   Логотипом в настройках темы стоит прозрачный пиксель, поэтому верх меню был
   пустым. Знак рисуется разметкой: зелёный квадрат с «cp» и подпись. */
body .navbar-brand.cplv-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0;
    text-decoration: none;
}
body .cplv-logo__mark {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border-radius: 8px;
    background: var(--cplv-accent);
    color: var(--cplv-on-accent);
    font-size: 13px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
body .cplv-logo__text {
    font-size: 15px;
    font-weight: 600;
    color: var(--cplv-nav-ink);
    letter-spacing: -.01em;
}

/* Кнопка «скрыть панель» остаётся и на десктопе (возвращена по просьбе
   владельца 31.08.2026): на широком экране ею освобождают место под таблицы
   и графики, а на узком без неё не открыть меню. */
body .btn-left-navbar.btn-toggler,
body .navbar-toggler {
    color: var(--cplv-nav-muted) !important;
    /* Рамку снимаем: это не самостоятельная кнопка, а служебный переключатель
       рядом с маркой — в рамке он спорит с логотипом за внимание. */
    border: 0 !important;
    box-shadow: none !important;
    background-color: transparent !important;
    border-radius: var(--cplv-radius-sm);
}
body .btn-left-navbar.btn-toggler:hover,
body .navbar-toggler:hover {
    background-color: var(--cplv-nav-hover) !important;
    color: var(--cplv-nav-ink) !important;
}

/* ---- контраст подписей в меню ----
   Тема приглушает пункты меню прозрачностью поверх цвета, поэтому подписи
   выглядели бледнее, чем в макете (замечание владельца 30.08.2026). Прозрачность
   снимаем и задаём цвет явно: неактивный пункт — приглушённый, текущий — полный
   контраст и полужирный. */
body .sidebar .nav-link,
body .sidebar .nav-link span,
body .sidebar .nav-link i,
body .sidebar a {
    color: var(--cplv-nav-muted) !important;
    opacity: 1 !important;
}
body .sidebar .nav-link.active,
body .sidebar .nav-link.active span,
body .sidebar .nav-link.active i,
body .sidebar .nav-item.active > .nav-link,
body .sidebar .nav-item.active > .nav-link span,
body .sidebar .nav-item.active > .nav-link i {
    color: var(--cplv-nav-ink) !important;
    font-weight: 600;
}
body .sidebar .nav-link:hover,
body .sidebar .nav-link:hover span,
body .sidebar .nav-link:hover i { color: var(--cplv-nav-ink) !important; }
/* Заголовки разделов меню («УПРАВЛЯТЬ», «АККАУНТ») — тоже без прозрачности. */
body .sidebar .sidebar-heading,
body .sidebar .sidebar-heading span {
    color: var(--cplv-nav-muted) !important;
    opacity: 1 !important;
}

/* ---- линия под шапкой идёт через весь экран ----
   В макете нижняя граница шапки не обрывается на сайдбаре: она проходит и под
   блоком с логотипом, отделяя верхнюю полосу целиком. У .navbar-left своя
   подложка (цвет меню), поэтому границу ему нужно задать отдельно. */
body .navbar .navbar-left {
    border-bottom: 1px solid var(--cplv-nav-line) !important;
    border-right: 1px solid var(--cplv-nav-line) !important;
}
