/* ==========================================================================
   Печать. Урок на бумаге — это текст, код и картинки-схемы; всё, что
   нельзя нажать на листе, убираем. Цвета переводим в чёрное по белому:
   тёмная тема на принтере съедает картридж и плохо читается.
   ========================================================================== */

@media print {
  :root,
  [data-theme="dark"],
  [data-theme="light"] {
    --bg: #fff;
    --surface-1: #fff;
    --surface-2: #fff;
    --surface-3: #f4f4f6;
    --text: #111;
    --text-soft: #333;
    --text-mute: #555;
    --border: #bbb;
    --border-strong: #888;
    --accent: #333;
    --accent-text: #333;
    --shadow-1: none;
    --shadow-2: none;
    --shadow-3: none;
    --grid-line: transparent;
    --glow: transparent;
  }

  @page { margin: 18mm 14mm; }

  html, body { background: #fff !important; color: #111 !important; }

  /* Интерфейс: на бумаге это мёртвые пиксели. */
  .site-header,
  .site-footer,
  .lesson-bar,
  .lesson-aside,
  .palette,
  .site-progress,
  .read-progress,
  .skip-link,
  .task__bar,
  .task__report,
  .notes,
  .rate,
  .done-box,
  .quiz__bar,
  .editor__tabs,
  .editor__status,
  .code__copy,
  .reward,
  .confetti { display: none !important; }

  /* Раскладка урока в одну колонку: боковые панели уже убраны. */
  .lesson-layout,
  .container,
  .main { display: block !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }

  .lesson-main { max-width: none; }

  * { box-shadow: none !important; text-shadow: none !important; }

  a { color: #111; text-decoration: underline; }

  /* Ссылка на бумаге бесполезна без адреса. Внутренние показываем от корня,
     якоря и javascript: пропускаем. */
  .prose a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .8em; color: #555; }
  .prose a[href^="/"]::after { content: " (" attr(href) ")"; font-size: .8em; color: #555; }

  h1, h2, h3 { break-after: avoid-page; }
  .code, .table-wrap, figure, .note, .task, .quiz { break-inside: avoid; }

  /* Код печатаем с рамкой и переносом: горизонтальная прокрутка на листе
     означает потерянные символы. */
  .code, pre {
    border: 1px solid #bbb !important;
    background: #fafafa !important;
    white-space: pre-wrap !important;
    word-break: break-word;
  }
  .code__num { color: #999 !important; }
  .tok { color: #111 !important; }
  .tok--comment { color: #666 !important; font-style: italic; }

  /* Демонстрации и редактор превращаем в статичные картинки происходящего. */
  .preview__frame { border: 1px solid #bbb; }
  .editor__area { position: static !important; opacity: 1 !important; color: #111 !important; }
  .editor__hl { display: none !important; }

  /* Свёрнутое на экране на бумаге должно быть раскрыто: иначе половина урока пропадёт. */
  details { display: block !important; }
  details > summary { list-style: none; font-weight: 700; }
  details:not([open]) > *:not(summary) { display: revert !important; }

  .lesson-head__stats,
  .crumbs { color: #555; }
}
