/* Print stylesheet - applies when the user hits Ctrl+P on any page.
 *
 * Strategy: hide chrome, optimize code blocks for paper, break pages
 * cleanly at chapter boundaries. The per-path "print.md" pages
 * generated by scripts/build.py concatenate all content into a single
 * URL so users can Save-as-PDF without losing context.
 */

@media print {

  /* Hide site chrome --------------------------------------------------- */
  .md-header,
  .md-tabs,
  .md-sidebar,
  .md-footer,
  .md-search,
  .md-skip,
  .md-top,
  .md-source,
  #__comments,
  .giscus,
  .beginner-mode-toggle,
  .md-content__button,
  .md-typeset .headerlink,
  .md-feedback,
  .print-hide {
    display: none !important;
  }

  /* Full-width content (no sidebar reserved) --------------------------- */
  .md-main,
  .md-main__inner,
  .md-content,
  .md-content__inner,
  .md-grid {
    margin: 0 !important;
    padding: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
  }

  body, .md-typeset {
    color: #000 !important;
    background: #fff !important;
    font-size: 11pt;
    line-height: 1.45;
  }

  /* Headings and page breaks ------------------------------------------- */
  .md-typeset h1 {
    font-size: 26pt;
    page-break-before: always;
    page-break-after: avoid;
    margin-top: 0;
  }
  .md-typeset h1:first-of-type {
    page-break-before: avoid;
  }
  .md-typeset h2 {
    font-size: 18pt;
    page-break-before: always;
    page-break-after: avoid;
  }
  .md-typeset h3 { font-size: 14pt; page-break-after: avoid; }
  .md-typeset h4, .md-typeset h5, .md-typeset h6 { page-break-after: avoid; }
  .md-typeset p, .md-typeset li, .md-typeset blockquote { orphans: 3; widows: 3; }

  /* Code: wrap, smaller, no horizontal scroll -------------------------- */
  .md-typeset pre,
  .md-typeset code,
  .md-typeset pre > code,
  .highlight pre {
    background: #f6f6f6 !important;
    color: #000 !important;
    border: 1px solid #ddd;
    page-break-inside: avoid;
    white-space: pre-wrap !important;
    word-wrap: break-word;
    overflow: visible !important;
    font-size: 9pt;
  }
  .md-typeset .highlight .filename {
    background: #eee !important;
    color: #000 !important;
  }

  /* Admonitions: print as bordered boxes, never dark fills ------------- */
  .md-typeset .admonition,
  .md-typeset details {
    background: #fafafa !important;
    color: #000 !important;
    border: 1px solid #999;
    box-shadow: none !important;
    page-break-inside: avoid;
  }
  .md-typeset .admonition-title,
  .md-typeset summary {
    background: #eee !important;
    color: #000 !important;
  }

  /* Tables ------------------------------------------------------------- */
  .md-typeset table:not([class]) {
    page-break-inside: avoid;
    border-collapse: collapse;
  }
  .md-typeset table:not([class]) th,
  .md-typeset table:not([class]) td {
    border: 1px solid #999;
    color: #000;
  }

  /* Links: show URL after text for offline readers --------------------- */
  .md-typeset a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 9pt;
    color: #555;
    word-break: break-all;
  }
  .md-typeset a[href^="#"]::after { content: ""; }

  /* Beginner-mode div is page-print-visible regardless of toggle state.
   * Printing is for archival reference; readers want the full senior
   * content on paper. */
  body.beginner-mode .advanced { display: block !important; }
}
