/* =============================================================
    Перезапись предупреждающих надписей (NOTE/WARNING/...)
    Предупреждающая надпись не должна наследовать шрифт Font Awesome
    Поэтому здесь вручную переопределяется астровский шрифт PT Astra Fact
   ============================================================= */

.doc .admonitionblock td.icon i::after {
    font-family: var(--body-font-family, "PT Astra Fact"), sans-serif;
    font-weight: var(--admonition-label-font-weight, 700);
}

/* =============================================================
    Перезапись моноширинного кода на новый дизайн
   ============================================================= */

/* Определение переменных для светлой темы */
:root[data-theme="light"] .doc {
    --code-background: rgba(0, 0, 0, 0.045);
    --code-border-color: rgba(0, 0, 0, 0.12);
    --code-font-color: #222;
}

/* Определение переменных для темной темы */
:root[data-theme="dark"] .doc {
    --code-background: rgba(255, 255, 255, 0.10);
    --code-border-color: rgba(255, 255, 255, 0.18);
    --code-font-color: rgba(255, 255, 255, 0.92);
}

/* Настройка базового стиля моноширинного кода - только в текстовых элементах (не в ссылках) */
.doc :where(p, li, td, th, dd, dt, figcaption) code:not(a code):not(pre code) {
    display: inline-block;
    vertical-align: baseline;

    padding: 0.08em 0.26em;
    margin: 0.06em 0;
    border: 1px solid var(--code-border-color);
    border-radius: 0.28rem;
    background: var(--code-background);
    color: var(--code-font-color);
    font-size: 0.95em;
    line-height: 1.25;

    /* переносы, чтобы длинный код не ломал верстку */
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;

    /* перенос фона/рамки */
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone;
    box-shadow: none;
}

/* Зазор между двумя соседними моноширинными текстами */
.doc :where(p, li, td, th, dd, dt, figcaption) code:not(a code):not(pre code) + code:not(a code):not(pre code) {
    margin-left: 0.18em;
}

/* Возвращаем обычный текст ссылки внутри ссылки */
.doc a code {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: inherit !important;
    font-size: inherit !important;
    white-space: inherit !important; /* чтобы длинные куски не ломали ссылку */
    display: inline;                 /* как обычный текст */
}

/* Страховка - не трогаем подсветку/блоки кода */
.doc pre code,
.doc .listingblock code {
    display: inherit;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    white-space: pre;
    overflow-wrap: normal;
    word-break: normal;
    -webkit-box-decoration-break: slice;
    box-decoration-break: slice;
}

/* =============================================================
    Глобальные исправления дизайна (admonition, source, таблицы)
    Цель: предотвратить горизонтальное переполнение контейнера
    И конфликт с правым оглавлением (TOC)
   ============================================================= */

/* Admonition (блоки NOTE, WARNING и др.) */
/* Фикс поведения admonition в таблицах */
.doc .admonitionblock > table {
    width: 100%;
    max-width: 100%;
    table-layout: auto;
    box-sizing: border-box;
}

/* Иконка адмонишенов с надписями не переносится и не сжимается */
.doc .admonitionblock td.icon {
    white-space: nowrap;
    vertical-align: top;
}

/* Контентная часть адмонишенов принудительно выравнивается по левому краю */
.doc .admonitionblock td.content {
    text-align: left;
    vertical-align: top;
}

/* Длинные строки в блоке кода (source) внутри admonition должны скроллиться, а не вылезать за край */
.doc .admonitionblock td.content pre {
    max-width: 100%;
    overflow-x: auto;
    box-sizing: border-box;
}

/* Внутри pre сохраняем оригинальное форматирование (пробелы, переносы строк) */
.doc .admonitionblock td.content pre code {
    white-space: pre;
    overflow-wrap: normal;
    word-break: normal;
}


/* =============================================================
   Настройка многострочных блоков кода source (listingblock, literalblock)
   ============================================================= */
/* Аналогично admonition: не даем pre выходить за границы */
.doc .listingblock pre,
.doc .literalblock pre {
    max-width: 100%;
    overflow-x: auto;
    box-sizing: border-box;
}

/* =============================================================
   Исправления для таблиц с исходным кодом (tableblock)
   ============================================================= */
