/* Дополнительные стили mdBook */

/* Баннер для черновых параграфов */
.draft-banner {
  background: #fff3cd;
  border-left: 4px solid #ffc107;
  padding: 0.75rem 1rem;
  margin-bottom: 1.5rem;
  border-radius: 0 4px 4px 0;
  font-size: 0.9rem;
}

/* Версия книги в подвале */
.book-version {
  font-size: 0.8rem;
  color: #888;
  margin-top: 2rem;
  text-align: center;
}

/* ─── Callout-блоки (выноски) ────────────────────────────────────────────── */
/* Использование в markdown:
   > [!NOTE] текст      → синяя выноска
   > [!TIP] текст       → зелёная
   > [!WARNING] текст   → жёлтая
   Либо вручную: <div class="callout callout-note">…</div>            */
.callout {
  border-left: 4px solid #ccc;
  padding: 0.75rem 1rem;
  margin: 1.25rem 0;
  border-radius: 0 4px 4px 0;
  background: rgba(0, 0, 0, 0.03);
}
.callout-note    { border-left-color: #4a90d9; background: rgba(74, 144, 217, 0.08); }
.callout-tip     { border-left-color: #3fb950; background: rgba(63, 185, 80, 0.08); }
.callout-warning { border-left-color: #ffc107; background: rgba(255, 193, 7, 0.10); }
.callout-title {
  font-weight: 600;
  display: block;
  margin-bottom: 0.35rem;
}

/* ─── Нумерация глав в основном тексте (H1 = § параграфа) ─────────────────── */
/* mdBook сам нумерует сайдбар; здесь — мягкая визуальная иерархия заголовков */

/* Длинный код не должен ломать вёрстку на узких экранах */
.content pre > code { white-space: pre; overflow-x: auto; }

/* ─── Печать страницы сайта (Ctrl+P) ─────────────────────────────────────── */
@media print {
  /* Убрать навигацию, поиск, кнопки — оставить только текст */
  .sidebar,
  .nav-chapters,
  .mobile-nav-chapters,
  #menu-bar,
  .nav-wide-wrapper,
  .nav-wrapper,
  #sidebar-toggle-anchor { display: none !important; }

  .page-wrapper, .content, .content main { margin: 0 !important; max-width: 100% !important; }

  /* Каждый § параграф — с новой страницы */
  .content h1 { page-break-before: always; }
  .content h1:first-of-type { page-break-before: avoid; }

  /* Не разрывать выноски и таблицы между страницами */
  .callout, table, pre, figure { page-break-inside: avoid; }

  /* Не отрывать заголовок от текста */
  h1, h2, h3 { page-break-after: avoid; }

  /* Чёрный текст, разворачивать ссылки */
  body { color: #000; font-size: 11pt; }
  a:after { content: " (" attr(href) ")"; font-size: 0.85em; color: #555; }
  a[href^="#"]:after,
  a[href^="/"]:after { content: ""; }
}

/* ─── Песочница: кнопка у листингов ```bsl,песочница ─────────────────── */

.sandbox-block {
    margin: 1em 0;
}

.sandbox-block > pre {
    margin-bottom: 0;
}

.sandbox-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5em 0.9em;
    padding: 0.45em 0.8em;
    border: 1px solid var(--quote-border, rgba(128, 128, 128, 0.35));
    border-top: none;
    border-radius: 0 0 5px 5px;
    font-size: 0.85em;
}

.sandbox-run {
    font-weight: 600;
    text-decoration: none;
    white-space: nowrap;
}

.sandbox-run:hover {
    text-decoration: underline;
}

.sandbox-note {
    opacity: 0.6;
}

/* В печати кнопка не нужна — листинг остаётся листингом. */
@media print {
    .sandbox-bar { display: none; }
    .sandbox-block > pre { border-radius: 5px; }
}

/* ─── Плашка «книга не дописана» ─────────────────────────────────────── */

.book-status {
    margin: 0 0 1.6em;
    padding: 0.7em 1em;
    border-left: 3px solid;
    border-radius: 0 4px 4px 0;
    font-size: 0.92em;
    line-height: 1.5;
}

.book-status--wip {
    border-color: #d19a20;
    background: rgba(209, 154, 32, 0.10);
}

.book-status--stub {
    border-color: #9a9a9a;
    background: rgba(154, 154, 154, 0.12);
}

@media print {
    .book-status { display: none; }
}

/* ─── Таблицы: зебра ──────────────────────────────────────────────────── */

/* На узком экране ячейка занимает три-четыре строки, границы рядов теряются
 * и глаз соскакивает на соседнюю строку. Подложка через одну это чинит. */

.content table tbody tr:nth-child(odd) {
    background-color: rgba(128, 128, 128, 0.09);
}

.content table th,
.content table td {
    vertical-align: top;
    padding: 0.4em 0.6em;
}

/* ─── Боковая панель: дерево глав ──────────────────────────────────────────
   Заголовок главы — узел без ссылки, mdBook рисует такие приглушённо, как
   «черновик». Здесь это не черновик, а раздел.

   Разметка панели у разных версий mdBook разная: в одних текст узла лежит
   прямо в <div>, в других — в <span> внутри .chapter-link-wrapper. Сборка
   сайта идёт не на той версии, что стоит локально, поэтому селекторы даны
   на оба варианта. */

.chapter > li.chapter-item > div,
.chapter > li.chapter-item > .chapter-link-wrapper > span {
    color: var(--sidebar-fg);
    font-weight: 600;
    opacity: 1;
    letter-spacing: .01em;
    padding: 3px 0;
}

.chapter > li.chapter-item {
    margin-top: .9em;
}

.chapter > li.chapter-item:first-child,
.chapter > li.chapter-item:nth-child(2) {
    margin-top: 0;
}

/* Параграфы внутри главы — мельче и с отступом, чтобы вложенность читалась */
.chapter ol.section > li.chapter-item > a,
.chapter ol.section > li.chapter-item > .chapter-link-wrapper > a {
    font-size: .93em;
    line-height: 1.5;
    padding-left: 14px;
}

/* Стрелка сворачивания: приглушить, чтобы не спорила с текстом */
.chapter a.toggle,
.chapter a.chapter-fold-toggle {
    opacity: .45;
}

.chapter a.toggle:hover,
.chapter a.chapter-fold-toggle:hover {
    opacity: 1;
}
