/* ───────────────────────── Версия для печати и PDF ─────────────────────────
 *
 * Отдельный файл, а не @media print внутри docs.css: печатается другой
 * документ — обложка, оглавление и все главы подряд, — и тащить ради него весь
 * набор правил сайта незачем.
 *
 * Тема светлая. Наш тёмный интерфейс на бумаге — это залитые чёрным страницы,
 * серый текст поверх и пустой картридж; в PDF на белом фоне читателя он
 * выглядит так же плохо. Поэтому переменные, которыми пользуются компоненты из
 * prose.css, здесь переопределяются на бумажную палитру — и баннер, врезка и
 * блок кода сами приходят в печатный вид, без отдельных правил на каждый.
 */

:root {
  --bg-primary: #ffffff;
  --bg-secondary: #f6f7f9;
  --bg-card: #f6f7f9;
  --bg-card-hover: #eef0f3;
  --border: #d9dde3;
  --border-light: #c7cdd6;
  --text-primary: #10131a;
  --text-secondary: #4a5261;
  --text-muted: #6b7382;
  --lootx-blue: #1667c4;
  --lootx-teal: #0f8f88;
  --lootx-green: #12866a;
  --lootx-grad: linear-gradient(115deg, #1667c4, #0f8f88);
  --radius: 10px;
  --radius-sm: 6px;
  --font-ui: -apple-system, BlinkMacSystemFont, "Segoe UI", Inter, system-ui, sans-serif;
  --font-mono: "Cascadia Code", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

* {
  box-sizing: border-box;
}

body.pt {
  margin: 0;
  background: #e9ecef;
  color: var(--text-primary);
  font-family: var(--font-ui);
  font-size: 15px;
  line-height: 1.65;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* ── панель над документом (на бумагу не попадает) ── */

.pt-bar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 20px;
  background: #10131a;
  color: #fff;
}
.pt-back {
  color: #cfd6e2;
  text-decoration: none;
  font-size: 14px;
}
.pt-back:hover {
  color: #fff;
}
.pt-btn {
  margin-left: auto;
  padding: 7px 16px;
  border: 0;
  border-radius: 8px;
  background: linear-gradient(115deg, #4799f5, #31cfc3 55%, #3deeb4);
  color: #04121a;
  font: inherit;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
}

/* ── лист ── */

.pt-doc {
  max-width: 820px;
  margin: 24px auto 60px;
  padding: 48px 56px;
  background: #fff;
  box-shadow: 0 10px 40px rgba(16, 19, 26, 0.12);
}

.pt-cover {
  padding-bottom: 28px;
  border-bottom: 2px solid var(--border);
}
.pt-cover-brand {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--lootx-teal);
}
.pt-cover h1 {
  margin: 10px 0 8px;
  font-size: 38px;
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.pt-cover-sub {
  margin: 0;
  color: var(--text-secondary);
  font-size: 17px;
}
.pt-cover-meta {
  display: flex;
  gap: 18px;
  margin-top: 22px;
  color: var(--text-muted);
  font-size: 12.5px;
}

.pt-toc {
  margin: 36px 0 0;
}
.pt-toc h2 {
  margin: 0 0 12px;
  font-size: 15px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-muted);
}
.pt-toc ol {
  margin: 0;
  padding: 0;
  list-style: none;
  columns: 2;
  column-gap: 32px;
}
.pt-toc li {
  break-inside: avoid;
  margin-bottom: 6px;
}
.pt-toc a {
  display: flex;
  gap: 10px;
  color: var(--text-primary);
  text-decoration: none;
  font-size: 14px;
}
.pt-toc-n {
  flex: none;
  width: 20px;
  color: var(--text-muted);
  text-align: right;
}

/* ── главы ── */

.pt-ch {
  margin-top: 48px;
}
.pt-ch-head {
  margin-bottom: 18px;
}
.pt-ch-cat {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--lootx-teal);
  margin-bottom: 4px;
}
.pt-ch h1 {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 0 0 6px;
  font-size: 27px;
  line-height: 1.2;
  letter-spacing: -0.015em;
}
.pt-ch-n {
  flex: none;
  font-size: 18px;
  color: var(--text-muted);
  font-variant-numeric: tabular-nums;
}
.pt-ch-lead {
  margin: 0;
  color: var(--text-secondary);
  font-size: 16px;
}
.pt-src {
  margin: 20px 0 0;
  color: var(--text-muted);
  font-size: 11.5px;
  word-break: break-all;
}

/* ── типографика тела: то, что на сайте даёт docs.css ── */

.pt .doc-body h2 {
  margin: 30px 0 10px;
  font-size: 20px;
  letter-spacing: -0.01em;
}
.pt .doc-body h3 {
  margin: 22px 0 8px;
  font-size: 16.5px;
}
.pt .doc-body h4 {
  margin: 18px 0 6px;
  font-size: 14.5px;
}
.pt .doc-body p,
.pt .doc-body ul,
.pt .doc-body ol {
  margin: 0 0 14px;
}
.pt .doc-body ul,
.pt .doc-body ol {
  padding-left: 22px;
}
.pt .doc-body li {
  margin-bottom: 5px;
}
.pt .doc-body a {
  color: var(--lootx-blue);
}
.pt .doc-body code {
  padding: 0.12em 0.36em;
  border-radius: 4px;
  border: 1px solid var(--border);
  background: #f3f5f8;
  font-family: var(--font-mono);
  font-size: 0.87em;
  color: #123;
}
.pt .doc-body blockquote {
  margin: 16px 0;
  padding-left: 16px;
  border-left: 2px solid var(--border-light);
  color: var(--text-secondary);
}
.pt .code-block {
  background: #f6f7f9;
}
.pt .code-block pre code,
.pt .code-block pre {
  color: #1b2330;
}
/* Подсветка на бумаге: те же роли, но в тёмных тонах — на белом фоне
   «неоновая» палитра сайта не читается. */
.pt .tok-com {
  color: #7a8598;
}
.pt .tok-str {
  color: #0b7a55;
}
.pt .tok-num,
.pt .tok-lit {
  color: #9a4b00;
}
.pt .tok-kw {
  color: #a3218e;
}
.pt .tok-fn {
  color: #1667c4;
}
.pt .tok-type,
.pt .tok-tag {
  color: #0f7b8f;
}

/* ── собственно печать ── */

@page {
  size: A4;
  margin: 16mm 14mm 18mm;
}

@media print {
  body.pt {
    background: #fff;
    font-size: 11.5pt;
  }
  .no-print {
    display: none !important;
  }
  .pt-doc {
    max-width: none;
    margin: 0;
    padding: 0;
    box-shadow: none;
  }
  /* Каждая глава — с новой страницы: разрыв посреди инструкции это то, из-за
     чего распечатку и откладывают. Первая глава идёт следом за оглавлением,
     чтобы не оставлять пустой лист. */
  .pt-ch {
    break-before: page;
    margin-top: 0;
  }
  .pt-ch h1,
  .pt-ch-head {
    break-after: avoid;
  }
  .pt .doc-body h2,
  .pt .doc-body h3,
  .pt .doc-body h4 {
    break-after: avoid;
  }
  .pt .doc-body p,
  .pt .doc-body li {
    orphans: 3;
    widows: 3;
  }
  /* Блоки, которые нельзя рвать: код и врезки читаются целиком или никак. */
  .code-block,
  .callout,
  .doc-banner,
  .doc-stat,
  .doc-quote,
  .table-wrap,
  .doc-img-frame,
  .terminal-block {
    break-inside: avoid;
  }
  /* Вкладки на бумаге разворачиваются: спрятанная вкладка в PDF — это просто
     потерянный кусок документации. */
  .tab-panel[hidden] {
    display: block !important;
  }
  .tab-panel::before {
    content: attr(data-tab-title);
    display: block;
    margin-bottom: 6px;
    font-size: 11px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--text-muted);
  }
  .tab-strip {
    display: none;
  }
  .code-copy {
    display: none;
  }
  /* Встраивание в бумаге не существует — вместо пустой рамки адрес. */
  .doc-embed iframe,
  .doc-video iframe {
    display: none;
  }
  .doc-embed::after,
  .doc-video::after {
    content: attr(data-src);
    display: block;
    padding: 10px 12px;
    color: var(--text-muted);
    font-size: 10pt;
    word-break: break-all;
  }
  .doc-embed,
  .doc-video {
    aspect-ratio: auto;
    height: auto;
  }
}
