/* ============================================================
   Custom CSS for iBatyr WAF Documentation
   Стилизация admonition-блоков и code-blocks
   ============================================================ */

/* --- Admonitions (Примечания, Предупреждения и т.д.) --- */

/* Общие стили для всех admonition */
.admonition {
    border-radius: 6px;
    border: none;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
    margin: 1.5em 0;
    padding: 0;
    overflow: hidden;
}

.admonition .admonition-title {
    font-weight: 600;
    font-size: 0.95em;
    padding: 8px 16px;
    margin: 0;
    border: none;
}

.admonition > p,
.admonition > ul,
.admonition > ol,
.admonition > div {
    padding: 8px 16px;
}

.admonition > p:last-child {
    padding-bottom: 12px;
}

/* Note — синий (Примечание) */
.admonition.note {
    background-color: #e8f0fe;
    border-left: 4px solid #4a86c8;
}

.admonition.note > .admonition-title {
    background-color: #4a86c8;
    color: #ffffff;
}

.admonition.note > .admonition-title::before {
    content: "\f05a  ";
    font-family: "FontAwesome";
}

/* Warning — оранжевый (Внимание) */
.admonition.warning {
    background-color: #fff3e0;
    border-left: 4px solid #e69138;
}

.admonition.warning > .admonition-title {
    background-color: #e69138;
    color: #ffffff;
}

.admonition.warning > .admonition-title::before {
    content: "\f071  ";
    font-family: "FontAwesome";
}

/* Attention — оранжево-красный */
.admonition.attention {
    background-color: #fff3e0;
    border-left: 4px solid #e69138;
}

.admonition.attention > .admonition-title {
    background-color: #e69138;
    color: #ffffff;
}

/* Caution — жёлтый */
.admonition.caution {
    background-color: #fffde7;
    border-left: 4px solid #f9a825;
}

.admonition.caution > .admonition-title {
    background-color: #f9a825;
    color: #ffffff;
}

/* Danger — красный */
.admonition.danger {
    background-color: #fde8e8;
    border-left: 4px solid #cc0000;
}

.admonition.danger > .admonition-title {
    background-color: #cc0000;
    color: #ffffff;
}

/* Tip — зелёный (Совет) */
.admonition.tip {
    background-color: #e6f4ea;
    border-left: 4px solid #34a853;
}

.admonition.tip > .admonition-title {
    background-color: #34a853;
    color: #ffffff;
}

/* Important — фиолетовый (Важно) */
.admonition.important {
    background-color: #f3e8fd;
    border-left: 4px solid #7c3aed;
}

.admonition.important > .admonition-title {
    background-color: #7c3aed;
    color: #ffffff;
}

/* Hint — голубой */
.admonition.hint {
    background-color: #e0f7fa;
    border-left: 4px solid #00acc1;
}

.admonition.hint > .admonition-title {
    background-color: #00acc1;
    color: #ffffff;
}

/* See Also */
.admonition.seealso {
    background-color: #e8f5e9;
    border-left: 4px solid #66bb6a;
}

.admonition.seealso > .admonition-title {
    background-color: #66bb6a;
    color: #ffffff;
}


/* --- Тема оформления: голубой акцент RTD -> оранжевый --- */

:root {
    --brand-accent: #cc5500;
}

.wy-side-nav-search,
.wy-side-nav-search img,
.wy-nav-top,
.wy-nav-top img {
    background-color: var(--brand-accent) !important;
}

.wy-side-nav-search input[type="text"] {
    border-color: var(--brand-accent);
}

