﻿/* =====================================================================
   Callouts (Custom Callout Types & "NoPreview")
   ---------------------------------------------------------------------
   Настройка оформления callout-блоков: задаёт цвета и иконки для пользовательских типов callout (например, "theorem", "proof", "lemma" и др.).
   Также определяет специальный callout "NoPreview" для скрытия определённого содержимого в опубликованном виде (Publish).
   ===================================================================== */

.callout[data-callout="theoreme"] {
    --callout-color: 52, 143, 235;
    --callout-icon: type-outline;
}

.callout[data-callout="coins"] {
    --callout-color: 252, 219, 146;
    --callout-icon: arrow-big-right;
}

.callout[data-callout="proof"] {
    --callout-color: 118, 218, 222;
    --callout-icon: file-type-2;
}

.callout[data-callout="lemma"] {
    --callout-color: 227, 109, 102;
    --callout-icon: lightbulb;
}

.callout[data-callout="formula"] {
    --callout-color: 55, 161, 45;
    --callout-icon: badge-swiss-franc;
}

.callout[data-callout="explanation"] {
    --callout-color: 252, 187, 242;
    --callout-icon: eye;
}

.callout[data-callout="properties"] {
    --callout-color: 252, 118, 40;
    --callout-icon: pi;
}

.callout[data-callout="algorithm"] {
    --callout-color: 237, 38, 141;
    --callout-icon: spell-check-2;
}

.callout[data-callout="problem"] {
    --callout-color: 132, 153, 79;
    --callout-icon: server-crash;
}


.callout[data-callout="solution"] {
    --callout-color: 252, 181, 59;
    --callout-icon: lightbulb;
}

.callout[data-callout="answer"] {
    --callout-color: 180, 82, 83;
    --callout-icon: award;
}


.callout[data-callout="def"] {
    --callout-color: 83, 113, 136;
    --callout-icon: fingerprint;
}

.callout[data-callout="complexity"] {
    --callout-color: 245, 118, 66;
    --callout-icon: armchair;
}

.callout[data-callout="quest"] {
    --callout-color: 230, 217, 46;
    --callout-icon: circle-question-mark;
}

.callout[data-callout="code"] {
    --callout-color: 135, 199, 141;
    --callout-icon: code;
}




/* --- Special callout for hiding content (NoPreview) --- */
.callout[data-callout="nopreview"] {
    --callout-color: transparent;
    --callout-icon: none;
    border: none !important;
    padding: 0 !important;
}

    .callout[data-callout="nopreview"] .callout-icon,
    .callout[data-callout="nopreview"] .callout-title {
        display: none !important;
    }

    .callout[data-callout="nopreview"] .callout-content {
        margin: 0 !important;
    }

/* (Optional) Also hide "NoPreview" callout in embeds and hover previews */
.markdown-embed-content .nopreview,
.markdown-embed-content .callout[data-callout="nopreview"] {
    display: none !important;
}

.popover.hover-popover.is-loaded .callout[data-callout="nopreview"] {
    display: none !important;
}


/* =====================================================================
   Grid Layout (Callout-grid 2.1)
   ---------------------------------------------------------------------
   Позволяет отображать содержимое в виде адаптивной сетки с помощью callout-блоков в Obsidian.
   Правила написаны без вложенности CSS для совместимости с Obsidian Publish (минификатор удаляет вложенные селекторы).
   Основано на исходном сниппете "Callout-grid 2.1" автора Wendystraite.
   Ссылка на оригинал: https://forum.obsidian.md/t/css-snippet-to-display-markdown-in-grids-without-html/95117
   ===================================================================== */

/* -------------------------------------------------
   0. Custom properties (you can tweak them)
   -------------------------------------------------*/
