/* Kohinos — feuille de style d'impression
 *
 * Souveraineté & archivage : la doc HTML doit pouvoir être imprimée
 * (papier ou PDF) sans dépendance externe, pour les contributeurs
 * hors-ligne ou pour archivage légal / cartouches projet.
 *
 * Chargée via <link media="print"> donc pas besoin de @media print
 * de premier niveau côté chargement, mais on conserve le wrapper
 * @media print pour blinder en cas d'inclusion combinée.
 */

@media print {

  /* =========================================================
   * 1. Mise en page papier — format A4
   * ========================================================= */
  @page {
    size: A4;
    margin: 1.8cm 1.5cm;

    @bottom-center {
      content: counter(page) " / " counter(pages);
      font-family: serif;
      font-size: 9pt;
      color: #000;
    }

    @top-right {
      content: "Kohinos — documentation";
      font-family: serif;
      font-size: 9pt;
      color: #444;
    }
  }

  /* =========================================================
   * 2. Reset couleurs : tout noir sur blanc
   * ========================================================= */
  html,
  body {
    background: #fff !important;
    color: #000 !important;
    font-family: "Liberation Serif", "DejaVu Serif", Georgia, serif;
    font-size: 11pt;
    line-height: 1.4;
  }

  *,
  *::before,
  *::after {
    background: transparent !important;
    box-shadow: none !important;
    text-shadow: none !important;
    color: #000 !important;
  }

  /* =========================================================
   * 3. Masquage : navigation, recherche, vidéos, scripts
   * ========================================================= */
  .topbar,
  .theme-toggle,
  .doc-search,
  .doc-search__results,
  nav.crumb,
  .footer,
  script,
  noscript,
  video,
  audio,
  iframe,
  .no-print,
  #btn-print,
  .btn-print {
    display: none !important;
  }

  /* =========================================================
   * 4. Cartouche imprimable en début de document
   *    (titre + URL + date d'impression)
   * ========================================================= */
  main::before {
    content: "Kohinos — " attr(data-doc-title);
    display: block;
    border-bottom: 2pt solid #000;
    padding-bottom: 6pt;
    margin-bottom: 12pt;
    font-family: "Liberation Sans", "DejaVu Sans", Arial, sans-serif;
    font-size: 10pt;
    font-weight: bold;
  }

  /* Cartouche détaillé via <body data-doc-url="..."> ou fallback */
  body::before {
    content: "URL : " attr(data-doc-url) " — Imprimé le : " attr(data-print-date);
    display: block;
    padding: 4pt 0;
    border-bottom: 0.5pt solid #444;
    margin-bottom: 8pt;
    font-family: "Liberation Sans", "DejaVu Sans", Arial, sans-serif;
    font-size: 8.5pt;
    color: #333 !important;
  }

  /* =========================================================
   * 5. Typographie titres
   * ========================================================= */
  h1 {
    font-size: 18pt;
    margin: 0 0 8pt 0;
    page-break-after: avoid;
    page-break-before: auto;
  }

  h2 {
    font-size: 14pt;
    margin: 16pt 0 6pt 0;
    page-break-after: avoid;
    page-break-before: auto;
    border-bottom: 0.5pt solid #000;
    padding-bottom: 2pt;
  }

  h3 {
    font-size: 12pt;
    margin: 12pt 0 4pt 0;
    page-break-after: avoid;
  }

  h4,
  h5,
  h6 {
    font-size: 11pt;
    margin: 8pt 0 4pt 0;
    page-break-after: avoid;
    font-weight: bold;
  }

  p,
  li {
    orphans: 3;
    widows: 3;
  }

  /* =========================================================
   * 6. Liens : afficher l'URL externe à côté
   * ========================================================= */
  a {
    color: #000 !important;
    text-decoration: underline;
    word-wrap: break-word;
  }

  a[href^="http"]::after,
  a[href^="https"]::after {
    content: " (" attr(href) ")";
    font-size: 0.85em;
    color: #555 !important;
    font-style: italic;
    word-break: break-all;
  }

  /* Pas d'URL pour les ancres internes ni les mailto déjà visibles */
  a[href^="#"]::after,
  a[href^="mailto:"]::after,
  a.no-print-url::after {
    content: "";
  }

  /* =========================================================
   * 7. Code, pre, blocs techniques
   * ========================================================= */
  code,
  pre,
  kbd,
  samp {
    font-family: "Liberation Mono", "DejaVu Sans Mono", "Courier New", monospace;
    font-size: 9.5pt;
    color: #000 !important;
  }

  pre {
    border: 0.5pt solid #000;
    padding: 6pt;
    white-space: pre-wrap;
    word-wrap: break-word;
    page-break-inside: avoid;
  }

  code {
    border: 0.3pt solid #888;
    padding: 0 2pt;
    border-radius: 2pt;
  }

  pre code {
    border: none;
    padding: 0;
  }

  /* =========================================================
   * 8. Callouts (info / note / warn / danger) en niveaux de gris
   * ========================================================= */
  .callout,
  .callout-info,
  .callout-note,
  .callout-tip {
    border-left: 2pt solid #888 !important;
    padding: 4pt 8pt;
    margin: 8pt 0;
    page-break-inside: avoid;
  }

  .callout-warn,
  .callout-warning,
  .warn {
    border-left: 2pt solid #444 !important;
    padding: 4pt 8pt;
    margin: 8pt 0;
    page-break-inside: avoid;
  }

  .callout-danger,
  .callout-error,
  .danger {
    border-left: 3pt solid #000 !important;
    padding: 4pt 8pt;
    margin: 8pt 0;
    page-break-inside: avoid;
    font-weight: 500;
  }

  /* =========================================================
   * 9. Tableaux
   * ========================================================= */
  table {
    width: 100%;
    border-collapse: collapse;
    margin: 8pt 0;
    page-break-inside: avoid;
    font-size: 10pt;
  }

  th,
  td {
    border: 0.5pt solid #000 !important;
    padding: 3pt 5pt;
    text-align: left;
    vertical-align: top;
  }

  thead {
    display: table-header-group; /* répété sur chaque page */
  }

  th {
    background: #eee !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    font-weight: bold;
  }

  tr {
    page-break-inside: avoid;
  }

  /* =========================================================
   * 10. Diagrammes mermaid & images
   * ========================================================= */
  .diagram,
  .mermaid,
  figure {
    background: #fff !important;
    page-break-inside: avoid;
    margin: 8pt 0;
    text-align: center;
  }

  .diagram svg,
  .mermaid svg,
  figure img,
  img {
    max-width: 100%;
    height: auto;
    background: #fff !important;
  }

  figcaption {
    font-size: 9pt;
    font-style: italic;
    color: #333 !important;
    margin-top: 2pt;
  }

  /* =========================================================
   * 11. Listes
   * ========================================================= */
  ul,
  ol {
    margin: 4pt 0 4pt 18pt;
    padding: 0;
  }

  li {
    margin: 1pt 0;
  }

  /* =========================================================
   * 12. Layout : pas de sidebar à l'impression
   * ========================================================= */
  main,
  .doc-main,
  article,
  .content {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    float: none !important;
  }

  aside,
  .sidebar,
  .toc {
    display: none !important;
  }

  /* TOC inline (sommaire en début de doc) : on garde si besoin */
  .toc-inline {
    display: block !important;
    border: 0.5pt solid #000;
    padding: 6pt;
    margin: 8pt 0 16pt 0;
    page-break-inside: avoid;
    font-size: 10pt;
  }

  /* =========================================================
   * 13. Blockquote
   * ========================================================= */
  blockquote {
    border-left: 2pt solid #444 !important;
    padding-left: 8pt;
    margin: 6pt 0;
    font-style: italic;
    color: #222 !important;
    page-break-inside: avoid;
  }

  /* =========================================================
   * 14. HR
   * ========================================================= */
  hr {
    border: none;
    border-top: 0.5pt solid #000;
    margin: 12pt 0;
  }

  /* =========================================================
   * 15. Nouveaux composants (hero, stats, sections, features)
   *     - Imprimés en mode sobre, sans dégradés ni animations
   * ========================================================= */
  .hero {
    background: none !important;
    border: 1pt solid #000 !important;
    padding: 12pt !important;
    box-shadow: none !important;
  }
  .hero::before { display: none !important; }
  .hero__eyebrow {
    background: none !important;
    border: 0.5pt solid #000 !important;
    color: #000 !important;
    padding: 1pt 6pt !important;
  }
  .hero__eyebrow::before { display: none !important; }
  .hero__title { font-size: 18pt !important; color: #000 !important; }
  .hero__title em { color: #000 !important; font-style: italic; }
  .hero__sub { color: #000 !important; }
  .hero__actions, .btn { display: none !important; }

  .stats {
    display: block !important;
    border: 0.5pt solid #000 !important;
    padding: 0 !important;
  }
  .stat {
    display: inline-block !important;
    width: 24% !important;
    padding: 6pt 8pt !important;
    border: 0 !important;
    vertical-align: top !important;
  }
  .stat__num { color: #000 !important; font-size: 16pt !important; }
  .stat__label { color: #444 !important; }

  .section-eyebrow {
    color: #000 !important;
    border-top: 0.5pt solid #000 !important;
    padding-top: 4pt !important;
    margin-top: 12pt !important;
  }
  .section-eyebrow::after { display: none !important; }

  .feature {
    page-break-inside: avoid;
    border-color: #000 !important;
  }
  .feature__icon {
    background: none !important;
    border: 0.5pt solid #000 !important;
    color: #000 !important;
  }
  .feature__title { color: #000 !important; }

  .reveal { opacity: 1 !important; transform: none !important; }
  .badge {
    background: none !important;
    border: 0.5pt solid #000 !important;
    color: #000 !important;
  }
}