a,
.wy-nav .wy-menu-vertical header,
.rst-content a code,
.rst-content a tt,
.rst-content .wy-alert-neutral.admonition a,
.rst-content .wy-alert-neutral.admonition-todo a,
.rst-content .wy-alert-neutral.attention a,
.rst-content .wy-alert-neutral.caution a,
.rst-content .wy-alert-neutral.danger a,
.rst-content .wy-alert-neutral.error a,
.rst-content .wy-alert-neutral.hint a,
.rst-content .wy-alert-neutral.important a,
.rst-content .wy-alert-neutral.note a,
.rst-content .wy-alert-neutral.seealso a,
.rst-content .wy-alert-neutral.tip a,
.rst-content .wy-alert-neutral.warning a,
.wy-alert.wy-alert-neutral a,
.rst-versions a,
.wy-text-info,
.wy-inline-validate.wy-inline-validate-info .wy-input-context {
    color: var(--brand-accent);
}

.btn-info,
.wy-tray-container li.wy-tray-item-info {
    background-color: var(--brand-accent) !important;
}

.btn-link {
    color: var(--brand-accent);
}

.wy-nav .wy-menu-vertical a:hover,
.wy-menu-vertical a:hover,
.wy-menu-vertical a:active,
.wy-dropdown-menu > dd > a:hover,
.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover {
    background-color: var(--brand-accent) !important;
    color: #fff;
}


/* --- Lightbox для картинок (клик по картинке открывает popup, а не отдельную страницу) --- */

.rst-content a.reference.internal:has(img) {
    cursor: zoom-in;
}

.ibatyr-lightbox-overlay {
    display: none;
    position: fixed;
    z-index: 10000;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.85);
    text-align: center;
}

.ibatyr-lightbox-overlay.ibatyr-lightbox-open {
    display: flex;
    align-items: center;
    justify-content: center;
}

.ibatyr-lightbox-overlay .ibatyr-lightbox-img {
    max-width: 90vw;
    max-height: 90vh;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.5);
    cursor: default;
}

.ibatyr-lightbox-overlay .ibatyr-lightbox-close {
    position: fixed;
    top: 16px;
    right: 32px;
    color: #fff;
    font-size: 2.5em;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    user-select: none;
}


/* --- Code Blocks --- */

/* Стилизация блоков кода */
div.highlight {
    background: #f0f4e8 !important;
    border: 1px solid #d4dcc4;
    border-radius: 4px;
    margin: 1em 0;
}

div.highlight pre {
    background: transparent !important;
    padding: 12px 16px;
    font-size: 0.9em;
    line-height: 1.5;
    overflow-x: auto;
}

/* Кнопка копирования (sphinx-copybutton) */
button.copybtn {
    top: 4px !important;
    right: 4px !important;
    opacity: 0.4;
    transition: opacity 0.2s ease;
}

button.copybtn:hover {
    opacity: 1;
}

/* Inline code */
code.literal {
    background-color: #f0f0f0;
    border: 1px solid #ddd;
    border-radius: 3px;
    padding: 1px 5px;
    font-size: 0.9em;
    color: #333;
}


/* --- Центрирование рисунков и подписей (как в научных журналах) --- */

/* 1. Общее правило для изображений */
.rst-content img {
    max-width: 100%;
    height: auto;
}

/* 2. Инлайн-иконки и изображения в списках и строках текста */
.rst-content li img,
.rst-content ol img,
.rst-content ul img,
.rst-content p img.ibatyr-inline-img,
.rst-content img.ibatyr-inline-img {
    display: inline-block !important;
    margin: 0 4px !important;
    vertical-align: middle !important;
    max-width: 100% !important;
}

.rst-content li,
.rst-content ol,
.rst-content ul {
    text-align: left !important;
}

/* 3. Крупные схемы и рисунки (figure / standalone) */
.rst-content figure,
.rst-content .figure,
.rst-content div.figure,
.rst-content figure.align-center,
.rst-content figure.align-default,
.rst-content div.align-center,
.rst-content p.ibatyr-figure-p {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

.rst-content figure img,
.rst-content .figure img,
.rst-content img.ibatyr-figure-img {
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 100% !important;
    height: auto !important;
}

/* 4. Подписи к рисункам, схемам */
.rst-content figcaption,
.rst-content p.caption,
.rst-content .caption-text,
.rst-content .ibatyr-caption,
.rst-content p.ibatyr-caption {
    text-align: center !important;
    font-size: 0.95em !important;
    color: #444444 !important;
    margin-top: 8px !important;
    margin-bottom: 24px !important;
    display: block !important;
    margin-left: auto !important;
    margin-right: auto !important;
}


/* --- Стилизация таблиц (Tables) --- */

.rst-content table.docutils,
.rst-content table.align-default,
.rst-content table.list-table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 1.5em 0 !important;
    border: 1px solid #e1e4e5 !important;
    box-shadow: none !important;
    text-align: left !important;
}