body {
    --x-grid-padding: 0.6em;
    --x-grid-gap: 0.8em;
    --x-grid-border-opacity: 0.6; /* 0–1 (opacity of item borders) */
    --x-grid-bg-opacity: 0.6; /* 0–1 (opacity of item background) */
    --x-grid-border-width: 1px;
    --x-grid-border-radius: var(--callout-radius, 3px);
    --x-grid-border-color: var(--background-tertiary);
    --x-grid-bg-color: var(--background-secondary);
    --x-grid-margin-bottom: 2rem;
}

/* -------------------------------------------------
   1. Generic reset for every `grid` callout
   -------------------------------------------------*/
.el-div:has(.callout[data-callout*="grid"]) + .el-div {
    /* add margin between successive grid callouts */
    margin-block-start: var(--x-grid-padding);
}

/* remove padding/border/bg from the grid callout wrapper */
.callout[data-callout*="grid"],
.callout[data-callout*="grid"] > .callout-content {
    padding: 0;
    margin: 0;
    border: 0;
    background-color: transparent;
}

/* live-preview specific fix (not relevant for Publish site) */
.markdown-source-view.mod-cm6 .callout-content .callout[data-callout*="grid"] {
    margin: 0;
}

/* hide grid callout titles – only keep child items */
.callout[data-callout*="grid"] > .callout-title {
    display: none;
}

/* -------------------------------------------------
   2. Display the grid itself
   -------------------------------------------------*/
.callout[data-callout*="grid"]:not([data-callout*="grid-item"], [data-callout*="grid-auto"]) > .callout-content {
    display: grid;
}

/* by default, lists/paragraphs inside callouts have large margins – reduce them */
.callout[data-callout*="grid"] > .callout-content > [data-callout="grid-item"] > .callout-content > :is(ul, ol, p) {
    margin-block: var(--x-grid-padding) !important;
}

/* -------------------------------------------------
   3. Same-width versus auto sizing
   -------------------------------------------------*/
.callout[data-callout*="grid"] {
    --x-grid-sizing: auto; /* default – columns sized by content */
}

    .callout[data-callout*="grid"]:is([data-callout*="same-width"], [data-callout*="grid-card"]) {
        --x-grid-sizing: 1fr; /* make every column equal width */
    }

/* -------------------------------------------------
   4. Fixed number of columns (`grid-3`, `grid-4`, …)
   -------------------------------------------------*/
.callout[data-callout*="grid-1"] > .callout-content {
    grid-template-columns: var(--x-grid-sizing);
}

.callout[data-callout*="grid-2"] > .callout-content {
    grid-template-columns: repeat(2, var(--x-grid-sizing));
}

.callout:is([data-callout*="grid-3"], [data-callout*="grid-card"]) > .callout-content {
    grid-template-columns: repeat(3, var(--x-grid-sizing));
}

.callout[data-callout*="grid-4"] > .callout-content {
    grid-template-columns: repeat(4, var(--x-grid-sizing));
}

.callout[data-callout*="grid-5"] > .callout-content {
    grid-template-columns: repeat(5, var(--x-grid-sizing));
}

.callout[data-callout*="grid-6"] > .callout-content {
    grid-template-columns: repeat(6, var(--x-grid-sizing));
}

.callout[data-callout*="grid-7"] > .callout-content {
    grid-template-columns: repeat(7, var(--x-grid-sizing));
}

.callout[data-callout*="grid-8"] > .callout-content {
    grid-template-columns: repeat(8, var(--x-grid-sizing));
}

/* -------------------------------------------------
   5. Responsive variants (tablet / mobile)
   -------------------------------------------------*/
