/* ==========================================================================
   Impression et export PDF.
   Ce fichier n'est utilisé que pour l'impression (attribut media="print").
   On n'imprime que la feuille : fond blanc et texte noir par défaut (voir
   la fin de themes.css), les couleurs choisies par l'utilisateur restent.
   ========================================================================== */

@page {
  size: A4;
  margin: 2cm;
}

html,
body {
  height: auto !important;
  overflow: visible !important;
  background: var(--page) !important;
}

/* Tout est masqué sauf le contenu du document. */
.lien-evitement,
.barre-app,
.cadre-barre-outils,
.panneau-recherche,
.barre-etat,
.zone-messages,
.palette,
dialog {
  display: none !important;
}

.application {
  position: static !important;
  display: block !important;
  height: auto !important;
}

.zone-ecriture {
  overflow: visible !important;
  padding: 0 !important;
}

.feuille {
  max-width: none !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--page) !important;
  color: var(--texte) !important;
  outline: none !important;
}

.feuille[data-vide]::before {
  content: none;
}

/* Les résultats d'une recherche en cours ne s'impriment pas. */
::highlight(recherche),
::highlight(recherche-actuelle) {
  background-color: transparent;
  color: inherit;
}

/* Le soulignement des mots inconnus non plus, ni la bulle de suggestions. */
::highlight(correcteur-faute) {
  text-decoration: none;
}

.correcteur-bulle {
  display: none !important;
}

/* Les surlignages et couleurs s'impriment tels quels. */
.feuille,
.feuille * {
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* Un titre ne reste jamais seul en bas d'une page. */
.feuille h1,
.feuille h2,
.feuille h3 {
  break-after: avoid;
  page-break-after: avoid;
  break-inside: avoid;
}

/* Jamais une ligne d'un paragraphe seule en bas ou en haut d'une page :
   au moins deux lignes en bas, et trois en haut quand le paragraphe est
   assez long (un paragraphe de quatre lignes est coupé en deux et deux).
   Ces valeurs ont été vérifiées dans Chrome : avec trois lignes en bas
   aussi, Chrome, ne pouvant pas couper un paragraphe de quatre lignes en
   trois et trois, laisse au contraire une ligne seule en haut de page. */
.feuille p,
.feuille li {
  orphans: 2;
  widows: 3;
}

/* Saut de page : le repère n'apparaît pas sur la feuille, et ce qui le suit
   commence sur une nouvelle page. Plusieurs sauts à la suite n'en font
   qu'un, et un saut tout au début ou tout à la fin du texte ne crée pas de
   page blanche (voir aussi impression.js : les paragraphes vides de la fin
   ne sont pas imprimés). */
.feuille > hr {
  display: none !important;
}

.feuille > hr + * {
  break-before: page;
  page-break-before: always;
  margin-top: 0;
}
