/* ---------------------------------------------------------------------------
   Mise en page d'impression du rapport d'exercice.

   Ce document sort du portail pour finir dans un dossier, une pièce jointe ou
   un copil. Il doit donc se suffire à lui-même : porter le nom du client, la
   version exacte du plan restauré et les dates, sans dépendre de ce qui était
   affiché à l'écran autour.

   Trois règles :
   - rien ne doit être coupé entre deux pages au milieu d'un ring ;
   - les URL des liens sont rendues visibles, sinon « voir le plan » ne veut
     plus rien dire une fois imprimé ;
   - la coquille applicative (barre latérale, barre supérieure) disparaît
     entièrement, et la zone de vue cesse d'être une boîte à défilement - sans
     quoi l'impression s'arrête à la hauteur de l'écran.
--------------------------------------------------------------------------- */

/* L'en-tête et le pied d'impression n'existent qu'à l'impression : à l'écran,
   la barre supérieure du portail dit déjà où l'on est. */
.eps-entete-impression,
.eps-pied-impression {
  display: none;
}

@page {
  size: A4;
  margin: 14mm 12mm 16mm;
}

@media print {
  body {
    background: #fff !important;
    color: #000;
    font-size: 10.5pt;
  }

  /* La coquille est en `height:100vh` + `overflow:hidden`, et la zone de vue
     défile à l'intérieur. Sans cette remise à plat, l'imprimante ne reçoit que
     le premier écran du rapport. */
  .eps-app {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
  }

  .eps-principal,
  .eps-vue {
    display: block !important;
    overflow: visible !important;
    padding: 0 !important;
    height: auto !important;
  }

  .eps-cote,
  .eps-barre,
  .eps-onglets,
  .eps-sans-impression,
  form {
    display: none !important;
  }

  .eps-rapport {
    max-width: none;
  }

  .eps-entete-impression {
    display: block;
    border-bottom: 2px solid #00005f;
    padding-bottom: 6mm;
    margin-bottom: 6mm;
  }

  .eps-entete-impression .eps-logo-impression {
    height: 12mm;
    width: auto;
  }

  .eps-entete-impression dl {
    display: grid;
    grid-template-columns: auto 1fr auto 1fr;
    gap: 1mm 4mm;
    margin: 4mm 0 0;
    font-size: 9.5pt;
  }

  .eps-entete-impression dt {
    font-weight: 600;
    color: #00005f;
  }

  .eps-entete-impression dd {
    margin: 0;
  }

  .eps-titre-objet {
    font-size: 16pt;
    margin: 0 0 2mm;
  }

  .eps-titre-carte,
  .eps-titre-section {
    font-size: 12pt;
    margin-top: 6mm;
    break-after: avoid;
  }

  /* Les cartes deviennent de simples blocs cadrés : ombres et rayons ne
     survivent pas au niveau de gris, et le cadre suffit à séparer. */
  .eps-carte,
  .eps-panneau,
  .eps-panneau--marine,
  .eps-panneau--nuit,
  .eps-sequence-carte,
  .eps-checklist {
    break-inside: avoid;
    box-shadow: none !important;
    border: 0.2mm solid #999 !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #000 !important;
    padding: 3mm 4mm !important;
    margin-top: 3mm;
  }

  .eps-meta-plan,
  .eps-colonnes-fiche,
  .eps-colonnes-fiche--inverse,
  .eps-deux-colonnes {
    display: grid !important;
    gap: 4mm !important;
  }

  .eps-meta-plan {
    grid-template-columns: repeat(4, 1fr) !important;
  }

  /* Le rail de la séquence perd sa colonne : à l'impression, le numéro de ring
     est déjà dans le titre de l'étape, et une colonne vide de 64 px mange la
     largeur utile du tableau. */
  .eps-sequence-etape,
  .eps-sequence-etape--serree {
    display: block !important;
  }

  .eps-sequence-rail {
    display: none !important;
  }

  .eps-sequence-carte {
    margin-left: 0 !important;
  }

  /* Les tableaux repassent en vrai tableau : la grille CSS de l'écran ne
     répète pas ses en-têtes d'une page à l'autre. */
  .eps-tableau,
  .eps-tableau thead,
  .eps-tableau tbody {
    display: table !important;
    width: 100%;
    border: 0 !important;
    border-radius: 0 !important;
  }

  .eps-tableau thead {
    display: table-header-group !important; /* répété sur chaque page */
  }

  .eps-tableau tbody {
    display: table-row-group !important;
  }

  .eps-tableau tr {
    display: table-row !important;
    padding: 0 !important;
  }

  .eps-tableau th,
  .eps-tableau td {
    display: table-cell !important;
    border: 0.2mm solid #bbb;
    padding: 1.2mm 2mm;
    font-size: 9pt;
    color: #000;
  }

  /* Les puces perdent leur fond : en niveaux de gris, un aplat coloré ne
     distingue plus rien. Le texte suffit. */
  .eps-puce,
  .eps-pastille {
    background: none !important;
    color: #000 !important;
    padding: 0;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 8pt;
  }

  .eps-pastille {
    display: none !important;
  }

  /* Un lien imprimé sans son URL est un lien mort. */
  .eps-procedure a[href^="http"]::after {
    content: " (" attr(href) ")";
    font-size: 8pt;
    color: #444;
  }

  .eps-pied-impression {
    display: block;
    margin-top: 8mm;
    padding-top: 4mm;
    border-top: 0.3mm solid #999;
    font-size: 8.5pt;
    color: #444;
  }

  /* Le bandeau de simulation ne se retire JAMAIS à l'impression : c'est
     exactement le document qu'on pourrait prendre pour un vrai. */
  .eps-bandeau-simulation {
    border: 2px solid #b3261e !important;
    background: #fbe9e7 !important;
    color: #96201a !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }
}