@media screen and (min-width: 750px) and (max-width: 1000px) {
    .callout[data-callout*="grid-tablet-1"] > .callout-content {
        grid-template-columns: var(--x-grid-sizing);
    }

    .callout:is([data-callout*="grid-tablet-2"], [data-callout*="grid-card"]) > .callout-content {
        grid-template-columns: repeat(2, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-tablet-3"] > .callout-content {
        grid-template-columns: repeat(3, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-tablet-4"] > .callout-content {
        grid-template-columns: repeat(4, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-tablet-5"] > .callout-content {
        grid-template-columns: repeat(5, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-tablet-6"] > .callout-content {
        grid-template-columns: repeat(6, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-tablet-7"] > .callout-content {
        grid-template-columns: repeat(7, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-tablet-8"] > .callout-content {
        grid-template-columns: repeat(8, var(--x-grid-sizing));
    }
}

@media screen and (max-width: 750px) {
    .callout:is([data-callout*="grid-mobile-1"], [data-callout*="grid-card"]) > .callout-content {
        grid-template-columns: var(--x-grid-sizing);
    }

    .callout[data-callout*="grid-mobile-2"] > .callout-content {
        grid-template-columns: repeat(2, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-mobile-3"] > .callout-content {
        grid-template-columns: repeat(3, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-mobile-4"] > .callout-content {
        grid-template-columns: repeat(4, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-mobile-5"] > .callout-content {
        grid-template-columns: repeat(5, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-mobile-6"] > .callout-content {
        grid-template-columns: repeat(6, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-mobile-7"] > .callout-content {
        grid-template-columns: repeat(7, var(--x-grid-sizing));
    }

    .callout[data-callout*="grid-mobile-8"] > .callout-content {
        grid-template-columns: repeat(8, var(--x-grid-sizing));
    }
}

/* -------------------------------------------------
   6. Auto-flow layout (`grid-auto`)
   -------------------------------------------------*/
.callout[data-callout*="grid-auto"] > .callout-content {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

/* -------------------------------------------------
   7. Modifiers for grid items (padding, bg, border, gap…)
   -------------------------------------------------*/

/* Padding for grid items inside padded/card grids */
.callout[data-callout*="grid"]:is([data-callout*="padding"], [data-callout*="card"]) > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
    padding: 0 var(--x-grid-padding);
}

/* Background for grid item callouts */
.callout[data-callout*="grid"]:is([data-callout*="bg"], [data-callout*="card"]) > .callout-content > .callout[data-callout*="grid-item"] {
    background-color: transparent !important;
}

    .callout[data-callout*="grid"]:is([data-callout*="bg"], [data-callout*="card"]) > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
        background-color: var(--x-grid-bg-color) !important;
    }

/* Border for grid items */
.callout[data-callout*="grid"]:is([data-callout*="border"], [data-callout*="card"]) > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
    border-radius: var(--x-grid-border-radius, 0);
    border: var(--x-grid-border-width) solid var(--x-grid-border-color) !important;
}

/* Gap between grid items */
.callout[data-callout*="grid"]:is([data-callout*="gap"], [data-callout*="card"]) > .callout-content {
    gap: var(--x-grid-gap);
}

/* Make all items in each row the same height */
.callout[data-callout*="grid"]:is([data-callout*="same-height"], [data-callout*="grid-card"]) > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
    height: 100%;
    width: 100%;
}

/* Make all rows have equal height (each row is tallest item height) */
.callout[data-callout*="grid"][data-callout*="same-height-all"] > .callout-content {
    grid-auto-rows: 1fr;
}

/* Alignment helpers (center / right) for content inside grid items */
.callout[data-callout*="grid"][data-callout*="center"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
    text-align: center;
}

    .callout[data-callout*="grid"][data-callout*="center"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content > :is(.callout, pre, [class*="block-language"]) {
        text-align: left;
    }

    .callout[data-callout*="grid"][data-callout*="center"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content > :is(ul, ol) {
        display: table;
        margin-inline: auto;
    }

.callout[data-callout*="grid"][data-callout*="right"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
    text-align: right;
}

    .callout[data-callout*="grid"][data-callout*="right"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content > :is(.callout, pre, [class*="block-language"]) {
        text-align: left;
    }

    .callout[data-callout*="grid"][data-callout*="right"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content > :is(ul, ol) {
        display: table;
        margin-left: auto;
    }

/* Vertical align helpers for grid items */
.callout[data-callout*="grid"][data-callout*="middle"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
    display: flex;
    align-items: center;
}

.callout[data-callout*="grid"][data-callout*="bottom"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
    display: flex;
    align-items: flex-end;
}

.callout[data-callout*="grid"][data-callout*="top"] > .callout-content > .callout[data-callout*="grid-item"] > .callout-content {
    display: flex;
    align-items: baseline;
}

/* -------------------------------------------------
   8. Show/hide grids by device width
   -------------------------------------------------*/
@media screen and (min-width: 1000px) {
    .callout[data-callout*="grid"]:is([data-callout*="hide-on-pc"], [data-callout*="tablet-only"], [data-callout*="mobile-only"]) {
        display: none;
    }
}

@media screen and (min-width: 750px) and (max-width: 1000px) {
    .callout[data-callout*="grid"]:is([data-callout*="hide-on-tablet"], [data-callout*="pc-only"], [data-callout*="mobile-only"]) {
        display: none;
    }
}

@media screen and (max-width: 750px) {
    .callout[data-callout*="grid"]:is([data-callout*="hide-on-mobile"], [data-callout*="tablet-only"], [data-callout*="pc-only"]) {
        display: none;
    }
}

/* -------------------------------------------------
   9. Optional helper for code-block background blending
   -------------------------------------------------*/
body {
    --callout-blend-mode: normal !important;
}

/* -------------------------------------------------
   10. Column-width helpers (`all-col-*` and `col-*`)
   -------------------------------------------------*/
.callout[data-callout*="grid"]:not([data-callout*="grid-item"]) {
    /* default column sizes for 8 potential columns (modifiable via classes below) */
    --x-grid-template-columns-all-col-size: auto;
    --x-grid-template-columns-col-1-size: var(--x-grid-template-columns-all-col-size);
    --x-grid-template-columns-col-2-size: var(--x-grid-template-columns-all-col-size);
    --x-grid-template-columns-col-3-size: var(--x-grid-template-columns-all-col-size);
    --x-grid-template-columns-col-4-size: var(--x-grid-template-columns-all-col-size);
    --x-grid-template-columns-col-5-size: var(--x-grid-template-columns-all-col-size);
    --x-grid-template-columns-col-6-size: var(--x-grid-template-columns-all-col-size);
    --x-grid-template-columns-col-7-size: var(--x-grid-template-columns-all-col-size);
    --x-grid-template-columns-col-8-size: var(--x-grid-template-columns-all-col-size);
    grid-template-columns: var(--x-grid-template-columns-col-1-size, var(--x-grid-template-columns-all-col-size, var(--x-grid-sizing))) var(--x-grid-template-columns-col-2-size, var(--x-grid-template-columns-all-col-size, var(--x-grid-sizing))) var(--x-grid-template-columns-col-3-size, var(--x-grid-template-columns-all-col-size, var(--x-grid-sizing))) var(--x-grid-template-columns-col-4-size, var(--x-grid-template-columns-all-col-size, var(--x-grid-sizing))) var(--x-grid-template-columns-col-5-size, var(--x-grid-template-columns-all-col-size, var(--x-grid-sizing))) var(--x-grid-template-columns-col-6-size, var(--x-grid-template-columns-all-col-size, var(--x-grid-sizing))) var(--x-grid-template-columns-col-7-size, var(--x-grid-template-columns-all-col-size, var(--x-grid-sizing))) var(--x-grid-template-columns-col-8-size, var(--x-grid-template-columns-all-col-size, var(--x-grid-sizing)));
}

/* Individual column width overrides (set fraction for specific column or all columns) */
/* All columns same width (1fr, 2fr, ...), for overall grid */
.callout[data-callout*="all-col-1"] {
    --x-grid-template-columns-all-col-size: 1fr;
}

.callout[data-callout*="all-col-2"] {
    --x-grid-template-columns-all-col-size: 2fr;
}

.callout[data-callout*="all-col-3"] {
    --x-grid-template-columns-all-col-size: 3fr;
}

.callout[data-callout*="all-col-4"] {
    --x-grid-template-columns-all-col-size: 4fr;
}

.callout[data-callout*="all-col-5"] {
    --x-grid-template-columns-all-col-size: 5fr;
}

.callout[data-callout*="all-col-6"] {
    --x-grid-template-columns-all-col-size: 6fr;
}

.callout[data-callout*="all-col-7"] {
    --x-grid-template-columns-all-col-size: 7fr;
}

.callout[data-callout*="all-col-8"] {
    --x-grid-template-columns-all-col-size: 8fr;
}

/* If using same-width or grid-card, all columns default to equal (1fr) */
.callout[data-callout*="grid"]:is([data-callout*="same-width"], [data-callout*="grid-card"]) {
    --x-grid-template-columns-all-col-size: 1fr;
}

/* Responsive overrides for "all-col-*" on tablet width */
@media screen and (min-width: 750px) and (max-width: 1000px) {
    .callout[data-callout*="all-tablet-col-1"] {
        --x-grid-template-columns-all-col-size: 1fr;
    }

    .callout[data-callout*="all-tablet-col-2"] {
        --x-grid-template-columns-all-col-size: 2fr;
    }

    .callout[data-callout*="all-tablet-col-3"] {
        --x-grid-template-columns-all-col-size: 3fr;
    }

    .callout[data-callout*="all-tablet-col-4"] {
        --x-grid-template-columns-all-col-size: 4fr;
    }

    .callout[data-callout*="all-tablet-col-5"] {
        --x-grid-template-columns-all-col-size: 5fr;
    }

    .callout[data-callout*="all-tablet-col-6"] {
        --x-grid-template-columns-all-col-size: 6fr;
    }

    .callout[data-callout*="all-tablet-col-7"] {
        --x-grid-template-columns-all-col-size: 7fr;
    }

    .callout[data-callout*="all-tablet-col-8"] {
        --x-grid-template-columns-all-col-size: 8fr;
    }

    .callout[data-callout*="all-tablet-col-auto"] {
        --x-grid-template-columns-all-col-size: auto;
    }
}

/* Responsive overrides for "all-col-*" on mobile width */
@media screen and (max-width: 750px) {
    .callout[data-callout*="all-mobile-col-1"] {
        --x-grid-template-columns-all-col-size: 1fr;
    }

    .callout[data-callout*="all-mobile-col-2"] {
        --x-grid-template-columns-all-col-size: 2fr;
    }

    .callout[data-callout*="all-mobile-col-3"] {
        --x-grid-template-columns-all-col-size: 3fr;
    }

    .callout[data-callout*="all-mobile-col-4"] {
        --x-grid-template-columns-all-col-size: 4fr;
    }

    .callout[data-callout*="all-mobile-col-5"] {
        --x-grid-template-columns-all-col-size: 5fr;
    }

    .callout[data-callout*="all-mobile-col-6"] {
        --x-grid-template-columns-all-col-size: 6fr;
    }

    .callout[data-callout*="all-mobile-col-7"] {
        --x-grid-template-columns-all-col-size: 7fr;
    }

    .callout[data-callout*="all-mobile-col-8"] {
        --x-grid-template-columns-all-col-size: 8fr;
    }

    .callout[data-callout*="all-mobile-col-auto"] {
        --x-grid-template-columns-all-col-size: auto;
    }
}

/* Individual specific column overrides (first column, second column, etc.) */
.callout[data-callout*="all-col-auto"] {
    --x-grid-template-columns-all-col-size: auto;
}

.callout[data-callout*="col-1-auto"] {
    --x-grid-template-columns-col-1-size: auto;
}

.callout[data-callout*="col-1-1"] {
    --x-grid-template-columns-col-1-size: 1fr;
}

.callout[data-callout*="col-1-2"] {
    --x-grid-template-columns-col-1-size: 2fr;
}

.callout[data-callout*="col-1-3"] {
    --x-grid-template-columns-col-1-size: 3fr;
}

.callout[data-callout*="col-1-4"] {
    --x-grid-template-columns-col-1-size: 4fr;
}

.callout[data-callout*="col-1-5"] {
    --x-grid-template-columns-col-1-size: 5fr;
}

.callout[data-callout*="col-1-6"] {
    --x-grid-template-columns-col-1-size: 6fr;
}

.callout[data-callout*="col-1-7"] {
    --x-grid-template-columns-col-1-size: 7fr;
}

.callout[data-callout*="col-1-8"] {
    --x-grid-template-columns-col-1-size: 8fr;
}

/* (Similarly, classes col-2-1 ... col-2-8, col-3-1 ... etc. can be used to set widths for 2nd, 3rd columns, etc.) */

/* =====================================================================
   Embeds (Clean Embeds for Publish)
   ---------------------------------------------------------------------
   Очищает и оптимизирует отображение встроенных заметок (embedded notes) на опубликованном сайте:
   скрывает заголовок и мета-информацию эмбеда, убирает рамки и отступы, 
   показывает иконку-ссылку файла только при наведении, и т.д.
   (Применяется только на сайте Publish; режим редактирования в приложении не затрагивается.)
   ===================================================================== */

/* ---------- 0. ОБЩИЙ КОНТЕЙНЕР (Publish) ---------------------------- */
.markdown-preview-section,
.markdown-embed-content.markdown-embed-page {
    /* Общий контейнер для встроенных страниц (можно задать отступы, фон и т.п.) */
}

    /* ---------- 1. Убираем заголовок эмбеда и мета-таблицу ------------- */
    .markdown-preview-section .markdown-embed-title,
    .markdown-preview-section .obsidian-metatable {
        display: none !important;
    }

    /* ---------- 2. Иконка-ссылка (показывается только при hover) ------ */
    .markdown-preview-section .markdown-embed-link,
    .markdown-preview-section .file-embed-link {
        top: 0;
        right: 0;
        border: none;
        margin: 0;
        width: 24px;
        height: 24px;
        color: var(--text-faint);
        cursor: pointer;
    }

        .markdown-preview-section .markdown-embed-link::before,
        .markdown-preview-section .file-embed-link::before {
            display: none;
        }

        .markdown-preview-section .markdown-embed-link svg,
        .markdown-preview-section .file-embed-link svg {
            width: 24px;
            height: 24px;
            opacity: 0;
            display: unset;
        }

    .markdown-preview-section .markdown-embed:hover .file-embed-link svg,
    .markdown-preview-section .markdown-embed:hover .markdown-embed-link svg {
        opacity: 1;
    }

    .markdown-preview-section .markdown-embed:hover,
    .markdown-preview-section .file-embed:hover {
        background-color: var(--background-secondary) !important;
    }

    /* ---------- 3. Убираем рамки, скролл, лишние <br> ------------------- */
    .markdown-preview-section .markdown-embed,
    .markdown-preview-section .file-embed {
        border: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    .markdown-preview-section .markdown-embed-content,
    .markdown-preview-section .markdown-embed-content > .markdown-preview-section {
        max-height: unset !important;
        padding: 0 !important;
        margin: 0;
        border: 0;
    }

    .markdown-preview-section div > br {
        display: none;
    }

    .markdown-preview-section div.markdown-preview-sizer.markdown-preview-section {
        min-height: unset !important;
        padding-bottom: 0 !important;
    }

/* ---------- 4. Печать / PDF (скрываем ненужное) -------------------- */
@media print {
    pre.frontmatter,
    .obsidian-metatable {
        display: none !important;
    }
}

/* ---------- 5. Hover-Preview (Pop-up) на сайте Publish ------------- */
.popover.hover-popover.is-loaded .markdown-embed-title,
.popover.hover-popover.is-loaded .obsidian-metatable,
.popover.hover-popover.is-loaded .markdown-embed,
.popover.hover-popover.is-loaded .file-embed {
    display: none !important;
}

.popover.hover-popover.is-loaded .markdown-embed-link,
.popover.hover-popover.is-loaded .file-embed-link {
    display: none !important;
}


/* =====================================================================
   Hide Tags
   ---------------------------------------------------------------------
   Полностью скрывает отображение тегов (элементов с #тегами) в опубликованном содержимом:
   внутри встроенных заметок (embed)
   ===================================================================== */

.markdown-embed-content .tag {
    display: none !important;
}


/* =====================================================================
   Themed Images (Light vs Dark)
   ---------------------------------------------------------------------
   Позволяет использовать разные версии изображений для светлой и тёмной темы оформления:
   по умолчанию скрывает все изображения с атрибутом data-theme, затем отображает соответствующую версию 
   изображения в зависимости от текущей темы (через CSS-классы приложения или медиа-запросы prefers-color-scheme на Publish-сайте).
   ===================================================================== */

/* 1. Скрываем все тематические картинки (по умолчанию) */
img[data-theme] {
    display: none !important;
    opacity: 0 !important;
    max-width: 100%;
    transition: opacity .3s ease-in-out;
}

/* 2. Явно показываем нужную версию для приложения Obsidian (Desktop) */
.theme-light img[data-theme="light"] {
    display: block !important;
    opacity: 1 !important;
}

.theme-light img[data-theme="dark"] {
    display: none !important;
    opacity: 0 !important;
}

.theme-dark img[data-theme="dark"] {
    display: block !important;
    opacity: 1 !important;
}

.theme-dark img[data-theme="light"] {
    display: none !important;
    opacity: 0 !important;
}

/* 3. Дублируем логику для сайта Publish через media queries */
@media (prefers-color-scheme: light) {
    img[data-theme="light"] {
        display: block !important;
        opacity: 1 !important;
    }

    img[data-theme="dark"] {
        display: none !important;
        opacity: 0 !important;
    }
}

@media (prefers-color-scheme: dark) {
    img[data-theme="dark"] {
        display: block !important;
        opacity: 1 !important;
    }

    img[data-theme="light"] {
        display: none !important;
        opacity: 0 !important;
    }
}


/* =====================================================================
   Internal Links - No Highlight
   ---------------------------------------------------------------------
   Убирает фон-подсветку и оформление внутренних ссылок, помещённых в элемент с классом `no-highlight`. 
   Ссылки отображаются как обычный текст (стандартный цвет), но выделяются полужирным шрифтом. 
   Стиль применяется как для просмотра опубликованных страниц (Preview), так и для редакторского режима (Live Preview) в приложении.
   ===================================================================== */

/* 1) Обычный просмотр (режим чтения в приложении Obsidian и на сайте Publish) */
.markdown-preview-section span.no-highlight a.internal-link {
    background-color: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
    color: var(--text-normal) !important;
    font-weight: bold !important;
}

    .markdown-preview-section span.no-highlight a.internal-link:hover {
        color: var(--text-accent) !important;
    }

/* 2) Live Preview (режим редактирования в Obsidian) */
.markdown-source-view.mod-cm6 span.no-highlight span.cm-hmd-internal-link {
    background-color: transparent !important;
    box-shadow: none !important;
    text-decoration: none !important;
    color: var(--text-normal) !important;
    font-weight: bold !important;
}

    .markdown-source-view.mod-cm6 span.no-highlight span.cm-hmd-internal-link:hover {
        color: var(--text-accent) !important;
    }


/* =====================================================================
   Compact Headings
   ---------------------------------------------------------------------
   Уменьшает внешние отступы для заголовков H1–H6 на опубликованном сайте, 
   делая их оформление более компактным. Также убирает нижнее подчёркивание у заголовков (если оно присутствовало).
   ===================================================================== */

.site-body .markdown-rendered :is(h1, h2, h3, h4, h5, h6) {
    /* Подправляем стандартные отступы: было ~1.2em сверху и ~0.67em снизу */
    margin-block-start: 0.6em !important;
    margin-block-end: 0.25em !important;
    /* Если ранее было подчёркивание для заголовков, убираем его: */
    border-bottom: none !important;
    padding-bottom: 0 !important;
}