/* Включаем fixed-layout для таблиц в .adoc, чтобы ячейки подчинялись заданной ширине колонок */
.doc .tableblock > table {
    width: 100%;
    table-layout: fixed;
}

/* Разрешаем ячейкам сжиматься - это необходимо для работы скролла внутри таблицы */
.doc .tableblock td,
.doc .tableblock th {
    min-width: 0;
}

/* Логика работы source кода внутри ячейки: не шире ячейки и при необходимости - скролл */
.doc .tableblock pre {
    max-width: 100%;
    width: 100%;
    overflow-x: auto;
    box-sizing: border-box;
}

/* Перенос кода внутри таблицы, white-space: pre-wrap - позволяет переносить длинные строки, сохраняя пробелы. */
.doc .tableblock pre code {
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    word-break: break-word;
}

/* Запасной вариант для таблиц, у которых нет colgroup. Задаем примерную ширину первой колонки, чтобы остальные подстроились. */
.doc .tableblock td:first-child,
.doc .tableblock th:first-child {
    width: 9.5rem;
}

/* =========================================================
   Настройка цвета фона для админишенов (NOTE/WARNING/IMPORTANT).
   Другие адмонишены не используются
   ========================================================= */

/* Настройка общих подходов - темный текст для светлой темы и задание рамки */
.doc .admonitionblock.note td.content,
.doc .admonitionblock.warning td.content,
.doc .admonitionblock.important td.content {
    border-radius: 8px;
    color: #1f2937;
}

/* Цвет для NOTE - мягкий синий */
.doc .admonitionblock.note td.content {
    background: #eaf4ff;
}
.doc .admonitionblock.note td.icon i::after {
    font-family: var(--body-font-family, "PT Astra Fact"), sans-serif;
    font-weight: var(--admonition-label-font-weight, 700);
    background: #2b7de9;
    color: #fff;
    border-radius: 999px;
    padding: 0.18em 0.7em;
    display: inline-block;
    box-shadow: none;
}

/* Цвет для WARNING - мягкий желтый */
.doc .admonitionblock.warning td.content {
    background: #fff4d6;
}
.doc .admonitionblock.warning td.icon i::after {
    font-family: var(--body-font-family, "PT Astra Fact"), sans-serif;
    font-weight: var(--admonition-label-font-weight, 700);
    background: #f59e0b;
    color: #fff;
    border-radius: 999px;
    padding: 0.18em 0.7em;
    display: inline-block;
    box-shadow: none;
}

/* Цвет для IMPORTANT - мягкий красный */
.doc .admonitionblock.important td.content {
    background: #ffeaea;
}
.doc .admonitionblock.important td.icon i::after {
    font-family: var(--body-font-family, "PT Astra Fact"), sans-serif;
    font-weight: var(--admonition-label-font-weight, 700);
    background: #e03131;
    color: #fff;
    border-radius: 999px;
    padding: 0.18em 0.7em;
    display: inline-block;
    box-shadow: none;
}

/* Настройки адмонишенов для темной темы - темный текст на светлых плашках */
:root[data-theme="dark"] .doc .admonitionblock.note td.content,
:root[data-theme="dark"] .doc .admonitionblock.warning td.content,
:root[data-theme="dark"] .doc .admonitionblock.important td.content {
    color: #111827;
}

:root[data-theme="dark"] .doc .admonitionblock.note td.content {
    background: #dbeafe;
}
:root[data-theme="dark"] .doc .admonitionblock.warning td.content {
    background: #fef3c7;
}
:root[data-theme="dark"] .doc .admonitionblock.important td.content {
    background: #fee2e2;
}

/* Исправление дизайна рамок у Warning и Important. У Note все ок по умолчанию */
.doc .admonitionblock table,
.doc .admonitionblock td,
.doc .admonitionblock th {
    border: none !important;
}
.doc .admonitionblock td.content {
    border: none !important;
}

/* Задаем контрастный код внутри уже раскрашенных admonition  */
.doc .admonitionblock code:not(pre code):not(a code) {
    color: #1f2937 !important;
    background: rgba(0, 0, 0, 0.06) !important;
    border-color: rgba(0, 0, 0, 0.15) !important;
}
:root[data-theme="dark"] .doc .admonitionblock code:not(pre code):not(a code) {
    color: #111827 !important;
    background: rgba(0, 0, 0, 0.08) !important;
    border-color: rgba(0, 0, 0, 0.2) !important;
}
.doc .admonitionblock pre code {
    color: inherit;
    background: transparent;
}

