/* ============================================================================
   Pointo — feuille d'impression de la FICHE MISSION
   Déclarée dans index.html seul :
       <link rel="stylesheet" href="/css/print.css" media="print">
   Ni tv.html ni mobile.html ne la chargent : ils n'ont rien à imprimer.

   Tout est sous @media print. Rien ici ne s'applique à l'écran, même si le
   media="print" du <link> venait à sauter.

   La garde body:has(#fiche.open) est essentielle : sans elle, un Ctrl+P
   depuis le planning masquerait toute la page et sortirait une feuille
   blanche. Avec elle, l'impression n'est détournée QUE lorsque la fiche est
   effectivement ouverte ; sinon le navigateur imprime la page normalement.
   Même motif que le voile (body:has(.panel.open) #voile) — c'est la
   convention de la maison, pas une invention.

   ⚠ AUCUN FOND, AUCUN DÉGRADÉ NULLE PART DANS CE FICHIER.
   L'option « Graphiques d'arrière-plan » du navigateur est DÉCOCHÉE par
   défaut : un fond serait visible à l'aperçu et absent sur le papier. Les
   traits — filets, cadres, lignes à écrire — sont donc tous faits en
   bordures, qui s'impriment quelle que soit cette case.
   ========================================================================== */

@media print {

  @page {
    size: A4 portrait;
    margin: 16mm 15mm;
  }

  /* --- 1. Ne rien imprimer d'autre que la fiche ---------------------------
     #fiche doit être un ENFANT DIRECT de <body>, comme les autres .panel. */
  body:has(#fiche.open) > *:not(#fiche) {
    display: none !important;
  }

  /* --- 2. Décoller la fiche de l'écran -----------------------------------
     .panel est position:fixed, max-height:78vh, overflow:hidden. Un élément
     fixed ne se pagine pas : il se rend sur la première page et le reste est
     coupé sans report. On le repasse dans le flux normal. */
  body:has(#fiche.open) #fiche {
    display: block !important;
    position: static !important;
    inset: auto !important;
    margin: 0 !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: none !important;
    color: #000 !important;
    font: 12pt/1.45 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  }

  #fiche > .body {
    display: block !important;
    overflow: visible !important;
    max-height: none !important;
    height: auto !important;
    flex: none !important;
    padding: 0 !important;
  }

  /* --- 3. En-tête ---------------------------------------------------------
     Le bandeau sombre de l'écran devient un titre au trait : un aplat noir
     ne sortirait pas de l'imprimante avec les fonds désactivés. */
  #fiche > header {
    display: block !important;
    flex: none !important;
    padding: 0 0 4mm !important;
    margin: 0 0 5mm !important;
    background: none !important;
    color: #000 !important;
    border-bottom: 1.5pt solid #000 !important;
  }

  #fiche > header .eyebrow {
    font-size: 9pt;
    letter-spacing: .12em;
    color: #444 !important;
  }

  #fiche > header h3 {
    margin: 2mm 0 0 !important;
    font-size: 19pt;
    font-weight: 700;
    color: #000 !important;
  }

  /* --- 4. Les lignes de coordonnées -------------------------------------- */
  #fiche .fi-ligne {
    display: flex !important;
    align-items: baseline;
    gap: 6mm;
    padding: 2mm 0 !important;
    border-bottom: .5pt solid #bbb !important;
    break-inside: avoid;
  }

  #fiche .fi-lib {
    flex: 0 0 30mm;
    font-size: 9.5pt;
    color: #555 !important;
  }

  #fiche .fi-val {
    flex: 1;
    font-size: 12.5pt;
    font-weight: 600;
    color: #000 !important;
  }

  /* Le téléphone est la donnée qu'on cherche en urgence au bord de la route :
     c'est la seule chose qu'on grossit. Toute la discipline de la feuille
     sert à ce que ce numéro saute aux yeux. */
  #fiche .fi-ligne.fi-tel .fi-val {
    font-size: 16pt;
    letter-spacing: .02em;
  }

  /* --- 5. La consigne du technicien ---------------------------------------
     Le <textarea> ne s'imprime pas de façon fiable : les navigateurs coupent
     son contenu à sa hauteur d'écran, sans report de page. Le JS recopie donc
     le texte dans #fiNoteImp, masqué à l'écran, imprimé ici.
     Pas de lignes réglées dans ce cadre : il porte du texte tapé, des filets
     dessous le rendraient illisible. */
  #fiche .fi-consigne {
    margin-top: 6mm !important;
    break-inside: avoid;
  }

  #fiche .fi-consigne .fi-lib {
    display: block;
    margin-bottom: 1.5mm;
  }

  #fiche .fi-consigne textarea {
    display: none !important;
  }

  #fiche #fiNoteImp {
    display: block !important;
    min-height: 32mm;
    padding: 3mm !important;
    border: .75pt solid #000 !important;
    font-size: 12pt;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
  }

  /* --- 6. Remarques du poseur — papier seulement --------------------------
     Ce bloc n'existe QUE sur la feuille. Rien ne le saisit, rien ne le
     remonte : c'est du papier, il se remplit au stylo et se rapporte au
     bureau. S'il devait un jour être ressaisi dans Pointo, ce serait un
     autre sujet, avec sa propre table.
     Les filets sont des border-bottom sur des blocs vides — jamais un
     repeating-linear-gradient, qui disparaîtrait à l'impression. */
  #fiche #fiRemarques {
    display: block !important;
    margin-top: 6mm !important;
    break-inside: avoid;
  }

  #fiche #fiRemarques .fi-lib {
    display: block;
    margin-bottom: 1.5mm;
  }

  #fiche .fi-reglure {
    border: .75pt solid #000 !important;
    border-bottom: 0 !important;
    padding: 0 3mm !important;
  }

  /* Une ligne à écrire = un bloc vide de 9 mm, filet en pied.
     9 mm : au-dessus du seuil confortable pour une écriture manuscrite
     adulte au stylo bille (le réglé Seyès fait 8 mm). */
  #fiche .fi-reglure .fi-l {
    display: block !important;
    height: 9mm;
    border-bottom: .5pt solid #999 !important;
  }

  /* Le dernier filet ferme le cadre : plus épais, couleur du contour. */
  #fiche .fi-reglure .fi-l:last-child {
    border-bottom: .75pt solid #000 !important;
  }

  /* --- 7. Ce qui ne s'imprime jamais -------------------------------------- */
  #fiche > footer,
  #fiche .no-print {
    display: none !important;
  }

  /* --- 8. Pied de page ----------------------------------------------------
     Sans repère, deux feuilles imprimées à deux jours d'écart sont
     indistinguables. Le JS remplit #fiPied avec la date d'impression. */
  #fiche #fiPied {
    display: block !important;
    margin-top: 5mm !important;
    padding-top: 1.5mm !important;
    border-top: .5pt solid #bbb !important;
    font-size: 8.5pt;
    color: #666 !important;
  }
}