.rst-content table.docutils th,
.rst-content table.docutils td,
.rst-content table.align-default th,
.rst-content table.align-default td {
    text-align: left !important;
    padding: 8px 12px !important;
    border: 1px solid #e1e4e5 !important;
    font-size: 0.9em !important;
    line-height: 1.5 !important;
    vertical-align: top !important;
    background-color: transparent !important;
}

/* Сброс внутренних рамок и отступов у параграфов внутри ячеек таблиц */
.rst-content table.docutils td p,
.rst-content table.align-default td p,
.rst-content table.docutils th p,
.rst-content table.align-default th p {
    text-align: left !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    font-size: 1em !important;
}

.rst-content table.docutils th,
.rst-content table.align-default th,
.rst-content table.docutils thead tr th {
    background-color: #f3f5f7 !important;
    color: #222222 !important;
    font-weight: 600 !important;
    text-align: left !important;
    border-bottom: 2px solid #d1d5d8 !important;
}

.rst-content table.docutils tr:nth-child(even),
.rst-content table.align-default tr:nth-child(even) {
    background-color: #fbfbfb !important;
}

.rst-content table.docutils tr:hover,
.rst-content table.align-default tr:hover {
    background-color: #f5f8fa !important;
}

/* Подписи к таблицам (Таблица 1 ...) */
.rst-content p.ibatyr-table-caption {
    text-align: left !important;
    font-size: 0.95em !important;
    font-weight: bold !important;
    color: #333333 !important;
    margin-top: 16px !important;
    margin-bottom: 8px !important;
    display: block !important;
    background: transparent !important;
}

/* Сброс жёлтого фона выделения поиска */
.rst-content span.highlighted,
.rst-content mark {
    background-color: transparent !important;
    color: inherit !important;
}


/* ============================================================
   :  " iBatyr",  ,
     ( docs.ibatyr.kz)
   ============================================================ */

/* --- 1.   (5.6 / 2.15)     --- */
.wy-side-nav-search .version {
    display: none !important;
}

/* --- 2.  " iBatyr"    --- */
.ibatyr-home-link {
    display: block;
    margin: 0;
    padding: 12px 1.618em;
    background-color: rgba(0, 0, 0, 0.2);
    color: #fff !important;
    font-weight: 600;
    font-size: 0.9em;
    text-decoration: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
    transition: background-color 0.2s ease;
}
.ibatyr-home-link:hover {
    background-color: var(--brand-accent, #cc5500) !important;
    color: #fff !important;
}

/* --- 3. /     --- */
.wy-side-nav-search {
    padding-top: 0.6em;
    padding-bottom: 0.6em;
}
.wy-side-nav-search > div.version {
    margin-top: 0;
}


/* Reorder sidebar header elements */
.wy-side-nav-search {
    display: flex !important;
    flex-direction: column !important;
}
.wy-side-nav-search > .ibatyr-back-wrapper {
    order: -1 !important;
}
.wy-side-nav-search > a.icon-home::before {
    display: none !important;
}


/* Back link icon margin and font size matching iBatyr title */
.wy-side-nav-search .ibatyr-back-menu-link.icon-home::before,
.wy-side-nav-search .ibatyr-back-menu-link.icon::before {
    margin-right: 8px !important;
}
.wy-side-nav-search .ibatyr-back-menu-link {
    font-size: 16px !important;
    font-weight: 700 !important;
}
