/* impression.css — la même page, sur du papier.
 *
 * CDC §9 : « le PDF n'est que le moyen d'imprimer les données ». Il n'y a donc
 * pas de gabarit PDF : il y a cette feuille de surcharges, appliquée à la page
 * HTML du rapport quand le média est l'impression. WeasyPrint compose le PDF
 * en lisant exactement cette page, avec exactement ces règles.
 *
 * L'identité visuelle est celle du site (point explicite de la charte) :
 * palette, typographie et tokens d'espace viennent de `rapport.css` et ne sont
 * pas redéfinis. Ne vit ici que ce qui relève du papier — format, sauts de
 * page, pagination, et les deux composants dont le rendu à l'écran repose sur
 * une interactivité que le papier n'a pas : l'accordéon et la jauge native.
 */

/* ---------------------------------------------------------------------------
   1. La page A4
   --------------------------------------------------------------------------- */
@page {
  size: A4;
  margin: 16mm 18mm 18mm;

  @bottom-left {
    content: "Audit d'adresse";
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 8pt;
    color: #57534E;
  }

  /* Pagination unique et VRAIE : le total est le nombre de pages réellement
     composées, jamais un nombre de sections annoncé d'avance. */
  @bottom-right {
    content: "Page " counter(page) " / " counter(pages);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    font-size: 8pt;
    color: #57534E;
  }
}

/* ---------------------------------------------------------------------------
   2. Un document imprimé se lit en clair, quel que soit le thème de l'écran
   --------------------------------------------------------------------------- */
:root {
  --fond: #FAFAF9;
  --surf: #FFFFFF;
  --enc: #1C1917;
  --enc2: #57534E;
  --acc: #0F766E;
  --ok: #15803D;
  --attn: #B45309;
  --maj: #B91C1C;
  --bord: #E7E5E4;
  --disabled: #F5F5F4;
  --fond-ok: #ECFDF5;
  --fond-attn: #FFFBEB;
  --fond-maj: #FEF2F2;
  --fond-neutre: #F5F5F4;
  --badge-ok: #DCFCE7;
  --badge-attn: #FEF3C7;
  --badge-maj: #FEE2E2;
  --badge-neutre: #F5F5F4;
  --ombre: none;

  /* Le papier est plus dense que l'écran : l'échelle garde ses proportions,
     elle est simplement ramenée aux points d'un document A4. */
  --t-score: 34pt;
  --t-indice: 19pt;
  --t-pilier: 13pt;
  --t-section: 11pt;
  --t-corps-large: 10.5pt;
  --t-corps: 9.5pt;
  --t-label: 9pt;
  --t-meta: 8pt;
}

body { padding: 0; background: #FFFFFF; font-size: var(--t-corps); line-height: 1.45; }
.entete, .sommaire, .rapport { max-width: none; }

/* ---------------------------------------------------------------------------
   3. Ce que le papier n'a pas
   --------------------------------------------------------------------------- */
/* Le bouton de téléchargement n'a pas d'objet dans le fichier téléchargé, et
   les ancres de navigation rapide non plus : le sommaire les remplace. */
.bouton, .ancres { display: none; }

/* Accordéons : à l'écran, quatre chapitres sur cinq sont repliés. À
   l'impression, tout est déplié — un chapitre absent du PDF serait du contenu
   payé et non livré. */
details > summary ~ * { display: block; }
.chapitre__entete { cursor: auto; min-height: 0; }
.chapitre__etat { display: none; }

/* Jauges : le rendu natif de <meter> n'existe pas à l'impression. La barre
   peinte prend le relais — même valeur, calculée par le même code. */
.jauge__meter { display: none; }

.jauge__trace {
  display: block;
  width: 100%;
  height: 8px;
  background: var(--disabled);
  border: 1px solid var(--bord);
  border-radius: 4px;
  overflow: hidden;
}

.jauge__trace-part { display: block; height: 100%; background: var(--enc2); }
.jauge--positif .jauge__trace-part { background: var(--ok); }
.jauge--attention .jauge__trace-part { background: var(--attn); }
.jauge--alerte .jauge__trace-part { background: var(--maj); }

/* ---------------------------------------------------------------------------
   4. Où le document se coupe
   --------------------------------------------------------------------------- */
/* Page 1 = la couverture : l'adresse, les repères de l'audit, la couverture
   des données. Page 2 = le sommaire des cinq chapitres. */
.entete { break-after: page; padding-bottom: 0; }
.sommaire { break-after: page; box-shadow: none; }

/* Chaque grand chapitre ouvre une page — cinq chapitres, pas cinq pages. */
.chapitre {
  break-before: page;
  margin-bottom: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.chapitre:first-of-type { break-before: avoid; }
.chapitre__entete { break-after: avoid; break-inside: avoid; padding: 0 0 var(--e8); border-bottom: 2px solid var(--acc); }
.chapitre__corps { padding: var(--e16) 0 0; }
.section__titre, .bloc__titre { break-after: avoid; break-inside: avoid; }

/* Ce qui ne se lit pas coupé en deux ne se coupe pas. */
.encadre,
.alerte,
.carte-figure,
.score,
.stat,
.jauge,
.absence,
tr { break-inside: avoid; }

/* Un tableau long, lui, se poursuit page suivante — avec ses en-têtes. */
thead { display: table-header-group; }
tfoot { display: table-footer-group; }

p, li { orphans: 3; widows: 3; }

/* ---------------------------------------------------------------------------
   5. Ajustements de rendu
   --------------------------------------------------------------------------- */
.carte-surface, .carte-figure, .sommaire, .score { box-shadow: none; }

/* Le défilement horizontal n'existe pas sur du papier : le tableau se pose. */
.tableau-defilant { overflow-x: visible; }

table { font-size: var(--t-meta); }
th, td { padding: 4px 8px; }

/* Les cartes gardent leur emprise sans jamais déborder d'une page. */
.carte-figure img { max-height: 150mm; object-fit: contain; }

/* Les liens du sommaire restent des repères, pas des liens soulignés. */
.sommaire a { color: var(--enc); text-decoration: none; }

/* Une image de fond ne s'imprime pas par défaut : les aplats d'état portent
   de l'information (gravité), on force leur impression. */
.encadre, .alerte, .badge, thead th, .score__chiffre, .jauge__trace {
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