/* =========================================================
   Задаем единый стиль для всех меток (NOTE, WARNING, IMPORTANT)
   ========================================================= */
.doc .admonitionblock td.icon i::after {
    font-family: var(--body-font-family, "PT Astra Fact"), sans-serif;
    font-weight: var(--admonition-label-font-weight, 700);
    color: #fff;
    border-radius: 999px;
    padding: 0.18em 0.7em;
    display: inline-block;
    box-shadow: none;
    border: none;
    background-clip: border-box;
    -webkit-font-smoothing: antialiased;
}

/* Для NOTE */
.doc .admonitionblock.note td.icon i::after {
    background: #2b7de9;
}

/* Для WARNING */
.doc .admonitionblock.warning td.icon i::after {
    background: #f59e0b;
}

/* Для IMPORTANT */
.doc .admonitionblock.important td.icon i::after {
    background: #e03131;
}

/* Полностью очищаем ячейку иконки от любых фонов и рамок */
.doc .admonitionblock td.icon {
    background: transparent !important;
    border: none !important;
    padding: 0 !important; /* если нужно убрать лишние отступы */
}

/* Дополнительно: убираем возможные артефакты у самой иконки с астровским шрифтом */
.doc .admonitionblock td.icon i {
    border: none !important;
    background: transparent !important;
}

/* =========================================================
   Поддержка системной темы - весь дизайн адмонишенов еще раз для системной темы
   ========================================================= */
:root:not([data-theme]) .doc {
    --code-background: rgba(0, 0, 0, 0.045);
    --code-border-color: rgba(0, 0, 0, 0.12);
    --code-font-color: #222;
}

:root:not([data-theme]) .doc .admonitionblock.note td.content,
:root:not([data-theme]) .doc .admonitionblock.warning td.content,
:root:not([data-theme]) .doc .admonitionblock.important td.content {
    color: #1f2937;
}

:root:not([data-theme]) .doc .admonitionblock.note td.content {
    background: #eaf4ff;
}
:root:not([data-theme]) .doc .admonitionblock.warning td.content {
    background: #fff4d6;
}
:root:not([data-theme]) .doc .admonitionblock.important td.content {
    background: #ffeaea;
}

:root[data-theme="system"] .doc {
    --code-background: rgba(0, 0, 0, 0.045) !important;
    --code-border-color: rgba(0, 0, 0, 0.12) !important;
    --code-font-color: #222 !important;
}

:root[data-theme="system"] .doc .admonitionblock.note td.content,
:root[data-theme="system"] .doc .admonitionblock.warning td.content,
:root[data-theme="system"] .doc .admonitionblock.important td.content {
    color: #1f2937 !important;
}

:root[data-theme="system"] .doc .admonitionblock.note td.content {
    background: #eaf4ff !important;
}
:root[data-theme="system"] .doc .admonitionblock.warning td.content {
    background: #fff4d6 !important;
}
:root[data-theme="system"] .doc .admonitionblock.important td.content {
    background: #ffeaea !important;
}

/* =========================================================
   Передвижение по страницам (пагинация, Вперёд/Назад) - расширяем для англ. (Back/Forward)
   ========================================================= */
/* Пагинация: RU */
.nav-container[data-component="ru-connect-doc"] ~ main.article nav.pagination .prev::before {
    content: "Назад" !important;
}

.nav-container[data-component="ru-connect-doc"] ~ main.article nav.pagination .next::before {
    content: "Вперёд" !important;
}

/* Пагинация: EN */
.nav-container[data-component="en-connect-doc"] ~ main.article nav.pagination .prev::before {
    content: "Back" !important;
}

.nav-container[data-component="en-connect-doc"] ~ main.article nav.pagination .next::before {
    content: "Forward" !important;
}

/* =========================================================
   Фикс белой полоски в navbar
   ========================================================= */
:root[data-theme="light"] {
    --navbar-bg-fix: #ffffff;
}

:root[data-theme="dark"] {
    --navbar-bg-fix: #0f1724;
}

.header .navbar {
    background: var(--navbar-bg-fix) !important;
}