/* Пресет «документ» для КП: длинное чтение, оглавление слева, колонка текста ≤ 72 знаков. Только токены. */
.tpl-doc { max-width: 1180px; margin: 0 auto; padding: var(--space-8); display: grid; gap: var(--space-8); background: var(--canvas); }
.tpl-doc-h { display: grid; gap: var(--space-3); padding: var(--space-8); border-radius: var(--radius-shell); background: var(--card); box-shadow: var(--shadow-ring); }
.tpl-doc-h small { color: var(--flame-deep); font-size: 13px; font-weight: 600; }
.tpl-doc-h h1 { margin: 0; font-size: 40px; line-height: 44px; font-weight: 600; letter-spacing: -.02em; text-wrap: balance; }
.tpl-doc-h .subtitle { margin: 0; max-width: 68ch; font-size: 17px; line-height: 26px; color: var(--ink-2); }
.tpl-doc-h .meta { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); align-items: center; color: var(--ink-3); font-size: 13px; }
.tpl-doc-grid { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--space-8); align-items: start; }
.tpl-doc-toc { position: sticky; top: var(--space-6); display: grid; gap: var(--space-3); padding: var(--space-5); border-radius: var(--radius-card); background: var(--shell); }
.tpl-doc-toc b { font-size: 13px; color: var(--ink-3); font-weight: 600; }
.tpl-doc-toc ol { margin: 0; padding-left: var(--space-5); display: grid; gap: var(--space-2); font-size: 14px; }
.tpl-doc-toc a { color: var(--ink); text-decoration: none; }
.tpl-doc-toc a:hover { color: var(--flame-deep); text-decoration: underline; }
.tpl-doc-toc a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; border-radius: 4px; }
.tpl-doc-body { display: grid; gap: var(--space-8); min-width: 0; }
.tpl-doc-sec { display: grid; gap: var(--space-4); scroll-margin-top: var(--space-6); min-width: 0; }
.tpl-doc-sec h2 { margin: 0; display: flex; gap: var(--space-3); align-items: baseline; font-size: 24px; line-height: 30px; font-weight: 600; }
.tpl-doc-sec h2 .n { color: var(--flame-deep); font-variant-numeric: tabular-nums; }
.tpl-doc-sec > p, .tpl-doc-list { margin: 0; max-width: 72ch; font-size: 16px; line-height: 25px; color: var(--ink); }
.tpl-doc-list { padding-left: var(--space-5); display: grid; gap: var(--space-2); }
@media (max-width: 860px) {
  .tpl-doc { padding: var(--space-4); gap: var(--space-6); }
  .tpl-doc-h { padding: var(--space-5); border-radius: var(--radius-card); }
  .tpl-doc-h h1 { font-size: 28px; line-height: 32px; }
  .tpl-doc-grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .tpl-doc-toc { position: static; }
}
@media print {
  .tpl-doc { padding: 0; background: none; }
  .tpl-doc-grid { grid-template-columns: minmax(0, 1fr); }
  .tpl-doc-toc { position: static; background: none; }
  .tpl-doc-sec { break-inside: avoid-page; }
}
/* Таблицы в документе (К-1013-513): текст переносится, числа (колонка .r у DataTable) — в одну строку.
   В dist .cb-tbl рассчитан на панель: nowrap и min-width 640px — в колонке чтения таблица уезжала вбок. */
.tpl-doc-sec .cb-tbl { min-width: 0; }
.tpl-doc-sec .cb-tbl :is(th, td) { white-space: normal; overflow-wrap: break-word; vertical-align: top; }
.tpl-doc-sec .cb-tbl th { height: auto; padding-block: var(--space-3); }
.tpl-doc-sec .cb-tbl td { height: auto; padding-block: var(--space-3); line-height: 20px; }
.tpl-doc-sec .cb-tbl :is(th, td).r { white-space: nowrap; }
.tpl-doc-sec .cb-tbl :is(code, a) { overflow-wrap: anywhere; }
.tpl-doc-sec .cb-tbl.plain1 :is(th, td):first-child { width: auto; }
.tpl-doc-sec pre { margin: 0; max-width: 100%; white-space: pre-wrap; overflow-wrap: anywhere; }
/* Подпись колонки внутри ячейки — видна только в режиме карточек на телефоне. */
.tpl-doc-cl { display: none; }
@media (max-width: 600px) {
  .tpl-doc-sec .cb-tbl { font-size: 13px; }
  .tpl-doc-sec .cb-tbl :is(th, td) { padding-inline: var(--space-2); hyphens: auto; }
  .tpl-doc-sec .cb-tbl :is(th, td):first-child { padding-left: var(--space-3); }
  /* Таблица документа из ≥3 колонок (документ.js): строка — карточка, колонки — пары «подпись — значение». */
  .tpl-doc-tbl.stack :is(.cb-tbl, .cb-tbl tbody, .cb-tbl tr, .cb-tbl td) { display: block; width: auto; }
  .tpl-doc-tbl.stack .cb-tbl thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tpl-doc-tbl.stack .cb-tbl tbody tr { padding: var(--space-3) var(--space-4); display: grid; gap: var(--space-2); }
  .tpl-doc-tbl.stack .cb-tbl tbody tr + tr { border-top: 1px solid var(--border); }
  .tpl-doc-tbl.stack .cb-tbl td, .tpl-doc-tbl.stack .cb-tbl td:first-child { padding: 0; border: 0; text-align: left; white-space: normal; }
  .tpl-doc-tbl.stack .cb-tbl td:first-child { font-weight: 600; }
  .tpl-doc-tbl.stack .tpl-doc-cl { display: block; font-size: 12px; line-height: 16px; font-weight: 400; color: var(--ink-3); }
}
.tpl-doc-sec :is(code, pre) { font-family: var(--font-mono); font-size: .92em; }

