/* /Components/Account/Pages/Manage/Activate.razor.rz.scp.css */
/*
    Scoped-стили страницы активации. Цель — НЕ инлайн-стили (запрещены гайдом
    Syncfusion) и не «голые» bootstrap-карточки, а минимальная косметика поверх
    тем Syncfusion. ::deep нужен там, где разметку рендерит дочерний компонент
    Syncfusion (SfListView), а scope-атрибут на его узлы не попадает.
*/

/* Контейнер с position:relative — SfSpinner рендерится оверлеем внутри
   ближайшего позиционированного предка; без этого спиннер накрыл бы весь экран. */
.activation-host[b-n02lb9rzll] {
    position: relative;
}

/* Держит высоту области, пока пользователь грузится из БД (есть что накрывать
   спиннеру в первую отрисовку). */
.activation-placeholder[b-n02lb9rzll] {
    min-height: 140px;
}

/* Карточка фиксированной комфортной ширины — длинные строки текста хуже
   читаются (оптимум ~60–75 символов). */
.activation-card[b-n02lb9rzll] {
    max-width: 640px;
    margin-bottom: 1rem;
}

/* Отступы вокруг групп кнопок. */
.activation-actions[b-n02lb9rzll] {
    margin: 0.75rem 0;
}

/* Подсказка под кнопкой оплаты — мельче и приглушённее основного текста. */
.activation-hint[b-n02lb9rzll] {
    margin-top: 0.5rem;
    font-size: 0.85rem;
    color: var(--bs-secondary-color, #6c757d);
}

/* Список выгод — это статичная витрина, а не интерактивный список:
   убираем рамки/hover/курсор, чтобы он не выглядел «кликабельным». */
[b-n02lb9rzll] .activation-benefits,
[b-n02lb9rzll] .activation-benefits .e-list-item {
    border: none;
}

[b-n02lb9rzll] .activation-benefits .e-list-item {
    height: auto;
    line-height: 1.5;
    padding: 0.35rem 0;
    cursor: default;
    background: transparent;
}

[b-n02lb9rzll] .activation-benefits .e-list-item:hover {
    background: transparent;
}

/* Зелёная «галочка» перед каждым пунктом выгод. */
[b-n02lb9rzll] .activation-benefit-icon {
    margin-right: 0.5rem;
    color: #198754;
}
/* /Components/Account/Pages/Manage/Billing.razor.rz.scp.css */
/*
    Scoped-стили страницы баланса. Цель та же, что и на странице активации: не инлайн-стили
    (запрещены гайдом Syncfusion) и не «голые» bootstrap-карточки, а минимальная косметика
    поверх тем Syncfusion. ::deep нужен там, где разметку рендерит дочерний компонент
    Syncfusion (SfButton/SfNumericTextBox) — scope-атрибут на его внутренние узлы не попадает.

    ВАЖНО ПРО ДИАЛОГ. SfDialog портирует свой контент в <body>, ВНЕ DOM-поддерева страницы.
    Поэтому CSS-переменные темы (--primary, --bs-*) внутри диалога НЕ резолвятся (схлопываются
    в пустоту → серый/чёрный). Внутри диалога используем ЛИТЕРАЛЬНЫЕ цвета, а акцентную заливку
    кнопок отдаём встроенным классам Syncfusion (IsPrimary / e-primary), а не своим переменным.
*/

/* Отступ над кнопкой «Пополнить баланс» внутри карточки баланса — отделяет действие
   от пояснительного текста о незакрытых списаниях. */
.topup-actions[b-43xocv6cm6] {
    margin-top: 1rem;
}

/* ── Тело диалога пополнения ───────────────────────────────────────────── */

/* Колоночная раскладка с равномерными вертикальными отступами между элементами
   (поле суммы → пресеты → плашки → примечание). gap избавляет от ручных margin
   на каждом дочернем узле. */
.topup-dlg[b-43xocv6cm6] {
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
}

/* Подпись над полем суммы (литеральный цвет — см. шапку про переменные в диалоге). */
.topup-dlg-label[b-43xocv6cm6] {
    font-weight: 600;
    color: #0f172a;
    margin-bottom: -0.25rem;
}

/* Поле ввода суммы растягиваем на всю ширину диалога — Syncfusion по умолчанию
   делает input-group inline-блоком фиксированной ширины. */
[b-43xocv6cm6] .topup-dlg .e-numeric.e-input-group {
    width: 100%;
}

/* Ряд кнопок-пресетов: переносится на новую строку на узких экранах (flex-wrap). */
.topup-presets[b-43xocv6cm6] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* Кнопка-пресет: компактная «пилюля». Сбрасываем min-width, который Syncfusion навешивает
   на кнопки по умолчанию, чтобы суммы сидели плотно. Цвет (синяя заливка для выбранной,
   синий контур для остальных) задаётся в разметке через IsPrimary + e-outline e-primary —
   здесь только форма и типографика. */
[b-43xocv6cm6] .topup-preset.e-btn {
    border-radius: 999px;
    min-width: auto;
    padding-inline: 1rem;
    font-weight: 600;
}

/* Плашки SfMessage внутри диалога (ошибка/предпросмотр) растягиваем на всю ширину и
   убираем их собственный внешний отступ — вертикальные интервалы держит gap .topup-dlg. */
[b-43xocv6cm6] .topup-dlg .e-message {
    width: 100%;
    margin: 0;
}

/* Примечание под формой (про редирект на Robokassa) — мельче и приглушённее.
   Литеральный серый вместо var(--bs-secondary-color): в диалоге переменная не резолвится. */
.topup-note[b-43xocv6cm6] {
    margin: 0;
    font-size: 0.85rem;
    color: #6c757d;
}

/* Небольшой зазор между кнопками «Отмена» и «Перейти к оплате» в подвале диалога. */
[b-43xocv6cm6] .topup-dlg-cancel {
    margin-right: 0.5rem;
}
/* /Components/Layout/Admin/AdminLayout.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────────────────────
   Стили AdminLayout. Важное про Blazor CSS Isolation:

   - Селекторы БЕЗ ::deep компилируются с атрибутом scope (b-xxxxx) на самом
     селекторе и применяются только к элементам, отрисованным ЭТИМ
     компонентом (то есть напрямую в AdminLayout.razor).
   - Селекторы С ::deep компилируются как [b-xxxxx] .foo и применяются
     к потомкам — то есть к элементам внутри @Body (страницам админки:
     Dashboard.razor, Users.razor и т.д.).

   Поэтому: .ops-shell / .ops-sidebar / .ops-nav / .ops-main находятся
   ПРЯМО в AdminLayout — БЕЗ ::deep. Всё остальное (.ops-card, .ops-btn,
   таблицы и т.п.) рендерится дочерними страницами — С ::deep.
   ───────────────────────────────────────────────────────────────────────── */

.ops-shell[b-28e6gmei75] {
    display: grid;
    grid-template-columns: 240px 1fr;
    min-height: 100vh;
    background: #0f1419;
    color: #d8dee9;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

.ops-sidebar[b-28e6gmei75] {
    background: #0a0e13;
    border-right: 1px solid #1c2530;
    display: flex;
    flex-direction: column;
    padding: 18px 0;
    position: sticky;
    top: 0;
    height: 100vh;
}

.ops-brand[b-28e6gmei75] {
    padding: 0 20px 18px 20px;
    border-bottom: 1px solid #1c2530;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    color: #ffd166;
    letter-spacing: 0.5px;
}

.ops-brand i[b-28e6gmei75] {
    font-size: 18px;
}

.ops-brand strong[b-28e6gmei75] {
    color: #ff6b6b;
    font-weight: 600;
}

.ops-nav[b-28e6gmei75] {
    flex: 1;
    padding: 10px 0;
    overflow-y: auto;
}

/* ВАЖНО: NavLink — это дочерний компонент. Blazor CSS isolation НЕ добавляет
   scope-атрибут к элементам, отрисованным дочерним компонентом, поэтому
   к ссылке, которую рендерит NavLink, селекторы без ::deep НЕ применятся.
   Здесь обязательно нужно ::deep — иначе пункты сайдбара превратятся
   в обычные <a> без стилей и слипнутся в строку. */
[b-28e6gmei75] .ops-nav-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 20px;
    color: #aab4be;
    text-decoration: none;
    border-left: 3px solid transparent;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
    font-size: 14px;
}

[b-28e6gmei75] .ops-nav-link i {
    width: 16px;
    text-align: center;
    color: #6b7785;
}

[b-28e6gmei75] .ops-nav-link:hover {
    background: #131a22;
    color: #ffffff;
}

[b-28e6gmei75] .ops-nav-link.active {
    background: #131a22;
    color: #ffd166;
    border-left-color: #ff6b6b;
}

[b-28e6gmei75] .ops-nav-link.active i {
    color: #ffd166;
}

.ops-foot[b-28e6gmei75] {
    padding: 12px 20px;
    border-top: 1px solid #1c2530;
}

.ops-logout[b-28e6gmei75] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 9px 14px;
    color: #d8dee9;
    background: #1c2530;
    border: 1px solid #28323d;
    text-decoration: none;
    border-radius: 8px;
    font-size: 13px;
    transition: background 0.12s ease, color 0.12s ease, border-color 0.12s ease;
}

.ops-logout:hover[b-28e6gmei75] {
    background: #2a1818;
    border-color: #3a1f1f;
    color: #ff6b6b;
}

.ops-main[b-28e6gmei75] {
    padding: 24px 28px;
    overflow-x: hidden;
}

#blazor-error-ui[b-28e6gmei75] {
    background: #ff6b6b;
    color: #fff;
    bottom: 0;
    box-shadow: 0 -1px 2px rgba(0,0,0,.2);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

/* ─── Дочерние страницы (нужен ::deep) ──────────────────────────────────── */

[b-28e6gmei75] .ops-page-title {
    font-size: 22px;
    font-weight: 600;
    color: #ffffff;
    margin: 0 0 6px 0;
}

[b-28e6gmei75] .ops-page-subtitle {
    color: #6b7785;
    font-size: 13px;
    margin: 0 0 22px 0;
}

[b-28e6gmei75] .ops-card {
    background: #131a22;
    border: 1px solid #1c2530;
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 18px;
}

[b-28e6gmei75] .ops-card-title {
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #6b7785;
    margin: 0 0 10px 0;
    font-weight: 600;
}

/* ─── Базовая кнопка (расширения в страницах) ──────────────────────────── */

[b-28e6gmei75] .ops-btn {
    background: #1c2530;
    color: #d8dee9;
    border: 1px solid #28323d;
    border-radius: 8px;
    padding: 9px 16px;
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: background 0.12s ease, color 0.12s ease;
    text-decoration: none;
}

[b-28e6gmei75] .ops-btn:hover:not(:disabled) {
    background: #28323d;
    color: #fff;
}

[b-28e6gmei75] .ops-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

[b-28e6gmei75] .ops-btn-primary {
    background: #ffd166;
    color: #131a22;
    border-color: #ffd166;
}

[b-28e6gmei75] .ops-btn-primary:hover:not(:disabled) {
    background: #ffba1f;
    border-color: #ffba1f;
    color: #131a22;
}

[b-28e6gmei75] .ops-btn-danger {
    background: #2a1818;
    color: #ff6b6b;
    border-color: #3a1f1f;
}

[b-28e6gmei75] .ops-btn-danger:hover:not(:disabled) {
    background: #3a1f1f;
    color: #ff6b6b;
}

[b-28e6gmei75] .ops-btn-small {
    padding: 5px 10px;
    font-size: 12px;
}

[b-28e6gmei75] .user-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* ─── Уведомление ─────────────────────────────────────────────────────── */

[b-28e6gmei75] .ops-notice {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 8px;
    margin-bottom: 14px;
    font-size: 13px;
}

[b-28e6gmei75] .ops-notice.ok {
    background: #1a2a1a;
    border: 1px solid #2a3a2a;
    color: #69db7c;
}

[b-28e6gmei75] .ops-notice.err {
    background: #2a1a1a;
    border: 1px solid #3a1f1f;
    color: #ff6b6b;
}

[b-28e6gmei75] .ops-notice-close {
    margin-left: auto;
    background: transparent;
    border: none;
    color: inherit;
    cursor: pointer;
    opacity: 0.7;
}

[b-28e6gmei75] .ops-notice-close:hover { opacity: 1; }

/* ─── Шапка раздела ────────────────────────────────────────────────────── */

[b-28e6gmei75] .ops-dashhead {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 18px;
    gap: 16px;
}

/* ─── Общие таблицы и пилюли ──────────────────────────────────────────── */

[b-28e6gmei75] .ops-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

[b-28e6gmei75] .ops-table th {
    text-align: left;
    color: #6b7785;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 0.6px;
    padding: 8px 10px;
    border-bottom: 1px solid #1c2530;
}

[b-28e6gmei75] .ops-table td {
    padding: 8px 10px;
    border-bottom: 1px solid #161e27;
    color: #d8dee9;
}

[b-28e6gmei75] .ops-table tbody tr:hover { background: #161e27; }
[b-28e6gmei75] .ops-table .right { text-align: right; }
[b-28e6gmei75] .ops-table .mono {
    font-family: 'JetBrains Mono', 'Consolas', monospace;
    font-size: 12px;
}

[b-28e6gmei75] .ops-pill {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

[b-28e6gmei75] .pill-page { background: #243042; color: #4dabf7; }
[b-28e6gmei75] .pill-api { background: #1f3527; color: #69db7c; }
[b-28e6gmei75] .pill-4xx { background: #3a2a1a; color: #ffb867; }
[b-28e6gmei75] .pill-5xx { background: #3a1f1f; color: #ff6b6b; }

[b-28e6gmei75] .ops-empty {
    color: #6b7785;
    font-size: 13px;
    padding: 16px 0;
    text-align: center;
    font-style: italic;
}

[b-28e6gmei75] .mono {
    font-family: 'JetBrains Mono', 'Consolas', monospace;
    font-size: 12px;
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-jppw950l4o] {
    position: relative;
    display: flex;
    flex-direction: column;
}

main[b-jppw950l4o] {
    flex: 1;
}

#dockSidebar[b-jppw950l4o] {
    height: 100vh;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    /*background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);*/
    background-image: linear-gradient(180deg, #0066cc 0%, #004d99 70%);
}

#wrapper .sidebar-treeview[b-jppw950l4o] {
    z-index: 20 !important;
}

/* Во время dock-анимации (width 0.5s ease) Syncfusion на короткое время ставит
   на .e-sidebar overflow:visible — содержимое шириной 275px вылезает из узкого
   (65→275) бокса, и снизу мелькает горизонтальный скролл. Жёстко клипаем по X
   на всех фазах: при закрытом/открытом виде это ни на что не влияет, а мерцание
   скролла во время раскрытия пропадает. */
#wrapper[b-jppw950l4o]  .e-sidebar {
    overflow-x: hidden !important;
}

[b-jppw950l4o] .dockAppBar {
    background-color: #004d99 !important;
    color: #ffffff !important;
    min-height: 3.5rem;
}

#wrapper[b-jppw950l4o]  .pwyw-appbar-link.e-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 2.4rem;
    padding: 0 14px;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    font-weight: 750;
    letter-spacing: 0.005em;
    color: rgba(255, 255, 255, 0.96);
    background: rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.20);
    transform: translateY(0);
    transition: transform 140ms ease, box-shadow 180ms ease, background-color 180ms ease, border-color 180ms ease;
}

#wrapper[b-jppw950l4o]  .pwyw-appbar-link.e-btn:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.16);
    border-color: rgba(255, 255, 255, 0.40);
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.26);
}

#wrapper[b-jppw950l4o]  .pwyw-appbar-link.e-btn:active {
    transform: translateY(0);
    background: rgba(255, 255, 255, 0.10);
    box-shadow: 0 6px 14px rgba(0, 0, 0, 0.22);
}

#wrapper[b-jppw950l4o]  .pwyw-appbar-link.e-btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.30), 0 0 0 6px rgba(0, 0, 0, 0.18);
}

#wrapper[b-jppw950l4o]  .pwyw-appbar-link .e-btn-icon {
    font-size: 0.95rem;
    margin-right: 6px;
}

/* Воздух между кнопками AppBar, чтобы «Тарифы» и «Поддержать» не слипались */
#wrapper[b-jppw950l4o]  .pwyw-appbar-link.e-btn {
    margin: 0 5px;
}

/* Разделитель перед кнопкой ЛК — приглушаем под тёмный AppBar */
#wrapper[b-jppw950l4o]  .e-appbar-separator {
    border-color: rgba(255, 255, 255, 0.22);
    margin: 0 6px;
}

/* Кнопка входа/ЛК выровнена по тому же «стеклянному» стилю, что и пилюли
   слева, но БЕЗ заливки — вторичный акцент, не перетягивает внимание */
#wrapper[b-jppw950l4o]  .account-switcher-btn.e-btn {
    height: 2.4rem;
    width: 2.4rem;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.28);
    border-radius: 999px;
    color: rgba(255, 255, 255, 0.96);
    background: transparent;
    transition: background-color 180ms ease, border-color 180ms ease;
}

#wrapper[b-jppw950l4o]  .account-switcher-btn.e-btn:hover {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.40);
}

#wrapper .e-toolbar[b-jppw950l4o] {
    border-bottom: 1px solid #d2d6de;
}

.topnav[b-jppw950l4o] {
    min-height: 3.5rem;
    background-color: rgba(0,0,0,0.4);
}

.navbar-brand[b-jppw950l4o] {
    font-size: 1.1rem;
}

.navbar-brand-close[b-jppw950l4o] {
    margin-right: 0;
}

/* ============================================================================
   Бренд-бар Atlorium в боковом меню — ЕДИНАЯ раскладка, не прыгает при анимации.
   .brand-bar     — строка: [знак + имя] ……… [toggle]. Высота фиксирована.
   .brand-lockup  — клик-зона (знак + имя), ведёт на главную.
   .brand-mark    — «знак»: квадрат с буквой A и градиентом; всегда на одном месте.
   .brand-name    — wordmark; в свёрнутом виде плавно скрывается (opacity+width).
   .menuIcon-trailing — toggle; в свёрнутом виде скрыт (его не нажать в рельсе).

   ПОЧЕМУ ТАК: раньше @if переключал два разных блока → знак телепортировался
   из центра влево, toggle резко появлялся. Теперь DOM один, двигаются только
   прозрачность/ширина имени и toggle → бар стоит на месте.
   ============================================================================ */
.brand-bar[b-jppw950l4o] {
    display: flex;
    align-items: center;
    height: 3.5rem;
    padding: 0 10px;
    overflow: hidden;
    position: relative; /* для абсолютного позиционирования toggle (см. ниже) */
}

.brand-bar.is-collapsed[b-jppw950l4o] {
    /* В рельсе (65px) центрируем знак; padding убираем, чтобы знак встал по центру. */
    padding: 0;
    justify-content: center;
}

.brand-lockup[b-jppw950l4o] {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    padding: 4px 8px 4px 4px;
    border-radius: 12px;
    min-width: 0;
    transition: background-color 180ms ease;
}

.brand-lockup:hover[b-jppw950l4o] {
    background: rgba(255, 255, 255, 0.08);
    text-decoration: none;
}

.brand-bar.is-collapsed .brand-lockup[b-jppw950l4o] {
    gap: 0;
    padding: 4px;
}

/* Имя: в свёрнутом виде сворачиваем по ширине и гасим прозрачностью — плавно,
   без переноса и без сдвига знака. */
.brand-bar.is-collapsed .brand-name[b-jppw950l4o] {
    width: 0;
    opacity: 0;
    margin: 0;
    overflow: hidden;
}

/* Toggle: АБСОЛЮТНО у правого края (вне потока), поэтому не влияет на центрирование
   знака в рельсе и НЕ «едет» вместе с правым краем при slide-анимации панели.
   ПОЯВЛЕНИЕ — через opacity с ЗАДЕРЖКОЙ: панель открывается 0.5s (width-transition),
   поэтому toggle проявляется лишь к концу анимации (delay 0.38s), а не ползёт половинкой
   слева направо. При сворачивании гаснет сразу. */
.brand-bar .menuIcon-trailing[b-jppw950l4o] {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.16s ease, background-color 150ms ease;
}

.brand-bar.is-open .menuIcon-trailing[b-jppw950l4o] {
    opacity: 1;
    pointer-events: auto;
    transition: opacity 0.2s ease 0.38s, background-color 150ms ease;
}

/* «Знак» бренда — квадрат 34×34 с градиентом голубой→фиолетовый→пурпурный и буквой A.
   Размер 34px подобран под высоту строки 3.5rem AppBar/topnav, чтобы помещался по
   вертикали с воздухом. inset box-shadow с прозрачным белым даёт лёгкую внутреннюю
   подсветку — мягкая «стеклянная» окантовка. flex-shrink:0 не даёт ему сжаться,
   когда соседний wordmark не помещается. */
.brand-mark[b-jppw950l4o] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: linear-gradient(135deg, #38bdf8 0%, #6366f1 55%, #a855f7 100%);
    box-shadow: 0 6px 16px rgba(99, 102, 241, 0.45),
                inset 0 0 0 1px rgba(255, 255, 255, 0.22);
    flex-shrink: 0;
}

/* Буква A внутри знака. font-family задаётся явно, чтобы на разных платформах рендер
   не «гулял» от системного шрифта — Atlorium должен выглядеть одинаково везде. */
.brand-mark-letter[b-jppw950l4o] {
    color: #ffffff;
    font-weight: 800;
    font-size: 1.05rem;
    line-height: 1;
    letter-spacing: 0.5px;
    font-family: 'Inter', 'Segoe UI', system-ui, sans-serif;
    text-shadow: 0 1px 2px rgba(15, 23, 42, 0.35);
}

/* Текст «Atlorium» с горизонтальным градиентом. Техника: задаём градиентный background,
   обрезаем его по контуру глифов через background-clip:text и делаем сам текст
   прозрачным (-webkit-text-fill-color:transparent) — сквозь прозрачные глифы виден
   обрезанный градиент. fallback `color:#ffffff` спасает на старых браузерах,
   где background-clip:text не поддерживается. */
.brand-name[b-jppw950l4o] {
    color: #ffffff;
    font-weight: 700;
    font-size: 1.15rem;
    letter-spacing: 0.4px;
    background: linear-gradient(90deg, #ffffff 0%, #e0f2fe 50%, #c7d2fe 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    white-space: nowrap;
    /* Плавное скрытие/появление имени при сворачивании (см. .brand-bar.is-collapsed). */
    transition: width 180ms ease, opacity 160ms ease;
}

/* AppBar-вариант брендa: чуть мельче и без подложки при ховере не нужно — AppBar
   уже сам по себе акцентная полоса. */
.brand-lockup-appbar[b-jppw950l4o] {
    margin-left: 4px;
    padding: 2px 6px 2px 2px;
}

.brand-name-appbar[b-jppw950l4o] {
    font-size: 1.05rem;
    letter-spacing: 0.3px;
}

/* Слоган в AppBar, когда панель открыта — тонкая, приглушённая подпись,
   она не конкурирует с брендом из сайдбара. Три качества разделены
   акцентными точками брендового цвета. */
.appbar-tagline[b-jppw950l4o] {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    color: rgba(255, 255, 255, 0.82);
    font-weight: 500;
    font-size: 0.92rem;
    letter-spacing: 0.3px;
    margin-left: 14px;
    white-space: nowrap;
}

.appbar-tagline-word[b-jppw950l4o] {
    color: rgba(255, 255, 255, 0.92);
}

.appbar-tagline-dot[b-jppw950l4o] {
    color: #38bdf8;
    font-weight: 800;
    margin-right: 4px;
}

@media (max-width: 768px) {
    .appbar-tagline[b-jppw950l4o] { display: none; }
}

.menuIcon[b-jppw950l4o] {
    font-size: 1.2em;
    cursor: pointer;
    color: #ffffff;
}

/* В развёрнутом меню иконка управления стоит после бренда — прижимаем её к правому краю,
   чтобы клик-зона была предсказуемой и не наезжала на буквы wordmark. */
.menuIcon-trailing[b-jppw950l4o] {
    margin-left: auto;
    padding: 6px 10px;
    border-radius: 8px;
    transition: background-color 150ms ease;
}

.menuIcon-trailing:hover[b-jppw950l4o] {
    background: rgba(255, 255, 255, 0.10);
}

/* .topElementOpen/.topElementClose удалены: заменены единым .brand-bar
   (is-open/is-collapsed), который не «прыгает» при анимации. */

.top-row[b-jppw950l4o] {
    background-color: #f7f7f7;
    border-bottom: 1px solid #d6d5d5;
    justify-content: flex-end;
    height: 3.5rem;
    display: flex;
    align-items: center;
}

    .top-row[b-jppw950l4o]  a, .top-row[b-jppw950l4o]  .btn-link {
        white-space: nowrap;
        margin-left: 1.5rem;
        text-decoration: none;
    }

        .top-row[b-jppw950l4o]  a:hover, .top-row[b-jppw950l4o]  .btn-link:hover {
            text-decoration: underline;
        }

        .top-row[b-jppw950l4o]  a:first-child {
            overflow: hidden;
            text-overflow: ellipsis;
        }

@media (max-width: 640.98px) {
    .top-row[b-jppw950l4o] {
        justify-content: space-between;
    }

        .top-row[b-jppw950l4o]  a, .top-row[b-jppw950l4o]  .btn-link {
            margin-left: 0;
        }
}

@media (min-width: 641px) {
    .page[b-jppw950l4o] {
        flex-direction: row;
    }

    .sidebar[b-jppw950l4o] {
        width: 250px;
        height: 100vh;
        position: sticky;
        top: 0;
    }

    .top-row[b-jppw950l4o] {
        position: sticky;
        top: 0;
        z-index: 1;
    }

        .top-row.auth[b-jppw950l4o]  a:first-child {
            flex: 1;
            text-align: right;
            width: 0;
        }

    .top-row[b-jppw950l4o], article[b-jppw950l4o] {
        padding-left: 2rem !important;
        padding-right: 1.5rem !important;
    }
}

/* Стиль для #blazor-error-ui перенесён в wwwroot/app.css (глобальный),
   чтобы корректно работать и на страницах /Account/* через AccountLayout. */
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* ============================================================================
   Боковое меню сервисов (SfTreeView внутри dock-SfSidebar).

   Принципы:
     • Никаких CSS-сдвигов клик-зоны — переход обеспечивает FullRowNavigable.
     • Стилизуем штатные селекторы Syncfusion (.e-treeview, .e-list-item,
       .e-fullrow, .e-text-content, .e-list-icon, .e-list-text) через ::deep.
     • Тёмно-синий фон задаёт #dockSidebar (MainLayout). Здесь — только содержимое.
     • Палитра вынесена в переменные на .main-menu (наследуются и в ::deep).
   ============================================================================ */

.main-menu[b-uexm9jqj31] {
    --menu-fg: rgba(255, 255, 255, 0.92);
    --menu-fg-muted: rgba(255, 255, 255, 0.64);
    --menu-icon: rgba(255, 255, 255, 0.82);
    --menu-hover-bg: rgba(255, 255, 255, 0.08);
    --menu-active-bg: rgba(255, 255, 255, 0.14);
    --menu-accent: #38bdf8; /* небесно-голубой из бренд-градиента */
    --menu-divider: rgba(255, 255, 255, 0.12);

    height: 100%;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* ── Шапка: «Главная» + поиск ─────────────────────────────────────────────── */

.menu-header[b-uexm9jqj31] {
    flex-shrink: 0;
    padding: 14px 10px 4px;
}

.is-collapsed .menu-header[b-uexm9jqj31] {
    padding: 14px 0 4px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
}

[b-uexm9jqj31] .home-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border-radius: 8px;
    color: var(--menu-fg);
    text-decoration: none;
    transition: background-color .15s ease, color .15s ease;
}

[b-uexm9jqj31] .home-link:hover {
    background: var(--menu-hover-bg);
    color: #fff;
}

[b-uexm9jqj31] .home-link.active {
    background: var(--menu-active-bg);
    box-shadow: inset 3px 0 0 0 var(--menu-accent);
    color: #fff;
}

.is-collapsed[b-uexm9jqj31]  .home-link {
    justify-content: center;
    gap: 0;
    padding: 10px 0;
    width: 44px;
}

.home-icon[b-uexm9jqj31] {
    font-size: 16px;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}

.is-collapsed .home-icon[b-uexm9jqj31] {
    font-size: 18px;
}

.home-text[b-uexm9jqj31] {
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
}

.menu-search[b-uexm9jqj31] {
    padding: 10px 4px 0;
}

.menu-search-icon[b-uexm9jqj31] {
    color: var(--menu-icon);
    font-size: 18px;
    padding: 6px 0;
    cursor: pointer;
}

/* Поле поиска (SfTextBox) под тёмный фон: убираем светлую подложку bootstrap5,
   делаем «стеклянную» полупрозрачную пилюлю с белым текстом. */
[b-uexm9jqj31] .menu-search-box.e-input-group,
[b-uexm9jqj31] .menu-search-box.e-input-group.e-control-wrapper {
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 8px;
    padding: 1px 10px;
    box-shadow: none;
}

[b-uexm9jqj31] .menu-search-box.e-input-group::before,
[b-uexm9jqj31] .menu-search-box.e-input-group::after {
    display: none; /* нижняя линия-индикатор фокуса нам не нужна */
}

[b-uexm9jqj31] .menu-search-box.e-input-group input.e-input {
    background: transparent;
    color: #fff;
    font-size: 14px;
}

[b-uexm9jqj31] .menu-search-box.e-input-group input.e-input::placeholder {
    color: rgba(255, 255, 255, 0.55);
}

[b-uexm9jqj31] .menu-search-box.e-input-group.e-input-focus {
    border-color: var(--menu-accent);
    background: rgba(255, 255, 255, 0.14);
    box-shadow: 0 0 0 2px rgba(56, 189, 248, 0.25);
}

/* ── Заголовок группы / разделитель ───────────────────────────────────────── */

.menu-group-header[b-uexm9jqj31] {
    margin: 14px 0 6px;
    padding: 0 20px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
    /* nowrap: во время slide-анимации панели (65→275px) заголовок не должен
       переноситься в 2 строки и «прыгать» — текст всегда в одну строку. */
    white-space: nowrap;
    overflow: hidden;
}

.menu-divider[b-uexm9jqj31] {
    height: 1px;
    margin: 10px 14px;
    background: var(--menu-divider);
}

/* ── Прокручиваемая область дерева ─────────────────────────────────────────── */

.menu-scrollable[b-uexm9jqj31] {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 0 8px;
}

.menu-scrollable[b-uexm9jqj31]::-webkit-scrollbar {
    width: 8px;
}

.menu-scrollable[b-uexm9jqj31]::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.18);
    border-radius: 4px;
}

.menu-scrollable[b-uexm9jqj31]::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.28);
}

/* ── Дерево: базовая раскладка ─────────────────────────────────────────────── */

[b-uexm9jqj31] .service-tree,
[b-uexm9jqj31] .service-tree .e-ul {
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
    /* Единственный скролл/клип-контейнер — .menu-scrollable. На самом дереве и <ul>
       overflow держим VISIBLE. ПОЧЕМУ не overflow-x:hidden (как было): по спецификации
       CSS, если одна ось hidden, а другая visible — visible коэрсится в AUTO. Из-за этого
       у .e-treeview появлялся лишний ВЕРТИКАЛЬНЫЙ скролл при раскрытии раздела, а у .e-ul —
       при горизонтальном вылете. С visible на обеих осях: горизонтальный вылет во время
       dock-анимации клипает .menu-scrollable (overflow-x:hidden), а вертикаль скроллит
       он же (overflow-y:auto) — и только когда контент реально выше панели. */
    overflow: visible;
}

/* Строка узла: flex-раскладка [иконка] [текст] … [стрелка справа].
   Раньше стрелку «прибивали» float'ом — теперь это order + margin-left:auto.
   ВАЖНО (bug: иконка ниже центра пилюли): высоту строки задаём И на .e-text-content,
   И на .e-fullrow одинаковым значением. Syncfusion вычисляет высоту .e-fullrow в JS
   ДО применения нашего min-height, поэтому пилюля оставалась 36px и не совпадала с
   иконкой. Явные равные высоты держат пилюлю и иконку соосно. */
[b-uexm9jqj31] .service-tree .e-list-item .e-text-content {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 44px;
    padding: 0 12px 0 16px;
    position: relative;
    background: transparent;
}

[b-uexm9jqj31] .service-tree .e-list-item .e-list-icon {
    order: 1;
    margin: 0;
    width: 20px;
    text-align: center;
    font-size: 16px;
    color: var(--menu-icon);
}

[b-uexm9jqj31] .service-tree .e-list-item .e-list-text {
    order: 2;
    color: var(--menu-fg);
    font-size: 14px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    /* КЛЮЧЕВОЙ ФИКС «стрелка уезжает вправо при длинном имени»: раньше текст был
       nowrap без ограничения ширины, поэтому длинная подпись («Проверка SSL-…»,
       «Калькулятор подсетей») не сжималась, строка вылезала за 275px панели, а
       стрелка (margin-left:auto) уползала за правый край. Теперь текст забирает
       свободное место (flex:1) и при нехватке аккуратно обрезается «…», а стрелка
       ВСЕГДА стоит у правого края — независимо от длины названия. min-width:0
       обязателен: иначе flex-элемент не сжимается ниже своей min-content ширины. */
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Стрелка раскрытия — у правого края, мягкая круглая зона наведения,
   плавный поворот при разворачивании раздела (штатная анимация Syncfusion). */
[b-uexm9jqj31] .service-tree .e-list-item .e-icons.e-icon-expandable,
[b-uexm9jqj31] .service-tree .e-list-item .e-icons.e-icon-collapsible {
    order: 3;
    margin: 0 0 0 auto;
    width: 26px;
    height: 26px;
    line-height: 26px;
    text-align: center;
    border-radius: 50%;
    color: rgba(255, 255, 255, 0.6);
    transition: background-color .15s ease, color .15s ease;
}

[b-uexm9jqj31] .service-tree .e-list-item .e-icons.e-icon-expandable:hover,
[b-uexm9jqj31] .service-tree .e-list-item .e-icons.e-icon-collapsible:hover {
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
}

/* Полоса-подложка строки (FullRowSelect): на ней рисуем hover/active/focus.
   Высота пилюли = высоте .e-text-content (44px) — иначе пилюля не по центру иконки.
   border-color:transparent гасит светлую рамку, которую тема bootstrap5 навешивает
   на hover/focus (из-за неё узел выглядел «белым» и иконка терялась). */
[b-uexm9jqj31] .service-tree .e-list-item > .e-fullrow {
    height: 44px;
    border-radius: 8px;
    border-color: transparent;
    transition: background-color .15s ease, box-shadow .15s ease;
}

/* ── Интерактивные состояния ──────────────────────────────────────────────────
   Тема bootstrap5 в hover/focus красит текст В ТЁМНЫЙ и добавляет светлую рамку —
   на синем фоне меню это и был «белый» узел с пропавшей иконкой. Поэтому для КАЖДОГО
   состояния (hover, focus, active и их комбинаций) ЯВНО держим светлый текст/иконку
   и свой фон. Перебиваем тему повышенной специфичностью (узел + состояние). */

/* Hover */
[b-uexm9jqj31] .service-tree .e-list-item.e-hover > .e-fullrow {
    background: var(--menu-hover-bg);
}

[b-uexm9jqj31] .service-tree .e-list-item.e-hover > .e-text-content .e-list-text {
    color: #fff;
}

[b-uexm9jqj31] .service-tree .e-list-item.e-hover > .e-text-content .e-list-icon {
    color: #fff;
}

/* Фокус узла — НЕ рисуем НИКАКОЙ индикации (bug: «призрак»-кольцо на «Погода»/«Cron»).
   Источник кольца оказался ДВОЙНЫМ:
     1) нативный браузерный outline на <li> (Syncfusion даёт узлам tabindex; Chromium
        по эвристике :focus-visible рисует кольцо на программно сфокусированном узле —
        он «гуляет» по разным разделам при открытии панели мышью);
     2) border/box-shadow на .e-fullrow от темы bootstrap5 для .e-node-focus.
   Гасим ОБА: outline:none на :focus/:focus-visible узла, и border/shadow на fullrow.
   Доступность сохранена: активный маршрут всегда подсвечен пилюлей (.e-active), а при
   клавиатурной навигации Syncfusion двигает выделение, которое и служит индикатором.
   Светлый текст/иконку для .e-node-focus оставляем, чтобы тема не покрасила в тёмный. */
[b-uexm9jqj31] .service-tree .e-list-item:focus,
[b-uexm9jqj31] .service-tree .e-list-item:focus-visible {
    outline: none;
}

/* Гасим рамку/тень/фон фокуса во ВСЕХ состояниях. Тема bootstrap5 навешивает border
   на .e-fullrow: серый rgb(233,236,239) на hover и голубой rgb(13,110,253) на
   :focus-visible (после F5 Syncfusion программно фокусирует первый/активный узел →
   браузер считает фокус клавиатурным → :focus-visible=true, отсюда «только после F5»).
   ВАЖНО: наши scoped-стили грузятся ДО bootstrap5.css, поэтому при равной
   специфичности тема выигрывает по порядку. Бьём её ПОВЫШЕННОЙ специфичностью —
   состояние-класс + scope-атрибут дают (0,5,0) против (0,4,0) у темы. Border убираем
   у всех состояний; индикаторы — фон (hover) и inset-тень (active). */
[b-uexm9jqj31] .service-tree .e-list-item.e-hover > .e-fullrow,
[b-uexm9jqj31] .service-tree .e-list-item.e-node-focus > .e-fullrow,
[b-uexm9jqj31] .service-tree .e-list-item.e-active > .e-fullrow,
[b-uexm9jqj31] .service-tree .e-list-item:focus > .e-fullrow,
[b-uexm9jqj31] .service-tree .e-list-item:focus-visible > .e-fullrow {
    border-color: transparent;
}

/* Чистый фокус (без hover/active) не даёт НИ фона, НИ тени — иначе «призрак»-кольцо. */
[b-uexm9jqj31] .service-tree .e-list-item.e-node-focus:not(.e-hover):not(.e-active) > .e-fullrow,
[b-uexm9jqj31] .service-tree .e-list-item:focus-visible:not(.e-hover):not(.e-active) > .e-fullrow {
    background: transparent;
    box-shadow: none;
}

[b-uexm9jqj31] .service-tree .e-list-item.e-node-focus > .e-text-content .e-list-text,
[b-uexm9jqj31] .service-tree .e-list-item.e-node-focus > .e-text-content .e-list-icon {
    color: #fff;
}

/* Активный (выбранный) узел: мягкая пилюля + акцентная полоса слева. Перекрывает
   hover/focus (идёт ниже по каскаду и при равной специфичности выигрывает). */
[b-uexm9jqj31] .service-tree .e-list-item.e-active > .e-fullrow,
[b-uexm9jqj31] .service-tree .e-list-item.e-active.e-hover > .e-fullrow {
    background: var(--menu-active-bg);
    box-shadow: inset 3px 0 0 0 var(--menu-accent);
}

[b-uexm9jqj31] .service-tree .e-list-item.e-active > .e-text-content .e-list-text {
    color: #fff;
    font-weight: 600;
}

[b-uexm9jqj31] .service-tree .e-list-item.e-active > .e-text-content .e-list-icon {
    color: var(--menu-accent);
}

/* Дочерние пункты (уровень 2): чуть тише и компактнее, с отступом под текст раздела. */
[b-uexm9jqj31] .service-tree .e-list-item.e-level-2 .e-text-content {
    height: 38px;
    padding-left: 26px;
}

[b-uexm9jqj31] .service-tree .e-list-item.e-level-2 > .e-fullrow {
    height: 38px;
}

[b-uexm9jqj31] .service-tree .e-list-item.e-level-2 .e-list-icon {
    font-size: 15px;
    color: rgba(255, 255, 255, 0.6);
}

[b-uexm9jqj31] .service-tree .e-list-item.e-level-2 .e-list-text {
    color: var(--menu-fg-muted);
    font-size: 13.5px;
    font-weight: 400;
}

/* level-2 hover держим светлым (иначе тема красит в тёмный). Фокус — через
   :focus-visible выше, общий для всех уровней. */
[b-uexm9jqj31] .service-tree .e-list-item.e-level-2.e-hover > .e-text-content .e-list-text {
    color: #fff;
}

[b-uexm9jqj31] .service-tree .e-list-item.e-level-2.e-hover > .e-text-content .e-list-icon {
    color: #fff;
}

[b-uexm9jqj31] .service-tree .e-list-item.e-level-2.e-active > .e-text-content .e-list-text {
    color: #fff;
    font-weight: 500;
}

[b-uexm9jqj31] .service-tree .e-list-item.e-level-2.e-active > .e-text-content .e-list-icon {
    color: var(--menu-accent);
}

/* ── Свёрнутый рельс (только иконки разделов) ─────────────────────────────────
   Состояние свёрнуто/развёрнуто задаём от РЕАКТИВНОГО wrapper'а .is-collapsed
   (класс на <nav>), а НЕ от CssClass дерева: SfTreeView не пере-синхронизирует
   свой CssClass при смене параметра. Дочерние узлы в рельсе не раскрываются
   (логика в .razor), поэтому ничего не обрезается. */

/* В рельсе показываем ТОЛЬКО разделы верхнего уровня. Дочерние пункты скрываем
   ЦЕЛИКОМ (а не только текст): раскрытием владеет сам TreeView и мы его НЕ сбрасываем
   (иначе терялось состояние, прошлый баг). Поэтому раскрытый раздел в свёрнутом виде
   рендерил бы детей пустыми icon-строками → «куча пустого места». display:none на
   уровне-2 убирает это, не трогая состояние раскрытия: при разворачивании панели
   дети снова появляются. */
.is-collapsed[b-uexm9jqj31]  .service-tree .e-list-item.e-level-2 {
    display: none;
}

.is-collapsed[b-uexm9jqj31]  .service-tree .e-list-item .e-list-text {
    display: none;
}

.is-collapsed[b-uexm9jqj31]  .service-tree .e-list-item .e-icons.e-icon-expandable,
.is-collapsed[b-uexm9jqj31]  .service-tree .e-list-item .e-icons.e-icon-collapsible {
    display: none;
}

.is-collapsed[b-uexm9jqj31]  .service-tree .e-list-item .e-text-content {
    justify-content: center;
    gap: 0;
    padding: 0;
    height: 48px;
}

.is-collapsed[b-uexm9jqj31]  .service-tree .e-list-item .e-list-icon {
    font-size: 19px;
    width: auto;
}

/* Пилюля в рельсе: высота = высоте строки (48px), иначе иконка уходит ниже центра.
   Узкая центрированная пилюля под иконку. */
.is-collapsed[b-uexm9jqj31]  .service-tree .e-list-item > .e-fullrow {
    height: 48px;
    width: 48px;
    left: 50%;
    transform: translateX(-50%);
    border-radius: 12px;
}

/* ── Низ панели: баг-репорт + версия ──────────────────────────────────────── */

.menu-footer[b-uexm9jqj31] {
    flex-shrink: 0;
    margin-top: auto;
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(0, 0, 0, 0.18);
    padding: 6px 8px;
}

[b-uexm9jqj31] .footer-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 12px;
    border-radius: 8px;
    color: var(--menu-fg-muted);
    text-decoration: none;
    transition: background-color .15s ease, color .15s ease;
}

[b-uexm9jqj31] .footer-link:hover {
    background: var(--menu-hover-bg);
    color: #fff;
}

.is-collapsed[b-uexm9jqj31]  .footer-link {
    justify-content: center;
    gap: 0;
    padding: 10px 0;
}

.footer-icon[b-uexm9jqj31] {
    font-size: 16px;
    width: 20px;
    text-align: center;
    flex-shrink: 0;
}

.footer-text[b-uexm9jqj31] {
    font-size: 13px;
    white-space: nowrap;
}
/* /Components/Pages/Admin/AiModels.razor.rz.scp.css */
/* Стили страницы /_ops/ai-models. Повторяют scoped-классы из ServiceKeys.razor.css:
   .ops-* (карточки, таблицы, пилюли, .mono, .right, ops-empty) приходят глобально
   из AdminLayout.razor.css через ::deep, а вот svc-*/key-form/dialog-warning/
   ops-secret-box/muted там определены ЛОКАЛЬНО (scoped к ServiceKeys)[b-pyeigz39s0], поэтому до
   этой страницы не достают — дублируем здесь.

   Селекторы БЕЗ[b-pyeigz39s0] : все элементы написаны прямо в шаблоне страницы, Blazor
   проставляет им scope-атрибут. SfDialog портаирует DOM в <body[b-pyeigz39s0]>, но scope-атрибут
   на элементе уже есть[b-pyeigz39s0], поэтому `.key-form[b-…]` его находит. */

.svc-card[b-pyeigz39s0] { padding-bottom: 8px; }

.svc-head[b-pyeigz39s0] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.svc-name[b-pyeigz39s0] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    color: #e9ecef;
    font-weight: 500;
}

.svc-key[b-pyeigz39s0] {
    color: #6c757d;
    font-size: 11px;
    margin-top: 2px;
}

.svc-actions[b-pyeigz39s0] {
    display: flex;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
}

.svc-keys th[b-pyeigz39s0], .svc-keys td[b-pyeigz39s0] {
    font-size: 12px;
}

.svc-keys td.right[b-pyeigz39s0] { text-align: right; }

.key-form[b-pyeigz39s0] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}

.key-form-row[b-pyeigz39s0] {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 14px;
    align-items: center;
}

@media (max-width: 600px) {
    .key-form-row[b-pyeigz39s0] { grid-template-columns: 1fr; gap: 4px; }
}

.key-form-row label[b-pyeigz39s0] {
    color: #aab4be;
    font-size: 13px;
}

/* Контейнер кнопки(ок) под формой. Flex с flex-start не даёт SfButton растянуться
   на всю ширину (как было бы в grid-колонке 1fr) — кнопка занимает ширину контента. */
.form-actions[b-pyeigz39s0] {
    display: flex;
    gap: 10px;
    justify-content: flex-start;
    margin-top: 4px;
}

/* Кнопки действий в строке таблицы. Без обёртки соседние SfButton слипались и
   налезали друг на друга в узкой ячейке; flex + gap разводит их и прижимает вправо. */
.row-actions[b-pyeigz39s0] {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    flex-wrap: wrap;
}

/* Ячейка с alias + бейджем «default». gap нужен, чтобы бейдж не прилипал к alias. */
.alias-cell[b-pyeigz39s0] {
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Информационная плашка в SfDialog. `.ops-notice` из AdminLayout сюда не достаёт
   (диалог рендерится в <body>), поэтому даём собственные стили. Цвет — нейтрально
   синий (это подсказка, а не предупреждение об опасности). */
.dialog-warning[b-pyeigz39s0] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #16222e;
    border: 1px solid #243042;
    color: #4dabf7;
    font-size: 13px;
    margin-top: 6px;
}

.dialog-warning i[b-pyeigz39s0] { margin-top: 2px; }

.ops-secret-box[b-pyeigz39s0] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    background: #1c2530;
    border: 1px solid #28323d;
    border-radius: 6px;
    word-break: break-all;
    margin-top: 8px;
}

.ops-secret-box code[b-pyeigz39s0] {
    flex: 1;
    color: #ffd166;
    font-family: 'JetBrains Mono', 'Consolas', monospace;
    font-size: 13px;
}

.muted[b-pyeigz39s0] { color: #6c757d; font-size: 12px; }
/* /Components/Pages/Admin/AuditLog.razor.rz.scp.css */
/* Тулбар: широкое поле поиска, узкий выпадающий список категории,
   узкий датапикер, кнопка. На узких экранах падает в 2 колонки. */
.audit-toolbar[b-c4mtyqhfox] {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr auto;
    gap: 12px;
    align-items: center;
}

@media (max-width: 900px) {
    .audit-toolbar[b-c4mtyqhfox] { grid-template-columns: 1fr 1fr; }
}

/* Детали раскрывающейся строки. Рендерятся внутри DOM SfGrid, поэтому ::deep. */
[b-c4mtyqhfox] .audit-detail-block {
    padding: 16px 20px;
    background: #0d131a;
}

[b-c4mtyqhfox] .audit-meta {
    color: #aab4be;
    font-size: 12px;
    margin-bottom: 10px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
}

[b-c4mtyqhfox] .audit-meta b { color: #6b7785; font-weight: 600; }

/* Pre-блок с JSON-payload'ом. Ограничиваем по высоте — иначе при больших
   объектах раскрывшаяся строка занимает весь экран. */
[b-c4mtyqhfox] .audit-pre {
    background: #0a0e13;
    color: #ffd166;
    border: 1px solid #1c2530;
    border-radius: 6px;
    padding: 10px 14px;
    font-family: 'JetBrains Mono', 'Consolas', monospace;
    font-size: 12px;
    line-height: 1.5;
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 320px;
    overflow: auto;
}
/* /Components/Pages/Admin/BugReports.razor.rz.scp.css */
/* Тулбар: широкий поиск, два компактных списка фильтров, кнопка справа. */
.br-toolbar[b-55w579cyfm] {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr auto;
    gap: 12px;
    align-items: center;
}

@media (max-width: 900px) {
    .br-toolbar[b-55w579cyfm] { grid-template-columns: 1fr 1fr; }
}

/* Detail-блок раскрывается ВНУТРИ SfGrid (через DetailTemplate),
   а DOM ячейки-родителя относится к SfGrid (нет нашего scope-атрибута),
   поэтому всё содержимое детали стилизуется через ::deep. */
[b-55w579cyfm] .br-detail-block {
    padding: 16px 20px;
    background: #0d131a;
}

[b-55w579cyfm] .br-detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 8px 22px;
    margin-bottom: 12px;
    font-size: 13px;
    color: #aab4be;
}

[b-55w579cyfm] .br-section {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6b7785;
    margin: 14px 0 6px 0;
    font-weight: 600;
    cursor: pointer;
}

[b-55w579cyfm] .br-pre {
    background: #0a0e13;
    color: #d8dee9;
    border: 1px solid #1c2530;
    border-radius: 6px;
    padding: 10px 14px;
    font-family: 'JetBrains Mono', 'Consolas', monospace;
    font-size: 12px;
    line-height: 1.5;
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    max-height: 320px;
    overflow: auto;
}

[b-55w579cyfm] .br-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}
/* /Components/Pages/Admin/Dashboard.razor.rz.scp.css */
/* ─────────────────────────────────────────────────────────────────────────
   Стили дашборда. Селекторы БЕЗ ::deep — потому что все эти элементы
   написаны ПРЯМО в Dashboard.razor (а не приходят из чужого компонента).
   ::deep работал бы только если бы у Dashboard был свой ВНЕШНИЙ wrap-div,
   которому Blazor навесил бы scope-атрибут; root template Dashboard'а
   состоит из нескольких параллельных <div>, поэтому ::deep ни на что
   не натыкается. Те общие классы (.ops-card, .ops-table, .ops-btn,
   .ops-pill, .ops-empty), которые нужны и здесь, уже определены в
   AdminLayout.razor.css с ::deep — оттуда они проходят, потому что
   .ops-shell (root AdminLayout) является ИХ предком.
   ───────────────────────────────────────────────────────────────────── */

/* ─── Шапка дашборда ──────────────────────────────────────────────────── */

.ops-dashhead[b-y7w0udrad4] {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 18px;
    gap: 16px;
}

/* ─── KPI карточки ────────────────────────────────────────────────────────
   Компактная плотная сетка: 6 карточек в один ряд при ширине экрана,
   достаточной чтобы каждая получила хотя бы 200px. На промежуточных
   ширинах перестраиваются по 3, на мобильных — по 2.
   Карточка низкая, все строки tabular-nums, чтобы цифры стояли друг под
   другом и взгляд скользил по столбцу. */

.ops-kpi-grid[b-y7w0udrad4] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 12px;
    margin-bottom: 18px;
}

.ops-kpi[b-y7w0udrad4] {
    background: #131a22;
    border: 1px solid #1c2530;
    border-radius: 8px;
    padding: 12px 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    transition: border-color 0.15s ease;
}

.ops-kpi:hover[b-y7w0udrad4] {
    border-color: #2a3441;
}

.ops-kpi-label[b-y7w0udrad4] {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.7px;
    color: #6b7785;
    font-weight: 600;
}

.ops-kpi-value[b-y7w0udrad4] {
    font-size: 22px;
    color: #ffd166;
    font-weight: 700;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.ops-kpi-sub[b-y7w0udrad4] {
    font-size: 10px;
    color: #6b7785;
}

/* ─── Графики 2x2 ──────────────────────────────────────────────────────── */

.ops-chart-grid[b-y7w0udrad4] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 18px;
}

@media (max-width: 1100px) {
    .ops-chart-grid[b-y7w0udrad4] { grid-template-columns: 1fr; }
}

.ops-card-head[b-y7w0udrad4] {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
}

.ops-card-num[b-y7w0udrad4] {
    font-size: 14px;
    color: #ffd166;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

/* ─── Две колонки (топ-страницы / топ-эндпоинты) ──────────────────────── */

.ops-two-col[b-y7w0udrad4] {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin-bottom: 18px;
}

@media (max-width: 1100px) {
    .ops-two-col[b-y7w0udrad4] { grid-template-columns: 1fr; }
}
/* /Components/Pages/Admin/Features.razor.rz.scp.css */
/* Стили страницы /_ops/features. Глобальные .ops-* (карточки, таблицы, пилюли,
   .mono) приходят из AdminLayout.razor.css; локальные key-form/dialog-warning/
   row-actions дублируем здесь (в AiModels они scoped и сюда не достают).

   Селекторы без ::deep: элементы написаны прямо в шаблоне, Blazor проставляет им
   scope-атрибут; SfDialog портаирует DOM в <body>, но атрибут на элементе остаётся. */

.ft-table th[b-5pe8v09vur],
.ft-table td[b-5pe8v09vur] {
    font-size: 13px;
    vertical-align: middle;
}

.ft-title[b-5pe8v09vur] {
    display: flex;
    align-items: center;
    gap: 12px;
}

.ft-icon[b-5pe8v09vur] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    flex-shrink: 0;
    color: #fff;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
}

.ft-name[b-5pe8v09vur] {
    color: #e9ecef;
    font-weight: 600;
}

.ft-summary[b-5pe8v09vur] {
    color: #8b95a1;
    font-size: 12px;
    margin-top: 2px;
    max-width: 460px;
}

/* Кнопки действий в строке таблицы — всегда в один ряд (без переноса). */
.row-actions[b-5pe8v09vur] {
    display: flex;
    gap: 8px;
    justify-content: flex-end;
    flex-wrap: nowrap;
}

.row-actions[b-5pe8v09vur]  .e-btn {
    white-space: nowrap;
}

/* ── Форма в диалоге ── */
.key-form[b-5pe8v09vur] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}

.key-form-row[b-5pe8v09vur] {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 14px;
    align-items: center;
}

@media (max-width: 600px) {
    .key-form-row[b-5pe8v09vur] { grid-template-columns: 1fr; gap: 4px; }
}

.key-form-row label[b-5pe8v09vur] {
    color: #aab4be;
    font-size: 13px;
}

/* Информационная плашка в SfDialog (нейтрально-синяя подсказка). */
.dialog-warning[b-5pe8v09vur] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #16222e;
    border: 1px solid #243042;
    color: #4dabf7;
    font-size: 13px;
    margin-top: 6px;
}

.dialog-warning i[b-5pe8v09vur] { margin-top: 2px; }
/* /Components/Pages/Admin/Prices.razor.rz.scp.css */
/* Селекторы БЕЗ ::deep — все элементы рендерятся прямо из шаблона
   Prices.razor, включая содержимое <SfDialog><Content>...</Content></SfDialog>.
   Хотя SfDialog портаирует DOM в <body>, scope-атрибут УЖЕ навешен на
   элемент в момент компиляции, поэтому селектор без ::deep — `.price-form[b-...]` —
   находит его независимо от того, куда диалог был перенесён. */

.price-svc[b-k2yt9xzjq9] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.25;
}

.price-svc-name[b-k2yt9xzjq9] {
    color: #e9ecef;
    font-weight: 500;
    font-size: 13px;
}

.price-svc-key[b-k2yt9xzjq9] {
    color: #6c757d;
    font-size: 11px;
}

/* Форма редактирования цены. gap: 16px разделяет пары label+input — без
   этого инпуты слипались бы вертикально. */

.price-form[b-k2yt9xzjq9] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}

.price-form-row[b-k2yt9xzjq9] {
    display: grid;
    grid-template-columns: 180px 1fr;
    align-items: center;
    gap: 14px;
}

@media (max-width: 600px) {
    .price-form-row[b-k2yt9xzjq9] { grid-template-columns: 1fr; gap: 4px; }
}

.price-form-row label[b-k2yt9xzjq9] {
    color: #aab4be;
    font-size: 13px;
}

.price-form-note[b-k2yt9xzjq9] {
    margin-top: 6px;
    padding: 10px 12px;
    background: #1c2530;
    border: 1px solid #28323d;
    border-radius: 6px;
    color: #aab4be;
    font-size: 12px;
    display: flex;
    gap: 8px;
    align-items: flex-start;
}
/* /Components/Pages/Admin/ServiceKeys.razor.rz.scp.css */
/* Селекторы БЕЗ ::deep — те же причины, что и в Prices.razor.css:
   все элементы написаны прямо в шаблоне страницы, поэтому Blazor
   проставляет им scope-атрибут. SfDialog портаирует свой DOM в <body>,
   но scope-атрибут на элементе УЖЕ есть, и `.key-form[b-…]` его находит. */

.svc-card[b-nq5q69dckr] { padding-bottom: 8px; }

.svc-head[b-nq5q69dckr] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 14px;
    flex-wrap: wrap;
}

.svc-name[b-nq5q69dckr] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 15px;
    color: #e9ecef;
    font-weight: 500;
}

.svc-key[b-nq5q69dckr] {
    color: #6c757d;
    font-size: 11px;
    margin-top: 2px;
}

.svc-actions[b-nq5q69dckr] {
    display: flex;
    gap: 18px;
    align-items: center;
    flex-wrap: wrap;
}

.svc-keys th[b-nq5q69dckr], .svc-keys td[b-nq5q69dckr] {
    font-size: 12px;
}

.svc-keys td.right[b-nq5q69dckr] { text-align: right; }

/* Формы внутри SfDialog: 16px между строками, чтобы инпуты не слипались.
   Лейбл слева, инпут справа; на узком экране — в столбик. */
.key-form[b-nq5q69dckr] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}

.key-form-row[b-nq5q69dckr] {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 14px;
    align-items: center;
}

@media (max-width: 600px) {
    .key-form-row[b-nq5q69dckr] { grid-template-columns: 1fr; gap: 4px; }
}

.key-form-row label[b-nq5q69dckr] {
    color: #aab4be;
    font-size: 13px;
}

/* Самодостаточная плашка-предупреждение для содержимого SfDialog.
   `.ops-notice` из AdminLayout.razor.css сюда не достаёт, потому что
   SfDialog рендерится в <body>, вне scope `.ops-shell`. Поэтому даём
   diaglog-warning собственные стили (которые матчатся через
   page-scope атрибут на этом самом div'е). */
.dialog-warning[b-nq5q69dckr] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #2a1a1a;
    border: 1px solid #3a1f1f;
    color: #ff6b6b;
    font-size: 13px;
    margin-top: 6px;
}

.dialog-warning i[b-nq5q69dckr] { margin-top: 2px; }

/* Бокс с раскрытым секретом: чтобы значение явно отличалось от обычного текста
   диалога и было легко скопировать. */
.ops-secret-box[b-nq5q69dckr] {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px;
    background: #1c2530;
    border: 1px solid #28323d;
    border-radius: 6px;
    word-break: break-all;
    margin-top: 8px;
}

.ops-secret-box code[b-nq5q69dckr] {
    flex: 1;
    color: #ffd166;
    font-family: 'JetBrains Mono', 'Consolas', monospace;
    font-size: 13px;
}

.muted[b-nq5q69dckr] { color: #6c757d; font-size: 12px; }
/* /Components/Pages/Admin/SystemOps.razor.rz.scp.css */
/* Селекторы БЕЗ ::deep — все элементы рендерятся прямо из шаблона SystemOps.razor.
   Внутренние SfButton — дочерние компоненты, но мы их не стилизуем своими
   классами (используем CssClass="e-primary"), поэтому ::deep не нужен. */

.sys-grid[b-38r1obsdqi] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 18px;
}

@media (max-width: 1100px) {
    .sys-grid[b-38r1obsdqi] { grid-template-columns: 1fr; }
}

.sys-card[b-38r1obsdqi] {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Одна строка «имя метрики ↔ значение» с пунктирной линией-разделителем
   между строками — визуально похоже на список настроек. */
.sys-row[b-38r1obsdqi] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 6px 0;
    border-bottom: 1px dashed #1c2530;
    color: #aab4be;
    font-size: 13px;
}

.sys-row:last-of-type[b-38r1obsdqi] { border-bottom: none; }
.sys-row .mono[b-38r1obsdqi] { color: #d8dee9; font-size: 13px; }

/* Контейнер кнопок внизу каждой карточки. flex-wrap — чтобы при узкой
   ширине кнопки переносились на новую строку, а не вылезали за карточку. */
.sys-actions[b-38r1obsdqi] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
}

/* Путь к файлу БД может быть длинным — ограничиваем ширину и обрезаем
   многоточием. Полный путь доступен в tooltip (title="..."). */
.db-path[b-38r1obsdqi] {
    color: #6b7785 !important;
    font-size: 11px !important;
    text-overflow: ellipsis;
    overflow: hidden;
    max-width: 230px;
    white-space: nowrap;
}

.sys-info[b-38r1obsdqi] {
    margin: 8px 0 0 0;
    padding-left: 20px;
    color: #aab4be;
    font-size: 13px;
    line-height: 1.7;
}

.sys-info code[b-38r1obsdqi] {
    background: #0a0e13;
    color: #ffd166;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 12px;
}
/* /Components/Pages/Admin/Transactions.razor.rz.scp.css */
/* Тулбар: первые два поля широкие (поиск по email/описанию), затем компактные
   фильтры (тип, две даты), кнопка справа. На узких экранах падают в 2 колонки. */
.tx-toolbar[b-v2bjbrychi] {
    display: grid;
    grid-template-columns: 1.4fr 1.4fr 1fr 0.9fr 0.9fr auto;
    gap: 12px;
    align-items: center;
}

@media (max-width: 1100px) {
    .tx-toolbar[b-v2bjbrychi] { grid-template-columns: 1fr 1fr; }
}

.tx-summary[b-v2bjbrychi] {
    margin-top: 12px;
    color: #aab4be;
    font-size: 13px;
}

.tx-summary b[b-v2bjbrychi] { color: #ffd166; font-variant-numeric: tabular-nums; }

/* SfGrid рендерит DOM строк через дочерний компонент — наш scope-атрибут
   на эти элементы не попадает, поэтому к классам внутри строк
   (.tx-pos, .tx-neg, .tx-userid) обращаемся через ::deep. */
[b-v2bjbrychi] .tx-pos { color: #69db7c; }
[b-v2bjbrychi] .tx-neg { color: #ff6b6b; }

[b-v2bjbrychi] .tx-userid {
    display: inline-block;
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #aab4be;
    vertical-align: middle;
}

[b-v2bjbrychi] .e-grid .e-row { cursor: pointer; }
/* /Components/Pages/Admin/UserCard.razor.rz.scp.css */
/* Селекторы БЕЗ ::deep на собственных элементах страницы; ::deep ставится
   только там, где целимся в DOM, отрисованный дочерним компонентом
   (SfGrid, SfDialog). Подробнее про корень проблемы — комментарий
   в AdminLayout.razor.css. */

/* ─── Пустые состояния (загрузка / 404) ───────────────────────────────── */

.user-empty[b-wb4kuvtwu1] {
    text-align: center;
    color: #6b7785;
    padding: 28px;
}

.user-empty-icon[b-wb4kuvtwu1] { font-size: 32px; display: block; margin: 0 auto 10px; }
.user-empty-text[b-wb4kuvtwu1] { margin-bottom: 14px; font-size: 14px; }

.user-head-actions[b-wb4kuvtwu1] { display: flex; gap: 10px; }

/* ─── Профиль ─────────────────────────────────────────────────────────── */

.user-profile[b-wb4kuvtwu1] { padding: 18px 22px; }

.profile-grid[b-wb4kuvtwu1] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 14px 28px;
}

.profile-grid > div[b-wb4kuvtwu1] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.profile-label[b-wb4kuvtwu1] {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    color: #6b7785;
    font-weight: 600;
}

.profile-value[b-wb4kuvtwu1] {
    color: #d8dee9;
    font-size: 14px;
}

.profile-extra[b-wb4kuvtwu1] {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #1c2530;
    color: #aab4be;
    font-size: 13px;
}

.profile-extra summary[b-wb4kuvtwu1] {
    cursor: pointer;
    color: #6b7785;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.6px;
    margin-bottom: 8px;
}

.profile-extra-row[b-wb4kuvtwu1] {
    padding: 4px 0;
    word-break: break-all;
}

/* ─── Сетка из трёх виджетов: Баланс / Активация / Доступ ─────────────── */

.user-grid3[b-wb4kuvtwu1] {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
    margin-bottom: 18px;
}

@media (max-width: 1100px) {
    .user-grid3[b-wb4kuvtwu1] { grid-template-columns: 1fr; }
}

.user-widget[b-wb4kuvtwu1] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.user-widget-status[b-wb4kuvtwu1] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.user-widget .muted[b-wb4kuvtwu1] {
    color: #6b7785;
    font-size: 12px;
}

.user-actions[b-wb4kuvtwu1] {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.balance-value[b-wb4kuvtwu1] {
    font-size: 32px;
    font-weight: 700;
    color: #ffd166;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.balance-value span[b-wb4kuvtwu1] {
    font-size: 14px;
    color: #6b7785;
    font-weight: 500;
    margin-left: 4px;
}

/* ─── Шапка карточки c заголовком и кнопкой (для блока API-ключей) ────── */

.ops-card-head[b-wb4kuvtwu1] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

/* ─── Цвета для колонки «Кредиты» в SfGrid (через ::deep, рендерит ── */
[b-wb4kuvtwu1] .tx-pos { color: #69db7c; }
[b-wb4kuvtwu1] .tx-neg { color: #ff6b6b; }

/* ─── СОДЕРЖИМОЕ SfDialog. ────────────────────────────────────────────────
   Диалоги Sf портаируют свой DOM в <body>, в обход .ops-shell. Но элементы
   с этими классами написаны прямо в шаблоне UserCard.razor — значит,
   scope-атрибут уже на них. Селектор без ::deep `.dlg-form[b-…]`
   находит их независимо от того, куда диалог был перенесён. */

.dlg-form[b-wb4kuvtwu1] {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 4px 0;
}

.dlg-form-row[b-wb4kuvtwu1] {
    display: grid;
    grid-template-columns: 180px 1fr;
    gap: 14px;
    align-items: center;
}

@media (max-width: 600px) {
    .dlg-form-row[b-wb4kuvtwu1] { grid-template-columns: 1fr; gap: 4px; }
}

.dlg-form-row label[b-wb4kuvtwu1] {
    color: #aab4be;
    font-size: 13px;
}

.dlg-text[b-wb4kuvtwu1] {
    color: #aab4be;
    font-size: 13px;
    margin: 0;
}

.dlg-text.muted[b-wb4kuvtwu1] { color: #6c757d; font-size: 12px; }
.dlg-text.danger[b-wb4kuvtwu1] { color: #ffb867; }
.dlg-text code[b-wb4kuvtwu1] {
    background: #0a0e13;
    color: #ffd166;
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 12px;
}

/* Бокс с одноразовым секретом — визуально отделён жёлтой рамкой, текст
   моноширинный для лёгкого выделения и копирования. user-select: all
   позволяет выделить весь секрет одним кликом. */
.dlg-secret-box[b-wb4kuvtwu1] {
    display: flex;
    align-items: center;
    gap: 12px;
    background: #0a0e13;
    border: 1px solid #ffd166;
    border-radius: 8px;
    padding: 12px 14px;
    margin: 12px 0;
}

.dlg-secret-box code[b-wb4kuvtwu1] {
    flex: 1;
    color: #ffd166;
    font-family: 'JetBrains Mono', 'Consolas', monospace;
    font-size: 13px;
    word-break: break-all;
    user-select: all;
}
/* /Components/Pages/Admin/Users.razor.rz.scp.css */
/* Тулбар фильтров. Селекторы БЕЗ ::deep — элементы расположены прямо в
   Users.razor (Blazor навешивает на них scope-атрибут). С ::deep они НЕ
   матчатся, потому что у Users нет ВНЕШНЕГО scoped-предка в той же
   компоненте (template состоит из плоских <div>).

   Тема Bootstrap5-Dark из <HeadContent> AdminLayout стилизует сами
   SfTextBox/SfCheckBox/SfButton/SfGrid — здесь только раскладка. */

.users-toolbar[b-8lvzbtspgl] {
    display: grid;
    grid-template-columns: 1fr auto auto auto;
    gap: 18px;
    align-items: center;
}

@media (max-width: 900px) {
    .users-toolbar[b-8lvzbtspgl] { grid-template-columns: 1fr; }
}

.users-search-wrap[b-8lvzbtspgl] { min-width: 0; }

.user-cell[b-8lvzbtspgl] {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.25;
}

.user-email[b-8lvzbtspgl] {
    color: #e9ecef;
    font-size: 13px;
    font-weight: 500;
}

.user-id[b-8lvzbtspgl] {
    color: #6c757d;
    font-size: 11px;
}

/* SfGrid отрисовывается ДОЧЕРНИМ компонентом — его DOM не получает наш
   scope-атрибут, поэтому к строкам SfGrid обращаемся ЧЕРЕЗ ::deep. */
[b-8lvzbtspgl] .e-grid .e-row { cursor: pointer; }
/* /Components/Pages/AiChat/AiChatAPI.razor.rz.scp.css */
/* ============================================================================
   AiChatAPI.razor.css
   Изолированные стили для компонента документации REST API ИИ чата
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ API - Главный баннер страницы документации
   ========================================================================== */

/* Фоновый градиент для hero секции API (фиолетово-синие тона ИИ) */
.hero-api[b-42gh4alytv] {
    background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 50%, #74b9ff 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона с радиальными градиентами */
.hero-bg-pattern[b-42gh4alytv] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 25% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
                      radial-gradient(circle at 75% 75%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
                      radial-gradient(circle at 50% 25%, rgba(255, 255, 255, 0.08) 0%, transparent 50%);
    animation: patternMove-b-42gh4alytv 25s ease-in-out infinite;
}

@keyframes patternMove-b-42gh4alytv {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(15px, -15px) scale(1.05); }
}

/* ==========================================================================
   БЕЙДЖИ И ЭЛЕМЕНТЫ ИНТЕРФЕЙСА
   ========================================================================== */

/* Бейдж API с эффектом стекла (glassmorphism) */
.badge-api[b-42gh4alytv] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

/* ==========================================================================
   КНОПКИ HERO СЕКЦИИ
   ========================================================================== */

/* Контейнер кнопок с повышенным z-index для кликабельности */
.hero-buttons[b-42gh4alytv] {
    position: relative;
    z-index: 10;
}

/* Стилизация кнопок в hero секции */
.hero-buttons .btn[b-42gh4alytv] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    font-weight: 600;
    text-decoration: none;
}

/* Эффект подъёма при наведении на кнопку */
.hero-buttons .btn:hover[b-42gh4alytv] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* Стиль кнопки с контурной рамкой */
.btn-outline-light[b-42gh4alytv] {
    border: 2px solid white;
}

.btn-outline-light:hover[b-42gh4alytv] {
    background: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

/* ==========================================================================
   СПИСОК ВОЗМОЖНОСТЕЙ HERO СЕКЦИИ
   ========================================================================== */

/* Контейнер списка возможностей */
.hero-features[b-42gh4alytv] {
    position: relative;
    z-index: 10;
}

/* Иконка-обёртка с эффектом стекла */
.feature-icon-wrapper[b-42gh4alytv] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

/* ==========================================================================
   АНИМАЦИЯ ИКОНКИ API
   ========================================================================== */

/* Анимация парения для иконки сервера */
.api-icon-animate[b-42gh4alytv] {
    animation: float-b-42gh4alytv 3.5s ease-in-out infinite;
}

@keyframes float-b-42gh4alytv {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-15px) rotate(2deg); }
}

/* ==========================================================================
   ПЛАВАЮЩИЕ ИКОНКИ ВОКРУГ ГЛАВНОГО ЭЛЕМЕНТА
   ========================================================================== */

/* Контейнер плавающих иконок */
.floating-icons[b-42gh4alytv] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-42gh4alytv] {
    position: absolute;
    color: rgba(255, 255, 255, 0.5);
    animation: floatAround-b-42gh4alytv 7s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками анимации */
.float-1[b-42gh4alytv] { top: 15%; left: 5%; animation-delay: 0s; }
.float-2[b-42gh4alytv] { top: 25%; right: 10%; animation-delay: 1.75s; }
.float-3[b-42gh4alytv] { bottom: 25%; left: 15%; animation-delay: 3.5s; }
.float-4[b-42gh4alytv] { bottom: 15%; right: 5%; animation-delay: 5.25s; }

@keyframes floatAround-b-42gh4alytv {
    0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.5; }
    25% { transform: translate(12px, -12px) rotate(8deg); opacity: 0.7; }
    50% { transform: translate(-8px, -18px) rotate(-8deg); opacity: 0.6; }
    75% { transform: translate(-12px, 8px) rotate(5deg); opacity: 0.8; }
}

/* ==========================================================================
   КАРТОЧКИ БЫСТРОГО СТАРТА
   ========================================================================== */

/* Стиль карточки быстрого старта */
.quick-start-card[b-42gh4alytv] {
    transition: all 0.3s ease;
    background: white;
}

.quick-start-card:hover[b-42gh4alytv] {
    transform: translateY(-5px);
}

/* Номер шага с градиентным фоном (фиолетовые тона ИИ) */
.step-number[b-42gh4alytv] {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 100%);
    color: white;
    font-size: 2rem;
    font-weight: bold;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 20px rgba(108, 92, 231, 0.3);
}

/* ==========================================================================
   КАРТОЧКИ ВОЗМОЖНОСТЕЙ API
   ========================================================================== */

/* Анимация подъёма карточки при наведении */
.api-feature-card[b-42gh4alytv] {
    transition: all 0.3s ease;
}

.api-feature-card:hover[b-42gh4alytv] {
    transform: translateY(-8px);
}

/* ==========================================================================
   SWAGGER UI КОНТЕЙНЕР
   ========================================================================== */

/* Карточка Swagger UI с закруглёнными углами */
.swagger-card[b-42gh4alytv] {
    border-radius: 15px;
    overflow: hidden;
}

/* Минимальная высота для контейнера Swagger UI */
#swagger-ui[b-42gh4alytv] {
    min-height: 600px;
}

/* ==========================================================================
   ОБЩИЙ ЭФФЕКТ ПОДЪЁМА ПРИ НАВЕДЕНИИ
   ========================================================================== */

.hover-lift[b-42gh4alytv] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-42gh4alytv] {
    transform: translateY(-8px);
    box-shadow: 0 1rem 3rem rgba(0,0,0,.175) !important;
}

/* ==========================================================================
   ИНФОРМАЦИОННЫЙ БАННЕР
   ========================================================================== */

/* Градиентный фон для информационного баннера (фиолетовые тона) */
.bg-gradient-info[b-42gh4alytv] {
    background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 100%);
}

/* Бейдж с иконкой информации */
.info-icon-badge[b-42gh4alytv] {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* ==========================================================================
   ИКОНКА ПРЕИМУЩЕСТВА
   ========================================================================== */

/* Контейнер для иконки преимущества */
.benefit-icon[b-42gh4alytv] {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ==========================================================================
   АДАПТИВНЫЕ СТИЛИ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ
   ========================================================================== */

@media (max-width: 768px) {
    /* Уменьшаем размер иконки сервера */
    .api-icon-animate i[b-42gh4alytv] {
        font-size: 6rem !important;
    }

    /* Скрываем плавающие иконки на мобильных для производительности */
    .floating-icons[b-42gh4alytv] {
        display: none;
    }
}
/* /Components/Pages/AiChat/AiChatComponent.razor.rz.scp.css */
/* ============================================================================
   AiChatComponent.razor.css
   Изолированные стили для интерактивного веб-интерфейса ИИ чата
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ - Главный баннер страницы
   ========================================================================== */

/* Фоновый градиент для hero секции */
.hero-chat[b-1ke2kf5976] {
    background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 50%, #74b9ff 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона */
.hero-bg-pattern[b-1ke2kf5976] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%);
    animation: patternMove-b-1ke2kf5976 20s ease-in-out infinite;
}

@keyframes patternMove-b-1ke2kf5976 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(20px, -20px) scale(1.05); }
}

/* Бейдж чата с эффектом размытия фона */
.badge-chat[b-1ke2kf5976] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

/* Контейнер для списка возможностей в hero секции */
.hero-features[b-1ke2kf5976] {
    position: relative;
    z-index: 10;
}

/* Обёртка для иконок возможностей с эффектом стекла */
.feature-icon-wrapper[b-1ke2kf5976] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

/* Анимация парения для иконки чата в hero */
.chat-icon-hero i[b-1ke2kf5976] {
    animation: float-b-1ke2kf5976 3s ease-in-out infinite;
}

@keyframes float-b-1ke2kf5976 {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(5deg); }
}

/* Кнопки в hero секции */
.hero-buttons[b-1ke2kf5976] {
    position: relative;
    z-index: 10;
}

.hero-buttons .btn[b-1ke2kf5976] {
    text-decoration: none;
    font-weight: 600;
    transition: all 0.3s ease;
}

.hero-buttons .btn:hover[b-1ke2kf5976] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* ==========================================================================
   ПАНЕЛЬ НАСТРОЕК (ЛЕВАЯ)
   ========================================================================== */

/* Карточка настроек */
.settings-card[b-1ke2kf5976] {
    border-radius: 12px;
    position: sticky;
    top: 20px;
}

/* Информация о сессии */
.session-info[b-1ke2kf5976] {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
}

/* Идентификатор сессии (моноширинный) */
.session-id[b-1ke2kf5976] {
    font-size: 0.75rem;
    word-break: break-all;
}

/* Статистика токенов */
.token-stats[b-1ke2kf5976] {
    background: #f8f9fa;
    border: 1px solid #e9ecef;
}

/* ==========================================================================
   КАРТОЧКА ЧАТА (ПРАВАЯ)
   ========================================================================== */

/* Основная карточка чата */
.chat-card[b-1ke2kf5976] {
    border-radius: 12px;
}

/* Контейнер чата */
.chat-container[b-1ke2kf5976] {
    display: flex;
    flex-direction: column;
    height: 70vh;
    min-height: 500px;
}

/* ==========================================================================
   ОБЛАСТЬ СООБЩЕНИЙ
   ========================================================================== */

/* Прокручиваемая область сообщений */
.chat-messages[b-1ke2kf5976] {
    flex: 1;
    overflow-y: auto;
    padding: 1rem;
    scroll-behavior: smooth;
}

/* Приветственное сообщение */
.chat-welcome[b-1ke2kf5976] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    opacity: 0.8;
}

/* ==========================================================================
   СООБЩЕНИЯ ЧАТА
   ========================================================================== */

/* Базовый стиль сообщения */
.chat-message[b-1ke2kf5976] {
    display: flex;
    gap: 0.75rem;
    margin-bottom: 1rem;
    animation: messageAppear-b-1ke2kf5976 0.3s ease-out;
}

@keyframes messageAppear-b-1ke2kf5976 {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Аватар сообщения */
.message-avatar[b-1ke2kf5976] {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 0.9rem;
}

/* Аватар пользователя */
.user-message .message-avatar[b-1ke2kf5976] {
    background: linear-gradient(135deg, #6c5ce7, #a29bfe);
    color: white;
}

/* Аватар ИИ */
.ai-message .message-avatar[b-1ke2kf5976] {
    background: linear-gradient(135deg, #00b894, #55efc4);
    color: white;
}

/* Содержимое сообщения */
.message-content[b-1ke2kf5976] {
    flex: 1;
    min-width: 0;
}

/* Заголовок сообщения (имя + время) */
.message-header[b-1ke2kf5976] {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 0.25rem;
}

/* Текст сообщения */
.message-text[b-1ke2kf5976] {
    background: #f8f9fa;
    padding: 0.75rem 1rem;
    border-radius: 12px;
    line-height: 1.5;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* Текст сообщения пользователя */
.user-message .message-text[b-1ke2kf5976] {
    background: linear-gradient(135deg, #6c5ce7, #a29bfe);
    color: white;
    border-bottom-right-radius: 4px;
}

/* Текст сообщения ИИ */
.ai-message .message-text[b-1ke2kf5976] {
    background: #f0f2f5;
    color: #333;
    border-bottom-left-radius: 4px;
}

/* ==========================================================================
   ИНДИКАТОР НАБОРА ТЕКСТА
   ========================================================================== */

/* Контейнер индикатора */
.typing-indicator[b-1ke2kf5976] {
    display: flex;
    gap: 4px;
    padding: 0.75rem 1rem;
    background: #f0f2f5;
    border-radius: 12px;
    width: fit-content;
}

/* Точки индикатора */
.typing-indicator span[b-1ke2kf5976] {
    width: 8px;
    height: 8px;
    background: #adb5bd;
    border-radius: 50%;
    animation: typingBounce-b-1ke2kf5976 1.4s ease-in-out infinite;
}

.typing-indicator span:nth-child(2)[b-1ke2kf5976] {
    animation-delay: 0.2s;
}

.typing-indicator span:nth-child(3)[b-1ke2kf5976] {
    animation-delay: 0.4s;
}

@keyframes typingBounce-b-1ke2kf5976 {
    0%, 60%, 100% { transform: translateY(0); }
    30% { transform: translateY(-8px); }
}

/* ==========================================================================
   КОМПОЗЕР СООБЩЕНИЯ — нижний блок ввода
   Единая «капсула» из textarea + футера с кнопкой отправки.
   Современные AI-чаты (ChatGPT/Claude/Gemini) визуально сливают эти элементы
   в один инструмент — то же делаем здесь: общая рамка, общий фон, кнопка
   живёт «внутри» композера, а не торчит сбоку.
   ========================================================================== */

/* Внешний контейнер композера: рамка + мягкий фон + скруглённые углы.
   transition на box-shadow создаёт эффект «приподнимания» при фокусе
   (см. :focus-within ниже). */
.chat-composer[b-1ke2kf5976] {
    margin: 0 1rem 1rem;
    padding: 0.75rem 0.75rem 0.5rem;
    background: #ffffff;
    border: 1px solid #e1e4e8;
    border-radius: 14px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

/* Когда любой элемент внутри композера в фокусе — подсвечиваем рамку
   и поднимаем тень. :focus-within ловит фокус и на textarea, и на кнопке. */
.chat-composer:focus-within[b-1ke2kf5976] {
    border-color: #a29bfe;
    box-shadow: 0 4px 12px rgba(108, 92, 231, 0.12);
}

/* Состояние «ждём ответ ИИ»: лёгкая опалесценция, чтобы пользователь видел,
   что композер сейчас «занят», но не было ощущения «всё сломалось». */
.chat-composer.is-loading[b-1ke2kf5976] {
    background: #f7f8fa;
}

/* Стилизация внутреннего SfTextArea.
   Syncfusion рендерит обёртку .e-input-group.e-control-wrapper, внутри — <textarea>.
   1) Убираем у обёртки рамку/фон — их роль играет внешний .chat-composer.
   2) КЛЮЧЕВОЕ: тема bootstrap5 даёт textarea-обёртке собственный min-height, из-за
      которого появлялась «огромная рамка», где поле на 3 строки сидело сверху, а ниже
      была пустота. Сбрасываем height/min-height в auto/0 — обёртка сжимается ровно
      под textarea (его высоту задаёт RowCount="3").
   Селекторы не завязаны на CssClass — внутри .chat-composer ровно один input-group. */
.chat-composer[b-1ke2kf5976]  .e-input-group,
.chat-composer[b-1ke2kf5976]  .e-input-group.e-control-wrapper {
    /* width:100% перебивает класс e-auto-width, из-за которого обёртка ужималась
       по контенту (~152px) вместо растягивания на всю ширину композера. */
    width: 100% !important;
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    height: auto !important;
    min-height: 0 !important;
}

/* Сам textarea — целимся по тегу (а не по .e-input), чтобы попасть независимо от
   набора классов Syncfusion. Внутри композера textarea ровно один.

   Высоту берём под полный контроль: height:auto !important перебивает возможный
   inline-/тема-height (из-за которого зона ввода была завышена и появлялся
   постоянный вертикальный скролл). min-height ≈ 3 строки, дальше поле растёт до
   max-height, а затем включается внутренний скролл — overflow-y:auto показывает
   полосу ТОЛЬКО при реальном переполнении, а не всегда. */
.chat-composer[b-1ke2kf5976]  textarea {
    width: 100%;
    box-sizing: border-box;
    height: auto !important;
    min-height: 4.5rem;
    max-height: 12rem;
    overflow-y: auto;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0.25rem 0.25rem 0.5rem !important;
    margin: 0 !important;
    font-size: 0.95rem;
    line-height: 1.45;
    resize: none;
}

/* Нижняя строка композера: счётчик + модель слева, кнопка отправки справа.
   align-items:flex-end прижимает все элементы к нижнему краю, чтобы кнопка
   и текст плавали ровно даже при разной высоте. */
.composer-footer[b-1ke2kf5976] {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0.25rem;
}

/* Левая группа метаинформации (счётчик + бейдж модели). */
.composer-meta[b-1ke2kf5976] {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
    min-width: 0; /* нужно для корректного wrap'а внутри flex-родителя */
}

/* Счётчик символов. Нейтральный серый — это вторичная информация. */
.composer-counter[b-1ke2kf5976] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #6c757d;
    font-size: 0.75rem;
    font-variant-numeric: tabular-nums; /* цифры одинаковой ширины — счётчик не «прыгает» */
}

/* Цвет переключается на красный, когда лимит почти исчерпан.
   Триггер в разметке: estimatedInputTokens > 90% токенного лимита модели. */
.composer-counter.is-warning[b-1ke2kf5976] {
    color: #d63031;
    font-weight: 600;
}

/* Счётчик символов — справочная инфа рядом с основным токенным счётчиком.
   Делаем бледнее и мельче, чтобы визуально был вторичным. */
.composer-counter-chars[b-1ke2kf5976] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: #adb5bd;
    font-size: 0.7rem;
    font-variant-numeric: tabular-nums;
}

/* Бейдж модели, на которой последняя реплика была отвечена. */
.composer-model[b-1ke2kf5976] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 2px 8px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(108, 92, 231, 0.1), rgba(116, 185, 255, 0.1));
    color: #6c5ce7;
    font-size: 0.7rem;
    font-weight: 600;
    white-space: nowrap;
}

/* Круглая кнопка отправки. Главное визуальное действие на странице —
   поэтому крупнее обычной кнопки, фиксированно круглая, с акцентным градиентом. */
.composer-send-btn.e-btn[b-1ke2kf5976] {
    width: 44px;
    height: 44px;
    min-width: 44px;
    padding: 0 !important;
    border-radius: 50% !important;
    background: linear-gradient(135deg, #6c5ce7, #74b9ff) !important;
    border: none !important;
    color: #ffffff !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(108, 92, 231, 0.35);
    transition: transform 0.15s ease, box-shadow 0.15s ease, opacity 0.2s ease;
}

/* Hover-эффект: лёгкий «лифт» и более яркая тень. */
.composer-send-btn.e-btn:not([disabled]):hover[b-1ke2kf5976] {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(108, 92, 231, 0.45);
}

/* Активный клик: пружинка обратно в исходное положение. */
.composer-send-btn.e-btn:not([disabled]):active[b-1ke2kf5976] {
    transform: translateY(0);
}

/* Состояние disabled: гасим градиент в серый, убираем тень и ховеры.
   Кнопка остаётся видимой, чтобы пользователь понимал, где она будет. */
.composer-send-btn.e-btn[disabled][b-1ke2kf5976] {
    background: #adb5bd !important;
    box-shadow: none;
    opacity: 0.7;
    cursor: not-allowed;
}

/* Иконка внутри кнопки чуть крупнее стандартной, белая. */
.composer-send-btn.e-btn .e-btn-icon[b-1ke2kf5976] {
    font-size: 1rem;
    color: #ffffff;
    margin: 0 !important; /* убираем стандартный отступ Syncfusion для icon+text — у нас icon-only */
}

/* ==========================================================================
   ПОДСКАЗКИ ДЛЯ ПУСТОГО СОСТОЯНИЯ
   Чипы готовых промтов. Отображаются ниже текста «Начните диалог»,
   когда messages.Count == 0. Клик подставляет текст в композер.
   ========================================================================== */

/* Контейнер с подсказками: flex-wrap, чтобы на узком sidebar'е чипы
   перестраивались в несколько строк, а не вылезали за границы карточки. */
.chat-suggestions[b-1ke2kf5976] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    max-width: 640px;
    margin: 0 auto;
}

/* Чип-подсказка. SfButton с CssClass="e-outline e-small" даёт основу,
   а мы добавляем кастомные радиус, hover и переход цвета. */
.suggestion-chip.e-btn[b-1ke2kf5976] {
    border-radius: 999px !important;
    padding: 0.4rem 0.9rem !important;
    font-size: 0.8rem !important;
    border-color: #d6d8db !important;
    color: #495057 !important;
    background: #ffffff !important;
    transition: all 0.2s ease;
    text-align: left;
    white-space: normal; /* длинные промты переносятся внутри чипа, а не обрезаются */
}

.suggestion-chip.e-btn:hover[b-1ke2kf5976] {
    border-color: #a29bfe !important;
    color: #6c5ce7 !important;
    background: rgba(108, 92, 231, 0.05) !important;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(108, 92, 231, 0.12);
}

.suggestion-chip.e-btn .e-btn-icon[b-1ke2kf5976] {
    color: #6c5ce7;
    margin-right: 0.4rem !important;
    font-size: 0.85rem;
}

/* ==========================================================================
   СКРОЛЛБАР ЧАТА
   ========================================================================== */

.chat-messages[b-1ke2kf5976]::-webkit-scrollbar {
    width: 6px;
}

.chat-messages[b-1ke2kf5976]::-webkit-scrollbar-track {
    background: transparent;
}

.chat-messages[b-1ke2kf5976]::-webkit-scrollbar-thumb {
    background: #ced4da;
    border-radius: 3px;
}

.chat-messages[b-1ke2kf5976]::-webkit-scrollbar-thumb:hover {
    background: #adb5bd;
}

/* ==========================================================================
   АДАПТИВНЫЕ СТИЛИ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ
   ========================================================================== */

@media (max-width: 992px) {
    /* На мобильных настройки не прилипают */
    .settings-card[b-1ke2kf5976] {
        position: static;
    }

    /* Уменьшаем высоту чата */
    .chat-container[b-1ke2kf5976] {
        height: 60vh;
        min-height: 400px;
    }
}

@media (max-width: 576px) {
    /* Ещё компактнее на маленьких экранах */
    .chat-container[b-1ke2kf5976] {
        height: 55vh;
        min-height: 350px;
    }

    .message-avatar[b-1ke2kf5976] {
        width: 30px;
        height: 30px;
        font-size: 0.75rem;
    }
}

/* ==========================================================================
   СТИЛИ ВЫПАДАЮЩЕГО СПИСКА МОДЕЛЕЙ — ВЫНЕСЕНЫ В ГЛОБАЛЬНЫЙ CSS

   Внутренние элементы popup'а SfDropDownList (открытый список) рендерятся
   Syncfusion'ом в портале (на уровне document.body) — scoped CSS компонента
   до них не дотягивается. Поэтому соответствующие правила (.model-item /
   .model-locked-badge / .e-popup.aichat-model-dropdown .e-list-item и т.д.) живут
   в wwwroot/css/aichat.css и подключены глобально в App.razor.

   В этом файле остаются только «свои» стили компонента: hero, карточки,
   композер ввода и сообщения чата.
   ========================================================================== */
/* /Components/Pages/AiChat/AiChatServiceDescription.razor.rz.scp.css */
/* ============================================================================
   AiChatServiceDescription.razor.css
   Изолированные стили для компонента описания сервиса ИИ чата
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ - Современный главный баннер
   ========================================================================== */

/* Фоновый градиент для hero секции с цветами ИИ/нейросетей */
.hero-modern[b-1bs1lx6p7l] {
    background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 50%, #74b9ff 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона с радиальными градиентами */
.hero-bg-pattern[b-1bs1lx6p7l] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 40% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 50%);
    animation: patternMove-b-1bs1lx6p7l 20s ease-in-out infinite;
}

@keyframes patternMove-b-1bs1lx6p7l {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(20px, -20px) scale(1.05); }
}

/* ==========================================================================
   БЕЙДЖИ И ЭЛЕМЕНТЫ HERO СЕКЦИИ
   ========================================================================== */

/* Современный бейдж с эффектом стекла */
.badge-modern[b-1bs1lx6p7l] {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* Контейнер кнопок с повышенным z-index */
.hero-buttons[b-1bs1lx6p7l] {
    position: relative;
    z-index: 10;
}

/* Стилизация кнопок в hero секции */
.hero-buttons .btn[b-1bs1lx6p7l] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    text-decoration: none;
    font-weight: 600;
}

/* Эффект подъёма при наведении */
.hero-buttons .btn:hover[b-1bs1lx6p7l] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* Контейнер списка возможностей */
.hero-features[b-1bs1lx6p7l] {
    position: relative;
    z-index: 10;
}

/* Иконка-обёртка возможности с эффектом стекла */
.feature-icon-wrapper[b-1bs1lx6p7l] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* Контейнер иконки hero секции */
.hero-icon-container[b-1bs1lx6p7l] {
    position: relative;
    z-index: 5;
}

/* ==========================================================================
   КАРТОЧКА БЕСПЛАТНОГО ДОСТУПА
   ========================================================================== */

/* Карточка с градиентной рамкой */
.free-access-card[b-1bs1lx6p7l] {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    border: 2px solid transparent;
    background-clip: padding-box;
    position: relative;
    overflow: hidden;
}

/* Градиентная рамка через псевдо-элемент */
.free-access-card[b-1bs1lx6p7l]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, #6c5ce7, #a29bfe, #74b9ff);
    z-index: -1;
    margin: -2px;
    border-radius: 20px;
}

/* Бейдж с иконкой подарка и пульсирующей анимацией */
.free-icon-badge[b-1bs1lx6p7l] {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 50%, #74b9ff 100%);
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: 0 8px 25px rgba(108, 92, 231, 0.3);
    animation: iconPulse-b-1bs1lx6p7l 3s ease-in-out infinite;
}

@keyframes iconPulse-b-1bs1lx6p7l {
    0%, 100% { transform: scale(1); box-shadow: 0 8px 25px rgba(108, 92, 231, 0.3); }
    50% { transform: scale(1.05); box-shadow: 0 10px 30px rgba(162, 155, 254, 0.4); }
}

/* Градиентный текст */
.gradient-text[b-1bs1lx6p7l] {
    background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 50%, #74b9ff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Бейдж-пилюля */
.free-badge-pill[b-1bs1lx6p7l] {
    background: linear-gradient(135deg, #6c5ce7 0%, #a29bfe 100%);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(108, 92, 231, 0.3);
    white-space: nowrap;
}

/* ==========================================================================
   АНИМАЦИИ ИКОНОК
   ========================================================================== */

/* Анимация парения для иконки робота */
.aichat-icon-animate[b-1bs1lx6p7l] {
    animation: float-b-1bs1lx6p7l 3s ease-in-out infinite;
}

@keyframes float-b-1bs1lx6p7l {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

/* Контейнер плавающих иконок */
.floating-icons[b-1bs1lx6p7l] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-1bs1lx6p7l] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-1bs1lx6p7l 6s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками */
.float-1[b-1bs1lx6p7l] { top: 10%; left: 10%; animation-delay: 0s; }
.float-2[b-1bs1lx6p7l] { top: 20%; right: 15%; animation-delay: 1.5s; }
.float-3[b-1bs1lx6p7l] { bottom: 20%; left: 20%; animation-delay: 3s; }
.float-4[b-1bs1lx6p7l] { bottom: 10%; right: 10%; animation-delay: 4.5s; }

@keyframes floatAround-b-1bs1lx6p7l {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(10px, -10px) rotate(5deg); }
    50% { transform: translate(-5px, -15px) rotate(-5deg); }
    75% { transform: translate(-10px, 5px) rotate(3deg); }
}

/* ==========================================================================
   ЭФФЕКТЫ КАРТОЧЕК
   ========================================================================== */

/* Эффект подъёма при наведении на карточку */
.hover-lift[b-1bs1lx6p7l] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-1bs1lx6p7l] {
    transform: translateY(-10px);
    box-shadow: 0 1rem 3rem rgba(0,0,0,.175) !important;
}

/* Пульсирующая анимация для иконок в карточках */
.icon-pulse[b-1bs1lx6p7l] {
    animation: pulse-b-1bs1lx6p7l 2s ease-in-out infinite;
}

@keyframes pulse-b-1bs1lx6p7l {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

/* ==========================================================================
   СЕКЦИЯ FAQ (ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ)
   ========================================================================== */

/* Заголовок элемента FAQ */
.faq-header[b-1bs1lx6p7l] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
}

/* Контент ответа FAQ */
.faq-content[b-1bs1lx6p7l] {
    padding: 1rem 0;
}

/* Стилизация кода в ответах FAQ */
.faq-content code[b-1bs1lx6p7l] {
    background: #f8f9fa;
    padding: 2px 6px;
    border-radius: 3px;
    color: #e83e8c;
    font-family: 'Courier New', monospace;
}
/* /Components/Pages/BugReport/BugReport.razor.rz.scp.css */
/* ═══════════════════════════════════════════════════════════════
   BugReport — Страница отправки баг-репортов
   Стиль следует общей дизайн-системе Atlorium (Bootstrap 5 тема)
   ═══════════════════════════════════════════════════════════════ */

.bug-report-wrapper[b-2cvm0p4b4b] {
    max-width: 820px;
    margin: 0 auto;
    padding: 32px 16px 64px;
}

/* ── Заголовок ─────────────────────────────────────────────── */

.bug-report-header[b-2cvm0p4b4b] {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 24px;
}

.header-icon-wrapper[b-2cvm0p4b4b] {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    border-radius: 14px;
    background: linear-gradient(135deg, #004d99, #0066cc);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    box-shadow: 0 4px 14px rgba(0, 77, 153, 0.25);
}

.header-title[b-2cvm0p4b4b] {
    font-size: 1.65rem;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 6px 0;
    line-height: 1.2;
}

.header-subtitle[b-2cvm0p4b4b] {
    font-size: 0.925rem;
    color: #5a6270;
    margin: 0;
    line-height: 1.55;
}

/* ── Alpha-бейдж ───────────────────────────────────────────── */

.alpha-badge[b-2cvm0p4b4b] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-radius: 8px;
    background: linear-gradient(135deg, #fff3e0, #fff8e1);
    border: 1px solid #ffe0b2;
    color: #e65100;
    font-size: 0.84rem;
    font-weight: 600;
    margin-bottom: 28px;
}

.alpha-badge i[b-2cvm0p4b4b] {
    font-size: 1rem;
}

/* ── Форма ─────────────────────────────────────────────────── */

.bug-report-form[b-2cvm0p4b4b] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* ── Секция формы ──────────────────────────────────────────── */

.form-section[b-2cvm0p4b4b] {
    background: #ffffff;
    border: 1px solid #e8eaed;
    border-radius: 12px;
    padding: 24px 28px;
    margin-bottom: 20px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.2s ease;
}

.form-section:hover[b-2cvm0p4b4b] {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.07);
}

.section-header[b-2cvm0p4b4b] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 1.05rem;
    font-weight: 600;
    color: #004d99;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #e8f0fe;
}

.section-header i[b-2cvm0p4b4b] {
    font-size: 1.15rem;
}

/* ── Группы полей ──────────────────────────────────────────── */

.form-group[b-2cvm0p4b4b] {
    margin-bottom: 18px;
    position: relative;
    width: 100%;
}

[b-2cvm0p4b4b] .form-group .e-input-group,
[b-2cvm0p4b4b] .form-group .e-float-input,
[b-2cvm0p4b4b] .form-group .e-control-wrapper,
[b-2cvm0p4b4b] .form-group .e-ddl,
[b-2cvm0p4b4b] .form-group .e-textarea {
    width: 100% !important;
}

.form-group:last-child[b-2cvm0p4b4b] {
    margin-bottom: 0;
}

.form-label[b-2cvm0p4b4b] {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: #374151;
    margin-bottom: 6px;
}

.form-label.required[b-2cvm0p4b4b]::after {
    content: " *";
    color: #dc3545;
    font-weight: 700;
}

.form-row[b-2cvm0p4b4b] {
    display: flex;
    gap: 20px;
}

.form-row.two-columns > .form-group[b-2cvm0p4b4b] {
    flex: 1;
    min-width: 0;
}

.form-hint[b-2cvm0p4b4b] {
    display: block;
    font-size: 0.78rem;
    color: #9ca3af;
    margin-top: 4px;
}

.char-counter[b-2cvm0p4b4b] {
    display: block;
    text-align: right;
    font-size: 0.75rem;
    color: #9ca3af;
    margin-top: 3px;
}

.char-counter-warn[b-2cvm0p4b4b] {
    color: #e65100;
    font-weight: 600;
}

/* ── Валидация ─────────────────────────────────────────────── */

.validation-message[b-2cvm0p4b4b] {
    display: block;
    font-size: 0.8rem;
    color: #dc3545;
    margin-top: 4px;
    font-weight: 500;
}

/* ── Кнопки ────────────────────────────────────────────────── */

.form-actions[b-2cvm0p4b4b] {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 14px;
    margin-top: 8px;
    padding-top: 4px;
}

[b-2cvm0p4b4b] .btn-submit.e-btn.e-primary {
    padding: 10px 28px;
    font-weight: 600;
    font-size: 0.95rem;
    border-radius: 8px;
    letter-spacing: 0.01em;
    background-color: #004d99;
    border-color: #004d99;
    box-shadow: 0 4px 12px rgba(0, 77, 153, 0.25);
    transition: all 0.2s ease;
}

[b-2cvm0p4b4b] .btn-submit.e-btn.e-primary:hover {
    background-color: #003d7a;
    border-color: #003d7a;
    box-shadow: 0 6px 18px rgba(0, 77, 153, 0.35);
    transform: translateY(-1px);
}

[b-2cvm0p4b4b] .btn-submit.e-btn.e-primary:active {
    transform: translateY(0);
}

[b-2cvm0p4b4b] .btn-reset.e-btn {
    padding: 10px 22px;
    font-weight: 500;
    font-size: 0.9rem;
    border-radius: 8px;
    color: #6b7280;
    border-color: #d1d5db;
}

[b-2cvm0p4b4b] .btn-reset.e-btn:hover {
    color: #374151;
    border-color: #9ca3af;
    background-color: #f9fafb;
}

/* ── Блок успеха ───────────────────────────────────────────── */

.success-card[b-2cvm0p4b4b] {
    text-align: center;
    background: #ffffff;
    border: 1px solid #e8eaed;
    border-radius: 16px;
    padding: 48px 32px;
    margin-top: 28px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
}

.success-icon-wrapper[b-2cvm0p4b4b] {
    color: #16a34a;
    margin-bottom: 16px;
}

.success-title[b-2cvm0p4b4b] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a1a2e;
    margin: 0 0 10px 0;
}

.success-text[b-2cvm0p4b4b] {
    font-size: 0.95rem;
    color: #5a6270;
    margin: 0 0 14px 0;
}

.success-text-secondary[b-2cvm0p4b4b] {
    font-size: 0.88rem;
    color: #9ca3af;
    margin: 16px 0 24px 0;
}

.report-id-badge[b-2cvm0p4b4b] {
    display: inline-block;
    padding: 10px 24px;
    background: linear-gradient(135deg, #e8f0fe, #dbeafe);
    border: 1px solid #93c5fd;
    border-radius: 10px;
    font-family: 'Cascadia Code', 'Fira Code', monospace;
    font-size: 1.1rem;
    font-weight: 700;
    color: #1e40af;
    letter-spacing: 0.04em;
}

[b-2cvm0p4b4b] .btn-new-report.e-btn {
    border-radius: 8px;
    padding: 10px 24px;
    font-weight: 500;
}

/* ── Сбор окружения ────────────────────────────────────────── */

.env-collect-row[b-2cvm0p4b4b] {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 18px;
}

.env-collect-row > span[b-2cvm0p4b4b] {
    font-size: 0.82rem;
    color: #6b7280;
}

[b-2cvm0p4b4b] .btn-collect-env.e-btn {
    border-radius: 8px;
    padding: 8px 18px;
    font-weight: 500;
    font-size: 0.85rem;
    white-space: nowrap;
    flex-shrink: 0;
}

.env-info-preview[b-2cvm0p4b4b] {
    background: #f8f9fa;
    border: 1px solid #e8eaed;
    border-radius: 8px;
    padding: 14px 18px;
    margin-bottom: 18px;
    font-size: 0.82rem;
    color: #374151;
    line-height: 1.65;
}

.env-info-preview .env-row[b-2cvm0p4b4b] {
    display: flex;
    gap: 8px;
    padding: 2px 0;
}

.env-info-preview .env-label[b-2cvm0p4b4b] {
    font-weight: 600;
    color: #6b7280;
    min-width: 150px;
    flex-shrink: 0;
}

.env-info-preview .env-value[b-2cvm0p4b4b] {
    color: #1a1a2e;
    word-break: break-word;
}

.env-collected-badge[b-2cvm0p4b4b] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    border-radius: 6px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #047857;
    font-size: 0.78rem;
    font-weight: 600;
}

/* ── Адаптив ───────────────────────────────────────────────── */

@media (max-width: 640px) {
    .bug-report-wrapper[b-2cvm0p4b4b] {
        padding: 20px 12px 48px;
    }

    .bug-report-header[b-2cvm0p4b4b] {
        flex-direction: column;
        gap: 14px;
    }

    .header-title[b-2cvm0p4b4b] {
        font-size: 1.35rem;
    }

    .form-section[b-2cvm0p4b4b] {
        padding: 18px 16px;
    }

    .form-row[b-2cvm0p4b4b] {
        flex-direction: column;
        gap: 0;
    }

    .env-collect-row[b-2cvm0p4b4b] {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .env-info-preview .env-row[b-2cvm0p4b4b] {
        flex-direction: column;
        gap: 2px;
    }

    .env-info-preview .env-label[b-2cvm0p4b4b] {
        min-width: unset;
    }

    .form-actions[b-2cvm0p4b4b] {
        flex-direction: column-reverse;
        gap: 10px;
    }

    .form-actions > *[b-2cvm0p4b4b] {
        width: 100%;
    }

    .success-card[b-2cvm0p4b4b] {
        padding: 32px 20px;
    }
}
/* /Components/Pages/Certificate/CertificateAPI.razor.rz.scp.css */
/* ============================================================================
   CertificateAPI.razor.css
   Изолированные стили для компонента документации REST API проверки SSL-сертификатов
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ API - Главный баннер страницы документации
   ========================================================================== */

/* Фоновый градиент для hero секции API */
.hero-api[b-ad1sw4beik] {
    background: linear-gradient(135deg, #16a085 0%, #27ae60 50%, #2ecc71 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона с радиальными градиентами */
.hero-bg-pattern[b-ad1sw4beik] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 25% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
                      radial-gradient(circle at 75% 75%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
                      radial-gradient(circle at 50% 25%, rgba(255, 255, 255, 0.08) 0%, transparent 50%);
    animation: patternMove-b-ad1sw4beik 25s ease-in-out infinite;
}

@keyframes patternMove-b-ad1sw4beik {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(15px, -15px) scale(1.05); }
}

/* ==========================================================================
   БЕЙДЖИ И ЭЛЕМЕНТЫ ИНТЕРФЕЙСА
   ========================================================================== */

/* Бейдж API с эффектом стекла (glassmorphism) */
.badge-api[b-ad1sw4beik] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

/* ==========================================================================
   КНОПКИ HERO СЕКЦИИ
   ========================================================================== */

/* Контейнер кнопок с повышенным z-index для кликабельности */
.hero-buttons[b-ad1sw4beik] {
    position: relative;
    z-index: 10;
}

/* Стилизация кнопок в hero секции */
.hero-buttons .btn[b-ad1sw4beik] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    font-weight: 600;
    text-decoration: none;
}

/* Эффект подъёма при наведении на кнопку */
.hero-buttons .btn:hover[b-ad1sw4beik] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* Стиль кнопки с контурной рамкой */
.btn-outline-light[b-ad1sw4beik] {
    border: 2px solid white;
}

.btn-outline-light:hover[b-ad1sw4beik] {
    background: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

/* ==========================================================================
   СПИСОК ВОЗМОЖНОСТЕЙ HERO СЕКЦИИ
   ========================================================================== */

/* Контейнер списка возможностей */
.hero-features[b-ad1sw4beik] {
    position: relative;
    z-index: 10;
}

/* Иконка-обёртка с эффектом стекла */
.feature-icon-wrapper[b-ad1sw4beik] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

/* ==========================================================================
   АНИМАЦИЯ ИКОНКИ API
   ========================================================================== */

/* Анимация парения для иконки сервера */
.api-icon-animate[b-ad1sw4beik] {
    animation: float-b-ad1sw4beik 3.5s ease-in-out infinite;
}

@keyframes float-b-ad1sw4beik {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-15px) rotate(2deg); }
}

/* ==========================================================================
   ПЛАВАЮЩИЕ ИКОНКИ ВОКРУГ ГЛАВНОГО ЭЛЕМЕНТА
   ========================================================================== */

/* Контейнер плавающих иконок */
.floating-icons[b-ad1sw4beik] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-ad1sw4beik] {
    position: absolute;
    color: rgba(255, 255, 255, 0.5);
    animation: floatAround-b-ad1sw4beik 7s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками анимации */
.float-1[b-ad1sw4beik] { top: 15%; left: 5%; animation-delay: 0s; }
.float-2[b-ad1sw4beik] { top: 25%; right: 10%; animation-delay: 1.75s; }
.float-3[b-ad1sw4beik] { bottom: 25%; left: 15%; animation-delay: 3.5s; }
.float-4[b-ad1sw4beik] { bottom: 15%; right: 5%; animation-delay: 5.25s; }

@keyframes floatAround-b-ad1sw4beik {
    0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.5; }
    25% { transform: translate(12px, -12px) rotate(8deg); opacity: 0.7; }
    50% { transform: translate(-8px, -18px) rotate(-8deg); opacity: 0.6; }
    75% { transform: translate(-12px, 8px) rotate(5deg); opacity: 0.8; }
}

/* ==========================================================================
   КАРТОЧКИ БЫСТРОГО СТАРТА
   ========================================================================== */

/* Стиль карточки быстрого старта */
.quick-start-card[b-ad1sw4beik] {
    transition: all 0.3s ease;
    background: white;
}

.quick-start-card:hover[b-ad1sw4beik] {
    transform: translateY(-5px);
}

/* Номер шага с градиентным фоном */
.step-number[b-ad1sw4beik] {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #16a085 0%, #27ae60 100%);
    color: white;
    font-size: 2rem;
    font-weight: bold;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 20px rgba(22, 160, 133, 0.3);
}

/* ==========================================================================
   КАРТОЧКИ ВОЗМОЖНОСТЕЙ API
   ========================================================================== */

/* Анимация подъёма карточки при наведении */
.api-feature-card[b-ad1sw4beik] {
    transition: all 0.3s ease;
}

.api-feature-card:hover[b-ad1sw4beik] {
    transform: translateY(-8px);
}

/* ==========================================================================
   SWAGGER UI КОНТЕЙНЕР
   ========================================================================== */

/* Карточка Swagger UI с закруглёнными углами */
.swagger-card[b-ad1sw4beik] {
    border-radius: 15px;
    overflow: hidden;
}

/* Минимальная высота для контейнера Swagger UI */
#swagger-ui[b-ad1sw4beik] {
    min-height: 600px;
}

/* ==========================================================================
   ОБЩИЙ ЭФФЕКТ ПОДЪЁМА ПРИ НАВЕДЕНИИ
   ========================================================================== */

.hover-lift[b-ad1sw4beik] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-ad1sw4beik] {
    transform: translateY(-8px);
    box-shadow: 0 1rem 3rem rgba(0,0,0,.175) !important;
}

/* ==========================================================================
   ИНФОРМАЦИОННЫЙ БАННЕР
   ========================================================================== */

/* Градиентный фон для информационного баннера */
.bg-gradient-info[b-ad1sw4beik] {
    background: linear-gradient(135deg, #16a085 0%, #27ae60 100%);
}

/* Бейдж с иконкой информации */
.info-icon-badge[b-ad1sw4beik] {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* ==========================================================================
   ИКОНКА ПРЕИМУЩЕСТВА
   ========================================================================== */

/* Контейнер для иконки преимущества */
.benefit-icon[b-ad1sw4beik] {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ==========================================================================
   АДАПТИВНЫЕ СТИЛИ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ
   ========================================================================== */

@media (max-width: 768px) {
    /* Уменьшаем размер иконки сервера */
    .api-icon-animate i[b-ad1sw4beik] {
        font-size: 6rem !important;
    }

    /* Скрываем плавающие иконки на мобильных для производительности */
    .floating-icons[b-ad1sw4beik] {
        display: none;
    }
}
/* /Components/Pages/Certificate/CertificateComponent.razor.rz.scp.css */
/* ============================================================================
   CertificateComponent.razor.css
   Изолированные стили для компонента интерактивной проверки SSL-сертификатов
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ - Главный баннер страницы
   ========================================================================== */

/* Фоновый градиент для hero секции */
.hero-certificate[b-gsv72newjm] {
    background: linear-gradient(135deg, #16a085 0%, #27ae60 50%, #2ecc71 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона с радиальными градиентами */
.hero-bg-pattern[b-gsv72newjm] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%);
    animation: patternMove-b-gsv72newjm 20s ease-in-out infinite;
}

@keyframes patternMove-b-gsv72newjm {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(20px, -20px) scale(1.05); }
}

/* Бейдж сертификата с эффектом размытия фона */
.badge-certificate[b-gsv72newjm] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

/* Контейнер для списка возможностей в hero секции */
.hero-features[b-gsv72newjm] {
    position: relative;
    z-index: 10;
}

/* Обёртка для иконок возможностей с эффектом стекла */
.feature-icon-wrapper[b-gsv72newjm] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

/* Анимация парения для иконки сертификата в hero */
.certificate-icon-hero i[b-gsv72newjm] {
    animation: float-b-gsv72newjm 3s ease-in-out infinite;
}

@keyframes float-b-gsv72newjm {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-20px) rotate(5deg); }
}

/* ==========================================================================
   КАРТОЧКА ВВОДА ДАННЫХ
   ========================================================================== */

/* Стиль карточки ввода данных */
.input-card[b-gsv72newjm] {
    border-radius: 20px;
    transition: all 0.3s ease;
}

.input-card:hover[b-gsv72newjm] {
    transform: translateY(-5px);
}

/* Стилизация полей ввода Syncfusion */
[b-gsv72newjm] .custom-input {
    border-radius: 10px;
}

/* Кнопка проверки сертификата с градиентом */
[b-gsv72newjm] .btn-check-certificate {
    background: linear-gradient(135deg, #16a085 0%, #27ae60 100%);
    color: white;
    border: none;
    padding: 12px 30px;
    border-radius: 10px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(22, 160, 133, 0.3);
    transition: all 0.3s ease;
}

[b-gsv72newjm] .btn-check-certificate:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(22, 160, 133, 0.4);
}

/* ==========================================================================
   КАРТОЧКИ ДАННЫХ СЕРТИФИКАТА
   ========================================================================== */

/* Базовый стиль карточки сертификата */
.certificate-card[b-gsv72newjm] {
    border-radius: 15px;
    transition: all 0.3s ease;
}

/* Эффект подъёма при наведении */
.hover-lift:hover[b-gsv72newjm] {
    transform: translateY(-10px);
    box-shadow: 0 1.5rem 3rem rgba(0,0,0,.2) !important;
}

/* Фоновая иконка для карточки */
.certificate-icon-bg[b-gsv72newjm] {
    width: 60px;
    height: 60px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Контейнер для информационных элементов */
.certificate-info[b-gsv72newjm] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Строка информации в карточке */
.info-item[b-gsv72newjm] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

.info-item:last-child[b-gsv72newjm] {
    border-bottom: none;
}

/* Метка информационного элемента */
.info-label[b-gsv72newjm] {
    font-weight: 600;
    color: #666;
    min-width: 120px;
}

/* Значение информационного элемента */
.info-value[b-gsv72newjm] {
    font-weight: 600;
    color: #333;
}

/* ==========================================================================
   ОТОБРАЖЕНИЕ СТАТУСА
   ========================================================================== */

/* Контейнер статуса */
.status-display[b-gsv72newjm] {
    padding: 15px;
    background: #f8f9fa;
    border-radius: 10px;
}

/* Бейдж статуса */
.status-badge[b-gsv72newjm] {
    display: inline-block;
    font-size: 1.2rem;
    font-weight: 700;
    padding: 10px 20px;
    border-radius: 10px;
    letter-spacing: 1px;
}

.status-badge.valid[b-gsv72newjm] {
    background: #d4edda;
    color: #155724;
    border: 2px solid #c3e6cb;
}

.status-badge.invalid[b-gsv72newjm] {
    background: #f8d7da;
    color: #721c24;
    border: 2px solid #f5c6cb;
}

/* ==========================================================================
   КАРТОЧКА ОШИБКИ
   ========================================================================== */

/* Стиль карточки сообщения об ошибке */
.error-card[b-gsv72newjm] {
    border-radius: 15px;
    border-left: 5px solid #dc3545;
}

/* Иконка ошибки */
.error-icon[b-gsv72newjm] {
    flex-shrink: 0;
}

/* ==========================================================================
   АНИМАЦИЯ ПОЯВЛЕНИЯ ЭЛЕМЕНТОВ
   ========================================================================== */

/* Анимация появления карточек при загрузке страницы */
.certificate-card[b-gsv72newjm],
.input-card[b-gsv72newjm] {
    animation: fadeInUp-b-gsv72newjm 0.6s ease-out;
}

@keyframes fadeInUp-b-gsv72newjm {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   АДАПТИВНЫЕ СТИЛИ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ
   ========================================================================== */

@media (max-width: 768px) {
    /* Уменьшаем иконку в hero секции */
    .certificate-icon-hero i[b-gsv72newjm] {
        font-size: 5rem !important;
    }
    
    /* Уменьшаем размер информационных блоков */
    .info-label[b-gsv72newjm] {
        min-width: 80px;
        font-size: 0.9rem;
    }
    
    .info-value[b-gsv72newjm] {
        font-size: 0.9rem;
    }
}

/* ==========================================================================
   ДОПОЛНИТЕЛЬНЫЕ СТИЛИ
   ========================================================================== */

/* Стиль для маленького текста в карточках */
.small[b-gsv72newjm] {
    font-size: 0.875rem;
}

/* Перенос длинного текста */
.text-break[b-gsv72newjm] {
    word-break: break-all;
}
/* /Components/Pages/Certificate/CertificateServiceDescription.razor.rz.scp.css */
/* ============================================================================
   CertificateServiceDescription.razor.css
   Изолированные стили для компонента описания сервиса проверки SSL-сертификатов
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ - Современный главный баннер
   ========================================================================== */

/* Фоновый градиент для hero секции с современными цветами */
.hero-modern[b-czuwlyn02l] {
    background: linear-gradient(135deg, #16a085 0%, #27ae60 50%, #2ecc71 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона с радиальными градиентами */
.hero-bg-pattern[b-czuwlyn02l] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 40% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 50%);
    animation: patternMove-b-czuwlyn02l 20s ease-in-out infinite;
}

@keyframes patternMove-b-czuwlyn02l {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(20px, -20px) scale(1.05); }
}

/* ==========================================================================
   БЕЙДЖИ И ЭЛЕМЕНТЫ HERO СЕКЦИИ
   ========================================================================== */

/* Современный бейдж с эффектом стекла */
.badge-modern[b-czuwlyn02l] {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* Контейнер кнопок с повышенным z-index */
.hero-buttons[b-czuwlyn02l] {
    position: relative;
    z-index: 10;
}

/* Стилизация кнопок в hero секции */
.hero-buttons .btn[b-czuwlyn02l] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    text-decoration: none;
    font-weight: 600;
}

/* Эффект подъёма при наведении */
.hero-buttons .btn:hover[b-czuwlyn02l] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* Контейнер списка возможностей */
.hero-features[b-czuwlyn02l] {
    position: relative;
    z-index: 10;
}

/* Иконка-обёртка возможности с эффектом стекла */
.feature-icon-wrapper[b-czuwlyn02l] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* Контейнер иконки hero секции */
.hero-icon-container[b-czuwlyn02l] {
    position: relative;
    z-index: 5;
}

/* ==========================================================================
   КАРТОЧКА БЕСПЛАТНОГО ДОСТУПА
   ========================================================================== */

/* Карточка с градиентной рамкой */
.free-access-card[b-czuwlyn02l] {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    border: 2px solid transparent;
    background-clip: padding-box;
    position: relative;
    overflow: hidden;
}

/* Градиентная рамка через псевдо-элемент */
.free-access-card[b-czuwlyn02l]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, #16a085, #27ae60, #2ecc71);
    z-index: -1;
    margin: -2px;
    border-radius: 20px;
}

/* Бейдж с иконкой подарка и пульсирующей анимацией */
.free-icon-badge[b-czuwlyn02l] {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #16a085 0%, #27ae60 50%, #2ecc71 100%);
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: 0 8px 25px rgba(22, 160, 133, 0.3);
    animation: iconPulse-b-czuwlyn02l 3s ease-in-out infinite;
}

@keyframes iconPulse-b-czuwlyn02l {
    0%, 100% { transform: scale(1); box-shadow: 0 8px 25px rgba(22, 160, 133, 0.3); }
    50% { transform: scale(1.05); box-shadow: 0 10px 30px rgba(39, 174, 96, 0.4); }
}

/* Градиентный текст */
.gradient-text[b-czuwlyn02l] {
    background: linear-gradient(135deg, #16a085 0%, #27ae60 50%, #2ecc71 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Бейдж-пилюля "Без ограничений" */
.free-badge-pill[b-czuwlyn02l] {
    background: linear-gradient(135deg, #16a085 0%, #27ae60 100%);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(22, 160, 133, 0.3);
    white-space: nowrap;
}

/* ==========================================================================
   АНИМАЦИИ ИКОНОК
   ========================================================================== */

/* Анимация парения для иконки сертификата */
.certificate-icon-animate[b-czuwlyn02l] {
    animation: float-b-czuwlyn02l 3s ease-in-out infinite;
}

@keyframes float-b-czuwlyn02l {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

/* Контейнер плавающих иконок */
.floating-icons[b-czuwlyn02l] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-czuwlyn02l] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-czuwlyn02l 6s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками */
.float-1[b-czuwlyn02l] { top: 10%; left: 10%; animation-delay: 0s; }
.float-2[b-czuwlyn02l] { top: 20%; right: 15%; animation-delay: 1.5s; }
.float-3[b-czuwlyn02l] { bottom: 20%; left: 20%; animation-delay: 3s; }
.float-4[b-czuwlyn02l] { bottom: 10%; right: 10%; animation-delay: 4.5s; }

@keyframes floatAround-b-czuwlyn02l {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(10px, -10px) rotate(5deg); }
    50% { transform: translate(-5px, -15px) rotate(-5deg); }
    75% { transform: translate(-10px, 5px) rotate(3deg); }
}

/* ==========================================================================
   ЭФФЕКТЫ КАРТОЧЕК
   ========================================================================== */

/* Эффект подъёма при наведении на карточку */
.hover-lift[b-czuwlyn02l] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-czuwlyn02l] {
    transform: translateY(-10px);
    box-shadow: 0 1rem 3rem rgba(0,0,0,.175) !important;
}

/* Пульсирующая анимация для иконок в карточках */
.icon-pulse[b-czuwlyn02l] {
    animation: pulse-b-czuwlyn02l 2s ease-in-out infinite;
}

@keyframes pulse-b-czuwlyn02l {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

/* ==========================================================================
   СЕКЦИЯ FAQ (ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ)
   ========================================================================== */

/* Заголовок элемента FAQ */
.faq-header[b-czuwlyn02l] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
}

/* Контент ответа FAQ */
.faq-content[b-czuwlyn02l] {
    padding: 1rem 0;
}

/* Стилизация кода в ответах FAQ */
.faq-content code[b-czuwlyn02l] {
    background: #f8f9fa;
    padding: 2px 6px;
    border-radius: 3px;
    color: #e83e8c;
    font-family: 'Courier New', monospace;
}
/* /Components/Pages/Cidr/CidrAPI.razor.rz.scp.css */
/* ============================================================================
   CidrAPI.razor.css
   Изолированные стили для страницы API документации CIDR
   Стиль соответствует DnsAPI.razor.css
   ============================================================================ */

.hero-api[b-2n1kg738n2] {
    position: relative;
    color: #fff;
    overflow: hidden;
}

.hero-bg-pattern[b-2n1kg738n2] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.08), transparent 35%),
        radial-gradient(circle at 80% 10%, rgba(255, 255, 255, 0.05), transparent 30%),
        radial-gradient(circle at 60% 70%, rgba(255, 255, 255, 0.04), transparent 25%);
    pointer-events: none;
}

.cidr-api-hero[b-2n1kg738n2] {
    background: linear-gradient(135deg, #0f172a 0%, #0d9488 100%);
}

.badge-api[b-2n1kg738n2] {
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.feature-icon-wrapper[b-2n1kg738n2] {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.quick-start-card code[b-2n1kg738n2] {
    font-weight: 700;
}

.api-feature-card[b-2n1kg738n2] {
    transition: transform .2s ease, box-shadow .2s ease;
}

.api-feature-card:hover[b-2n1kg738n2] {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
}

.hero-buttons[b-2n1kg738n2] {
    position: relative;
    z-index: 10;
}

.hero-buttons .btn[b-2n1kg738n2] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    font-weight: 600;
    text-decoration: none;
}

.hero-buttons .btn:hover[b-2n1kg738n2] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.btn-outline-light[b-2n1kg738n2] {
    border: 2px solid white;
}

.btn-outline-light:hover[b-2n1kg738n2] {
    background: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

.hero-features[b-2n1kg738n2] {
    position: relative;
    z-index: 10;
}

.api-icon-animate[b-2n1kg738n2] {
    animation: float-b-2n1kg738n2 3.5s ease-in-out infinite;
}

@keyframes float-b-2n1kg738n2 {

    0%,
    100% {
        transform: translateY(0px) rotate(0deg);
    }

    50% {
        transform: translateY(-15px) rotate(2deg);
    }
}

/* Контейнер плавающих иконок */
.floating-icons[b-2n1kg738n2] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-2n1kg738n2] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-2n1kg738n2 6s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками */
.float-1[b-2n1kg738n2] {
    top: 10%;
    left: 10%;
    animation-delay: 0s;
}

.float-2[b-2n1kg738n2] {
    top: 20%;
    right: 15%;
    animation-delay: 1.5s;
}

.float-3[b-2n1kg738n2] {
    bottom: 20%;
    left: 20%;
    animation-delay: 3s;
}

.float-4[b-2n1kg738n2] {
    bottom: 10%;
    right: 10%;
    animation-delay: 4.5s;
}

@keyframes floatAround-b-2n1kg738n2 {

    0%,
    100% {
        transform: translate(0, 0) rotate(0deg);
    }

    25% {
        transform: translate(10px, -10px) rotate(5deg);
    }

    50% {
        transform: translate(-5px, -15px) rotate(-5deg);
    }

    75% {
        transform: translate(-10px, 5px) rotate(3deg);
    }
}

.quick-start-card[b-2n1kg738n2] {
    transition: all 0.3s ease;
    background: #fff;
}

.quick-start-card:hover[b-2n1kg738n2] {
    transform: translateY(-5px);
}

.step-number[b-2n1kg738n2] {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #0f172a 0%, #0d9488 100%);
    color: white;
    font-size: 2rem;
    font-weight: 800;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 20px rgba(13, 148, 136, 0.35);
}

.bg-primary-soft[b-2n1kg738n2] {
    background: rgba(99, 102, 241, 0.16);
}

.bg-success-soft[b-2n1kg738n2] {
    background: rgba(34, 197, 94, 0.16);
}

.bg-info-soft[b-2n1kg738n2] {
    background: rgba(14, 165, 233, 0.16);
}

.hover-lift[b-2n1kg738n2] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-2n1kg738n2] {
    transform: translateY(-8px);
    box-shadow: 0 1.3rem 3rem rgba(0, 0, 0, 0.18) !important;
}

.icon-circle[b-2n1kg738n2] {
    width: 78px;
    height: 78px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
}

.swagger-card[b-2n1kg738n2] {
    border-radius: 15px;
    overflow: hidden;
}

#swagger-ui[b-2n1kg738n2] {
    min-height: 560px;
}

.bg-gradient-info[b-2n1kg738n2] {
    background: linear-gradient(135deg, #0f172a 0%, #0d9488 100%);
}

.info-icon-badge[b-2n1kg738n2] {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.hero-cta[b-2n1kg738n2] {
    position: relative;
}

.benefit-icon[b-2n1kg738n2] {
    width: 60px;
    height: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
/* /Components/Pages/Cidr/CidrComponent.razor.rz.scp.css */
/* ============================================================================
   CidrTool.razor.css
   Изолированные стили для CIDR калькулятора
   Стиль соответствует существующим сервисам (DNS, Cron, Certificate)
   ============================================================================ */

/* Hero секция с градиентным фоном */
.hero-cidr[b-w5y0usmh14] {
    background: linear-gradient(135deg, #0f172a 0%, #0d9488 50%, #0b1224 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона */
.hero-bg-pattern[b-w5y0usmh14] {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.08) 0%, transparent 45%),
        radial-gradient(circle at 80% 70%, rgba(255, 255, 255, 0.08) 0%, transparent 45%);
    animation: patternMove-b-w5y0usmh14 18s ease-in-out infinite;
}

@keyframes patternMove-b-w5y0usmh14 {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(25px, -15px) scale(1.04);
    }
}

/* Бейдж в hero секции */
.badge-cidr[b-w5y0usmh14] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #fff;
    font-weight: 600;
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

/* Иконки возможностей */
.feature-icon-wrapper[b-w5y0usmh14] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

/* Анимация иконки hero */
.cidr-icon-hero i[b-w5y0usmh14] {
    animation: floatIcon-b-w5y0usmh14 3.2s ease-in-out infinite;
}

@keyframes floatIcon-b-w5y0usmh14 {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-16px);
    }
}

/* Полоса статистики */
.stats-cidr[b-w5y0usmh14] {
    background: linear-gradient(90deg, #0f172a 0%, #101828 40%, #0f172a 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Пилюля статистики */
.stat-pill[b-w5y0usmh14] {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    padding: 12px 14px;
    display: flex;
    gap: 12px;
    align-items: center;
    color: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

/* Иконка статистики */
.stat-icon[b-w5y0usmh14] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

/* Мягкие цветные фоны */
.bg-primary-soft[b-w5y0usmh14] {
    background: rgba(99, 102, 241, 0.16);
}

.bg-success-soft[b-w5y0usmh14] {
    background: rgba(34, 197, 94, 0.16);
}

.bg-warning-soft[b-w5y0usmh14] {
    background: rgba(234, 179, 8, 0.16);
}

.bg-info-soft[b-w5y0usmh14] {
    background: rgba(6, 182, 212, 0.16);
}

.bg-danger-soft[b-w5y0usmh14] {
    background: rgba(239, 68, 68, 0.16);
}

/* Метки и значения статистики */
.stat-label[b-w5y0usmh14] {
    font-size: 0.9rem;
    opacity: 0.85;
}

.stat-value[b-w5y0usmh14] {
    font-weight: 700;
}

/* Карточка ввода */
.input-card[b-w5y0usmh14] {
    border-radius: 18px;
    transition: all 0.3s ease;
}

.input-card:hover[b-w5y0usmh14] {
    transform: translateY(-6px);
    box-shadow: 0 1.3rem 3rem rgba(0, 0, 0, 0.18) !important;
}

/* Кастомные стили для Syncfusion компонентов */
[b-w5y0usmh14] .custom-input {
    border-radius: 10px;
}

[b-w5y0usmh14] .custom-dropdown {
    border-radius: 10px;
}

/* Кнопка запуска действия */
[b-w5y0usmh14] .btn-run {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0d9488 0%, #14b8a6 100%);
    color: #fff;
    border: none;
    font-weight: 700;
    border-radius: 12px;
    padding: 12px 18px;
    box-shadow: 0 10px 25px rgba(13, 148, 136, 0.35);
    white-space: normal;
    line-height: 1.2;
    min-height: 48px;
    text-align: center;
}

[b-w5y0usmh14] .btn-run:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(13, 148, 136, 0.4);
}

/* Чипы примеров */
.sample-chip[b-w5y0usmh14] {
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #111;
    padding: 8px 12px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    min-width: 130px;
    text-align: center;
    cursor: pointer;
}

.sample-chip:hover[b-w5y0usmh14] {
    border-color: #0d9488;
    color: #0d9488;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(13, 148, 136, 0.18);
}

/* Карточка результата */
.result-card[b-w5y0usmh14] {
    border-radius: 16px;
    transition: all 0.3s ease;
}

.result-card:hover[b-w5y0usmh14] {
    transform: translateY(-4px);
    box-shadow: 0 1rem 2.5rem rgba(0, 0, 0, 0.12) !important;
}

/* Иконка результата */
.result-icon-bg[b-w5y0usmh14] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Информация в карточке результата */
.result-info[b-w5y0usmh14] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.info-item[b-w5y0usmh14] {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.info-label[b-w5y0usmh14] {
    font-size: 0.85rem;
    color: #64748b;
    font-weight: 600;
}

.info-value[b-w5y0usmh14] {
    font-weight: 700;
    color: #0f172a;
    word-break: break-all;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: color 0.2s ease;
}

.info-value:hover[b-w5y0usmh14] {
    color: #0d9488;
}

.copy-icon[b-w5y0usmh14] {
    opacity: 0.4;
    font-size: 0.85rem;
    transition: opacity 0.2s ease;
}

.info-value:hover .copy-icon[b-w5y0usmh14] {
    opacity: 1;
}

/* Бинарное значение */
.binary-value[b-w5y0usmh14] {
    font-family: 'Consolas', 'Monaco', monospace;
    font-size: 0.85rem;
}

/* Таблица подсетей */
[b-w5y0usmh14] .subnet-grid {
    border-radius: 12px;
    overflow: hidden;
}

[b-w5y0usmh14] .subnet-grid .e-gridheader {
    background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
}

[b-w5y0usmh14] .subnet-grid .e-headercell {
    font-weight: 700;
}

[b-w5y0usmh14] .subnet-grid .e-rowcell {
    font-size: 0.9rem;
}

/* Адаптивность */
@media (max-width: 767px) {
    .hero-cidr h1[b-w5y0usmh14] {
        font-size: 2rem;
    }

    .stat-pill[b-w5y0usmh14] {
        padding: 10px 12px;
    }

    .info-value[b-w5y0usmh14] {
        font-size: 0.9rem;
    }
}
/* /Components/Pages/Cidr/CidrServiceDescription.razor.rz.scp.css */
/* ============================================================================
   CidrServiceDescription.razor.css
   Изолированные стили для страницы описания CIDR сервиса
   ============================================================================ */

/* Hero секция */
.hero-cidr-desc[b-su6u0lzg14] {
    background: linear-gradient(135deg, #0f172a 0%, #0d9488 50%, #0b1224 100%);
    position: relative;
    overflow: hidden;
}

.hero-bg-pattern[b-su6u0lzg14] {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.08) 0%, transparent 45%),
        radial-gradient(circle at 80% 70%, rgba(255, 255, 255, 0.08) 0%, transparent 45%);
    animation: patternMove-b-su6u0lzg14 18s ease-in-out infinite;
}

@keyframes patternMove-b-su6u0lzg14 {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(25px, -15px) scale(1.04);
    }
}

.badge-cidr[b-su6u0lzg14] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #fff;
    font-weight: 600;
    border-radius: 999px;
}

.feature-icon-wrapper[b-su6u0lzg14] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

.cidr-icon-hero i[b-su6u0lzg14] {
    animation: floatIcon-b-su6u0lzg14 3.2s ease-in-out infinite;
}

@keyframes floatIcon-b-su6u0lzg14 {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-16px);
    }
}

/* Контейнер плавающих иконок */
.floating-icons[b-su6u0lzg14] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-su6u0lzg14] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-su6u0lzg14 6s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками */
.float-1[b-su6u0lzg14] {
    top: 10%;
    left: 10%;
    animation-delay: 0s;
}

.float-2[b-su6u0lzg14] {
    top: 20%;
    right: 15%;
    animation-delay: 1.5s;
}

.float-3[b-su6u0lzg14] {
    bottom: 20%;
    left: 20%;
    animation-delay: 3s;
}

.float-4[b-su6u0lzg14] {
    bottom: 10%;
    right: 10%;
    animation-delay: 4.5s;
}

@keyframes floatAround-b-su6u0lzg14 {

    0%,
    100% {
        transform: translate(0, 0) rotate(0deg);
    }

    25% {
        transform: translate(10px, -10px) rotate(5deg);
    }

    50% {
        transform: translate(-5px, -15px) rotate(-5deg);
    }

    75% {
        transform: translate(-10px, 5px) rotate(3deg);
    }
}

/* Free access card */
.free-access-card[b-su6u0lzg14] {
    background: linear-gradient(135deg, #ffffff 0%, #f0fdfa 100%);
    border-radius: 20px;
    padding: 2rem;
    border: 1px solid rgba(13, 148, 136, 0.2);
    box-shadow: 0 10px 40px rgba(13, 148, 136, 0.1);
}

.free-icon-badge[b-su6u0lzg14] {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #0d9488 0%, #14b8a6 100%);
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.gradient-text[b-su6u0lzg14] {
    background: linear-gradient(135deg, #0d9488 0%, #0f172a 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.free-badge-pill[b-su6u0lzg14] {
    background: rgba(13, 148, 136, 0.1);
    color: #0d9488;
    padding: 12px 20px;
    border-radius: 999px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
}

/* Icon circles */
.icon-circle[b-su6u0lzg14] {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
}

/* Hover effects */
.hover-lift[b-su6u0lzg14] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-su6u0lzg14] {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15) !important;
}

/* FAQ styles */
.faq-header[b-su6u0lzg14] {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 600;
}

.faq-content[b-su6u0lzg14] {
    padding: 1rem 0;
    color: #64748b;
}

/* Icon pulse animation */
.icon-pulse[b-su6u0lzg14] {
    animation: pulse-b-su6u0lzg14 2s ease-in-out infinite;
}

@keyframes pulse-b-su6u0lzg14 {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }
}

/* Hero buttons */
.hero-buttons .btn[b-su6u0lzg14] {
    border-radius: 12px;
    padding: 12px 24px;
    font-weight: 600;
}

.hero-features[b-su6u0lzg14] {
    font-size: 0.95rem;
}
/* /Components/Pages/Cron/CronAPI.razor.rz.scp.css */
/* ============================================================================
   CronAPI.razor.css
   Изолированные стили для страницы документации Cron API
   ============================================================================ */

/* HERO */
.hero-cron[b-leou1t076v] {
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 50%, #0b1224 100%);
    position: relative;
    overflow: hidden;
}

.hero-bg-pattern[b-leou1t076v] {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.08) 0%, transparent 45%),
                      radial-gradient(circle at 80% 70%, rgba(255, 255, 255, 0.08) 0%, transparent 45%);
    animation: patternMove-b-leou1t076v 18s ease-in-out infinite;
}

@keyframes patternMove-b-leou1t076v {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(25px, -15px) scale(1.04); }
}

.badge-cron[b-leou1t076v] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #fff;
    font-weight: 600;
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.hero-buttons[b-leou1t076v] {
    position: relative;
    z-index: 10;
}

.hero-buttons .btn[b-leou1t076v] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    font-weight: 600;
    text-decoration: none;
}

.hero-buttons .btn:hover[b-leou1t076v] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.btn-outline-light[b-leou1t076v] {
    border: 2px solid white;
}

.btn-outline-light:hover[b-leou1t076v] {
    background: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

.hero-features[b-leou1t076v] {
    position: relative;
    z-index: 10;
}

.feature-icon-wrapper[b-leou1t076v] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

.hero-icon-container[b-leou1t076v] {
    position: relative;
    z-index: 5;
}

.cron-icon-hero i[b-leou1t076v] {
    animation: floatIcon-b-leou1t076v 3.2s ease-in-out infinite;
}

@keyframes floatIcon-b-leou1t076v {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-16px); }
}

.floating-icons[b-leou1t076v] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.float-icon[b-leou1t076v] {
    position: absolute;
    color: rgba(255, 255, 255, 0.55);
    animation: floatAround-b-leou1t076v 8s ease-in-out infinite;
}

.float-1[b-leou1t076v] { top: 12%; left: 6%; animation-delay: 0s; }
.float-2[b-leou1t076v] { top: 24%; right: 10%; animation-delay: 1.6s; }
.float-3[b-leou1t076v] { bottom: 26%; left: 12%; animation-delay: 3.2s; }
.float-4[b-leou1t076v] { bottom: 14%; right: 6%; animation-delay: 4.8s; }

@keyframes floatAround-b-leou1t076v {
    0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.55; }
    25% { transform: translate(12px, -12px) rotate(6deg); opacity: 0.75; }
    50% { transform: translate(-8px, -18px) rotate(-6deg); opacity: 0.65; }
    75% { transform: translate(-12px, 10px) rotate(4deg); opacity: 0.8; }
}

/* CARDS & STEPS */
.hover-lift[b-leou1t076v] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-leou1t076v] {
    transform: translateY(-8px);
    box-shadow: 0 1.3rem 3rem rgba(0, 0, 0, 0.18) !important;
}

.quick-start-card[b-leou1t076v] {
    transition: all 0.3s ease;
    background: #fff;
}

.quick-start-card:hover[b-leou1t076v] {
    transform: translateY(-5px);
}

.step-number[b-leou1t076v] {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 100%);
    color: white;
    font-size: 2rem;
    font-weight: 800;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 20px rgba(58, 91, 160, 0.35);
}

.endpoint-card[b-leou1t076v] {
    border-radius: 14px;
}

.endpoint-pill[b-leou1t076v] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.3rem 0.85rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.9rem;
}

.code-box[b-leou1t076v] {
    background: #0f172a;
    color: #e2e8f0;
    border-radius: 12px;
    padding: 10px 12px;
    font-family: "JetBrains Mono", Consolas, monospace;
    border: 1px solid rgba(255, 255, 255, 0.08);
    word-break: break-all;
}

.api-feature-card[b-leou1t076v] {
    transition: all 0.3s ease;
}

.api-feature-card:hover[b-leou1t076v] {
    transform: translateY(-8px);
}

.icon-circle[b-leou1t076v] {
    width: 78px;
    height: 78px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
}

/* SWAGGER */
.swagger-card[b-leou1t076v] {
    border-radius: 15px;
    overflow: hidden;
}

#swagger-ui[b-leou1t076v] {
    min-height: 560px;
}

/* INFO BANNER */
.bg-gradient-info[b-leou1t076v] {
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 100%);
}

.info-icon-badge[b-leou1t076v] {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* CTA */
.hero-cta[b-leou1t076v] {
    position: relative;
}

.benefit-icon[b-leou1t076v] {
    width: 60px;
    height: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Responsive tweaks */
@media (max-width: 768px) {
    .cron-icon-hero i[b-leou1t076v] {
        font-size: 6rem !important;
    }

    .floating-icons[b-leou1t076v] {
        display: none;
    }
}
/* /Components/Pages/Cron/CronComponent.razor.rz.scp.css */
/* ============================================================================
   CronComponent.razor.css
   Изолированные стили для генератора и анализатора cron-выражений
   ============================================================================ */

.hero-cron[b-dvq5hgb6au] {
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 50%, #0b1224 100%);
    position: relative;
    overflow: hidden;
}

.hero-bg-pattern[b-dvq5hgb6au] {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.08) 0%, transparent 45%),
                      radial-gradient(circle at 80% 70%, rgba(255, 255, 255, 0.08) 0%, transparent 45%);
    animation: patternMove-b-dvq5hgb6au 18s ease-in-out infinite;
}

@keyframes patternMove-b-dvq5hgb6au {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(25px, -15px) scale(1.04); }
}

.badge-cron[b-dvq5hgb6au] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #fff;
    font-weight: 600;
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.feature-icon-wrapper[b-dvq5hgb6au] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

.cron-icon-hero i[b-dvq5hgb6au] {
    animation: floatIcon-b-dvq5hgb6au 3.2s ease-in-out infinite;
}

@keyframes floatIcon-b-dvq5hgb6au {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-16px); }
}

.stats-cron[b-dvq5hgb6au] {
    background: linear-gradient(90deg, #0f172a 0%, #101828 40%, #0f172a 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.stat-pill[b-dvq5hgb6au] {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    padding: 12px 14px;
    display: flex;
    gap: 12px;
    align-items: center;
    color: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.stat-icon[b-dvq5hgb6au] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.bg-primary-soft[b-dvq5hgb6au] {
    background: rgba(99, 102, 241, 0.16);
}

.bg-success-soft[b-dvq5hgb6au] {
    background: rgba(34, 197, 94, 0.16);
}

.bg-warning-soft[b-dvq5hgb6au] {
    background: rgba(234, 179, 8, 0.16);
}

.stat-label[b-dvq5hgb6au] {
    font-size: 0.9rem;
    opacity: 0.85;
}

.stat-value[b-dvq5hgb6au] {
    font-weight: 700;
}

.input-card[b-dvq5hgb6au] {
    border-radius: 18px;
    transition: all 0.3s ease;
}

.input-card .p-4[b-dvq5hgb6au] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.input-card:hover[b-dvq5hgb6au] {
    transform: translateY(-6px);
    box-shadow: 0 1.3rem 3rem rgba(0, 0, 0, 0.18) !important;
}

[b-dvq5hgb6au] .custom-input {
    border-radius: 10px;
}

[b-dvq5hgb6au] .custom-dropdown {
    border-radius: 10px;
}

[b-dvq5hgb6au] .btn-run {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #3a5ba0 0%, #6c5dd3 100%);
    color: #fff;
    border: none;
    font-weight: 700;
    border-radius: 12px;
    padding: 12px 18px;
    box-shadow: 0 10px 25px rgba(58, 91, 160, 0.35);
    white-space: normal;
    line-height: 1.2;
    min-height: 48px;
    text-align: center;
}

[b-dvq5hgb6au] .btn-run i {
    line-height: 1;
}

@media (min-width: 768px) {
    [b-dvq5hgb6au] .btn-run.d-md-inline-flex {
        width: auto;
    }
}

[b-dvq5hgb6au] .btn-run:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(58, 91, 160, 0.4);
}

.sample-chip[b-dvq5hgb6au] {
    border: 1px solid #e5e7eb;
    background: #fff;
    color: #111;
    padding: 8px 12px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.2s ease;
    min-width: 145px;
    text-align: center;
}

.checkbox-wrapper[b-dvq5hgb6au] {
    display: flex;
    align-items: center;
}

.checkbox-col[b-dvq5hgb6au] {
    display: flex;
    align-items: center;
    height: 100%;
    min-height: 48px;
}

[b-dvq5hgb6au] .custom-checkbox.e-checkbox-wrapper {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
}

[b-dvq5hgb6au] .custom-checkbox .e-label {
    padding-top: 0;
    line-height: 1.2;
}

.builder-grid[b-dvq5hgb6au] {
    align-content: start;
}

.builder-option-tile[b-dvq5hgb6au] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 14px 16px;
    border-radius: 14px;
    border: 1px solid #e2e8f0;
    background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
    box-shadow: 0 6px 16px rgba(15, 23, 42, 0.06);
    min-height: 64px;
}

.builder-option-copy[b-dvq5hgb6au] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

@media (max-width: 767px) {
    .builder-option-tile[b-dvq5hgb6au] {
        flex-direction: column;
        align-items: flex-start;
    }
}

[b-dvq5hgb6au] .toggle-checkbox.e-checkbox-wrapper {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 6px 10px;
    border-radius: 12px;
    background: #fff;
    border: 1px solid #e5e7eb;
}

[b-dvq5hgb6au] .toggle-checkbox .e-label {
    font-weight: 700;
    color: #0f172a;
}

.sample-chip:hover[b-dvq5hgb6au] {
    border-color: #3a5ba0;
    color: #3a5ba0;
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(58, 91, 160, 0.18);
}

[b-dvq5hgb6au] .btn-build {
    background: linear-gradient(135deg, #0ea5e9 0%, #6366f1 100%);
    color: #fff;
    border: none;
    font-weight: 700;
    border-radius: 12px;
    padding: 12px 18px;
    box-shadow: 0 10px 25px rgba(99, 102, 241, 0.35);
    min-height: 44px;
}

[b-dvq5hgb6au] .btn-ghost {
    border: 1px solid #d0d5dd;
    background: #fff;
    color: #111;
    font-weight: 600;
    border-radius: 12px;
    padding: 12px 18px;
    min-height: 44px;
    transition: all 0.2s ease;
}

[b-dvq5hgb6au] .btn-ghost:hover {
    border-color: #6366f1;
    color: #3730a3;
    box-shadow: 0 8px 18px rgba(99, 102, 241, 0.15);
}

.generated-block[b-dvq5hgb6au] {
    background: #f8fafc;
    border-radius: 12px;
    padding: 12px 14px;
    border: 1px solid #e2e8f0;
    min-height: 90px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.expression-pill[b-dvq5hgb6au] {
    background: linear-gradient(135deg, #f3f4f6 0%, #e5e7eb 100%);
    padding: 10px 14px;
    border-radius: 12px;
    font-weight: 700;
    color: #0f172a;
    border: 1px solid #e2e8f0;
    word-break: break-all;
}

.expression-placeholder[b-dvq5hgb6au] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px dashed #cbd5e1;
    color: #475467;
    background: #fff;
    font-weight: 600;
}

.timeline[b-dvq5hgb6au] {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 10px;
}

.timeline-item[b-dvq5hgb6au] {
    display: flex;
    gap: 12px;
    align-items: center;
    padding: 12px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}

.timeline-index[b-dvq5hgb6au] {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: linear-gradient(135deg, #3a5ba0 0%, #6c5dd3 100%);
    color: #fff;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 16px rgba(58, 91, 160, 0.35);
}

.timeline-content .text-muted[b-dvq5hgb6au] {
    margin-top: 4px;
}

.field-grid[b-dvq5hgb6au] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 12px;
}

.field-item[b-dvq5hgb6au] {
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 12px;
}

.field-label[b-dvq5hgb6au] {
    font-size: 0.9rem;
    color: #64748b;
    font-weight: 700;
}

.field-value[b-dvq5hgb6au] {
    font-weight: 800;
    color: #0f172a;
}

.cheatsheet[b-dvq5hgb6au] {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.cheat-pill[b-dvq5hgb6au] {
    background: #eef2ff;
    color: #3730a3;
    border: 1px solid #c7d2fe;
    padding: 6px 10px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 0.9rem;
}

[b-dvq5hgb6au] .e-calendar .e-content td.e-selected span.e-day {
    background: linear-gradient(135deg, #3a5ba0 0%, #6c5dd3 100%);
    color: #fff;
}

[b-dvq5hgb6au] .e-calendar .e-content td.e-today span.e-day {
    border-color: #3a5ba0;
}

.calendar-card[b-dvq5hgb6au] {
    gap: 12px;
}

.calendar-grid[b-dvq5hgb6au] {
    display: grid;
    grid-template-columns: 1.25fr 1fr;
    gap: 16px;
    align-items: stretch;
}

@media (max-width: 991px) {
    .calendar-grid[b-dvq5hgb6au] {
        grid-template-columns: 1fr;
    }
}

.calendar-pane[b-dvq5hgb6au] {
    background: linear-gradient(135deg, #f8fafc 0%, #eef2ff 100%);
    border-radius: 16px;
    padding: 12px;
    border: 1px solid #e2e8f0;
}

.calendar-side[b-dvq5hgb6au] {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.06);
}

.side-date[b-dvq5hgb6au] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.run-list[b-dvq5hgb6au] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.run-item[b-dvq5hgb6au] {
    display: flex;
    gap: 12px;
    align-items: flex-start;
    padding: 12px;
    border-radius: 12px;
    border: 1px solid #e2e8f0;
    background: #f8fafc;
    box-shadow: 0 6px 14px rgba(15, 23, 42, 0.05);
}

.run-time[b-dvq5hgb6au] {
    min-width: 72px;
    text-align: center;
    font-weight: 800;
    color: #fff;
    background: linear-gradient(135deg, #3a5ba0 0%, #6c5dd3 100%);
    border-radius: 10px;
    padding: 10px 8px;
    box-shadow: 0 10px 20px rgba(58, 91, 160, 0.28);
}

.run-meta[b-dvq5hgb6au] {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.run-empty[b-dvq5hgb6au] {
    border: 1px dashed #cbd5e1;
    border-radius: 12px;
    padding: 12px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #475467;
    background: #fff;
    font-weight: 600;
}

@media (max-width: 575px) {
    .run-item[b-dvq5hgb6au] {
        flex-direction: column;
        align-items: stretch;
    }

    .run-time[b-dvq5hgb6au] {
        width: 100%;
    }
}

.calendar-legend[b-dvq5hgb6au] {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 0.9rem;
    color: #475467;
}

.legend-item[b-dvq5hgb6au] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    background: #f8fafc;
    border-radius: 10px;
    border: 1px solid #e2e8f0;
    font-weight: 600;
}

.legend-dot[b-dvq5hgb6au] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-flex;
}

.legend-dot-run[b-dvq5hgb6au] {
    background: linear-gradient(135deg, #3a5ba0 0%, #6c5dd3 100%);
    box-shadow: 0 0 0 3px rgba(58, 91, 160, 0.15);
}

.legend-dot-today[b-dvq5hgb6au] {
    background: #10b981;
    box-shadow: 0 0 0 3px rgba(16, 185, 129, 0.18);
}

.legend-dot-muted[b-dvq5hgb6au] {
    background: #cbd5e1;
}

[b-dvq5hgb6au] .btn-ghost-sm {
    border: 1px solid #d0d5dd;
    background: #fff;
    color: #111827;
    border-radius: 10px;
    padding: 8px 12px;
    font-weight: 700;
    min-height: 38px;
    transition: all 0.2s ease;
}

[b-dvq5hgb6au] .btn-ghost-sm:hover {
    border-color: #6366f1;
    color: #3730a3;
    box-shadow: 0 8px 18px rgba(99, 102, 241, 0.12);
}

[b-dvq5hgb6au] .cron-calendar {
    width: 100%;
}

[b-dvq5hgb6au] .cron-calendar .e-calendar {
    width: 100%;
    border: none;
    box-shadow: none;
    background: transparent;
}

[b-dvq5hgb6au] .cron-calendar .e-header {
    border: none;
    margin-bottom: 4px;
}

[b-dvq5hgb6au] .cron-calendar .e-content {
    min-height: 360px;
    padding: 10px 12px 14px;
    border-radius: 12px;
}

[b-dvq5hgb6au] .cron-calendar-modern .e-content td {
    border-radius: 12px;
    transition: all 0.2s ease;
}

[b-dvq5hgb6au] .cron-calendar-modern .e-content td:hover {
    background: rgba(99, 102, 241, 0.08);
}

[b-dvq5hgb6au] .cron-calendar-hit span.e-day {
    background: linear-gradient(135deg, #3a5ba0 0%, #6c5dd3 100%) !important;
    color: #fff !important;
    box-shadow: 0 8px 16px rgba(58, 91, 160, 0.35);
}

[b-dvq5hgb6au] .cron-calendar .e-today span.e-day {
    border-color: #10b981;
    box-shadow: inset 0 0 0 1px rgba(16, 185, 129, 0.35);
}
/* /Components/Pages/Cron/CronServiceDescription.razor.rz.scp.css */
/* ============================================================================
   CronServiceDescription.razor.css
   Стили описания сервиса cron
   ============================================================================ */

.hero-cron-desc[b-dj13unpoy8] {
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 50%, #0b1224 100%);
    position: relative;
    overflow: hidden;
}

.hero-bg-pattern[b-dj13unpoy8] {
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 25% 25%, rgba(255, 255, 255, 0.08) 0%, transparent 45%),
                      radial-gradient(circle at 75% 75%, rgba(255, 255, 255, 0.08) 0%, transparent 45%);
    animation: patternMove-b-dj13unpoy8 18s ease-in-out infinite;
}

@keyframes patternMove-b-dj13unpoy8 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(25px, -15px) scale(1.04); }
}

.badge-cron[b-dj13unpoy8] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.28);
    color: #fff;
    font-weight: 600;
    border-radius: 999px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25);
}

.cron-icon-hero i[b-dj13unpoy8] {
    animation: floatIcon-b-dj13unpoy8 3.2s ease-in-out infinite;
}

@keyframes floatIcon-b-dj13unpoy8 {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-16px); }
}

.hero-icon-container[b-dj13unpoy8] {
    position: relative;
    z-index: 5;
}

.floating-icons[b-dj13unpoy8] {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}

.float-icon[b-dj13unpoy8] {
    position: absolute;
    color: rgba(255, 255, 255, 0.55);
    animation: floatAround-b-dj13unpoy8 8s ease-in-out infinite;
}

.float-1[b-dj13unpoy8] { top: 12%; left: 6%; animation-delay: 0s; }
.float-2[b-dj13unpoy8] { top: 24%; right: 10%; animation-delay: 1.6s; }
.float-3[b-dj13unpoy8] { bottom: 26%; left: 12%; animation-delay: 3.2s; }
.float-4[b-dj13unpoy8] { bottom: 14%; right: 6%; animation-delay: 4.8s; }

@keyframes floatAround-b-dj13unpoy8 {
    0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.55; }
    25% { transform: translate(12px, -12px) rotate(6deg); opacity: 0.75; }
    50% { transform: translate(-8px, -18px) rotate(-6deg); opacity: 0.65; }
    75% { transform: translate(-12px, 10px) rotate(4deg); opacity: 0.8; }
}

.icon-circle[b-dj13unpoy8] {
    width: 78px;
    height: 78px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
}

.feature-steps[b-dj13unpoy8] {
    padding-left: 18px;
    margin-bottom: 0;
}

.feature-steps li[b-dj13unpoy8] {
    margin-bottom: 8px;
}

.glass-panel[b-dj13unpoy8] {
    background: rgba(255, 255, 255, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.4);
    border-radius: 14px;
    padding: 16px 18px;
    box-shadow: 0 14px 30px rgba(0, 0, 0, 0.12);
    backdrop-filter: blur(8px);
}

.hover-lift:hover[b-dj13unpoy8] {
    transform: translateY(-8px);
    box-shadow: 0 1.3rem 3rem rgba(0, 0, 0, 0.18) !important;
}

/* ============================================================================
   Дополнительные стили для унификации с Weather/Certificate
   ============================================================================ */

.hero-modern[b-dj13unpoy8] {
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 50%, #0b1224 100%);
    position: relative;
    overflow: hidden;
}

.hero-buttons[b-dj13unpoy8] {
    position: relative;
    z-index: 10;
}

.hero-buttons .btn[b-dj13unpoy8] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    text-decoration: none;
    font-weight: 600;
}

.hero-buttons .btn:hover[b-dj13unpoy8] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.hero-features[b-dj13unpoy8] {
    position: relative;
    z-index: 10;
}

.feature-icon-wrapper[b-dj13unpoy8] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.22);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.free-access-card[b-dj13unpoy8] {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    border: 2px solid transparent;
    background-clip: padding-box;
    position: relative;
    overflow: hidden;
}

.free-access-card[b-dj13unpoy8]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #0f172a, #3a5ba0, #0b1224);
    z-index: -1;
    margin: -2px;
    border-radius: 20px;
}

.free-icon-badge[b-dj13unpoy8] {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 100%);
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: 0 8px 25px rgba(58, 91, 160, 0.3);
    animation: iconPulse-b-dj13unpoy8 3s ease-in-out infinite;
}

.gradient-text[b-dj13unpoy8] {
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.free-badge-pill[b-dj13unpoy8] {
    background: linear-gradient(135deg, #0f172a 0%, #3a5ba0 100%);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(58, 91, 160, 0.3);
    white-space: nowrap;
}

.icon-pulse[b-dj13unpoy8] {
    animation: pulse-b-dj13unpoy8 2s ease-in-out infinite;
}

@keyframes pulse-b-dj13unpoy8 {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

.faq-header[b-dj13unpoy8] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
}

.faq-content[b-dj13unpoy8] {
    padding: 1rem 0;
}

.faq-content code[b-dj13unpoy8] {
    background: #f8f9fa;
    padding: 2px 6px;
    border-radius: 3px;
    color: #0f172a;
    font-family: 'Courier New', monospace;
}

@keyframes iconPulse-b-dj13unpoy8 {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 8px 25px rgba(58, 91, 160, 0.3);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 10px 30px rgba(58, 91, 160, 0.45);
    }
}

@media (max-width: 768px) {
    .cron-icon-hero i[b-dj13unpoy8] {
        font-size: 6rem !important;
    }

    .floating-icons[b-dj13unpoy8] {
        display: none;
    }
}
/* /Components/Pages/Dns/DnsAPI.razor.rz.scp.css */
.hero-api[b-pr1l40oqok] {
    position: relative;
    color: #fff;
    overflow: hidden;
}

.hero-bg-pattern[b-pr1l40oqok] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 30%, rgba(255, 255, 255, 0.08), transparent 35%),
        radial-gradient(circle at 80% 10%, rgba(255, 255, 255, 0.05), transparent 30%),
        radial-gradient(circle at 60% 70%, rgba(255, 255, 255, 0.04), transparent 25%);
    pointer-events: none;
}

.dns-api-hero[b-pr1l40oqok] {
    background: linear-gradient(135deg, #1f3b73 0%, #0d1730 100%);
}

.badge-api[b-pr1l40oqok] {
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
    border-radius: 999px;
    color: #fff;
    font-weight: 600;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18);
}

.feature-icon-wrapper[b-pr1l40oqok] {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.14);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.quick-start-card code[b-pr1l40oqok] {
    font-weight: 700;
}

.api-feature-card[b-pr1l40oqok] {
    transition: transform .2s ease, box-shadow .2s ease;
}

.api-feature-card:hover[b-pr1l40oqok] {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
}

.hero-buttons[b-pr1l40oqok] {
    position: relative;
    z-index: 10;
}

.hero-buttons .btn[b-pr1l40oqok] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    font-weight: 600;
    text-decoration: none;
}

.hero-buttons .btn:hover[b-pr1l40oqok] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.btn-outline-light[b-pr1l40oqok] {
    border: 2px solid white;
}

.btn-outline-light:hover[b-pr1l40oqok] {
    background: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

.hero-features[b-pr1l40oqok] {
    position: relative;
    z-index: 10;
}

.api-icon-animate[b-pr1l40oqok] {
    animation: float-b-pr1l40oqok 3.5s ease-in-out infinite;
}

@keyframes float-b-pr1l40oqok {

    0%,
    100% {
        transform: translateY(0px) rotate(0deg);
    }

    50% {
        transform: translateY(-15px) rotate(2deg);
    }
}

/* Контейнер плавающих иконок */
.floating-icons[b-pr1l40oqok] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-pr1l40oqok] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-pr1l40oqok 6s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками */
.float-1[b-pr1l40oqok] {
    top: 10%;
    left: 10%;
    animation-delay: 0s;
}

.float-2[b-pr1l40oqok] {
    top: 20%;
    right: 15%;
    animation-delay: 1.5s;
}

.float-3[b-pr1l40oqok] {
    bottom: 20%;
    left: 20%;
    animation-delay: 3s;
}

.float-4[b-pr1l40oqok] {
    bottom: 10%;
    right: 10%;
    animation-delay: 4.5s;
}

@keyframes floatAround-b-pr1l40oqok {

    0%,
    100% {
        transform: translate(0, 0) rotate(0deg);
    }

    25% {
        transform: translate(10px, -10px) rotate(5deg);
    }

    50% {
        transform: translate(-5px, -15px) rotate(-5deg);
    }

    75% {
        transform: translate(-10px, 5px) rotate(3deg);
    }
}

.quick-start-card[b-pr1l40oqok] {
    transition: all 0.3s ease;
    background: #fff;
}

.quick-start-card:hover[b-pr1l40oqok] {
    transform: translateY(-5px);
}

.step-number[b-pr1l40oqok] {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    color: white;
    font-size: 2rem;
    font-weight: 800;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 20px rgba(31, 59, 115, 0.35);
}

.bg-primary-soft[b-pr1l40oqok] {
    background: rgba(99, 102, 241, 0.16);
}

.bg-success-soft[b-pr1l40oqok] {
    background: rgba(34, 197, 94, 0.16);
}

.bg-info-soft[b-pr1l40oqok] {
    background: rgba(14, 165, 233, 0.16);
}

.hover-lift[b-pr1l40oqok] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-pr1l40oqok] {
    transform: translateY(-8px);
    box-shadow: 0 1.3rem 3rem rgba(0, 0, 0, 0.18) !important;
}

.icon-circle[b-pr1l40oqok] {
    width: 78px;
    height: 78px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.15);
}

.swagger-card[b-pr1l40oqok] {
    border-radius: 15px;
    overflow: hidden;
}

#swagger-ui[b-pr1l40oqok] {
    min-height: 560px;
}

.bg-gradient-info[b-pr1l40oqok] {
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
}

.info-icon-badge[b-pr1l40oqok] {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.hero-cta[b-pr1l40oqok] {
    position: relative;
}

.benefit-icon[b-pr1l40oqok] {
    width: 60px;
    height: 60px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
/* /Components/Pages/Dns/DnsComponent.razor.rz.scp.css */
/* Hero */
.hero-dns[b-b0twm577dk] {
    position: relative;
    background: linear-gradient(135deg, #1f3b73 0%, #15294b 100%);
    color: #fff;
    overflow: hidden;
}

.hero-dns .hero-bg-pattern[b-b0twm577dk] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.08), transparent 35%),
        radial-gradient(circle at 80% 0%, rgba(255, 255, 255, 0.06), transparent 30%),
        radial-gradient(circle at 50% 80%, rgba(255, 255, 255, 0.05), transparent 25%);
    opacity: 0.9;
    animation: patternMove-b-b0twm577dk 18s ease-in-out infinite;
}

@keyframes patternMove-b-b0twm577dk {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(25px, -15px) scale(1.04);
    }
}

.badge-dns[b-b0twm577dk] {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    color: #fff;
    backdrop-filter: blur(6px);
}

.feature-icon-wrapper[b-b0twm577dk] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.dns-icon-hero[b-b0twm577dk] {
    position: relative;
    display: inline-block;
}

.floating-icons .float-icon[b-b0twm577dk] {
    position: absolute;
    color: rgba(255, 255, 255, 0.8);
    animation: float-b-b0twm577dk 6s ease-in-out infinite;
}

.float-1[b-b0twm577dk] {
    top: -10px;
    left: -60px;
    animation-delay: 0s;
}

.float-2[b-b0twm577dk] {
    top: 20px;
    right: -70px;
    animation-delay: 1s;
}

.float-3[b-b0twm577dk] {
    bottom: -10px;
    left: -40px;
    animation-delay: 2s;
}

.float-4[b-b0twm577dk] {
    bottom: -20px;
    right: -50px;
    animation-delay: 3s;
}

@keyframes float-b-b0twm577dk {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

/* Stats band (единый паттерн как в Cron/Weather/Certificate) */
.stats-dns[b-b0twm577dk] {
    background: linear-gradient(90deg, #0f172a 0%, #101828 40%, #0f172a 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.stat-pill[b-b0twm577dk] {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    padding: 12px 14px;
    display: flex;
    gap: 12px;
    align-items: center;
    color: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.stat-icon[b-b0twm577dk] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.stat-label[b-b0twm577dk] {
    font-size: 0.9rem;
    opacity: 0.85;
}

.stat-value[b-b0twm577dk] {
    font-weight: 800;
}

/* Input card */
.input-card[b-b0twm577dk] {
    border-radius: 18px;
    transition: all 0.3s ease;
}

.input-card:hover[b-b0twm577dk] {
    transform: translateY(-6px);
    box-shadow: 0 1.3rem 3rem rgba(0, 0, 0, 0.18) !important;
}

/* Syncfusion inputs (нужен ::deep для вложенных элементов) */
[b-b0twm577dk] .custom-input {
    border-radius: 10px;
}

[b-b0twm577dk] .custom-dropdown {
    border-radius: 10px;
}

[b-b0twm577dk] .custom-multiselect {
    border-radius: 10px;
}

/* Buttons */
[b-b0twm577dk] .btn-run {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1f3b73 0%, #3b82f6 100%);
    color: #fff;
    border: none;
    font-weight: 800;
    border-radius: 12px;
    padding: 12px 18px;
    min-height: 44px;
    box-shadow: 0 10px 25px rgba(31, 59, 115, 0.35);
    transition: all 0.2s ease;
}

[b-b0twm577dk] .btn-run:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(31, 59, 115, 0.45);
}

[b-b0twm577dk] .btn-ghost {
    border: 1px solid #d0d5dd;
    background: #fff;
    color: #111;
    font-weight: 700;
    border-radius: 12px;
    padding: 12px 18px;
    min-height: 44px;
    transition: all 0.2s ease;
}

[b-b0twm577dk] .btn-ghost:hover {
    border-color: #1f3b73;
    color: #1f3b73;
    box-shadow: 0 8px 18px rgba(31, 59, 115, 0.14);
}

.loading-pill[b-b0twm577dk] {
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #4b5563;
    font-weight: 600;
}

/* Cards */
.dns-card[b-b0twm577dk] {
    border-radius: 16px;
    background: #fff;
}

.dns-record-list[b-b0twm577dk] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.dns-record-item[b-b0twm577dk] {
    padding: 10px 12px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}

.bg-primary-soft[b-b0twm577dk] {
    background: rgba(99, 102, 241, 0.16);
}

.bg-success-soft[b-b0twm577dk] {
    background: rgba(34, 197, 94, 0.16);
}

.bg-secondary-soft[b-b0twm577dk] {
    background: rgba(148, 163, 184, 0.16);
}

.bg-info-soft[b-b0twm577dk] {
    background: rgba(14, 165, 233, 0.16);
}

.bg-danger-soft[b-b0twm577dk] {
    background: rgba(239, 68, 68, 0.12);
}

[b-b0twm577dk] .dns-grid .e-gridheader {
    border-radius: 12px 12px 0 0;
}

.record-badges[b-b0twm577dk] {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
/* /Components/Pages/Dns/DnsServiceDescription.razor.rz.scp.css */
.hero-dns-desc[b-p0oj8mlo0o] {
    position: relative;
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    color: #fff;
    overflow: hidden;
}

.hero-bg-pattern[b-p0oj8mlo0o] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.08), transparent 35%),
        radial-gradient(circle at 80% 0%, rgba(255, 255, 255, 0.06), transparent 30%),
        radial-gradient(circle at 50% 80%, rgba(255, 255, 255, 0.05), transparent 25%);
    animation: patternMove-b-p0oj8mlo0o 18s ease-in-out infinite;
}

@keyframes patternMove-b-p0oj8mlo0o {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(25px, -15px) scale(1.04);
    }
}

.badge-dns[b-p0oj8mlo0o] {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    color: #fff;
    backdrop-filter: blur(6px);
}

.hero-buttons[b-p0oj8mlo0o] {
    position: relative;
    z-index: 10;
}

.hero-buttons .btn[b-p0oj8mlo0o] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    text-decoration: none;
    font-weight: 600;
}

.hero-buttons .btn:hover[b-p0oj8mlo0o] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.btn-outline-light[b-p0oj8mlo0o] {
    border: 2px solid white;
}

.btn-outline-light:hover[b-p0oj8mlo0o] {
    background: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

.feature-icon-wrapper[b-p0oj8mlo0o] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.dns-icon-hero[b-p0oj8mlo0o] {
    position: relative;
    display: inline-block;
    animation: float-b-p0oj8mlo0o 3s ease-in-out infinite;
}

@keyframes float-b-p0oj8mlo0o {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

/* Контейнер плавающих иконок */
.floating-icons[b-p0oj8mlo0o] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-p0oj8mlo0o] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-p0oj8mlo0o 6s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками */
.float-1[b-p0oj8mlo0o] { top: 10%; left: 10%; animation-delay: 0s; }
.float-2[b-p0oj8mlo0o] { top: 20%; right: 15%; animation-delay: 1.5s; }
.float-3[b-p0oj8mlo0o] { bottom: 20%; left: 20%; animation-delay: 3s; }
.float-4[b-p0oj8mlo0o] { bottom: 10%; right: 10%; animation-delay: 4.5s; }

@keyframes floatAround-b-p0oj8mlo0o {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(10px, -10px) rotate(5deg); }
    50% { transform: translate(-5px, -15px) rotate(-5deg); }
    75% { transform: translate(-10px, 5px) rotate(3deg); }
}

.hero-modern[b-p0oj8mlo0o] {
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    position: relative;
}

.icon-circle[b-p0oj8mlo0o] {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.hover-lift[b-p0oj8mlo0o] {
    transition: transform .2s ease, box-shadow .2s ease;
}

.hover-lift:hover[b-p0oj8mlo0o] {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.faq-header[b-p0oj8mlo0o] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
}

.faq-content[b-p0oj8mlo0o] {
    padding: 1rem 0;
}

.faq-content code[b-p0oj8mlo0o] {
    background: #f8f9fa;
    padding: 2px 6px;
    border-radius: 3px;
    color: #0f172a;
    font-family: 'Courier New', monospace;
}

.icon-pulse[b-p0oj8mlo0o] {
    animation: pulse-b-p0oj8mlo0o 2s ease-in-out infinite;
}

@keyframes pulse-b-p0oj8mlo0o {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.05);
    }
}

.free-access-card[b-p0oj8mlo0o] {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    border: 2px solid transparent;
    background-clip: padding-box;
    position: relative;
    overflow: hidden;
}

.free-access-card[b-p0oj8mlo0o]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #0f172a, #1f3b73, #0b1224);
    z-index: -1;
    margin: -2px;
    border-radius: 20px;
}

.free-icon-badge[b-p0oj8mlo0o] {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: 0 8px 25px rgba(31, 59, 115, 0.3);
    animation: iconPulse-b-p0oj8mlo0o 3s ease-in-out infinite;
}

.gradient-text[b-p0oj8mlo0o] {
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.free-badge-pill[b-p0oj8mlo0o] {
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(31, 59, 115, 0.3);
    white-space: nowrap;
}

@keyframes iconPulse-b-p0oj8mlo0o {

    0%,
    100% {
        transform: scale(1);
        box-shadow: 0 8px 25px rgba(31, 59, 115, 0.3);
    }

    50% {
        transform: scale(1.05);
        box-shadow: 0 10px 30px rgba(31, 59, 115, 0.45);
    }
}
/* /Components/Pages/Error.razor.rz.scp.css */
/* ============================================================================
   Error.razor.css
   Изолированные стили для страницы ошибки 500 (Internal Server Error)
   Палитра: тёмно-синий (#0f172a), красно-оранжевый акцент (#ef4444), белый
   ============================================================================ */

/* ==========================================================================
   ОБЁРТКА СТРАНИЦЫ — Полноэкранный градиентный фон
   ========================================================================== */

.error-page-wrapper[b-snqemsyclv] {
    position: relative;
    min-height: calc(100vh - 3.5rem);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 40%, #1e3a5f 100%);
    padding: 2rem 1rem;
}

/* ==========================================================================
   АНИМИРОВАННЫЙ ФОН
   ========================================================================== */

.error-bg-animated[b-snqemsyclv] {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 30% 70%, rgba(239, 68, 68, 0.12) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 30%, rgba(37, 99, 235, 0.15) 0%, transparent 55%);
    animation: errorGradientShift-b-snqemsyclv 12s ease-in-out infinite;
}

@keyframes errorGradientShift-b-snqemsyclv {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.7; transform: scale(1.06); }
}

.error-bg-particles[b-snqemsyclv] {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 15% 25%, rgba(255,255,255,0.04) 1px, transparent 1px),
        radial-gradient(circle at 85% 75%, rgba(255,255,255,0.04) 1px, transparent 1px),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.02) 1px, transparent 1px);
    background-size: 80px 80px, 120px 120px, 60px 60px;
    animation: errorParticlesFloat-b-snqemsyclv 25s linear infinite;
}

@keyframes errorParticlesFloat-b-snqemsyclv {
    0% { transform: translateY(0); }
    100% { transform: translateY(-40px); }
}

/* ==========================================================================
   КОНТЕНТНЫЙ БЛОК
   ========================================================================== */

.error-content-container[b-snqemsyclv] {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 560px;
    width: 100%;
    animation: errorContentFadeIn-b-snqemsyclv 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes errorContentFadeIn-b-snqemsyclv {
    from { opacity: 0; transform: translateY(30px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* ==========================================================================
   ИКОНКА ОШИБКИ
   ========================================================================== */

.error-icon-block[b-snqemsyclv] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
}

.error-icon-pulse[b-snqemsyclv] {
    position: absolute;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: rgba(239, 68, 68, 0.15);
    animation: errorIconPulse-b-snqemsyclv 2.5s ease-in-out infinite;
}

@keyframes errorIconPulse-b-snqemsyclv {
    0%, 100% { transform: scale(1); opacity: 0.6; }
    50% { transform: scale(1.35); opacity: 0; }
}

.error-icon-circle[b-snqemsyclv] {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.2) 0%, rgba(239, 68, 68, 0.08) 100%);
    border: 2px solid rgba(239, 68, 68, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(10px);
}

.error-icon-circle i[b-snqemsyclv] {
    font-size: 2.5rem;
    color: #f87171;
    filter: drop-shadow(0 0 12px rgba(239, 68, 68, 0.4));
}

/* ==========================================================================
   КОД ОШИБКИ
   ========================================================================== */

.error-code[b-snqemsyclv] {
    font-size: clamp(4.5rem, 12vw, 8rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    margin: 0 0 0.5rem;
    background: linear-gradient(135deg, #f87171 0%, #fbbf24 50%, #f87171 100%);
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: errorCodeShimmer-b-snqemsyclv 4s ease-in-out infinite;
}

@keyframes errorCodeShimmer-b-snqemsyclv {
    0%, 100% { background-position: 0% center; }
    50% { background-position: 200% center; }
}

/* ==========================================================================
   ЗАГОЛОВОК И ОПИСАНИЕ
   ========================================================================== */

.error-title[b-snqemsyclv] {
    font-size: clamp(1.25rem, 3.5vw, 1.75rem);
    font-weight: 700;
    color: #f1f5f9;
    margin: 0 0 1rem;
    letter-spacing: -0.01em;
}

.error-description[b-snqemsyclv] {
    font-size: clamp(0.9rem, 2.2vw, 1.05rem);
    color: #94a3b8;
    line-height: 1.7;
    margin: 0 0 1.5rem;
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   REQUEST ID
   ========================================================================== */

.error-request-id[b-snqemsyclv] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 8px;
    padding: 0.5rem 1rem;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.error-request-id-label[b-snqemsyclv] {
    font-size: 0.8rem;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.error-request-id-value[b-snqemsyclv] {
    font-size: 0.78rem;
    color: #94a3b8;
    background: rgba(255, 255, 255, 0.06);
    padding: 0.15rem 0.5rem;
    border-radius: 4px;
    font-family: 'Cascadia Code', 'Fira Code', monospace;
    word-break: break-all;
}

/* ==========================================================================
   ПАНЕЛЬ РАЗРАБОТЧИКА (только Development)
   ========================================================================== */

.error-dev-details[b-snqemsyclv] {
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(239, 68, 68, 0.2);
    border-radius: 12px;
    margin-bottom: 1.5rem;
    overflow: hidden;
    text-align: left;
    max-width: 540px;
    margin-left: auto;
    margin-right: auto;
}

.error-dev-header[b-snqemsyclv] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 1rem;
    background: rgba(239, 68, 68, 0.1);
    border-bottom: 1px solid rgba(239, 68, 68, 0.15);
    font-size: 0.78rem;
    font-weight: 600;
    color: #f87171;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.error-dev-header i[b-snqemsyclv] {
    font-size: 0.85rem;
}

.error-dev-body[b-snqemsyclv] {
    padding: 0.75rem 1rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.error-dev-row[b-snqemsyclv] {
    display: flex;
    gap: 0.5rem;
    align-items: baseline;
    flex-wrap: wrap;
}

.error-dev-label[b-snqemsyclv] {
    font-size: 0.75rem;
    font-weight: 600;
    color: #64748b;
    flex-shrink: 0;
    min-width: 75px;
}

.error-dev-value[b-snqemsyclv] {
    font-size: 0.8rem;
    color: #cbd5e1;
    word-break: break-all;
}

.error-dev-value code[b-snqemsyclv],
code.error-dev-value[b-snqemsyclv] {
    background: rgba(255, 255, 255, 0.06);
    padding: 0.1rem 0.4rem;
    border-radius: 4px;
    font-family: 'Cascadia Code', 'Fira Code', monospace;
    font-size: 0.78rem;
    color: #f8fafc;
}

.error-dev-message[b-snqemsyclv] {
    color: #fbbf24;
}

.error-dev-stack[b-snqemsyclv] {
    margin-top: 0.25rem;
}

.error-dev-stack summary[b-snqemsyclv] {
    cursor: pointer;
    font-size: 0.78rem;
    font-weight: 600;
    color: #64748b;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.3rem 0;
    transition: color 0.2s ease;
    user-select: none;
}

.error-dev-stack summary:hover[b-snqemsyclv] {
    color: #94a3b8;
}

.error-dev-stack summary i[b-snqemsyclv] {
    font-size: 0.8rem;
}

.error-dev-stacktrace[b-snqemsyclv] {
    margin: 0.5rem 0 0;
    padding: 0.75rem;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 8px;
    font-size: 0.7rem;
    line-height: 1.6;
    color: #94a3b8;
    font-family: 'Cascadia Code', 'Fira Code', monospace;
    overflow-x: auto;
    max-height: 300px;
    overflow-y: auto;
    white-space: pre-wrap;
    word-break: break-all;
}

/* ==========================================================================
   КНОПКИ ДЕЙСТВИЙ
   ========================================================================== */

.error-actions[b-snqemsyclv] {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}

.error-btn[b-snqemsyclv] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 1.5rem;
    border-radius: 10px;
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    line-height: 1.4;
}

.error-btn-primary[b-snqemsyclv] {
    background: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.35), inset 0 1px 0 rgba(255,255,255,0.1);
}

.error-btn-primary:hover[b-snqemsyclv] {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(37, 99, 235, 0.45), inset 0 1px 0 rgba(255,255,255,0.15);
    color: #ffffff;
    text-decoration: none;
}

.error-btn-primary:active[b-snqemsyclv] {
    transform: translateY(0);
}

.error-btn-secondary[b-snqemsyclv] {
    background: rgba(255, 255, 255, 0.06);
    color: #cbd5e1;
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(8px);
}

.error-btn-secondary:hover[b-snqemsyclv] {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.2);
    color: #f1f5f9;
    transform: translateY(-2px);
}

.error-btn-secondary:active[b-snqemsyclv] {
    transform: translateY(0);
}

.error-btn-report[b-snqemsyclv] {
    background: rgba(251, 191, 36, 0.1);
    color: #fbbf24;
    border: 1px solid rgba(251, 191, 36, 0.2);
    backdrop-filter: blur(8px);
}

.error-btn-report:hover[b-snqemsyclv] {
    background: rgba(251, 191, 36, 0.18);
    border-color: rgba(251, 191, 36, 0.35);
    color: #fde68a;
    transform: translateY(-2px);
    text-decoration: none;
}

.error-btn-report:active[b-snqemsyclv] {
    transform: translateY(0);
}

/* ==========================================================================
   ПОЛЕЗНЫЕ ССЫЛКИ
   ========================================================================== */

.error-helpful-links[b-snqemsyclv] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.error-helpful-label[b-snqemsyclv] {
    font-size: 0.8rem;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
}

.error-links-row[b-snqemsyclv] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.error-link-chip[b-snqemsyclv] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.85rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    color: #94a3b8;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    text-decoration: none;
    transition: all 0.2s ease;
}

.error-link-chip:hover[b-snqemsyclv] {
    color: #e2e8f0;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.16);
    text-decoration: none;
    transform: translateY(-1px);
}

/* ==========================================================================
   ДЕКОРАТИВНЫЕ ЭЛЕМЕНТЫ (плавающие геометрические фигуры)
   ========================================================================== */

.error-decoration[b-snqemsyclv] {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 1;
}

.error-decoration-1[b-snqemsyclv] {
    width: 300px;
    height: 300px;
    top: -80px;
    right: -60px;
    background: radial-gradient(circle, rgba(239, 68, 68, 0.06) 0%, transparent 70%);
    animation: errorDecoFloat1-b-snqemsyclv 18s ease-in-out infinite;
}

.error-decoration-2[b-snqemsyclv] {
    width: 200px;
    height: 200px;
    bottom: -40px;
    left: -40px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.08) 0%, transparent 70%);
    animation: errorDecoFloat2-b-snqemsyclv 22s ease-in-out infinite;
}

.error-decoration-3[b-snqemsyclv] {
    width: 150px;
    height: 150px;
    top: 40%;
    left: 10%;
    background: radial-gradient(circle, rgba(251, 191, 36, 0.05) 0%, transparent 70%);
    animation: errorDecoFloat3-b-snqemsyclv 15s ease-in-out infinite;
}

@keyframes errorDecoFloat1-b-snqemsyclv {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    33% { transform: translate(20px, 30px) rotate(5deg); }
    66% { transform: translate(-15px, 15px) rotate(-3deg); }
}

@keyframes errorDecoFloat2-b-snqemsyclv {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    33% { transform: translate(-20px, -25px) rotate(-4deg); }
    66% { transform: translate(15px, -10px) rotate(3deg); }
}

@keyframes errorDecoFloat3-b-snqemsyclv {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(25px, -20px); }
}

/* ==========================================================================
   АДАПТИВ
   ========================================================================== */

@media (max-width: 576px) {
    .error-page-wrapper[b-snqemsyclv] {
        padding: 1.5rem 1rem;
    }

    .error-icon-circle[b-snqemsyclv] {
        width: 76px;
        height: 76px;
    }

    .error-icon-circle i[b-snqemsyclv] {
        font-size: 2rem;
    }

    .error-icon-pulse[b-snqemsyclv] {
        width: 88px;
        height: 88px;
    }

    .error-actions[b-snqemsyclv] {
        flex-direction: column;
        align-items: stretch;
    }

    .error-btn[b-snqemsyclv] {
        justify-content: center;
    }
}
/* /Components/Pages/Gar/GarAPI.razor.rz.scp.css */
.hero-api.gar-api-hero[b-jxpki5jekg] {
    position: relative;
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    color: #fff;
    overflow: hidden;
}

.hero-api.gar-api-hero .hero-bg-pattern[b-jxpki5jekg] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.08), transparent 35%),
        radial-gradient(circle at 80% 0%, rgba(255, 255, 255, 0.06), transparent 30%),
        radial-gradient(circle at 50% 80%, rgba(255, 255, 255, 0.05), transparent 25%);
    animation: patternMove-b-jxpki5jekg 18s ease-in-out infinite;
}

@keyframes patternMove-b-jxpki5jekg {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(25px, -15px) scale(1.04);
    }
}

.badge-api[b-jxpki5jekg] {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    color: #fff;
    backdrop-filter: blur(6px);
}

.hero-buttons[b-jxpki5jekg] {
    position: relative;
    z-index: 10;
}

.hero-buttons .btn[b-jxpki5jekg] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    text-decoration: none;
    font-weight: 600;
}

.hero-buttons .btn:hover[b-jxpki5jekg] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.btn-outline-light[b-jxpki5jekg] {
    border: 2px solid white;
}

.btn-outline-light:hover[b-jxpki5jekg] {
    background: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

.feature-icon-wrapper[b-jxpki5jekg] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.hero-icon-container[b-jxpki5jekg] {
    position: relative;
}

.api-icon-animate[b-jxpki5jekg] {
    animation: float-b-jxpki5jekg 3s ease-in-out infinite;
}

@keyframes float-b-jxpki5jekg {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-20px);
    }
}

.floating-icons[b-jxpki5jekg] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

.float-icon[b-jxpki5jekg] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-jxpki5jekg 6s ease-in-out infinite;
}

.float-1[b-jxpki5jekg] {
    top: 10%;
    left: 10%;
    animation-delay: 0s;
}

.float-2[b-jxpki5jekg] {
    top: 20%;
    right: 15%;
    animation-delay: 1.5s;
}

.float-3[b-jxpki5jekg] {
    bottom: 20%;
    left: 20%;
    animation-delay: 3s;
}

.float-4[b-jxpki5jekg] {
    bottom: 10%;
    right: 10%;
    animation-delay: 4.5s;
}

@keyframes floatAround-b-jxpki5jekg {

    0%,
    100% {
        transform: translate(0, 0) rotate(0deg);
    }

    25% {
        transform: translate(10px, -10px) rotate(5deg);
    }

    50% {
        transform: translate(-5px, -15px) rotate(-5deg);
    }

    75% {
        transform: translate(-10px, 5px) rotate(3deg);
    }
}

.step-number[b-jxpki5jekg] {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    color: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 800;
}

.icon-circle[b-jxpki5jekg] {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.hover-lift[b-jxpki5jekg] {
    transition: transform .2s ease, box-shadow .2s ease;
}

.hover-lift:hover[b-jxpki5jekg] {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.bg-gradient-info[b-jxpki5jekg] {
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
}

.info-icon-badge[b-jxpki5jekg] {
    width: 52px;
    height: 52px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.swagger-card[b-jxpki5jekg] {
    border-radius: 18px;
    overflow: hidden;
}

.benefit-icon[b-jxpki5jekg] {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* /Components/Pages/Gar/GarComponent.razor.rz.scp.css */
/* Hero */
.hero-gar[b-e9h15v0w7n] {
    position: relative;
    background: linear-gradient(135deg, #1f3b73 0%, #15294b 100%);
    color: #fff;
    overflow: hidden;
}

.hero-gar .hero-bg-pattern[b-e9h15v0w7n] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.08), transparent 35%),
        radial-gradient(circle at 80% 0%, rgba(255, 255, 255, 0.06), transparent 30%),
        radial-gradient(circle at 50% 80%, rgba(255, 255, 255, 0.05), transparent 25%);
    opacity: 0.9;
    animation: patternMove-b-e9h15v0w7n 18s ease-in-out infinite;
}

@keyframes patternMove-b-e9h15v0w7n {

    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(25px, -15px) scale(1.04);
    }
}

.badge-gar[b-e9h15v0w7n] {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    color: #fff;
    backdrop-filter: blur(6px);
}

.feature-icon-wrapper[b-e9h15v0w7n] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.gar-icon-hero[b-e9h15v0w7n] {
    position: relative;
    display: inline-block;
}

.floating-icons .float-icon[b-e9h15v0w7n] {
    position: absolute;
    color: rgba(255, 255, 255, 0.8);
    animation: float-b-e9h15v0w7n 6s ease-in-out infinite;
}

@keyframes float-b-e9h15v0w7n {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }
}

/* Stats band */
.stats-gar[b-e9h15v0w7n] {
    background: linear-gradient(90deg, #0f172a 0%, #101828 40%, #0f172a 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.stat-pill[b-e9h15v0w7n] {
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    padding: 12px 14px;
    display: flex;
    gap: 12px;
    align-items: center;
    color: #fff;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

.stat-icon[b-e9h15v0w7n] {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.1rem;
}

.stat-label[b-e9h15v0w7n] {
    font-size: 0.9rem;
    opacity: 0.85;
}

.stat-value[b-e9h15v0w7n] {
    font-weight: 800;
}

/* Input card */
.input-card[b-e9h15v0w7n] {
    border-radius: 18px;
    transition: all 0.3s ease;
    /* overflow:visible — иначе SfCard обрезает наш абсолютно позиционированный
       suggest-dropdown по границе карточки. Селекторы .e-card / .e-card-content
       — штатные Syncfusion-классы. */
    overflow: visible;
}

[b-e9h15v0w7n] .input-card.e-card,
[b-e9h15v0w7n] .input-card .e-card-content {
    overflow: visible;
}

.input-card:hover[b-e9h15v0w7n] {
    transform: translateY(-6px);
    box-shadow: 0 1.3rem 3rem rgba(0, 0, 0, 0.18) !important;
}

/* Syncfusion inputs */
[b-e9h15v0w7n] .custom-input {
    border-radius: 10px;
}

/* Buttons */
[b-e9h15v0w7n] .btn-run {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #1f3b73 0%, #3b82f6 100%);
    color: #fff;
    border: none;
    font-weight: 800;
    border-radius: 12px;
    padding: 12px 18px;
    min-height: 44px;
    box-shadow: 0 10px 25px rgba(31, 59, 115, 0.35);
    transition: all 0.2s ease;
}

[b-e9h15v0w7n] .btn-run:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px rgba(31, 59, 115, 0.45);
}

.loading-pill[b-e9h15v0w7n] {
    display: inline-flex;
    align-items: center;
    padding: 10px 14px;
    border-radius: 999px;
    background: #f3f4f6;
    color: #4b5563;
    font-weight: 600;
}

/* Soft backgrounds */
.bg-primary-soft[b-e9h15v0w7n] {
    background: rgba(99, 102, 241, 0.16);
}

.bg-success-soft[b-e9h15v0w7n] {
    background: rgba(34, 197, 94, 0.16);
}

.bg-warning-soft[b-e9h15v0w7n] {
    background: rgba(245, 158, 11, 0.16);
}

.bg-info-soft[b-e9h15v0w7n] {
    background: rgba(14, 165, 233, 0.16);
}

.bg-danger-soft[b-e9h15v0w7n] {
    background: rgba(239, 68, 68, 0.12);
}

/* Grid */
[b-e9h15v0w7n] .gar-grid .e-gridheader {
    border-radius: 12px 12px 0 0;
}

/* Details */
.detail-list[b-e9h15v0w7n] {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.detail-item[b-e9h15v0w7n] {
    padding: 10px 12px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
}

.detail-label[b-e9h15v0w7n] {
    font-weight: 600;
    color: #374151;
    white-space: nowrap;
    flex-shrink: 0;
}

.detail-value[b-e9h15v0w7n] {
    color: #6b7280;
    text-align: right;
}

/* ============================================================================
   SfTab (CssClass="gar-tabs") — кастомизация через штатные Syncfusion-селекторы.
   Принцип: не ломать ширину/layout активного таба (никаких border-сдвигов),
   только цвет/фон/индикатор. Подробности — sf_blazor_component(tabs).
   Тема проекта: bootstrap5.css.
   ============================================================================ */
[b-e9h15v0w7n] .gar-tabs {
    background: transparent;
}

[b-e9h15v0w7n] .gar-tabs .e-tab-header {
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
    border: 1px solid #d6deea;
    border-radius: 14px 14px 0 0;
    box-shadow: 0 4px 14px rgba(31, 59, 115, 0.06);
}

[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-items,
[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-item {
    background: transparent;
}

[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-item .e-tab-wrap {
    background: transparent;
    transition: background-color 0.2s ease, color 0.2s ease;
}

[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-item .e-tab-wrap .e-tab-text,
[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-item .e-tab-wrap .e-icons {
    color: #475569;
    font-weight: 600;
    letter-spacing: 0.1px;
}

[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-item:not(.e-active):hover .e-tab-wrap {
    background: rgba(31, 59, 115, 0.08);
}

[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-item.e-active .e-tab-wrap {
    background: rgba(31, 59, 115, 0.06);
}

[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-item.e-active .e-tab-wrap .e-tab-text,
[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-toolbar-item.e-active .e-tab-wrap .e-icons {
    color: #1f3b73;
    font-weight: 800;
}

[b-e9h15v0w7n] .gar-tabs .e-tab-header .e-indicator {
    background: #1f3b73;
    height: 3px;
}

[b-e9h15v0w7n] .gar-tabs > .e-content {
    background: #ffffff;
    border: 1px solid #d6deea;
    border-top: none;
    border-radius: 0 0 14px 14px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, 0.06);
}

.tab-body[b-e9h15v0w7n] {
    padding: 24px;
}

/* Stat cards */
.stat-card[b-e9h15v0w7n] {
    border-radius: 14px;
    transition: all 0.3s ease;
}

.stat-card:hover[b-e9h15v0w7n] {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12) !important;
}

.stat-card-value[b-e9h15v0w7n] {
    font-size: 1.5rem;
    font-weight: 800;
    color: #1f2937;
}

.stat-card-label[b-e9h15v0w7n] {
    font-size: 0.85rem;
    color: #6b7280;
    margin-top: 2px;
}

/* Region stats */
.region-stat-item[b-e9h15v0w7n] {
    padding: 14px;
    border-radius: 12px;
    background: #f0f5ff;
    border: 1px solid #dbeafe;
    text-align: center;
}

.region-stat-value[b-e9h15v0w7n] {
    font-size: 1.3rem;
    font-weight: 800;
    color: #1e40af;
}

.region-stat-label[b-e9h15v0w7n] {
    font-size: 0.8rem;
    color: #6b7280;
    margin-top: 4px;
}

/* Region badge list */
.region-badge-list[b-e9h15v0w7n] {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    max-height: 340px;
    overflow-y: auto;
}

.region-badge[b-e9h15v0w7n] {
    cursor: pointer;
    transition: all 0.2s ease;
    font-size: 0.78rem;
}

.region-badge:hover[b-e9h15v0w7n] {
    transform: scale(1.05);
    background: rgba(99, 102, 241, 0.24) !important;
}

/* Browser breadcrumb */
.browser-breadcrumb[b-e9h15v0w7n] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
}

/* Список подсказок автодополнения, который абсолютно позиционируется относительно
   .position-relative-обёртки вокруг SfTextBox. Главные тонкости:
   – родительский .input-card.e-card имеет overflow:visible (см. выше), иначе список
     был бы обрезан по нижней границе карточки и виднелась бы лишь полстроки.
   – z-index 1080 — поверх Syncfusion-попапов (у них значения 1000–1050), чтобы
     подсказки не уходили под открытые SfDialog/SfTooltip того же экрана. */
.suggest-dropdown[b-e9h15v0w7n] {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 1080;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 18px 38px rgba(15, 23, 42, 0.22);
    max-height: 320px;
    overflow-y: auto;
}

.suggest-item[b-e9h15v0w7n] {
    display: flex;
    align-items: center;
    padding: 10px 14px;
    cursor: pointer;
    transition: background 0.15s ease;
    border-bottom: 1px solid #f3f4f6;
}

.suggest-item:last-child[b-e9h15v0w7n] {
    border-bottom: none;
    border-radius: 0 0 12px 12px;
}

.suggest-item:hover[b-e9h15v0w7n] {
    background: #f0f5ff;
}

/* Hierarchy chain */
.hierarchy-chain[b-e9h15v0w7n] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.hierarchy-node[b-e9h15v0w7n] {
    padding: 10px 14px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
}

.hierarchy-arrow[b-e9h15v0w7n] {
    text-align: center;
    padding: 4px 0;
}
/* /Components/Pages/Gar/GarServiceDescription.razor.rz.scp.css */
.hero-gar-desc[b-rljg9sqpwi] {
    position: relative;
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    color: #fff;
    overflow: hidden;
}

.hero-bg-pattern[b-rljg9sqpwi] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.08), transparent 35%),
        radial-gradient(circle at 80% 0%, rgba(255, 255, 255, 0.06), transparent 30%),
        radial-gradient(circle at 50% 80%, rgba(255, 255, 255, 0.05), transparent 25%);
    animation: patternMove-b-rljg9sqpwi 18s ease-in-out infinite;
}

@keyframes patternMove-b-rljg9sqpwi {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(25px, -15px) scale(1.04); }
}

.badge-gar[b-rljg9sqpwi] {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    color: #fff;
    backdrop-filter: blur(6px);
}

.hero-buttons[b-rljg9sqpwi] {
    position: relative;
    z-index: 10;
}

.hero-buttons .btn[b-rljg9sqpwi] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    text-decoration: none;
    font-weight: 600;
}

.hero-buttons .btn:hover[b-rljg9sqpwi] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.feature-icon-wrapper[b-rljg9sqpwi] {
    width: 40px;
    height: 40px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.22);
}

.gar-icon-hero[b-rljg9sqpwi] {
    position: relative;
    display: inline-block;
    animation: float-b-rljg9sqpwi 3s ease-in-out infinite;
}

@keyframes float-b-rljg9sqpwi {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

.floating-icons[b-rljg9sqpwi] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

.float-icon[b-rljg9sqpwi] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-rljg9sqpwi 6s ease-in-out infinite;
}

.float-1[b-rljg9sqpwi] { top: 10%; left: 10%; animation-delay: 0s; }
.float-2[b-rljg9sqpwi] { top: 20%; right: 15%; animation-delay: 1.5s; }
.float-3[b-rljg9sqpwi] { bottom: 20%; left: 20%; animation-delay: 3s; }
.float-4[b-rljg9sqpwi] { bottom: 10%; right: 10%; animation-delay: 4.5s; }

@keyframes floatAround-b-rljg9sqpwi {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(10px, -10px) rotate(5deg); }
    50% { transform: translate(-5px, -15px) rotate(-5deg); }
    75% { transform: translate(-10px, 5px) rotate(3deg); }
}

.icon-circle[b-rljg9sqpwi] {
    width: 56px;
    height: 56px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.hover-lift[b-rljg9sqpwi] {
    transition: transform .2s ease, box-shadow .2s ease;
}

.hover-lift:hover[b-rljg9sqpwi] {
    transform: translateY(-4px);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.faq-header[b-rljg9sqpwi] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
}

.faq-content[b-rljg9sqpwi] {
    padding: 1rem 0;
}

.faq-content code[b-rljg9sqpwi] {
    background: #f8f9fa;
    padding: 2px 6px;
    border-radius: 3px;
    color: #0f172a;
    font-family: 'Courier New', monospace;
}

.free-access-card[b-rljg9sqpwi] {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    border: 2px solid transparent;
    background-clip: padding-box;
    position: relative;
    overflow: hidden;
}

.free-access-card[b-rljg9sqpwi]::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #0f172a, #1f3b73, #0b1224);
    z-index: -1;
    margin: -2px;
    border-radius: 20px;
}

.free-icon-badge[b-rljg9sqpwi] {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: 0 8px 25px rgba(31, 59, 115, 0.3);
    animation: iconPulse-b-rljg9sqpwi 3s ease-in-out infinite;
}

.gradient-text[b-rljg9sqpwi] {
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.free-badge-pill[b-rljg9sqpwi] {
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(31, 59, 115, 0.3);
    white-space: nowrap;
}

@keyframes iconPulse-b-rljg9sqpwi {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 8px 25px rgba(31, 59, 115, 0.3);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 10px 30px rgba(31, 59, 115, 0.45);
    }
}

.icon-pulse[b-rljg9sqpwi] {
    animation: pulse-b-rljg9sqpwi 2s ease-in-out infinite;
}

@keyframes pulse-b-rljg9sqpwi {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}
/* /Components/Pages/Index.razor.rz.scp.css */
/* ============================================================================
   Index.razor.css
   Изолированные стили для главной страницы Atlorium
   Палитра: тёмно-синий (#1e3a5f), бирюзовый (#0891b2), белый, тёмный текст
   ============================================================================ */

/* ==========================================================================
   CSS ПЕРЕМЕННЫЕ — Контрастная палитра
   ========================================================================== */

:root[b-ofwau9mgip] {
    --primary-dark: #1e3a5f;
    --primary-medium: #2563eb;
    --accent-teal: #0891b2;
    --accent-emerald: #059669;
    --text-dark: #1f2937;
    --text-muted: #6b7280;
    --bg-light: #f8fafc;
    --bg-section: #f1f5f9;
}

/* ==========================================================================
   HERO СЕКЦИЯ — Тёмный фон с хорошим контрастом
   ========================================================================== */

.hero-index[b-ofwau9mgip] {
    background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #1e40af 100%);
    position: relative;
    overflow: hidden;
    min-height: 90vh;
}

.hero-bg-animated[b-ofwau9mgip] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: 
        radial-gradient(ellipse at 20% 80%, rgba(8, 145, 178, 0.25) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 20%, rgba(37, 99, 235, 0.25) 0%, transparent 50%);
    animation: heroGradient-b-ofwau9mgip 15s ease-in-out infinite;
}

@keyframes heroGradient-b-ofwau9mgip {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.8; transform: scale(1.05); }
}

.hero-particles[b-ofwau9mgip] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 10% 20%, rgba(255,255,255,0.08) 1px, transparent 1px),
        radial-gradient(circle at 90% 80%, rgba(255,255,255,0.08) 1px, transparent 1px);
    background-size: 100px 100px, 150px 150px;
    animation: particlesFloat-b-ofwau9mgip 30s linear infinite;
}

@keyframes particlesFloat-b-ofwau9mgip {
    0% { transform: translateY(0); }
    100% { transform: translateY(-100px); }
}

.min-vh-75[b-ofwau9mgip] {
    min-height: 75vh;
}

/* Бейдж в hero — яркий акцент */
.badge-hero[b-ofwau9mgip] {
    background: rgba(8, 145, 178, 0.9);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    font-size: 0.9rem;
    display: inline-flex;
    align-items: center;
    border: none;
    box-shadow: 0 4px 15px rgba(8, 145, 178, 0.4);
    animation: fadeInDown-b-ofwau9mgip 0.8s ease-out;
}

.hero-title[b-ofwau9mgip] {
    line-height: 1.2;
    animation: fadeInUp-b-ofwau9mgip 0.8s ease-out 0.2s both;
}

/* Градиентный текст для HERO (на тёмном фоне) — яркий и контрастный */
.text-gradient-hero[b-ofwau9mgip] {
    background: linear-gradient(135deg, #67e8f9 0%, #22d3ee 40%, #a5f3fc 70%, #ffffff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    text-shadow: none;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));
}

/* Градиентный текст для СВЕТЛОГО фона — тёмный и читаемый */
.text-gradient-dark[b-ofwau9mgip] {
    background: linear-gradient(135deg, #0891b2 0%, #0e7490 50%, #155e75 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.1));
}

.hero-subtitle[b-ofwau9mgip] {
    font-size: 0.5em;
    font-weight: 400;
    opacity: 0.95;
    -webkit-text-fill-color: white;
}

.hero-description[b-ofwau9mgip] {
    font-size: 1.2rem;
    opacity: 0.95;
    animation: fadeInUp-b-ofwau9mgip 0.8s ease-out 0.4s both;
}

.hero-buttons[b-ofwau9mgip] {
    animation: fadeInUp-b-ofwau9mgip 0.8s ease-out 0.6s both;
}

/* Бейдж статуса проекта */
.badge-status[b-ofwau9mgip] {
    background: rgba(255, 255, 255, 0.15);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    font-size: 0.85rem;
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
    cursor: help;
}

/* Сообщение о прозрачности */
.hero-transparency-note[b-ofwau9mgip] {
    animation: fadeInUp-b-ofwau9mgip 0.8s ease-out 0.5s both;
}

[b-ofwau9mgip] .transparency-message {
    background: rgba(255, 255, 255, 0.95);
    border-left: 4px solid #0891b2;
    border-radius: 12px;
    padding: 16px 20px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

[b-ofwau9mgip] .transparency-message .e-msg-icon {
    color: #0891b2;
}

[b-ofwau9mgip] .transparency-message .e-msg-content {
    color: #1f2937;
    font-size: 0.95rem;
    line-height: 1.6;
}

/* Тултип для статуса */
[b-ofwau9mgip] .status-tooltip .e-tooltip-wrap {
    background: rgba(15, 23, 42, 0.95);
    color: white;
    border-radius: 8px;
    padding: 10px 15px;
    font-size: 0.85rem;
    max-width: 300px;
}

/* Основная кнопка hero — яркая бирюзовая */
[b-ofwau9mgip] .btn-hero-primary {
    background: linear-gradient(135deg, #0891b2 0%, #06b6d4 100%);
    color: white !important;
    border: none;
    padding: 14px 32px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 1rem;
    box-shadow: 0 8px 30px rgba(8, 145, 178, 0.5);
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .btn-hero-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 40px rgba(8, 145, 178, 0.6);
    background: linear-gradient(135deg, #0e7490 0%, #0891b2 100%);
}

/* Вторичная кнопка hero — белая с тёмным текстом */
[b-ofwau9mgip] .btn-hero-secondary {
    background: white;
    color: #1e3a5f !important;
    border: none;
    padding: 14px 32px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 1rem;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .btn-hero-secondary:hover {
    background: #f0f9ff;
    transform: translateY(-3px);
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.25);
}

/* Статистика в hero */
.hero-stats[b-ofwau9mgip] {
    animation: fadeInUp-b-ofwau9mgip 0.8s ease-out 0.8s both;
}

.stat-item[b-ofwau9mgip] {
    text-align: center;
    padding: 15px 25px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.stat-number[b-ofwau9mgip] {
    display: block;
    font-size: 1.8rem;
    font-weight: 700;
    color: #22d3ee;
    line-height: 1.2;
}

.stat-label[b-ofwau9mgip] {
    display: block;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.85);
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* ==========================================================================
   HERO VISUAL — Плавающие карточки
   ========================================================================== */

.hero-visual[b-ofwau9mgip] {
    position: relative;
    height: 400px;
    animation: fadeIn-b-ofwau9mgip 1s ease-out 0.5s both;
}

.hero-glow[b-ofwau9mgip] {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, rgba(8, 145, 178, 0.4) 0%, transparent 70%);
    border-radius: 50%;
    filter: blur(40px);
    animation: glowPulse-b-ofwau9mgip 4s ease-in-out infinite;
}

@keyframes glowPulse-b-ofwau9mgip {
    0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.6; }
    50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.4; }
}

.floating-card[b-ofwau9mgip] {
    position: absolute;
    background: white;
    border-radius: 16px;
    padding: 20px 25px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
    font-weight: 600;
    color: #1e3a5f;
    z-index: 10;
}

.floating-card i[b-ofwau9mgip] {
    font-size: 1.5rem;
    color: #0891b2;
}

.floating-card.card-1[b-ofwau9mgip] {
    top: 10%;
    left: 10%;
    animation: float1-b-ofwau9mgip 6s ease-in-out infinite;
}

.floating-card.card-2[b-ofwau9mgip] {
    top: 5%;
    right: 15%;
    animation: float2-b-ofwau9mgip 7s ease-in-out infinite;
}

.floating-card.card-3[b-ofwau9mgip] {
    bottom: 25%;
    left: 5%;
    animation: float3-b-ofwau9mgip 5s ease-in-out infinite;
}

.floating-card.card-4[b-ofwau9mgip] {
    bottom: 15%;
    right: 10%;
    animation: float4-b-ofwau9mgip 6.5s ease-in-out infinite;
}

.floating-card.card-5[b-ofwau9mgip] {
    top: 42%;
    left: 18%;
    animation: float5-b-ofwau9mgip 7.5s ease-in-out infinite;
}

.floating-card.card-6[b-ofwau9mgip] {
    top: 38%;
    right: 6%;
    animation: float6-b-ofwau9mgip 8s ease-in-out infinite;
}

.floating-card.card-7[b-ofwau9mgip] {
    bottom: 42%;
    right: 28%;
    animation: float7-b-ofwau9mgip 6.8s ease-in-out infinite;
}

@keyframes float1-b-ofwau9mgip {
    0%, 100% { transform: translate(0, 0) rotate(-2deg); }
    50% { transform: translate(10px, -20px) rotate(2deg); }
}

@keyframes float2-b-ofwau9mgip {
    0%, 100% { transform: translate(0, 0) rotate(2deg); }
    50% { transform: translate(-15px, 15px) rotate(-2deg); }
}

@keyframes float3-b-ofwau9mgip {
    0%, 100% { transform: translate(0, 0) rotate(1deg); }
    50% { transform: translate(20px, 10px) rotate(-1deg); }
}

@keyframes float4-b-ofwau9mgip {
    0%, 100% { transform: translate(0, 0) rotate(-1deg); }
    50% { transform: translate(-10px, -15px) rotate(1deg); }
}

@keyframes float5-b-ofwau9mgip {
    0%, 100% { transform: translate(0, 0) rotate(1.5deg); }
    50% { transform: translate(12px, -12px) rotate(-1.5deg); }
}

@keyframes float6-b-ofwau9mgip {
    0%, 100% { transform: translate(0, 0) rotate(-1.5deg); }
    50% { transform: translate(-12px, 18px) rotate(1.5deg); }
}

@keyframes float7-b-ofwau9mgip {
    0%, 100% { transform: translate(0, 0) rotate(2deg); }
    50% { transform: translate(15px, 12px) rotate(-2deg); }
}

/* Волна hero */
.hero-wave[b-ofwau9mgip] {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    line-height: 0;
}

.hero-wave svg[b-ofwau9mgip] {
    width: 100%;
    height: auto;
}

/* ==========================================================================
   СЕКЦИЯ СЕРВИСОВ — Светлый фон
   ========================================================================== */

.services-section[b-ofwau9mgip] {
    background: #f8fafc;
}

/* Бейдж секции — тёмный текст, лёгкий фон */
.section-badge[b-ofwau9mgip] {
    display: inline-flex;
    align-items: center;
    background: #e0f2fe;
    color: #0369a1;
    padding: 8px 20px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 0.9rem;
    border: 1px solid #bae6fd;
}

/* Заголовок секции — тёмный, читаемый */
.section-title[b-ofwau9mgip] {
    color: #0f172a;
}

.section-subtitle[b-ofwau9mgip] {
    color: #64748b;
}

/* ==========================================================================
   КАРТОЧКИ СЕРВИСОВ
   ========================================================================== */

[b-ofwau9mgip] .service-card {
    border-radius: 20px;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    overflow: hidden;
    background: white;
    border: 1px solid #e2e8f0 !important;
}

[b-ofwau9mgip] .service-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 25px 50px rgba(0, 0, 0, 0.12) !important;
    border-color: #0891b2 !important;
}

.service-card-inner[b-ofwau9mgip] {
    padding: 10px;
}

/* Иконка сервиса — насыщенные градиенты */
.service-icon-wrapper[b-ofwau9mgip] {
    width: 70px;
    height: 70px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.weather-gradient[b-ofwau9mgip] {
    background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
}

.certificate-gradient[b-ofwau9mgip] {
    background: linear-gradient(135deg, #10b981 0%, #059669 100%);
}

.cron-gradient[b-ofwau9mgip] {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}

.dns-gradient[b-ofwau9mgip] {
    background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
}

.cidr-gradient[b-ofwau9mgip] {
    background: linear-gradient(135deg, #ec4899 0%, #be185d 100%);
}

.aichat-gradient[b-ofwau9mgip] {
    background: linear-gradient(135deg, #6366f1 0%, #4338ca 100%);
}

.gar-gradient[b-ofwau9mgip] {
    background: linear-gradient(135deg, #14b8a6 0%, #0f766e 100%);
}

/* Заголовок сервиса — тёмный */
.service-title[b-ofwau9mgip] {
    font-size: 1.25rem;
    color: #0f172a;
}

.service-description[b-ofwau9mgip] {
    font-size: 0.95rem;
    line-height: 1.6;
    color: #475569;
}

/* Теги возможностей внутри карточки сервиса (REST API, Карты, Gauges и т.п.).
   gap: 10px 14px — две оси (row-gap | column-gap): между рядами 10px, между плитками
   в одном ряду 14px. Это даёт «дыхание» и не позволяет плиткам визуально слипаться,
   когда их в карточке три-четыре штуки. */
.service-features[b-ofwau9mgip] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
}

/* Сами плитки. inline-flex+align-items:center нужны, чтобы иконка-галочка внутри
   плитки была отцентрирована по вертикали с подписью. white-space:nowrap не даёт
   подписи «REST API» переносится в две строки на узких карточках. */
.feature-tag[b-ofwau9mgip] {
    display: inline-flex;
    align-items: center;
    background: #f0f9ff;
    color: #0369a1;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    border: 1px solid #e0f2fe;
    cursor: help;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.feature-tag:hover[b-ofwau9mgip] {
    background: #0891b2;
    color: white;
    border-color: #0891b2;
    transform: translateY(-2px);
}

/* Тултипы для тегов */
[b-ofwau9mgip] .e-tooltip-wrap {
    background: rgba(15, 23, 42, 0.95);
    color: white;
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 0.85rem;
    max-width: 250px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

[b-ofwau9mgip] .e-tooltip-wrap .e-tip-content {
    line-height: 1.5;
}

/* Кнопки сервиса */
[b-ofwau9mgip] .btn-service-primary {
    background: linear-gradient(135deg, #0891b2 0%, #0e7490 100%);
    color: white !important;
    border: none;
    padding: 10px 20px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .btn-service-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(8, 145, 178, 0.35);
}

[b-ofwau9mgip] .btn-service-outline {
    background: transparent;
    color: #0891b2 !important;
    border: 2px solid #0891b2;
    padding: 8px 18px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 0.9rem;
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .btn-service-outline:hover {
    background: #0891b2;
    color: white !important;
}

/* ==========================================================================
   СЕКЦИЯ ПРЕИМУЩЕСТВ — Чередующийся фон
   ========================================================================== */

.features-section[b-ofwau9mgip] {
    background: white;
}

.bg-gradient-subtle[b-ofwau9mgip] {
    background: white;
}

.feature-item[b-ofwau9mgip] {
    padding: 30px;
    background: #f8fafc;
    border-radius: 20px;
    box-shadow: none;
    height: 100%;
    transition: all 0.3s ease;
    border: 1px solid #e2e8f0;
}

.feature-item:hover[b-ofwau9mgip] {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.08);
    border-color: #0891b2;
}

.feature-item h5[b-ofwau9mgip] {
    color: #0f172a;
}

/* Иконка преимущества */
.feature-icon-box[b-ofwau9mgip] {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #e0f2fe 0%, #cffafe 100%);
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #0891b2;
}

/* ==========================================================================
   СЕКЦИЯ ПРОГРЕССА ПРОЕКТА — Timeline
   ========================================================================== */

.project-progress-section[b-ofwau9mgip] {
    background: #f8fafc;
}

.progress-timeline[b-ofwau9mgip] {
    position: relative;
    padding: 20px 0;
}

.progress-timeline[b-ofwau9mgip]::before {
    content: '';
    position: absolute;
    left: 30px;
    top: 0;
    bottom: 0;
    width: 3px;
    background: linear-gradient(to bottom, #0891b2 0%, #0891b2 50%, #cbd5e1 50%, #cbd5e1 100%);
}

.timeline-item[b-ofwau9mgip] {
    position: relative;
    padding-left: 80px;
    margin-bottom: 50px;
}

.timeline-item:last-child[b-ofwau9mgip] {
    margin-bottom: 0;
}

.timeline-marker[b-ofwau9mgip] {
    position: absolute;
    left: 16px;
    top: 0;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    z-index: 2;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

.timeline-item.completed .timeline-marker[b-ofwau9mgip] {
    background: linear-gradient(135deg, #10b981, #059669);
    color: white;
}

.timeline-item.in-progress .timeline-marker[b-ofwau9mgip] {
    background: linear-gradient(135deg, #0891b2, #0e7490);
    color: white;
}

.timeline-item.in-progress .timeline-marker.pulse[b-ofwau9mgip] {
    animation: markerPulse-b-ofwau9mgip 2s ease-in-out infinite;
}

@keyframes markerPulse-b-ofwau9mgip {
    0%, 100% { box-shadow: 0 4px 15px rgba(8, 145, 178, 0.3); }
    50% { box-shadow: 0 4px 25px rgba(8, 145, 178, 0.6), 0 0 0 8px rgba(8, 145, 178, 0.2); }
}

.timeline-item.pending .timeline-marker[b-ofwau9mgip] {
    background: #e2e8f0;
    color: #64748b;
}

.timeline-content[b-ofwau9mgip] {
    background: white;
    padding: 24px;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
    border: 1px solid #e2e8f0;
    transition: all 0.3s ease;
}

.timeline-item.completed .timeline-content[b-ofwau9mgip],
.timeline-item.in-progress .timeline-content[b-ofwau9mgip] {
    border-color: #0891b2;
}

.timeline-content:hover[b-ofwau9mgip] {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
    transform: translateX(5px);
}

.timeline-badge[b-ofwau9mgip] {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
}

.completed-badge[b-ofwau9mgip] {
    background: rgba(16, 185, 129, 0.1);
    color: #059669;
}

.progress-badge[b-ofwau9mgip] {
    background: rgba(8, 145, 178, 0.1);
    color: #0891b2;
}

.pending-badge[b-ofwau9mgip] {
    background: rgba(100, 116, 139, 0.1);
    color: #64748b;
}

.timeline-content h4[b-ofwau9mgip] {
    margin: 0 0 10px;
    font-weight: 700;
    color: #0f172a;
    font-size: 1.15rem;
}

.timeline-content p[b-ofwau9mgip] {
    margin: 0 0 16px;
    color: #64748b;
    line-height: 1.6;
}

.timeline-progress[b-ofwau9mgip] {
    margin-top: 12px;
}

[b-ofwau9mgip] .timeline-progressbar.completed .e-progress {
    background: linear-gradient(90deg, #10b981, #059669);
}

[b-ofwau9mgip] .timeline-progressbar.in-progress .e-progress {
    background: linear-gradient(90deg, #0891b2, #06b6d4);
}

[b-ofwau9mgip] .timeline-progressbar.pending .e-progress {
    background: #e2e8f0;
}

[b-ofwau9mgip] .timeline-progressbar .e-progressbar-value {
    color: white;
    font-weight: 600;
    font-size: 0.75rem;
}

/* Общий прогресс */
.overall-progress-card[b-ofwau9mgip] {
    background: white;
    padding: 32px;
    border-radius: 20px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    border: 2px solid #0891b2;
}

.overall-percentage[b-ofwau9mgip] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.percentage-number[b-ofwau9mgip] {
    font-size: 3.5rem;
    font-weight: 800;
    background: linear-gradient(135deg, #0891b2, #06b6d4);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    line-height: 1;
}

.percentage-label[b-ofwau9mgip] {
    font-size: 0.9rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
    margin-top: 8px;
}

[b-ofwau9mgip] .overall-progressbar {
    border-radius: 16px;
    overflow: hidden;
}

[b-ofwau9mgip] .overall-progressbar .e-progress {
    background: linear-gradient(90deg, #0891b2 0%, #06b6d4 50%, #22d3ee 100%);
}

[b-ofwau9mgip] .overall-progressbar .e-progressbar-value {
    color: white;
    font-weight: 700;
    font-size: 0.95rem;
}

/* ==========================================================================
   СЕКЦИЯ ПРИМЕРОВ ИСПОЛЬЗОВАНИЯ (CAROUSEL)
   ========================================================================== */

.use-cases-section[b-ofwau9mgip] {
    background: #f1f5f9;
}

.use-cases-carousel[b-ofwau9mgip] {
    max-width: 900px;
    margin: 0 auto;
}

[b-ofwau9mgip] .carousel-custom {
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.12);
}

[b-ofwau9mgip] .carousel-custom .e-carousel-items {
    border-radius: 24px;
}

.carousel-slide[b-ofwau9mgip] {
    background: white;
    padding: 50px 40px;
    min-height: 350px;
    display: flex;
    align-items: center;
}

.use-case-icon[b-ofwau9mgip] {
    width: 150px;
    height: 150px;
    background: linear-gradient(135deg, #e0f2fe 0%, #cffafe 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    color: #0891b2;
    animation: iconPulse-b-ofwau9mgip 3s ease-in-out infinite;
}

@keyframes iconPulse-b-ofwau9mgip {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

.carousel-slide h3[b-ofwau9mgip] {
    color: #0f172a;
}

.carousel-slide p[b-ofwau9mgip] {
    font-size: 1.05rem;
    line-height: 1.7;
}

[b-ofwau9mgip] .btn-use-case {
    background: linear-gradient(135deg, #0891b2 0%, #0e7490 100%);
    color: white !important;
    border: none;
    padding: 12px 24px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 0.95rem;
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .btn-use-case:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(8, 145, 178, 0.35);
}

/* Индикаторы карусели */
[b-ofwau9mgip] .carousel-custom .e-carousel-indicators .e-indicator-bar {
    background: #cbd5e1;
}

[b-ofwau9mgip] .carousel-custom .e-carousel-indicators .e-indicator-bar.e-active {
    background: #0891b2;
}

/* Кнопки навигации карусели — бирюзовые, хорошо видны на белом фоне */
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-previous,
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-next {
    background: linear-gradient(135deg, #0891b2 0%, #0e7490 100%) !important;
    border-radius: 50%;
    width: 48px;
    height: 48px;
    box-shadow: 0 4px 20px rgba(8, 145, 178, 0.4);
    color: white !important;
    border: 2px solid rgba(255, 255, 255, 0.3);
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-previous:hover,
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-next:hover {
    background: linear-gradient(135deg, #0e7490 0%, #155e75 100%) !important;
    color: white !important;
    transform: scale(1.1);
    box-shadow: 0 6px 25px rgba(8, 145, 178, 0.5);
}

/* Иконки внутри кнопок навигации */
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-previous .e-btn-icon,
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-next .e-btn-icon,
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-previous::before,
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-next::before,
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-previous span,
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-next span {
    color: white !important;
}

[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-previous:focus,
[b-ofwau9mgip] .carousel-custom .e-carousel-navigators .e-next:focus {
    background: linear-gradient(135deg, #0891b2 0%, #0e7490 100%) !important;
    box-shadow: 0 0 0 3px rgba(8, 145, 178, 0.3), 0 4px 20px rgba(8, 145, 178, 0.4);
}

/* ==========================================================================
   СЕКЦИЯ API
   ========================================================================== */

.api-section[b-ofwau9mgip] {
    background: white;
}

.api-section .section-title[b-ofwau9mgip] {
    color: #0f172a;
}

.api-features-list[b-ofwau9mgip] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.api-features-list li[b-ofwau9mgip] {
    padding: 12px 0;
    font-size: 1.05rem;
    display: flex;
    align-items: center;
    color: #334155;
}

/* Карточка с примером кода */
.code-example-card[b-ofwau9mgip] {
    background: #0f172a;
    border-radius: 20px;
    overflow: hidden;
    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.2);
}

.code-header[b-ofwau9mgip] {
    background: #1e293b;
    padding: 15px 20px;
    display: flex;
    align-items: center;
    gap: 15px;
}

.code-dots[b-ofwau9mgip] {
    display: flex;
    gap: 8px;
}

.code-dots .dot[b-ofwau9mgip] {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.code-dots .dot.red[b-ofwau9mgip] { background: #ef4444; }
.code-dots .dot.yellow[b-ofwau9mgip] { background: #eab308; }
.code-dots .dot.green[b-ofwau9mgip] { background: #22c55e; }

.code-title[b-ofwau9mgip] {
    color: #94a3b8;
    font-size: 0.85rem;
}

.code-body[b-ofwau9mgip] {
    padding: 25px;
}

.code-body pre[b-ofwau9mgip] {
    margin: 0;
    font-family: 'Fira Code', 'Consolas', monospace;
    font-size: 0.9rem;
    line-height: 1.7;
    color: #e2e8f0;
    overflow-x: auto;
}

.code-body code[b-ofwau9mgip] {
    background: transparent;
}

/* Подсветка синтаксиса */
.code-comment[b-ofwau9mgip] { color: #6b7280; font-style: italic; }
.code-keyword[b-ofwau9mgip] { color: #c084fc; }
.code-string[b-ofwau9mgip] { color: #fbbf24; }
.code-property[b-ofwau9mgip] { color: #67e8f9; }
.code-number[b-ofwau9mgip] { color: #4ade80; }

/* ==========================================================================
   СЕКЦИЯ CTA — Яркий градиентный фон
   ========================================================================== */

.cta-section[b-ofwau9mgip] {
    background: linear-gradient(135deg, #0891b2 0%, #0e7490 50%, #155e75 100%);
    position: relative;
    overflow: hidden;
}

.cta-bg-pattern[b-ofwau9mgip] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: 
        radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%);
    animation: ctaPattern-b-ofwau9mgip 20s ease-in-out infinite;
}

@keyframes ctaPattern-b-ofwau9mgip {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

.cta-icon[b-ofwau9mgip] {
    width: 100px;
    height: 100px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    animation: heartbeat-b-ofwau9mgip 2s ease-in-out infinite;
}

@keyframes heartbeat-b-ofwau9mgip {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.1); }
}

/* Кнопка поддержки — белая, контрастная */
[b-ofwau9mgip] .btn-cta-support {
    background: white;
    color: #0e7490 !important;
    border: none;
    padding: 16px 40px;
    border-radius: 12px;
    font-weight: 700;
    font-size: 1.1rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .btn-cta-support:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.3);
    background: #f0fdfa;
}

/* ==========================================================================
   СЕКЦИЯ FAQ
   ========================================================================== */

.faq-section[b-ofwau9mgip] {
    background: #f8fafc;
}

[b-ofwau9mgip] .faq-accordion {
    background: transparent;
}

[b-ofwau9mgip] .faq-accordion .e-acrdn-item {
    background: white;
    border-radius: 16px;
    margin-bottom: 16px;
    border: 1px solid #e2e8f0;
    overflow: hidden;
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .faq-accordion .e-acrdn-item:hover {
    border-color: #0891b2;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.08);
}

[b-ofwau9mgip] .faq-accordion .e-acrdn-item.e-select {
    border-color: #0891b2;
    box-shadow: 0 8px 25px rgba(8, 145, 178, 0.15);
}

[b-ofwau9mgip] .faq-accordion .e-acrdn-header {
    background: white;
    padding: 20px 24px;
    cursor: pointer;
    transition: all 0.3s ease;
}

[b-ofwau9mgip] .faq-accordion .e-acrdn-item.e-select .e-acrdn-header {
    background: linear-gradient(to right, rgba(8, 145, 178, 0.05), transparent);
}

.faq-header[b-ofwau9mgip] {
    display: flex;
    align-items: center;
    font-weight: 600;
    font-size: 1.05rem;
    color: #0f172a;
}

.faq-header i[b-ofwau9mgip] {
    color: #0891b2;
    font-size: 1.3rem;
}

[b-ofwau9mgip] .faq-accordion .e-acrdn-panel {
    padding: 0 24px 24px 24px;
}

.faq-content[b-ofwau9mgip] {
    color: #475569;
    line-height: 1.7;
}

.faq-content p[b-ofwau9mgip] {
    margin-bottom: 12px;
}

.faq-content ul[b-ofwau9mgip] {
    padding-left: 20px;
    margin-bottom: 12px;
}

.faq-content li[b-ofwau9mgip] {
    margin-bottom: 8px;
}

.faq-content strong[b-ofwau9mgip] {
    color: #0f172a;
}

/* Прогресс-бар в FAQ */
[b-ofwau9mgip] .roadmap-progressbar {
    border-radius: 15px;
    overflow: hidden;
}

[b-ofwau9mgip] .roadmap-progressbar .e-progress {
    background: linear-gradient(135deg, #0891b2 0%, #06b6d4 100%);
}

[b-ofwau9mgip] .roadmap-progressbar .e-progress-value {
    color: white;
    font-weight: 600;
}

/* ==========================================================================
   FOOTER СЕКЦИЯ
   ========================================================================== */

.footer-info[b-ofwau9mgip] {
    background: #e2e8f0;
}

.footer-info h5[b-ofwau9mgip] {
    color: #0f172a;
}

.footer-links[b-ofwau9mgip] {
    list-style: none;
    padding: 0;
    margin: 0;
}

.footer-links li[b-ofwau9mgip] {
    padding: 6px 0;
}

.footer-links a[b-ofwau9mgip] {
    color: #475569;
    text-decoration: none;
    transition: color 0.3s ease;
    display: flex;
    align-items: center;
}

.footer-links a:hover[b-ofwau9mgip] {
    color: #0891b2;
}

.tech-badges[b-ofwau9mgip] {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.tech-badge[b-ofwau9mgip] {
    background: white;
    color: #475569;
    padding: 6px 14px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 500;
    border: 1px solid #e2e8f0;
    display: inline-flex;
    align-items: center;
    cursor: help;
    transition: all 0.3s ease;
}

.tech-badge:hover[b-ofwau9mgip] {
    background: #0891b2;
    color: white;
    border-color: #0891b2;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(8, 145, 178, 0.3);
}

/* ==========================================================================
   АНИМАЦИИ
   ========================================================================== */

@keyframes fadeIn-b-ofwau9mgip {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeInUp-b-ofwau9mgip {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeInDown-b-ofwau9mgip {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   АДАПТИВНЫЕ СТИЛИ
   ========================================================================== */

@media (max-width: 991.98px) {
    .hero-index[b-ofwau9mgip] {
        min-height: auto;
    }
    
    .min-vh-75[b-ofwau9mgip] {
        min-height: auto;
    }
    
    .hero-title[b-ofwau9mgip] {
        font-size: 2.5rem;
    }
    
    .hero-subtitle[b-ofwau9mgip] {
        font-size: 0.6em;
    }
    
    .stat-item[b-ofwau9mgip] {
        padding: 12px 18px;
    }
    
    .stat-number[b-ofwau9mgip] {
        font-size: 1.5rem;
    }
    
    .carousel-slide[b-ofwau9mgip] {
        padding: 40px 30px;
    }
    
    .use-case-icon[b-ofwau9mgip] {
        width: 120px;
        height: 120px;
        margin-bottom: 30px;
    }
}

@media (max-width: 767.98px) {
    .hero-title[b-ofwau9mgip] {
        font-size: 2rem;
    }
    
    .hero-description[b-ofwau9mgip] {
        font-size: 1rem;
    }
    
    [b-ofwau9mgip] .btn-hero-primary,
    [b-ofwau9mgip] .btn-hero-secondary {
        padding: 12px 24px;
        font-size: 0.95rem;
        width: 100%;
    }
    
    .hero-stats .row[b-ofwau9mgip] {
        justify-content: center;
    }
    
    .feature-item[b-ofwau9mgip] {
        padding: 20px;
    }
    
    .code-example-card[b-ofwau9mgip] {
        margin-top: 30px;
    }
    
    .code-body pre[b-ofwau9mgip] {
        font-size: 0.8rem;
    }
    
    .carousel-slide[b-ofwau9mgip] {
        padding: 30px 20px;
        min-height: auto;
    }
    
    .carousel-slide .row[b-ofwau9mgip] {
        flex-direction: column;
        text-align: center;
    }
    
    .use-case-icon[b-ofwau9mgip] {
        width: 100px;
        height: 100px;
    }
}

@media (max-width: 575.98px) {
    .section-title[b-ofwau9mgip] {
        font-size: 1.75rem;
    }
    
    .section-badge[b-ofwau9mgip] {
        font-size: 0.8rem;
        padding: 6px 16px;
    }
    
    .service-icon-wrapper[b-ofwau9mgip] {
        width: 60px;
        height: 60px;
    }
    
    .service-title[b-ofwau9mgip] {
        font-size: 1.1rem;
    }
    
    [b-ofwau9mgip] .btn-service-primary,
    [b-ofwau9mgip] .btn-service-outline {
        padding: 8px 14px;
        font-size: 0.85rem;
    }
}

/* Подвал с реквизитами — намеренно мелкий и приглушённый: формально
   закрывает требования платёжного провайдера, но не перетягивает внимание. */
.site-requisites p[b-ofwau9mgip] {
    font-size: 0.75rem;
    line-height: 1.5;
    opacity: 0.8;
}

.site-requisites a[b-ofwau9mgip] {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px dotted currentColor;
}

.site-requisites a:hover[b-ofwau9mgip] {
    opacity: 1;
    text-decoration: none;
}

.site-requisites .req-sep[b-ofwau9mgip] {
    opacity: 0.45;
    margin: 0 2px;
}
/* /Components/Pages/Pricing/Pricing.razor.rz.scp.css */
/* ============================================================================
   Pricing.razor.css — scoped стили страницы тарифов.
   Палитра согласована с шапкой/сайдбаром (#0066cc → #004d99).
   ============================================================================ */

.pricing-page[b-zg1a1lv05r] {
    padding-bottom: 3rem;
}

/* ── Hero ───────────────────────────────────────────────────────────────── */
.pricing-hero[b-zg1a1lv05r] {
    background: linear-gradient(135deg, #0066cc 0%, #004d99 70%);
    color: #fff;
    padding: 3.25rem 0 3rem;
    text-align: center;
    border-radius: 0 0 28px 28px;
    margin-bottom: 2.5rem;
}

.pricing-badge[b-zg1a1lv05r] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.30);
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.02em;
    margin-bottom: 1.1rem;
}

.pricing-title[b-zg1a1lv05r] {
    font-size: clamp(1.7rem, 3.2vw, 2.6rem);
    font-weight: 800;
    margin: 0 0 0.9rem;
    line-height: 1.15;
}

.pricing-lead[b-zg1a1lv05r] {
    max-width: 760px;
    margin: 0 auto 1.6rem;
    font-size: 1.05rem;
    line-height: 1.6;
    opacity: 0.95;
}

.pricing-hero-points[b-zg1a1lv05r] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
}

.pricing-hero-point[b-zg1a1lv05r] {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
}

.pricing-hero-point i[b-zg1a1lv05r] {
    font-size: 1.05rem;
    opacity: 0.9;
}

/* ── Уведомление «тарифы в стадии формирования» (SfMessage, Info) ─────────
      База — SfMessage Severity=Info, но дефолтный плоский вид перебиваем под
      мягкую информационную плашку в брендовой сине-голубой гамме (без тревожного
      красного). Цель — спокойный, «премиальный» callout: лёгкий градиент-фон,
      иконка в скруглённом чипе, мягкая тень, акцент-бордюр слева. ── */
.pricing-notice-wrap[b-zg1a1lv05r] {
    max-width: 920px;
    margin: 0 auto 2.5rem;
}

/* Перерисовываем корень SfMessage (.e-message). ::deep — потому что это DOM
   дочернего компонента; .pricing-notice = его CssClass. */
.pricing-notice-wrap[b-zg1a1lv05r]  .pricing-notice.e-message {
    display: block;
    padding: 1.15rem 1.4rem;
    background: linear-gradient(135deg, #f5f9ff 0%, #eef4ff 100%);
    border: 1px solid #d8e6f8;
    border-left: 4px solid #0066cc;
    border-radius: 14px;
    box-shadow: 0 6px 18px rgba(0, 77, 153, 0.07);
    color: inherit;
}

/* Гасим внутренние отступы контента SfMessage — свой padding уже на .e-message. */
.pricing-notice-wrap[b-zg1a1lv05r]  .pricing-notice .e-msg-content-wrap,
.pricing-notice-wrap[b-zg1a1lv05r]  .pricing-notice .e-msg-content {
    width: 100%;
    padding: 0;
    margin: 0;
}

.pricing-notice-inner[b-zg1a1lv05r] {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.pricing-notice-icon[b-zg1a1lv05r] {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.15rem;
    background: linear-gradient(135deg, #0a74d6 0%, #004d99 100%);
    box-shadow: 0 4px 12px rgba(0, 77, 153, 0.25);
}

.pricing-notice-body[b-zg1a1lv05r] {
    flex: 1 1 auto;
    min-width: 0;
}

.pricing-notice-title[b-zg1a1lv05r] {
    margin: 3px 0 0.35rem;
    font-size: 0.98rem;
    font-weight: 750;
    color: #16243a;
    letter-spacing: 0.01em;
}

.pricing-notice-text[b-zg1a1lv05r] {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.55;
    color: #41506b;
}

/* abbr с подсказкой (RPM/RPH/RPD): пунктирное подчёркивание-«вопрос». */
.pricing-notice-text abbr[b-zg1a1lv05r] {
    text-decoration: underline dotted;
    text-underline-offset: 2px;
    cursor: help;
    font-weight: 650;
    color: #0a5cba;
}

@media (max-width: 575.98px) {
    .pricing-notice-wrap[b-zg1a1lv05r]  .pricing-notice.e-message {
        padding: 1rem 1.05rem;
    }

    .pricing-notice-inner[b-zg1a1lv05r] {
        gap: 12px;
    }
}

/* ── Сетка карточек ─────────────────────────────────────────────────────── */
.pricing-grid-wrap[b-zg1a1lv05r] {
    margin-bottom: 3.5rem;
}

.pricing-empty[b-zg1a1lv05r] {
    text-align: center;
    padding: 3rem 1rem;
    color: #6b7280;
}

.pricing-empty i[b-zg1a1lv05r] {
    font-size: 2rem;
    color: #0066cc;
    margin-bottom: 0.75rem;
}

[b-zg1a1lv05r] .pricing-card {
    height: 100%;
    border: 1px solid #e6e9ef;
    border-radius: 16px;
    transition: transform 160ms ease, box-shadow 200ms ease, border-color 200ms ease;
    overflow: hidden;
}

[b-zg1a1lv05r] .pricing-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 34px rgba(0, 77, 153, 0.16);
    border-color: #bcd4f0;
}

[b-zg1a1lv05r] .pricing-card .e-card-content {
    padding: 1.4rem 1.4rem 1.5rem;
}

[b-zg1a1lv05r] .pricing-card--off {
    opacity: 0.62;
    filter: grayscale(0.35);
}

.pricing-card-head[b-zg1a1lv05r] {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 1.1rem;
}

.pricing-icon[b-zg1a1lv05r] {
    flex: 0 0 auto;
    width: 52px;
    height: 52px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.35rem;
    background: linear-gradient(135deg, #0066cc 0%, #004d99 100%);
}

.pricing-card-name[b-zg1a1lv05r] {
    font-size: 1.18rem;
    font-weight: 750;
    margin: 0 0 2px;
    color: #16243a;
}

.pricing-card-tag[b-zg1a1lv05r] {
    margin: 0;
    font-size: 0.86rem;
    color: #6b7280;
    line-height: 1.4;
}

.pricing-off-note[b-zg1a1lv05r] {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    font-weight: 700;
    color: #b45309;
    background: #fff7ed;
    border: 1px solid #fed7aa;
    border-radius: 8px;
    padding: 4px 10px;
    margin-bottom: 0.9rem;
}

/* ── Бесплатный лимит ───────────────────────────────────────────────────── */
.pricing-free[b-zg1a1lv05r] {
    background: #f0f7ff;
    border: 1px solid #d6e8fb;
    border-radius: 12px;
    padding: 0.8rem 0.95rem;
    margin-bottom: 1rem;
}

.pricing-free-row[b-zg1a1lv05r] {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 0.9rem;
    color: #1f3a5f;
    line-height: 1.45;
}

.pricing-free-row i[b-zg1a1lv05r] {
    color: #0066cc;
    margin-top: 2px;
}

.pricing-free-sub[b-zg1a1lv05r] {
    margin-top: 4px;
    padding-left: 27px;
    font-size: 0.82rem;
    color: #5b7088;
}

/* ── Масштаб «за 100 ₽ ≈ N запросов» ────────────────────────────────────── */
.pricing-scale[b-zg1a1lv05r] {
    text-align: center;
    padding: 1.1rem 0 1rem;
    border-top: 1px dashed #e2e6ee;
    border-bottom: 1px dashed #e2e6ee;
    margin-bottom: 1rem;
}

.pricing-scale-main[b-zg1a1lv05r] {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

.pricing-scale-count[b-zg1a1lv05r] {
    font-size: 2rem;
    font-weight: 850;
    color: #004d99;
    line-height: 1;
}

/* Бесплатный канал: то же место, что и крупное число, но зелёным акцентом
   и чуть меньше — это слово, а не цифра. */
.pricing-scale-count.pricing-scale-free[b-zg1a1lv05r] {
    font-size: 1.5rem;
    color: #1a8754;
}

.pricing-scale-unit[b-zg1a1lv05r] {
    font-size: 0.98rem;
    font-weight: 650;
    color: #16243a;
}

.pricing-scale-sub[b-zg1a1lv05r] {
    margin-top: 6px;
    font-size: 0.8rem;
    color: #8a93a3;
}

/* ── Точные цены ────────────────────────────────────────────────────────── */
.pricing-exact[b-zg1a1lv05r] {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.pricing-exact-row[b-zg1a1lv05r] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 0.9rem;
}

.pricing-exact-label[b-zg1a1lv05r] {
    color: #6b7280;
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.pricing-exact-label i[b-zg1a1lv05r] {
    width: 16px;
    text-align: center;
    color: #9aa4b2;
}

.pricing-exact-val[b-zg1a1lv05r] {
    font-weight: 750;
    color: #16243a;
}

/* ── Как это работает ───────────────────────────────────────────────────── */
.pricing-how[b-zg1a1lv05r] {
    margin-top: 1rem;
}

.pricing-how-title[b-zg1a1lv05r] {
    text-align: center;
    font-size: clamp(1.4rem, 2.4vw, 1.9rem);
    font-weight: 800;
    color: #16243a;
    margin-bottom: 1.8rem;
}

.pricing-how-card[b-zg1a1lv05r] {
    height: 100%;
    background: #fff;
    border: 1px solid #e6e9ef;
    border-radius: 14px;
    padding: 1.5rem 1.35rem;
    text-align: center;
}

.pricing-how-card i[b-zg1a1lv05r] {
    font-size: 1.7rem;
    color: #0066cc;
    margin-bottom: 0.7rem;
}

.pricing-how-card h4[b-zg1a1lv05r] {
    font-size: 1.05rem;
    font-weight: 750;
    color: #16243a;
    margin: 0 0 0.5rem;
}

.pricing-how-card p[b-zg1a1lv05r] {
    margin: 0;
    font-size: 0.9rem;
    color: #6b7280;
    line-height: 1.55;
}

.pricing-note[b-zg1a1lv05r] {
    margin: 2rem auto 0;
    max-width: 760px;
    text-align: center;
    font-size: 0.82rem;
    color: #9aa4b2;
    line-height: 1.5;
}
/* /Components/Pages/PrivacyPolicy.razor.rz.scp.css */
/* ============================================================================
   PrivacyPolicy.razor.css
   Стили страницы «Политика конфиденциальности»
   ============================================================================ */

/* HERO секция */
.hero-privacy[b-xs06lqpk32] {
    position: relative;
    background: linear-gradient(135deg, #0f172a 0%, #1a365d 50%, #1f3b73 100%);
    color: #fff;
    overflow: hidden;
}

.hero-bg-pattern[b-xs06lqpk32] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.06), transparent 35%),
        radial-gradient(circle at 80% 0%, rgba(255, 255, 255, 0.04), transparent 30%),
        radial-gradient(circle at 50% 80%, rgba(255, 255, 255, 0.03), transparent 25%);
    animation: patternMove-b-xs06lqpk32 20s ease-in-out infinite;
}

@keyframes patternMove-b-xs06lqpk32 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(15px, -10px) scale(1.02); }
}

.badge-privacy[b-xs06lqpk32] {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    color: #fff;
    backdrop-filter: blur(6px);
    font-size: 0.85rem;
}

/* Контент */
.privacy-content[b-xs06lqpk32] {
    background: #f8f9fa;
}

/* Оглавление */
.toc-list[b-xs06lqpk32] {
    padding-left: 1.2rem;
    margin-bottom: 0;
}

.toc-list li[b-xs06lqpk32] {
    padding: 4px 0;
}

.toc-list li a[b-xs06lqpk32] {
    color: #1f3b73;
    text-decoration: none;
    transition: color 0.2s ease;
}

.toc-list li a:hover[b-xs06lqpk32] {
    color: #0d6efd;
    text-decoration: underline;
}

/* Секции */
.privacy-section[b-xs06lqpk32] {
    scroll-margin-top: 80px;
}

.section-header[b-xs06lqpk32] {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.25rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid #e2e8f0;
}

.section-number[b-xs06lqpk32] {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #0f172a 0%, #1f3b73 100%);
    color: white;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    font-weight: 800;
}

.section-body[b-xs06lqpk32] {
    padding-left: 0.5rem;
    line-height: 1.8;
    color: #334155;
}

.section-body p[b-xs06lqpk32] {
    margin-bottom: 1rem;
    text-align: justify;
}

/* Определения */
.definitions-list[b-xs06lqpk32] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.5rem;
}

.definition-item[b-xs06lqpk32] {
    padding: 0.875rem 1.25rem;
    background: #fff;
    border-left: 4px solid #1f3b73;
    border-radius: 0 8px 8px 0;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
    line-height: 1.7;
}

/* Списки */
.legal-list[b-xs06lqpk32] {
    list-style: none;
    padding-left: 0;
    margin: 0.5rem 0;
}

.legal-list li[b-xs06lqpk32] {
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.35rem;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.04);
    display: flex;
    align-items: flex-start;
    line-height: 1.7;
}

.legal-list li i[b-xs06lqpk32] {
    margin-top: 4px;
    flex-shrink: 0;
}

/* Права пользователя */
.rights-grid[b-xs06lqpk32] {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.right-card[b-xs06lqpk32] {
    display: flex;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    align-items: flex-start;
}

.right-card:hover[b-xs06lqpk32] {
    transform: translateY(-2px);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.right-icon[b-xs06lqpk32] {
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1f3b73;
    font-size: 1.1rem;
}

/* Карточки безопасности */
.security-card[b-xs06lqpk32] {
    display: flex;
    gap: 0.875rem;
    padding: 1rem;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
    align-items: flex-start;
    height: 100%;
    transition: transform 0.2s ease;
}

.security-card:hover[b-xs06lqpk32] {
    transform: translateY(-2px);
}

.security-card i[b-xs06lqpk32] {
    margin-top: 2px;
    flex-shrink: 0;
}

/* Контакты */
.contact-card[b-xs06lqpk32] {
    padding: 1.25rem 1.5rem;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    border-left: 4px solid #1f3b73;
    margin-top: 0.75rem;
}

.contact-icon[b-xs06lqpk32] {
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, #e0e7ff 0%, #c7d2fe 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: #1f3b73;
}

/* Заключительная заметка */
.privacy-footer-note[b-xs06lqpk32] {
    margin-top: 1rem;
}

/* Адаптивность */
@media (max-width: 768px) {
    .section-header h2[b-xs06lqpk32] {
        font-size: 1.25rem;
    }

    .section-body[b-xs06lqpk32] {
        padding-left: 0;
    }

    .right-card[b-xs06lqpk32] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .definition-item[b-xs06lqpk32] {
        padding: 0.75rem 1rem;
    }

    .hero-privacy .display-4[b-xs06lqpk32] {
        font-size: 1.75rem;
    }
}
/* /Components/Pages/ReleaseChronicle/ReleaseChronicle.razor.rz.scp.css */
/* ============================================
   Release Chronicle - Стили страницы истории релизов
   ============================================ */

/* === КОНТЕЙНЕР === */
.chronicle-container[b-r56axrvl7b] {
    min-height: 100vh;
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}

/* === HERO SECTION === */
.hero-section[b-r56axrvl7b] {
    position: relative;
    padding: 4rem 2rem 3rem;
    overflow: hidden;
}

.hero-bg[b-r56axrvl7b] {
    position: absolute;
    inset: 0;
    background: 
        radial-gradient(ellipse 80% 50% at 50% -20%, rgba(6, 182, 212, 0.15), transparent),
        radial-gradient(ellipse 60% 40% at 80% 60%, rgba(99, 102, 241, 0.1), transparent),
        linear-gradient(135deg, #0f172a 0%, #1e293b 50%, #0f172a 100%);
    z-index: 0;
}

.hero-content[b-r56axrvl7b] {
    position: relative;
    z-index: 1;
    max-width: 800px;
    margin: 0 auto;
    text-align: center;
}

.hero-badge[b-r56axrvl7b] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: rgba(6, 182, 212, 0.15);
    border: 1px solid rgba(6, 182, 212, 0.3);
    border-radius: 9999px;
    color: #67e8f9;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 1.5rem;
}

.hero-badge i[b-r56axrvl7b] {
    font-size: 1rem;
}

.hero-title[b-r56axrvl7b] {
    font-size: clamp(2rem, 5vw, 3rem);
    font-weight: 800;
    color: #f8fafc;
    margin: 0 0 1rem;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.hero-subtitle[b-r56axrvl7b] {
    font-size: 1.125rem;
    color: #94a3b8;
    margin: 0 0 2rem;
    line-height: 1.6;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* === VERSION CARD === */
.hero-version-card[b-r56axrvl7b] {
    display: inline-flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1rem 1.5rem;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 16px;
    backdrop-filter: blur(8px);
    margin-bottom: 1.5rem;
}

.version-info[b-r56axrvl7b] {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
}

.version-label[b-r56axrvl7b] {
    font-size: 0.75rem;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.version-number[b-r56axrvl7b] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #f8fafc;
    font-family: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
}

.version-codename[b-r56axrvl7b] {
    font-size: 0.875rem;
    color: #67e8f9;
    font-style: italic;
}

.version-actions[b-r56axrvl7b] {
    display: flex;
    gap: 0.5rem;
}

.btn-copy[b-r56axrvl7b] {
    background: rgba(6, 182, 212, 0.2) !important;
    border: 1px solid rgba(6, 182, 212, 0.4) !important;
    color: #67e8f9 !important;
    border-radius: 8px !important;
    padding: 0.5rem 1rem !important;
    font-weight: 500 !important;
    transition: all 0.2s ease !important;
}

.btn-copy:hover[b-r56axrvl7b] {
    background: rgba(6, 182, 212, 0.3) !important;
    transform: translateY(-1px);
}

/* === HERO TAGS === */
.hero-tags[b-r56axrvl7b] {
    display: flex;
    justify-content: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.tag[b-r56axrvl7b] {
    padding: 0.375rem 0.875rem;
    border-radius: 9999px;
    font-size: 0.8rem;
    font-weight: 600;
}

.tag-channel[b-r56axrvl7b] {
    background: linear-gradient(135deg, #f59e0b, #d97706);
    color: #fff;
}

.tag-date[b-r56axrvl7b] {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #cbd5e1;
}

/* === ORIGIN STORY SECTION === */
.origin-section[b-r56axrvl7b] {
    max-width: 1100px;
    margin: 0 auto;
    padding: 3rem 1.5rem 2rem;
}

.origin-badge[b-r56axrvl7b] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    border-radius: 9999px;
    color: #92400e;
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: 1rem;
}

.origin-section .section-header[b-r56axrvl7b] {
    text-align: center;
    margin-bottom: 2.5rem;
}

.origin-section .section-header h2[b-r56axrvl7b] {
    font-size: 1.75rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.5rem;
}

.origin-section .section-header p[b-r56axrvl7b] {
    font-size: 1rem;
    color: #64748b;
    margin: 0;
}

.origin-story[b-r56axrvl7b] {
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

/* Story Intro */
.story-intro[b-r56axrvl7b] {
    display: flex;
    gap: 1.5rem;
    align-items: flex-start;
    background: linear-gradient(135deg, #fff 0%, #f0fdf4 100%);
    border: 1px solid #bbf7d0;
    border-radius: 16px;
    padding: 1.5rem;
}

.intro-icon[b-r56axrvl7b] {
    width: 56px;
    height: 56px;
    background: linear-gradient(135deg, #22c55e, #16a34a);
    border-radius: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 1.5rem;
    flex-shrink: 0;
}

.intro-content h3[b-r56axrvl7b] {
    font-size: 1.25rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.5rem;
}

.intro-content p[b-r56axrvl7b] {
    font-size: 0.95rem;
    color: #475569;
    line-height: 1.6;
    margin: 0;
}

/* Milestones Grid */
.milestones-grid[b-r56axrvl7b] {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1.25rem;
}

.milestone-card[b-r56axrvl7b] {
    background: #fff !important;
    border-radius: 16px !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05) !important;
    transition: all 0.3s ease !important;
    overflow: hidden;
}

.milestone-card:hover[b-r56axrvl7b] {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px -4px rgba(0, 0, 0, 0.1) !important;
}

.milestone-card.highlight[b-r56axrvl7b] {
    border-color: #06b6d4 !important;
    background: linear-gradient(135deg, #fff 0%, #ecfeff 100%) !important;
}

.milestone-card[b-r56axrvl7b]  .e-card-content {
    padding: 1.25rem !important;
}

.milestone-icon[b-r56axrvl7b] {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
}

.milestone-icon.tech[b-r56axrvl7b] {
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    color: #1d4ed8;
}

.milestone-icon.growth[b-r56axrvl7b] {
    background: linear-gradient(135deg, #dcfce7, #bbf7d0);
    color: #15803d;
}

.milestone-icon.transform[b-r56axrvl7b] {
    background: linear-gradient(135deg, #f3e8ff, #e9d5ff);
    color: #7c3aed;
}

.milestone-icon.launch[b-r56axrvl7b] {
    background: linear-gradient(135deg, #cffafe, #a5f3fc);
    color: #0891b2;
}

.milestone-date[b-r56axrvl7b] {
    font-size: 0.75rem;
    font-weight: 700;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: 0.5rem;
}

.milestone-card h4[b-r56axrvl7b] {
    font-size: 1.1rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.5rem;
}

.milestone-card p[b-r56axrvl7b] {
    font-size: 0.875rem;
    color: #475569;
    line-height: 1.5;
    margin: 0 0 1rem;
}

.milestone-tags[b-r56axrvl7b] {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.milestone-tags span[b-r56axrvl7b] {
    padding: 0.25rem 0.625rem;
    background: #f1f5f9;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 600;
    color: #475569;
}

/* Story Quote */
.story-quote[b-r56axrvl7b] {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1.5rem;
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
    border-radius: 16px;
    color: #f8fafc;
}

.story-quote i[b-r56axrvl7b] {
    font-size: 2rem;
    color: #67e8f9;
    opacity: 0.6;
    flex-shrink: 0;
}

.story-quote blockquote[b-r56axrvl7b] {
    font-size: 1rem;
    font-style: italic;
    line-height: 1.6;
    margin: 0;
    color: #cbd5e1;
}

/* === TIMELINE SECTION === */
.timeline-section[b-r56axrvl7b] {
    max-width: 900px;
    margin: 0 auto;
    padding: 2rem 1.5rem 4rem;
}

.timeline-section > .section-header[b-r56axrvl7b] {
    text-align: center;
    margin-bottom: 3rem;
}

.timeline-section > .section-header h2[b-r56axrvl7b] {
    font-size: 1.75rem;
    font-weight: 700;
    color: #0f172a;
    margin: 0 0 0.5rem;
}

.timeline-section > .section-header p[b-r56axrvl7b] {
    font-size: 1rem;
    color: #64748b;
    margin: 0;
}

/* === TIMELINE === */
.release-timeline[b-r56axrvl7b] {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.timeline-item[b-r56axrvl7b] {
    display: flex;
    gap: 1.5rem;
    position: relative;
}

.timeline-connector[b-r56axrvl7b] {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    width: 40px;
}

.timeline-dot[b-r56axrvl7b] {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    flex-shrink: 0;
    z-index: 1;
    transition: all 0.3s ease;
}

.dot-current[b-r56axrvl7b] {
    background: linear-gradient(135deg, #06b6d4, #0891b2);
    color: #fff;
    box-shadow: 0 4px 14px rgba(6, 182, 212, 0.4);
    animation: pulse-dot-b-r56axrvl7b 2s ease-in-out infinite;
}

.dot-past[b-r56axrvl7b] {
    background: #f1f5f9;
    border: 2px solid #cbd5e1;
    color: #64748b;
}

@keyframes pulse-dot-b-r56axrvl7b {
    0%, 100% { box-shadow: 0 4px 14px rgba(6, 182, 212, 0.4); }
    50% { box-shadow: 0 4px 20px rgba(6, 182, 212, 0.6); }
}

.timeline-line[b-r56axrvl7b] {
    width: 2px;
    flex: 1;
    background: #e2e8f0;
    min-height: 2rem;
}

.timeline-item:last-child .timeline-line[b-r56axrvl7b] {
    display: none;
}

.timeline-content[b-r56axrvl7b] {
    flex: 1;
    padding-bottom: 2rem;
}

.timeline-item:last-child .timeline-content[b-r56axrvl7b] {
    padding-bottom: 0;
}

/* === RELEASE CARD === */
.release-card[b-r56axrvl7b] {
    background: #fff;
    border-radius: 16px;
    padding: 1.5rem;
    border: 1px solid #e2e8f0;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.release-card:hover[b-r56axrvl7b] {
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
    transform: translateY(-2px);
}

.release-card.current[b-r56axrvl7b] {
    border-color: #06b6d4;
    background: linear-gradient(135deg, #fff 0%, #f0fdfa 100%);
    box-shadow: 0 4px 14px rgba(6, 182, 212, 0.15);
}

/* === RELEASE HEADER === */
.release-header[b-r56axrvl7b] {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}

.release-version-block[b-r56axrvl7b] {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.release-version[b-r56axrvl7b] {
    font-size: 1.5rem;
    font-weight: 700;
    color: #0f172a;
    font-family: 'JetBrains Mono', 'Fira Code', 'Consolas', monospace;
}

.release-codename[b-r56axrvl7b] {
    font-size: 1rem;
    color: #0891b2;
    font-style: italic;
}

.release-meta[b-r56axrvl7b] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.release-channel[b-r56axrvl7b] {
    padding: 0.25rem 0.75rem;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.release-channel.alpha[b-r56axrvl7b] {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #fff;
}

.release-channel.beta[b-r56axrvl7b] {
    background: linear-gradient(135deg, #a78bfa, #8b5cf6);
    color: #fff;
}

.release-channel.stable[b-r56axrvl7b] {
    background: linear-gradient(135deg, #34d399, #10b981);
    color: #fff;
}

.release-channel.preview[b-r56axrvl7b] {
    background: linear-gradient(135deg, #f472b6, #ec4899);
    color: #fff;
}

.release-date[b-r56axrvl7b] {
    font-size: 0.875rem;
    color: #64748b;
}

/* === RELEASE SUMMARY === */
.release-summary[b-r56axrvl7b] {
    font-size: 0.95rem;
    color: #475569;
    line-height: 1.6;
    margin: 0 0 1.25rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid #f1f5f9;
}

/* === RELEASE SECTIONS === */
.release-section[b-r56axrvl7b] {
    margin-bottom: 1.25rem;
}

.release-section:last-child[b-r56axrvl7b] {
    margin-bottom: 0;
}

.section-title[b-r56axrvl7b] {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    font-weight: 600;
    color: #334155;
    margin-bottom: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.section-title i[b-r56axrvl7b] {
    font-size: 1rem;
    color: #64748b;
}

/* === CHANGE LIST === */
.change-list[b-r56axrvl7b] {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.change-list li[b-r56axrvl7b] {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.625rem 0.875rem;
    background: #f8fafc;
    border-radius: 10px;
    border: 1px solid #f1f5f9;
    transition: all 0.2s ease;
}

.change-list li:hover[b-r56axrvl7b] {
    background: #f1f5f9;
    border-color: #e2e8f0;
}

.change-list li > i[b-r56axrvl7b] {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    font-size: 0.875rem;
    flex-shrink: 0;
    margin-top: 2px;
}

.change-list.highlights li > i[b-r56axrvl7b] {
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    color: #b45309;
}

.change-list.improvements li > i[b-r56axrvl7b] {
    background: linear-gradient(135deg, #dbeafe, #bfdbfe);
    color: #1d4ed8;
}

.change-list.fixes li > i[b-r56axrvl7b] {
    background: linear-gradient(135deg, #dcfce7, #bbf7d0);
    color: #15803d;
}

.change-content[b-r56axrvl7b] {
    flex: 1;
    font-size: 0.9rem;
    line-height: 1.5;
    color: #334155;
}

.change-content strong[b-r56axrvl7b] {
    color: #0f172a;
    font-weight: 600;
}

.change-content span[b-r56axrvl7b] {
    color: #64748b;
}

/* === BREAKING CHANGE === */
.change-list li.breaking[b-r56axrvl7b] {
    background: #fef2f2;
    border-color: #fecaca;
}

.change-list li.breaking > i[b-r56axrvl7b] {
    background: linear-gradient(135deg, #fee2e2, #fecaca);
    color: #dc2626;
}

.breaking-badge[b-r56axrvl7b] {
    display: inline-block;
    margin-left: 0.5rem;
    padding: 0.2rem 0.6rem;
    background: #dc2626;
    color: #fff;
    font-size: 0.7rem;
    font-weight: 700;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .hero-section[b-r56axrvl7b] {
        padding: 3rem 1rem 2rem;
    }

    .hero-title[b-r56axrvl7b] {
        font-size: 1.75rem;
    }

    .hero-subtitle[b-r56axrvl7b] {
        font-size: 1rem;
    }

    .hero-version-card[b-r56axrvl7b] {
        flex-direction: column;
        gap: 1rem;
        padding: 1rem;
    }

    .version-info[b-r56axrvl7b] {
        align-items: center;
    }

    .origin-section[b-r56axrvl7b] {
        padding: 2rem 1rem;
    }

    .story-intro[b-r56axrvl7b] {
        flex-direction: column;
        text-align: center;
    }

    .intro-icon[b-r56axrvl7b] {
        margin: 0 auto;
    }

    .milestones-grid[b-r56axrvl7b] {
        grid-template-columns: 1fr;
    }

    .story-quote[b-r56axrvl7b] {
        flex-direction: column;
        text-align: center;
    }

    .story-quote i[b-r56axrvl7b] {
        margin: 0 auto;
    }

    .timeline-section[b-r56axrvl7b] {
        padding: 2rem 1rem 3rem;
    }

    .timeline-item[b-r56axrvl7b] {
        gap: 1rem;
    }

    .timeline-connector[b-r56axrvl7b] {
        width: 32px;
    }

    .timeline-dot[b-r56axrvl7b] {
        width: 32px;
        height: 32px;
        font-size: 0.875rem;
    }

    .release-card[b-r56axrvl7b] {
        padding: 1.25rem;
    }

    .release-header[b-r56axrvl7b] {
        flex-direction: column;
        gap: 0.75rem;
    }

    .release-version[b-r56axrvl7b] {
        font-size: 1.25rem;
    }

    .change-list li[b-r56axrvl7b] {
        padding: 0.5rem 0.75rem;
    }

    .change-list li > i[b-r56axrvl7b] {
        width: 24px;
        height: 24px;
        font-size: 0.75rem;
    }
}

@media (max-width: 480px) {
    .hero-tags[b-r56axrvl7b] {
        gap: 0.5rem;
    }

    .tag[b-r56axrvl7b] {
        font-size: 0.75rem;
        padding: 0.25rem 0.625rem;
    }

    .release-meta[b-r56axrvl7b] {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }

    .timeline-item[b-r56axrvl7b] {
        gap: 0.75rem;
    }

    .timeline-connector[b-r56axrvl7b] {
        width: 28px;
    }

    .timeline-dot[b-r56axrvl7b] {
        width: 28px;
        height: 28px;
        font-size: 0.75rem;
    }
}
/* /Components/Pages/Roadmap/FeatureRoadmap.razor.rz.scp.css */
/* =====================================================================================
   FeatureRoadmap.razor.css — раздел «Развитие сервиса».
   Светлая палитра под публичный сайт (bootstrap5). Акцент — фиолетово-синий градиент.
   ===================================================================================== */

.rm[b-vttze7853g] {
    --rm-accent: #6366f1;
    --rm-accent-2: #8b5cf6;
    --rm-ink: #0f172a;
    --rm-muted: #64748b;
    --rm-line: #e2e8f0;
    --rm-surface: #ffffff;
    --rm-bg-soft: #f8fafc;

    max-width: 1180px;
    margin: 0 auto;
    padding: 8px 4px 56px;
}

/* ===== Hero ===== */
.rm-hero[b-vttze7853g] {
    position: relative;
    overflow: hidden;
    border-radius: 22px;
    padding: 38px 40px;
    margin-bottom: 32px;
    background: radial-gradient(1200px 320px at 0% 0%, rgba(99, 102, 241, .12), transparent 60%),
                radial-gradient(1000px 300px at 100% 100%, rgba(139, 92, 246, .12), transparent 55%),
                var(--rm-surface);
    border: 1px solid var(--rm-line);
    box-shadow: 0 10px 30px rgba(15, 23, 42, .04);
}

.rm-hero-copy[b-vttze7853g] {
    max-width: 760px;
}

.rm-hero-badge[b-vttze7853g] {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--rm-accent);
    background: rgba(99, 102, 241, .1);
    padding: 6px 12px;
    border-radius: 999px;
    margin-bottom: 16px;
}

.rm-title[b-vttze7853g] {
    font-size: clamp(28px, 4vw, 40px);
    line-height: 1.1;
    font-weight: 800;
    color: var(--rm-ink);
    margin: 0 0 12px;
}

.rm-lead[b-vttze7853g] {
    font-size: 17px;
    line-height: 1.6;
    color: var(--rm-muted);
    margin: 0 0 20px;
}

.rm-hero-note[b-vttze7853g] {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 14px;
    line-height: 1.5;
    color: #475569;
    background: var(--rm-bg-soft);
    border: 1px dashed var(--rm-line);
    border-radius: 14px;
    padding: 12px 16px;
}

.rm-hero-note i[b-vttze7853g] {
    color: var(--rm-accent);
    margin-top: 2px;
}

/* ===== Сетка ===== */
.rm-grid[b-vttze7853g] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 22px;
}

/* ===== Карточка ===== */
.rm-card[b-vttze7853g] {
    display: flex;
    flex-direction: column;
    background: var(--rm-surface);
    border: 1px solid var(--rm-line);
    border-radius: 18px;
    padding: 22px;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.rm-card:hover[b-vttze7853g] {
    transform: translateY(-3px);
    box-shadow: 0 16px 40px rgba(15, 23, 42, .08);
    border-color: rgba(99, 102, 241, .35);
}

.rm-card-head[b-vttze7853g] {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 14px;
}

.rm-card-icon[b-vttze7853g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 12px;
    font-size: 20px;
    color: #fff;
    background: linear-gradient(135deg, var(--rm-accent), var(--rm-accent-2));
}

.rm-card-title[b-vttze7853g] {
    font-size: 19px;
    font-weight: 700;
    color: var(--rm-ink);
    margin: 0 0 8px;
}

.rm-card-summary[b-vttze7853g] {
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--rm-muted);
    margin: 0 0 10px;
}

.rm-card-details[b-vttze7853g] {
    font-size: 13.5px;
    line-height: 1.55;
    color: #475569;
    margin: 0 0 14px;
}

/* ===== Статус-пилюли ===== */
.rm-pill[b-vttze7853g] {
    font-size: 12px;
    font-weight: 600;
    padding: 5px 11px;
    border-radius: 999px;
    white-space: nowrap;
}

.rm-pill-planned[b-vttze7853g]   { color: #475569; background: #f1f5f9; }
.rm-pill-progress[b-vttze7853g]  { color: #1d4ed8; background: #dbeafe; }
.rm-pill-released[b-vttze7853g]  { color: #047857; background: #d1fae5; }
.rm-pill-cancelled[b-vttze7853g] { color: #b91c1c; background: #fee2e2; }

/* ===== Прогресс ===== */
.rm-progress[b-vttze7853g] {
    margin: 6px 0 18px;
}

.rm-progress-track[b-vttze7853g] {
    height: 9px;
    border-radius: 999px;
    background: #eef2f7;
    overflow: hidden;
}

.rm-progress-fill[b-vttze7853g] {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--rm-accent), var(--rm-accent-2));
    transition: width .5s ease;
    min-width: 2px;
}

.rm-progress-meta[b-vttze7853g] {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin-top: 10px;
}

.rm-progress-sum[b-vttze7853g] {
    font-size: 15px;
    font-weight: 700;
    color: var(--rm-ink);
}

.rm-progress-goal[b-vttze7853g] {
    font-size: 13px;
    font-weight: 500;
    color: var(--rm-muted);
}

.rm-progress-pct[b-vttze7853g] {
    font-size: 14px;
    font-weight: 700;
    color: var(--rm-accent);
}

.rm-progress-supporters[b-vttze7853g] {
    margin-top: 6px;
    font-size: 12.5px;
    color: var(--rm-muted);
}

/* ===== Подвал карточки ===== */
.rm-card-foot[b-vttze7853g] {
    margin-top: auto;
}

[b-vttze7853g] .rm-support-btn.e-btn {
    width: 100%;
    border: none;
    border-radius: 12px;
    padding: 11px 14px;
    font-weight: 600;
    background: linear-gradient(135deg, var(--rm-accent), var(--rm-accent-2));
    box-shadow: 0 8px 18px rgba(99, 102, 241, .25);
}

[b-vttze7853g] .rm-support-btn.e-btn:hover {
    filter: brightness(1.05);
}

.rm-guard[b-vttze7853g] {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 13.5px;
    color: var(--rm-muted);
    background: var(--rm-bg-soft);
    border: 1px solid var(--rm-line);
    border-radius: 12px;
    padding: 10px 12px;
}

.rm-guard i[b-vttze7853g] {
    color: var(--rm-accent);
}

[b-vttze7853g] .rm-guard-btn.e-btn {
    margin-left: auto;
    border-radius: 9px;
    font-weight: 600;
}

.rm-foot-note[b-vttze7853g] {
    font-size: 13px;
    color: var(--rm-muted);
    font-style: italic;
}

/* ===== Пустое состояние / загрузка ===== */
.rm-empty[b-vttze7853g] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding: 70px 20px;
    color: var(--rm-muted);
    font-size: 16px;
}

.rm-empty i[b-vttze7853g] {
    font-size: 34px;
    color: var(--rm-accent);
}

/* ===== Диалог =====
   ВАЖНО: SfDialog портаирует контент в <body>, ВНЕ обёртки .rm, поэтому
   CSS-переменные (--rm-*) здесь недоступны. Используем литеральные цвета —
   иначе градиенты/фон «схлопываются» (белая иконка на прозрачном фоне). */
.rm-dlg[b-vttze7853g] {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.rm-dlg-feature[b-vttze7853g] {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f4f3ff;
    border: 1px solid #e0e0fb;
}

.rm-dlg-feature-icon[b-vttze7853g] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 10px;
    flex-shrink: 0;
    font-size: 18px;
    color: #fff;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
}

.rm-dlg-feature-title[b-vttze7853g] {
    font-weight: 700;
    color: #0f172a;
}

.rm-dlg-label[b-vttze7853g] {
    font-size: 13px;
    font-weight: 600;
    color: #0f172a;
}

.rm-dlg-error[b-vttze7853g] {
    font-size: 13px;
    color: #b91c1c;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Назначение платежа — заметная плашка с акцентной левой полосой. */
.rm-dlg-purpose[b-vttze7853g] {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    border-left: 4px solid #6366f1;
}

.rm-dlg-purpose-label[b-vttze7853g] {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #4f46e5;
}

.rm-dlg-purpose-text[b-vttze7853g] {
    font-size: 13.5px;
    font-weight: 500;
    color: #1e293b;
    line-height: 1.5;
}

[b-vttze7853g] .rm-dlg-pay.e-btn {
    border: none;
    border-radius: 10px;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, #6366f1, #8b5cf6);
}

/* ===== Адаптив ===== */
@media (max-width: 640px) {
    .rm-hero[b-vttze7853g] { padding: 28px 22px; }
    .rm-grid[b-vttze7853g] { grid-template-columns: 1fr; }
}
/* /Components/Pages/StatusCode.razor.rz.scp.css */
/* ============================================================================
   StatusCode.razor.css
   Изолированные стили для страницы HTTP-ошибок (404, 403, 400, 429 и др.)
   Три цветовые варианта: blue (404), red (500/503), amber (400/401/429)
   ============================================================================ */

/* ==========================================================================
   ОБЁРТКА СТРАНИЦЫ
   ========================================================================== */

.status-page-wrapper[b-btg8it6wc7] {
    position: relative;
    min-height: calc(100vh - 3.5rem);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 40%, #1e3a5f 100%);
    padding: 2rem 1rem;
}

/* ==========================================================================
   АНИМИРОВАННЫЙ ФОН — Варианты
   ========================================================================== */

.status-bg-animated[b-btg8it6wc7] {
    position: absolute;
    inset: 0;
    animation: statusGradientShift-b-btg8it6wc7 12s ease-in-out infinite;
}

.status-bg-blue[b-btg8it6wc7] {
    background:
        radial-gradient(ellipse at 30% 70%, rgba(37, 99, 235, 0.15) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 30%, rgba(8, 145, 178, 0.12) 0%, transparent 55%);
}

.status-bg-red[b-btg8it6wc7] {
    background:
        radial-gradient(ellipse at 30% 70%, rgba(239, 68, 68, 0.12) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 30%, rgba(37, 99, 235, 0.15) 0%, transparent 55%);
}

.status-bg-amber[b-btg8it6wc7] {
    background:
        radial-gradient(ellipse at 30% 70%, rgba(245, 158, 11, 0.12) 0%, transparent 55%),
        radial-gradient(ellipse at 70% 30%, rgba(37, 99, 235, 0.12) 0%, transparent 55%);
}

@keyframes statusGradientShift-b-btg8it6wc7 {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.7; transform: scale(1.06); }
}

.status-bg-particles[b-btg8it6wc7] {
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 15% 25%, rgba(255,255,255,0.04) 1px, transparent 1px),
        radial-gradient(circle at 85% 75%, rgba(255,255,255,0.04) 1px, transparent 1px),
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.02) 1px, transparent 1px);
    background-size: 80px 80px, 120px 120px, 60px 60px;
    animation: statusParticlesFloat-b-btg8it6wc7 25s linear infinite;
}

@keyframes statusParticlesFloat-b-btg8it6wc7 {
    0% { transform: translateY(0); }
    100% { transform: translateY(-40px); }
}

/* ==========================================================================
   КОНТЕНТНЫЙ БЛОК
   ========================================================================== */

.status-content-container[b-btg8it6wc7] {
    position: relative;
    z-index: 2;
    text-align: center;
    max-width: 560px;
    width: 100%;
    animation: statusContentFadeIn-b-btg8it6wc7 0.8s cubic-bezier(0.16, 1, 0.3, 1) both;
}

@keyframes statusContentFadeIn-b-btg8it6wc7 {
    from { opacity: 0; transform: translateY(30px) scale(0.96); }
    to { opacity: 1; transform: translateY(0) scale(1); }
}

/* ==========================================================================
   ИКОНКА — Варианты
   ========================================================================== */

.status-icon-block[b-btg8it6wc7] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
}

.status-icon-pulse[b-btg8it6wc7] {
    position: absolute;
    width: 110px;
    height: 110px;
    border-radius: 50%;
    animation: statusIconPulse-b-btg8it6wc7 2.5s ease-in-out infinite;
}

.status-pulse-blue[b-btg8it6wc7] {
    background: rgba(37, 99, 235, 0.15);
}

.status-pulse-red[b-btg8it6wc7] {
    background: rgba(239, 68, 68, 0.15);
}

.status-pulse-amber[b-btg8it6wc7] {
    background: rgba(245, 158, 11, 0.15);
}

@keyframes statusIconPulse-b-btg8it6wc7 {
    0%, 100% { transform: scale(1); opacity: 0.6; }
    50% { transform: scale(1.35); opacity: 0; }
}

.status-icon-circle[b-btg8it6wc7] {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(10px);
}

.status-circle-blue[b-btg8it6wc7] {
    background: linear-gradient(135deg, rgba(37, 99, 235, 0.2) 0%, rgba(37, 99, 235, 0.08) 100%);
    border: 2px solid rgba(37, 99, 235, 0.3);
}

.status-circle-blue i[b-btg8it6wc7] {
    font-size: 2.5rem;
    color: #60a5fa;
    filter: drop-shadow(0 0 12px rgba(37, 99, 235, 0.4));
}

.status-circle-red[b-btg8it6wc7] {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.2) 0%, rgba(239, 68, 68, 0.08) 100%);
    border: 2px solid rgba(239, 68, 68, 0.3);
}

.status-circle-red i[b-btg8it6wc7] {
    font-size: 2.5rem;
    color: #f87171;
    filter: drop-shadow(0 0 12px rgba(239, 68, 68, 0.4));
}

.status-circle-amber[b-btg8it6wc7] {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.2) 0%, rgba(245, 158, 11, 0.08) 100%);
    border: 2px solid rgba(245, 158, 11, 0.3);
}

.status-circle-amber i[b-btg8it6wc7] {
    font-size: 2.5rem;
    color: #fbbf24;
    filter: drop-shadow(0 0 12px rgba(245, 158, 11, 0.4));
}

/* ==========================================================================
   КОД ОШИБКИ — Варианты
   ========================================================================== */

.status-code[b-btg8it6wc7] {
    font-size: clamp(4.5rem, 12vw, 8rem);
    font-weight: 900;
    letter-spacing: -0.04em;
    line-height: 1;
    margin: 0 0 0.5rem;
    background-size: 200% auto;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: statusCodeShimmer-b-btg8it6wc7 4s ease-in-out infinite;
}

.status-code-blue[b-btg8it6wc7] {
    background-image: linear-gradient(135deg, #60a5fa 0%, #38bdf8 50%, #60a5fa 100%);
    background-size: 200% auto;
}

.status-code-red[b-btg8it6wc7] {
    background-image: linear-gradient(135deg, #f87171 0%, #fbbf24 50%, #f87171 100%);
    background-size: 200% auto;
}

.status-code-amber[b-btg8it6wc7] {
    background-image: linear-gradient(135deg, #fbbf24 0%, #f59e0b 50%, #fbbf24 100%);
    background-size: 200% auto;
}

@keyframes statusCodeShimmer-b-btg8it6wc7 {
    0%, 100% { background-position: 0% center; }
    50% { background-position: 200% center; }
}

/* ==========================================================================
   ЗАГОЛОВОК И ОПИСАНИЕ
   ========================================================================== */

.status-title[b-btg8it6wc7] {
    font-size: clamp(1.25rem, 3.5vw, 1.75rem);
    font-weight: 700;
    color: #f1f5f9;
    margin: 0 0 1rem;
    letter-spacing: -0.01em;
}

.status-description[b-btg8it6wc7] {
    font-size: clamp(0.9rem, 2.2vw, 1.05rem);
    color: #94a3b8;
    line-height: 1.7;
    margin: 0 0 1.25rem;
    max-width: 460px;
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   ПОДСКАЗКА
   ========================================================================== */

.status-hint[b-btg8it6wc7] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 10px;
    padding: 0.6rem 1.1rem;
    margin-bottom: 1.5rem;
    font-size: 0.85rem;
    color: #94a3b8;
    max-width: 440px;
    text-align: left;
}

.status-hint i[b-btg8it6wc7] {
    color: #fbbf24;
    font-size: 1rem;
    flex-shrink: 0;
}

/* ==========================================================================
   КНОПКИ ДЕЙСТВИЙ
   ========================================================================== */

.status-actions[b-btg8it6wc7] {
    display: flex;
    gap: 0.75rem;
    justify-content: center;
    flex-wrap: wrap;
    margin-bottom: 2rem;
}

.status-btn[b-btg8it6wc7] {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 1.5rem;
    border-radius: 10px;
    font-size: 0.92rem;
    font-weight: 600;
    text-decoration: none;
    border: none;
    cursor: pointer;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    line-height: 1.4;
}

.status-btn-primary[b-btg8it6wc7] {
    background: linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);
    color: #ffffff;
    box-shadow: 0 4px 15px rgba(37, 99, 235, 0.35), inset 0 1px 0 rgba(255,255,255,0.1);
}

.status-btn-primary:hover[b-btg8it6wc7] {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(37, 99, 235, 0.45), inset 0 1px 0 rgba(255,255,255,0.15);
    color: #ffffff;
    text-decoration: none;
}

.status-btn-primary:active[b-btg8it6wc7] {
    transform: translateY(0);
}

.status-btn-secondary[b-btg8it6wc7] {
    background: rgba(255, 255, 255, 0.06);
    color: #cbd5e1;
    border: 1px solid rgba(255, 255, 255, 0.12);
    backdrop-filter: blur(8px);
}

.status-btn-secondary:hover[b-btg8it6wc7] {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.2);
    color: #f1f5f9;
    transform: translateY(-2px);
}

.status-btn-secondary:active[b-btg8it6wc7] {
    transform: translateY(0);
}

.status-btn-report[b-btg8it6wc7] {
    background: rgba(251, 191, 36, 0.1);
    color: #fbbf24;
    border: 1px solid rgba(251, 191, 36, 0.2);
    backdrop-filter: blur(8px);
}

.status-btn-report:hover[b-btg8it6wc7] {
    background: rgba(251, 191, 36, 0.18);
    border-color: rgba(251, 191, 36, 0.35);
    color: #fde68a;
    transform: translateY(-2px);
    text-decoration: none;
}

.status-btn-report:active[b-btg8it6wc7] {
    transform: translateY(0);
}

/* ==========================================================================
   ПОЛЕЗНЫЕ ССЫЛКИ
   ========================================================================== */

.status-helpful-links[b-btg8it6wc7] {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.status-helpful-label[b-btg8it6wc7] {
    font-size: 0.8rem;
    color: #475569;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
}

.status-links-row[b-btg8it6wc7] {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    justify-content: center;
}

.status-link-chip[b-btg8it6wc7] {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.35rem 0.85rem;
    border-radius: 20px;
    font-size: 0.8rem;
    font-weight: 500;
    color: #94a3b8;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.08);
    text-decoration: none;
    transition: all 0.2s ease;
}

.status-link-chip:hover[b-btg8it6wc7] {
    color: #e2e8f0;
    background: rgba(255, 255, 255, 0.08);
    border-color: rgba(255, 255, 255, 0.16);
    text-decoration: none;
    transform: translateY(-1px);
}

/* ==========================================================================
   ДЕКОРАТИВНЫЕ ЭЛЕМЕНТЫ
   ========================================================================== */

.status-decoration[b-btg8it6wc7] {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    z-index: 1;
}

.status-decoration-1[b-btg8it6wc7] {
    width: 300px;
    height: 300px;
    top: -80px;
    right: -60px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.06) 0%, transparent 70%);
    animation: statusDecoFloat1-b-btg8it6wc7 18s ease-in-out infinite;
}

.status-decoration-1.status-deco-blue[b-btg8it6wc7] {
    background: radial-gradient(circle, rgba(37, 99, 235, 0.08) 0%, transparent 70%);
}

.status-decoration-1.status-deco-red[b-btg8it6wc7] {
    background: radial-gradient(circle, rgba(239, 68, 68, 0.06) 0%, transparent 70%);
}

.status-decoration-1.status-deco-amber[b-btg8it6wc7] {
    background: radial-gradient(circle, rgba(245, 158, 11, 0.06) 0%, transparent 70%);
}

.status-decoration-2[b-btg8it6wc7] {
    width: 200px;
    height: 200px;
    bottom: -40px;
    left: -40px;
    background: radial-gradient(circle, rgba(37, 99, 235, 0.08) 0%, transparent 70%);
    animation: statusDecoFloat2-b-btg8it6wc7 22s ease-in-out infinite;
}

.status-decoration-3[b-btg8it6wc7] {
    width: 150px;
    height: 150px;
    top: 40%;
    left: 10%;
    background: radial-gradient(circle, rgba(251, 191, 36, 0.05) 0%, transparent 70%);
    animation: statusDecoFloat3-b-btg8it6wc7 15s ease-in-out infinite;
}

.status-decoration-3.status-deco-blue[b-btg8it6wc7] {
    background: radial-gradient(circle, rgba(56, 189, 248, 0.05) 0%, transparent 70%);
}

.status-decoration-3.status-deco-red[b-btg8it6wc7] {
    background: radial-gradient(circle, rgba(251, 191, 36, 0.05) 0%, transparent 70%);
}

.status-decoration-3.status-deco-amber[b-btg8it6wc7] {
    background: radial-gradient(circle, rgba(245, 158, 11, 0.05) 0%, transparent 70%);
}

@keyframes statusDecoFloat1-b-btg8it6wc7 {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    33% { transform: translate(20px, 30px) rotate(5deg); }
    66% { transform: translate(-15px, 15px) rotate(-3deg); }
}

@keyframes statusDecoFloat2-b-btg8it6wc7 {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    33% { transform: translate(-20px, -25px) rotate(-4deg); }
    66% { transform: translate(15px, -10px) rotate(3deg); }
}

@keyframes statusDecoFloat3-b-btg8it6wc7 {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(25px, -20px); }
}

/* ==========================================================================
   АДАПТИВ
   ========================================================================== */

@media (max-width: 576px) {
    .status-page-wrapper[b-btg8it6wc7] {
        padding: 1.5rem 1rem;
    }

    .status-icon-circle[b-btg8it6wc7] {
        width: 76px;
        height: 76px;
    }

    .status-icon-circle i[b-btg8it6wc7],
    .status-circle-blue i[b-btg8it6wc7],
    .status-circle-red i[b-btg8it6wc7],
    .status-circle-amber i[b-btg8it6wc7] {
        font-size: 2rem;
    }

    .status-icon-pulse[b-btg8it6wc7] {
        width: 88px;
        height: 88px;
    }

    .status-actions[b-btg8it6wc7] {
        flex-direction: column;
        align-items: stretch;
    }

    .status-btn[b-btg8it6wc7] {
        justify-content: center;
    }

    .status-hint[b-btg8it6wc7] {
        flex-direction: column;
        text-align: center;
        align-items: center;
    }
}
/* /Components/Pages/TermsOfService.razor.rz.scp.css */
/* ============================================================================
   TermsOfService.razor.css
   Изолированные стили для страницы «Условия использования»
   Палитра: тёмно-синий (#1e3a5f), бирюзовый (#0891b2), белый, тёмный текст
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ
   ========================================================================== */

.tos-page[b-jqauo1l3gf] {
    padding-bottom: 3rem;
}

.tos-hero[b-jqauo1l3gf] {
    position: relative;
    background: linear-gradient(135deg, #0f172a 0%, #1a365d 50%, #1f3b73 100%);
    color: #fff;
    overflow: hidden;
    margin-bottom: 2rem;
    border-radius: 0 0 1.5rem 1.5rem;
}

.tos-hero-bg-pattern[b-jqauo1l3gf] {
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 20% 20%, rgba(255, 255, 255, 0.06), transparent 35%),
        radial-gradient(circle at 80% 0%, rgba(255, 255, 255, 0.04), transparent 30%),
        radial-gradient(circle at 50% 80%, rgba(255, 255, 255, 0.03), transparent 25%);
    animation: tosPatternMove-b-jqauo1l3gf 20s ease-in-out infinite;
    pointer-events: none;
}

@keyframes tosPatternMove-b-jqauo1l3gf {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(15px, -10px) scale(1.02); }
}

.tos-hero-badge[b-jqauo1l3gf] {
    background: rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    color: #fff;
    backdrop-filter: blur(6px);
    font-size: 0.85rem;
}

/* ==========================================================================
   БЛОК ПРЕДУПРЕЖДЕНИЯ (AS IS)
   ========================================================================== */

.tos-warning-box[b-jqauo1l3gf] {
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    border-left: 5px solid #f59e0b;
    border-radius: 0.75rem;
    padding: 1.5rem;
    margin-bottom: 2rem;
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    box-shadow: 0 2px 12px rgba(245, 158, 11, 0.15);
}

.tos-warning-icon[b-jqauo1l3gf] {
    color: #d97706;
    flex-shrink: 0;
    margin-top: 0.15rem;
}

.tos-warning-content[b-jqauo1l3gf] {
    color: #78350f;
    font-size: 0.95rem;
    line-height: 1.7;
}

.tos-warning-content strong[b-jqauo1l3gf] {
    color: #92400e;
}

/* ==========================================================================
   АККОРДЕОН — СЕКЦИИ ДОКУМЕНТА
   ========================================================================== */

.tos-content-section[b-jqauo1l3gf] {
    margin-bottom: 2.5rem;
}

.tos-section-header[b-jqauo1l3gf] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.05rem;
    font-weight: 600;
    color: #1e3a5f;
}

.tos-section-num[b-jqauo1l3gf] {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: linear-gradient(135deg, #0891b2, #0e7490);
    color: #ffffff;
    font-size: 0.85rem;
    font-weight: 700;
    flex-shrink: 0;
}

.tos-section-body[b-jqauo1l3gf] {
    padding: 0.75rem 0.5rem 0.5rem;
    color: #374151;
    font-size: 0.95rem;
    line-height: 1.8;
}

.tos-section-body p[b-jqauo1l3gf] {
    margin-bottom: 0.85rem;
}

.tos-section-body ul[b-jqauo1l3gf] {
    margin: 0.5rem 0 1rem 1.25rem;
    padding: 0;
}

.tos-section-body ul li[b-jqauo1l3gf] {
    margin-bottom: 0.4rem;
    position: relative;
    padding-left: 0.25rem;
}

.tos-section-body a[b-jqauo1l3gf] {
    color: #0891b2;
    text-decoration: underline;
}

.tos-section-body a:hover[b-jqauo1l3gf] {
    color: #0e7490;
}

/* ==========================================================================
   ВЫДЕЛЕННЫЙ БЛОК (внутри секций)
   ========================================================================== */

.tos-highlight-block[b-jqauo1l3gf] {
    background: #f0f9ff;
    border: 1px solid #bae6fd;
    border-radius: 0.5rem;
    padding: 1.25rem;
    margin-bottom: 1rem;
}

/* ==========================================================================
   НИЖНИЙ БЛОК
   ========================================================================== */

.tos-footer-note[b-jqauo1l3gf] {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 0.75rem;
    padding: 1.5rem;
    text-align: center;
    color: #64748b;
    font-size: 0.9rem;
    line-height: 1.7;
    margin-top: 1rem;
}

.tos-footer-note i[b-jqauo1l3gf] {
    color: #0891b2;
    margin-right: 0.3rem;
}

.tos-copyright[b-jqauo1l3gf] {
    margin-top: 0.75rem;
    font-size: 0.85rem;
    color: #94a3b8;
}

/* ==========================================================================
   АДАПТИВ
   ========================================================================== */

@media (max-width: 768px) {
    .tos-hero[b-jqauo1l3gf] {
        padding: 2rem 0 1.5rem;
    }

    .tos-hero .display-4[b-jqauo1l3gf] {
        font-size: 1.75rem;
    }

    .tos-warning-box[b-jqauo1l3gf] {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .tos-section-header[b-jqauo1l3gf] {
        font-size: 0.95rem;
    }
}
/* /Components/Pages/Weather/WeatherAPI.razor.rz.scp.css */
/* ============================================================================
   WeatherAPI.razor.css
   Изолированные стили для компонента документации REST API погодного сервиса
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ API - Главный баннер страницы документации
   ========================================================================== */

/* Фоновый градиент для hero секции API */
.hero-api[b-cyn9bqjkwq] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона с радиальными градиентами */
.hero-bg-pattern[b-cyn9bqjkwq] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 25% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
                      radial-gradient(circle at 75% 75%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
                      radial-gradient(circle at 50% 25%, rgba(255, 255, 255, 0.08) 0%, transparent 50%);
    animation: patternMove-b-cyn9bqjkwq 25s ease-in-out infinite;
}

@keyframes patternMove-b-cyn9bqjkwq {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(15px, -15px) scale(1.05); }
}

/* ==========================================================================
   БЕЙДЖИ И ЭЛЕМЕНТЫ ИНТЕРФЕЙСА
   ========================================================================== */

/* Бейдж API с эффектом стекла (glassmorphism) */
.badge-api[b-cyn9bqjkwq] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

/* ==========================================================================
   КНОПКИ HERO СЕКЦИИ
   ========================================================================== */

/* Контейнер кнопок с повышенным z-index для кликабельности */
.hero-buttons[b-cyn9bqjkwq] {
    position: relative;
    z-index: 10;
}

/* Стилизация кнопок в hero секции */
.hero-buttons .btn[b-cyn9bqjkwq] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    font-weight: 600;
    text-decoration: none;
}

/* Эффект подъёма при наведении на кнопку */
.hero-buttons .btn:hover[b-cyn9bqjkwq] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* Стиль кнопки с контурной рамкой */
.btn-outline-light[b-cyn9bqjkwq] {
    border: 2px solid white;
}

.btn-outline-light:hover[b-cyn9bqjkwq] {
    background: rgba(255, 255, 255, 0.15);
    border-color: white;
    color: white;
}

/* ==========================================================================
   СПИСОК ВОЗМОЖНОСТЕЙ HERO СЕКЦИИ
   ========================================================================== */

/* Контейнер списка возможностей */
.hero-features[b-cyn9bqjkwq] {
    position: relative;
    z-index: 10;
}

/* Иконка-обёртка с эффектом стекла */
.feature-icon-wrapper[b-cyn9bqjkwq] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

/* ==========================================================================
   АНИМАЦИЯ ИКОНКИ API
   ========================================================================== */

/* Анимация парения для иконки сервера */
.api-icon-animate[b-cyn9bqjkwq] {
    animation: float-b-cyn9bqjkwq 3.5s ease-in-out infinite;
}

@keyframes float-b-cyn9bqjkwq {
    0%, 100% { transform: translateY(0px) rotate(0deg); }
    50% { transform: translateY(-15px) rotate(2deg); }
}

/* ==========================================================================
   ПЛАВАЮЩИЕ ИКОНКИ ВОКРУГ ГЛАВНОГО ЭЛЕМЕНТА
   ========================================================================== */

/* Контейнер плавающих иконок */
.floating-icons[b-cyn9bqjkwq] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-cyn9bqjkwq] {
    position: absolute;
    color: rgba(255, 255, 255, 0.5);
    animation: floatAround-b-cyn9bqjkwq 7s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками анимации */
.float-1[b-cyn9bqjkwq] { top: 15%; left: 5%; animation-delay: 0s; }
.float-2[b-cyn9bqjkwq] { top: 25%; right: 10%; animation-delay: 1.75s; }
.float-3[b-cyn9bqjkwq] { bottom: 25%; left: 15%; animation-delay: 3.5s; }
.float-4[b-cyn9bqjkwq] { bottom: 15%; right: 5%; animation-delay: 5.25s; }

@keyframes floatAround-b-cyn9bqjkwq {
    0%, 100% { transform: translate(0, 0) rotate(0deg); opacity: 0.5; }
    25% { transform: translate(12px, -12px) rotate(8deg); opacity: 0.7; }
    50% { transform: translate(-8px, -18px) rotate(-8deg); opacity: 0.6; }
    75% { transform: translate(-12px, 8px) rotate(5deg); opacity: 0.8; }
}

/* ==========================================================================
   КАРТОЧКИ БЫСТРОГО СТАРТА
   ========================================================================== */

/* Стиль карточки быстрого старта */
.quick-start-card[b-cyn9bqjkwq] {
    transition: all 0.3s ease;
    background: white;
}

.quick-start-card:hover[b-cyn9bqjkwq] {
    transform: translateY(-5px);
}

/* Номер шага с градиентным фоном */
.step-number[b-cyn9bqjkwq] {
    width: 60px;
    height: 60px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    font-size: 2rem;
    font-weight: bold;
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 20px rgba(102, 126, 234, 0.3);
}

/* ==========================================================================
   КАРТОЧКИ ВОЗМОЖНОСТЕЙ API
   ========================================================================== */

/* Анимация подъёма карточки при наведении */
.api-feature-card[b-cyn9bqjkwq] {
    transition: all 0.3s ease;
}

.api-feature-card:hover[b-cyn9bqjkwq] {
    transform: translateY(-8px);
}

/* ==========================================================================
   SWAGGER UI КОНТЕЙНЕР
   ========================================================================== */

/* Карточка Swagger UI с закруглёнными углами */
.swagger-card[b-cyn9bqjkwq] {
    border-radius: 15px;
    overflow: hidden;
}

/* Минимальная высота для контейнера Swagger UI */
#swagger-ui[b-cyn9bqjkwq] {
    min-height: 600px;
}

/* ==========================================================================
   ОБЩИЙ ЭФФЕКТ ПОДЪЁМА ПРИ НАВЕДЕНИИ
   ========================================================================== */

.hover-lift[b-cyn9bqjkwq] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-cyn9bqjkwq] {
    transform: translateY(-8px);
    box-shadow: 0 1rem 3rem rgba(0,0,0,.175) !important;
}

/* ==========================================================================
   ИНФОРМАЦИОННЫЙ БАННЕР
   ========================================================================== */

/* Градиентный фон для информационного баннера */
.bg-gradient-info[b-cyn9bqjkwq] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

/* Бейдж с иконкой информации */
.info-icon-badge[b-cyn9bqjkwq] {
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 15px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* ==========================================================================
   ИКОНКА ПРЕИМУЩЕСТВА
   ========================================================================== */

/* Контейнер для иконки преимущества */
.benefit-icon[b-cyn9bqjkwq] {
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* ==========================================================================
   АДАПТИВНЫЕ СТИЛИ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ
   ========================================================================== */

@media (max-width: 768px) {
    /* Уменьшаем размер иконки сервера */
    .api-icon-animate i[b-cyn9bqjkwq] {
        font-size: 6rem !important;
    }

    /* Скрываем плавающие иконки на мобильных для производительности */
    .floating-icons[b-cyn9bqjkwq] {
        display: none;
    }
}
/* /Components/Pages/Weather/WeatherComponent.razor.rz.scp.css */
/* ============================================================================
   WeatherComponent.razor.css
   Изолированные стили для компонента интерактивного погодного интерфейса
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ - Главный баннер страницы
   ========================================================================== */

/* Фоновый градиент для hero секции */
.hero-weather[b-h0dbz9d7t1] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 50%, #f093fb 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона с радиальными градиентами */
.hero-bg-pattern[b-h0dbz9d7t1] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%);
    animation: patternMove-b-h0dbz9d7t1 20s ease-in-out infinite;
}

@keyframes patternMove-b-h0dbz9d7t1 {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(20px, -20px) scale(1.05); }
}

/* Бейдж погоды с эффектом размытия фона */
.badge-weather[b-h0dbz9d7t1] {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
}

/* Контейнер для списка возможностей в hero секции */
.hero-features[b-h0dbz9d7t1] {
    position: relative;
    z-index: 10;
}

/* Обёртка для иконок возможностей с эффектом стекла */
.feature-icon-wrapper[b-h0dbz9d7t1] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.35);
}

/* Анимация парения для иконки погоды в hero */
.weather-icon-hero i[b-h0dbz9d7t1] {
    animation: float-b-h0dbz9d7t1 3s ease-in-out infinite;
}

@keyframes float-b-h0dbz9d7t1 {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

/* ==========================================================================
   КАРТОЧКА ВВОДА ДАННЫХ
   ========================================================================== */

/* Стиль карточки ввода координат */
.input-card[b-h0dbz9d7t1] {
    border-radius: 20px;
    transition: all 0.3s ease;
}

.input-card:hover[b-h0dbz9d7t1] {
    transform: translateY(-5px);
}

/* Стилизация полей ввода Syncfusion - нужен ::deep для вложенных компонентов */
[b-h0dbz9d7t1] .custom-input {
    border-radius: 10px;
}

/* Кнопка получения погоды с градиентом */
[b-h0dbz9d7t1] .btn-fetch-weather {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    padding: 12px 30px;
    border-radius: 10px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(102, 126, 234, 0.3);
    transition: all 0.3s ease;
}

[b-h0dbz9d7t1] .btn-fetch-weather:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(102, 126, 234, 0.4);
}

/* ==========================================================================
   КАРТОЧКИ ПОГОДНЫХ ДАННЫХ
   ========================================================================== */

/* Базовый стиль карточки погоды */
.weather-card[b-h0dbz9d7t1] {
    border-radius: 15px;
    transition: all 0.3s ease;
}

/* Эффект подъёма при наведении */
.hover-lift:hover[b-h0dbz9d7t1] {
    transform: translateY(-10px);
    box-shadow: 0 1.5rem 3rem rgba(0,0,0,.2) !important;
}

/* Фоновая иконка для карточки погоды */
.weather-icon-bg[b-h0dbz9d7t1] {
    width: 60px;
    height: 60px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

/* Контейнер для информационных элементов */
.weather-info[b-h0dbz9d7t1] {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Строка информации в карточке */
.info-item[b-h0dbz9d7t1] {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 0;
    border-bottom: 1px solid #f0f0f0;
}

.info-item:last-child[b-h0dbz9d7t1] {
    border-bottom: none;
}

/* Метка информационного элемента */
.info-label[b-h0dbz9d7t1] {
    font-weight: 600;
    color: #666;
    min-width: 120px;
}

/* Значение информационного элемента */
.info-value[b-h0dbz9d7t1] {
    font-weight: 600;
    color: #333;
}

/* ==========================================================================
   ОТОБРАЖЕНИЕ ПОГОДНОЙ ИКОНКИ И ТЕМПЕРАТУРЫ
   ========================================================================== */

/* Контейнер иконки погоды с пульсирующей анимацией */
.weather-icon-display[b-h0dbz9d7t1] {
    position: relative;
    animation: iconPulse-b-h0dbz9d7t1 3s ease-in-out infinite;
}

@keyframes iconPulse-b-h0dbz9d7t1 {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

/* Изображение иконки погоды */
.weather-icon-img[b-h0dbz9d7t1] {
    width: 120px;
    height: 120px;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.1));
}

/* Контейнер отображения температуры */
.temperature-display[b-h0dbz9d7t1] {
    font-size: 3rem;
    font-weight: 700;
    color: #333;
}

/* Значение температуры (большой шрифт) */
.temp-value[b-h0dbz9d7t1] {
    font-size: 4rem;
}

/* Единица измерения температуры */
.temp-unit[b-h0dbz9d7t1] {
    font-size: 2rem;
    color: #999;
}

/* Блок "Ощущается как" */
.feels-like[b-h0dbz9d7t1] {
    font-size: 1rem;
    padding: 10px;
    background: #f8f9fa;
    border-radius: 10px;
}

/* Диапазон температур (мин/макс) */
.temp-range[b-h0dbz9d7t1] {
    padding: 8px 12px;
    background: #f8f9fa;
    border-radius: 8px;
    font-size: 0.9rem;
}

/* ==========================================================================
   КАРТОЧКИ ДАТЧИКОВ (GAUGES)
   ========================================================================== */

/* Стиль карточки датчика */
.gauge-card[b-h0dbz9d7t1] {
    border-radius: 15px;
    transition: all 0.3s ease;
}

/* Обёртка для датчика с отступами */
.gauge-wrapper[b-h0dbz9d7t1] {
    padding: 20px;
}

/* Текст в центре кругового датчика */
.gauge-center-text[b-h0dbz9d7t1] {
    text-align: center;
}

/* Значение в датчике */
.gauge-value[b-h0dbz9d7t1] {
    font-size: 2.5rem;
    font-weight: 700;
    color: #333;
    line-height: 1;
}

/* Единица измерения в датчике */
.gauge-unit[b-h0dbz9d7t1] {
    font-size: 1.2rem;
    color: #999;
    margin-top: 5px;
}

/* Значение давления */
.pressure-value[b-h0dbz9d7t1] {
    font-size: 2rem;
    font-weight: 700;
    color: #333;
}

/* Единица измерения давления */
.pressure-unit[b-h0dbz9d7t1] {
    font-size: 1rem;
    color: #999;
    margin-top: 5px;
}

/* ==========================================================================
   КАРТА МЕСТОПОЛОЖЕНИЯ
   ========================================================================== */

/* Карточка с картой */
.map-card[b-h0dbz9d7t1] {
    border-radius: 20px;
    overflow: hidden;
}

/* Кастомный маркер на карте с анимацией подпрыгивания */
.custom-marker[b-h0dbz9d7t1] {
    position: relative;
    animation: markerBounce-b-h0dbz9d7t1 2s ease-in-out infinite;
}

@keyframes markerBounce-b-h0dbz9d7t1 {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-10px); }
}

/* Иконка маркера */
.marker-icon[b-h0dbz9d7t1] {
    width: 50px;
    height: 50px;
    filter: drop-shadow(0 4px 8px rgba(0,0,0,0.3));
}

/* ==========================================================================
   КАРТОЧКА ОШИБКИ
   ========================================================================== */

/* Стиль карточки сообщения об ошибке */
.error-card[b-h0dbz9d7t1] {
    border-radius: 15px;
    border-left: 5px solid #dc3545;
}

/* Иконка ошибки */
.error-icon[b-h0dbz9d7t1] {
    flex-shrink: 0;
}

/* ==========================================================================
   ЧЕКБОКСЫ И ЭЛЕМЕНТЫ ФОРМЫ
   ========================================================================== */

/* Обёртка для чекбокса */
.checkbox-wrapper[b-h0dbz9d7t1] {
    display: flex;
    align-items: center;
}

/* ==========================================================================
   АНИМАЦИЯ ПОЯВЛЕНИЯ ЭЛЕМЕНТОВ
   ========================================================================== */

/* Анимация появления карточек при загрузке страницы */
.weather-card[b-h0dbz9d7t1],
.gauge-card[b-h0dbz9d7t1],
.input-card[b-h0dbz9d7t1] {
    animation: fadeInUp-b-h0dbz9d7t1 0.6s ease-out;
}

@keyframes fadeInUp-b-h0dbz9d7t1 {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================================================
   АДАПТИВНЫЕ СТИЛИ ДЛЯ МОБИЛЬНЫХ УСТРОЙСТВ
   ========================================================================== */

@media (max-width: 768px) {
    /* Уменьшаем размер температуры */
    .temp-value[b-h0dbz9d7t1] {
        font-size: 3rem;
    }

    /* Уменьшаем значения в датчиках */
    .gauge-value[b-h0dbz9d7t1] {
        font-size: 2rem;
    }

    /* Уменьшаем иконку в hero секции */
    .weather-icon-hero i[b-h0dbz9d7t1] {
        font-size: 5rem !important;
    }
}
/* /Components/Pages/Weather/WeatherServiceDescription.razor.rz.scp.css */
/* ============================================================================
   WeatherServiceDescription.razor.css
   Изолированные стили для компонента описания погодного сервиса
   ============================================================================ */

/* ==========================================================================
   HERO СЕКЦИЯ - Современный главный баннер
   ========================================================================== */

/* Фоновый градиент для hero секции с современными цветами */
.hero-modern[b-2piires1yc] {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #d946ef 100%);
    position: relative;
    overflow: hidden;
}

/* Анимированный паттерн фона с радиальными градиентами */
.hero-bg-pattern[b-2piires1yc] {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-image: radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 80% 80%, rgba(255, 255, 255, 0.08) 0%, transparent 50%),
                      radial-gradient(circle at 40% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 50%);
    animation: patternMove-b-2piires1yc 20s ease-in-out infinite;
}

@keyframes patternMove-b-2piires1yc {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(20px, -20px) scale(1.05); }
}

/* ==========================================================================
   БЕЙДЖИ И ЭЛЕМЕНТЫ HERO СЕКЦИИ
   ========================================================================== */

/* Современный бейдж с эффектом стекла */
.badge-modern[b-2piires1yc] {
    background: rgba(255, 255, 255, 0.15);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: white;
    font-weight: 600;
    border-radius: 50px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
}

/* Контейнер кнопок с повышенным z-index */
.hero-buttons[b-2piires1yc] {
    position: relative;
    z-index: 10;
}

/* Стилизация кнопок в hero секции */
.hero-buttons .btn[b-2piires1yc] {
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
    transition: all 0.3s ease;
    text-decoration: none;
    font-weight: 600;
}

/* Эффект подъёма при наведении */
.hero-buttons .btn:hover[b-2piires1yc] {
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

/* Контейнер списка возможностей */
.hero-features[b-2piires1yc] {
    position: relative;
    z-index: 10;
}

/* Иконка-обёртка возможности с эффектом стекла */
.feature-icon-wrapper[b-2piires1yc] {
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

/* Контейнер иконки hero секции */
.hero-icon-container[b-2piires1yc] {
    position: relative;
    z-index: 5;
}

/* ==========================================================================
   КАРТОЧКА БЕСПЛАТНОГО ДОСТУПА
   ========================================================================== */

/* Карточка с градиентной рамкой */
.free-access-card[b-2piires1yc] {
    background: linear-gradient(135deg, #ffffff 0%, #f8f9fa 100%);
    border-radius: 20px;
    padding: 2rem;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    border: 2px solid transparent;
    background-clip: padding-box;
    position: relative;
    overflow: hidden;
}

/* Градиентная рамка через псевдо-элемент */
.free-access-card[b-2piires1yc]::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, #6366f1, #8b5cf6, #d946ef);
    z-index: -1;
    margin: -2px;
    border-radius: 20px;
}

/* Бейдж с иконкой подарка и пульсирующей анимацией */
.free-icon-badge[b-2piires1yc] {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #d946ef 100%);
    border-radius: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: white;
    box-shadow: 0 8px 25px rgba(99, 102, 241, 0.3);
    animation: iconPulse-b-2piires1yc 3s ease-in-out infinite;
}

@keyframes iconPulse-b-2piires1yc {
    0%, 100% { transform: scale(1); box-shadow: 0 8px 25px rgba(99, 102, 241, 0.3); }
    50% { transform: scale(1.05); box-shadow: 0 10px 30px rgba(139, 92, 246, 0.4); }
}

/* Градиентный текст */
.gradient-text[b-2piires1yc] {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #d946ef 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Бейдж-пилюля "Без ограничений" */
.free-badge-pill[b-2piires1yc] {
    background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    color: white;
    padding: 0.75rem 1.5rem;
    border-radius: 50px;
    font-weight: 600;
    box-shadow: 0 4px 15px rgba(99, 102, 241, 0.3);
    white-space: nowrap;
}

/* ==========================================================================
   АНИМАЦИИ ИКОНОК
   ========================================================================== */

/* Анимация парения для иконки погоды */
.weather-icon-animate[b-2piires1yc] {
    animation: float-b-2piires1yc 3s ease-in-out infinite;
}

@keyframes float-b-2piires1yc {
    0%, 100% { transform: translateY(0px); }
    50% { transform: translateY(-20px); }
}

/* Контейнер плавающих иконок */
.floating-icons[b-2piires1yc] {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    pointer-events: none;
}

/* Базовый стиль плавающей иконки */
.float-icon[b-2piires1yc] {
    position: absolute;
    color: rgba(255, 255, 255, 0.6);
    animation: floatAround-b-2piires1yc 6s ease-in-out infinite;
}

/* Позиционирование плавающих иконок с разными задержками */
.float-1[b-2piires1yc] { top: 10%; left: 10%; animation-delay: 0s; }
.float-2[b-2piires1yc] { top: 20%; right: 15%; animation-delay: 1.5s; }
.float-3[b-2piires1yc] { bottom: 20%; left: 20%; animation-delay: 3s; }
.float-4[b-2piires1yc] { bottom: 10%; right: 10%; animation-delay: 4.5s; }

@keyframes floatAround-b-2piires1yc {
    0%, 100% { transform: translate(0, 0) rotate(0deg); }
    25% { transform: translate(10px, -10px) rotate(5deg); }
    50% { transform: translate(-5px, -15px) rotate(-5deg); }
    75% { transform: translate(-10px, 5px) rotate(3deg); }
}

/* ==========================================================================
   ЭФФЕКТЫ КАРТОЧЕК
   ========================================================================== */

/* Эффект подъёма при наведении на карточку */
.hover-lift[b-2piires1yc] {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover[b-2piires1yc] {
    transform: translateY(-10px);
    box-shadow: 0 1rem 3rem rgba(0,0,0,.175) !important;
}

/* Пульсирующая анимация для иконок в карточках */
.icon-pulse[b-2piires1yc] {
    animation: pulse-b-2piires1yc 2s ease-in-out infinite;
}

@keyframes pulse-b-2piires1yc {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.05); }
}

/* ==========================================================================
   СЕКЦИЯ FAQ (ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ)
   ========================================================================== */

/* Заголовок элемента FAQ */
.faq-header[b-2piires1yc] {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
}

/* Контент ответа FAQ */
.faq-content[b-2piires1yc] {
    padding: 1rem 0;
}

/* Стилизация кода в ответах FAQ */
.faq-content code[b-2piires1yc] {
    background: #f8f9fa;
    padding: 2px 6px;
    border-radius: 3px;
    color: #e83e8c;
    font-family: 'Courier New', monospace;
}