/* Юр. документы сайта (/privacy, /legal/*) в дизайне курса (макет 20.10.2026, К-1020-582): шапка и подвал сайта, колонка 720 px,
   оглавление наверху, текст 16/1.7. Только под html[data-template="privacy"]: КП и справка кабинета эти правила не видят. Только токены. */
html[data-template="privacy"] .tpl-doc { display: block; max-width: none; padding: 0; gap: 0; background: var(--canvas); min-height: 100vh; }
html[data-template="privacy"] .pd-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-3); align-items: center; min-height: 72px; padding: var(--space-3) clamp(var(--space-3), 4vw, var(--space-6)); background: var(--card); border-bottom: 1px solid var(--line); }
html[data-template="privacy"] .pd-brand { color: var(--ink); text-decoration: none; justify-self: start; }
html[data-template="privacy"] .pd-nav { justify-self: center; display: flex; gap: var(--space-1); padding: 4px; border-radius: var(--radius-pill); background: var(--inset); max-width: 100%; overflow-x: auto; }
html[data-template="privacy"] .pd-nav a { flex: none; padding: 8px 13px; border-radius: var(--radius-pill); color: var(--ink-2); font-size: 13px; line-height: 18px; text-decoration: none; }
html[data-template="privacy"] .pd-nav a:hover, html[data-template="privacy"] .pd-nav a:focus-visible { color: var(--ink); background: var(--card); }
html[data-template="privacy"] .pd-top a:focus-visible, html[data-template="privacy"] .pd-foot a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
html[data-template="privacy"] .pd-wrap { display: grid; gap: var(--space-6); width: min(100%, 752px); margin: 0 auto; padding: 56px var(--space-4) 80px; box-sizing: border-box; min-width: 0; }
html[data-template="privacy"] .pd-wrap > * { min-width: 0; }
html[data-template="privacy"] .pd-wrap .tpl-doc-h { gap: 14px; padding: 0; border-radius: 0; background: none; box-shadow: none; }
html[data-template="privacy"] .pd-wrap .tpl-doc-h small { color: var(--accent-ink); font-size: 12px; font-weight: 600; letter-spacing: .015em; }
html[data-template="privacy"] .pd-wrap .tpl-doc-h h1 { font-family: var(--font-display); font-size: 40px; line-height: 1.1; font-weight: 800; letter-spacing: -.045em; overflow-wrap: anywhere; }
html[data-template="privacy"] .pd-wrap .tpl-doc-h .lead { max-width: none; font-size: 16px; line-height: 1.7; overflow-wrap: anywhere; }
html[data-template="privacy"] .pd-wrap .tpl-doc-h .meta { font-size: 14px; }
html[data-template="privacy"] .pd-wrap .tpl-doc-toc { position: static; gap: 10px; padding: 22px 24px; border-radius: 20px; background: var(--inset); }
html[data-template="privacy"] .pd-wrap .tpl-doc-toc b { font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-2); }
html[data-template="privacy"] .pd-wrap .tpl-doc-toc ol { padding-left: var(--space-5); gap: 0; font-size: 15px; line-height: 1.45; }
html[data-template="privacy"] .pd-wrap .tpl-doc-toc li { padding-block: 4px; overflow-wrap: anywhere; }
html[data-template="privacy"] .pd-wrap .tpl-doc-toc a:hover { color: var(--accent-ink); }
html[data-template="privacy"] .pd-wrap .tpl-doc-body { gap: 0; }
html[data-template="privacy"] .pd-wrap .tpl-doc-sec { gap: 0; padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid var(--border); scroll-margin-top: 24px; overflow-wrap: anywhere; }
html[data-template="privacy"] .pd-wrap .tpl-doc-sec h2 { margin-bottom: 14px; font-family: var(--font-display); font-size: 26px; line-height: 1.2; font-weight: 800; letter-spacing: -.035em; }
html[data-template="privacy"] .pd-wrap .tpl-doc-sec h2 .n { color: var(--accent-ink); }
html[data-template="privacy"] .pd-wrap .tpl-doc-sec > p, html[data-template="privacy"] .pd-wrap .tpl-doc-list { max-width: none; margin: 0 0 14px; font-size: 16px; line-height: 1.7; }
html[data-template="privacy"] .pd-wrap .tpl-doc-list { gap: 6px; }
html[data-template="privacy"] .pd-wrap .tpl-doc-list .tpl-doc-list { margin: 6px 0 0; }
html[data-template="privacy"] .pd-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-4); max-width: 1240px; margin: 0 auto; padding: var(--space-5) clamp(var(--space-3), 4vw, var(--space-6)); border-top: 1px solid var(--line); }
html[data-template="privacy"] .pd-foot nav { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
html[data-template="privacy"] .pd-foot a { color: var(--ink-2); font-size: 14px; }
html[data-template="privacy"] .pd-foot .pd-brand-text { color: var(--ink); font-weight: 700; text-decoration: none; }
@media (max-width: 860px) {
  html[data-template="privacy"] .pd-top { grid-template-columns: minmax(0, 1fr) auto; }
  html[data-template="privacy"] .pd-nav { grid-column: 1 / -1; grid-row: 2; justify-self: start; width: 100%; scrollbar-width: none; }
  html[data-template="privacy"] .pd-nav::-webkit-scrollbar { display: none; }
  html[data-template="privacy"] .pd-wrap { padding-top: 32px; padding-bottom: 48px; }
  html[data-template="privacy"] .pd-wrap .tpl-doc-h h1 { font-size: 32px; }
  html[data-template="privacy"] .pd-wrap .tpl-doc-sec h2 { font-size: 23px; }
}
