/* ============================================================
   PRINT.CSS — Export PDF de la fiche (via window.print())
   ============================================================
   Chargé uniquement pendant l'impression (voir <link media="print"> dans
   index.html), donc sans aucun coût sur l'affichage normal du site.

   Déclenché par exportFichePdf() (js/core.js), qui ajoute la classe
   body.exporting-pdf juste avant d'ouvrir le dialogue d'impression du
   navigateur, puis la retire une fois terminé (évènement 'afterprint').

   RÔLE :
     1) Neutraliser le thème de couleurs choisi par le joueur (les variables
        --bg/--gold/--text/... sont redéfinies ici en noir sur blanc) pour un
        rendu lisible quel que soit le réglage "Imprimer les arrière-plans"
        du navigateur — comme tous les composants du site lisent déjà ces
        variables CSS, les redéfinir ici suffit à tout uniformiser sans
        toucher aux règles de chaque composant.
     2) Forcer l'affichage simultané des 4 sections qui composent le
        personnage (Fiche, Inventaire, Compétences, Journal — normalement
        mutuellement exclusives via .page/.page.active, une seule visible à
        la fois), chacune démarrant sur une nouvelle page imprimée.
     3) Masquer la navigation, les boutons d'édition et les panneaux
        flottants (chat, carte, anneaux...) qui n'ont pas leur place sur une
        fiche imprimée.
     4) Neutraliser l'apparence "champ de formulaire" (fond, bordure pleine)
        des champs texte pour qu'ils se lisent comme du texte simple.

   NB : Campagne et Paramètres ne font pas partie du "personnage" et ne sont
   donc jamais inclus, qu'ils aient été visités ou non pendant la session.
   ============================================================ */

@media print {

  /* ── 1) Thème neutralisé : noir sur blanc, quel que soit le thème choisi ──
     !important nécessaire : le thème du joueur est souvent appliqué en style
     inline sur <html> (document.documentElement.style.setProperty(...)),
     qui ne serait sinon pas surchargé par une simple règle de feuille de
     style externe. */
  :root {
    --bg:             #ffffff !important;
    --bg2:            #ffffff !important;
    --bg3:            #f2f2f2 !important;
    --slot-empty:     #f5f5f5 !important;
    --spe-slot-empty: #f5f5f5 !important;
    --char-panel:     #ffffff !important;
    --border:         #999999 !important;
    --border2:        #bbbbbb !important;
    --border3:        #cccccc !important;
    --gold:           #6b4e0e !important;
    --text:           #111111 !important;
    --muted:          #555555 !important;
    --dim:            #666666 !important;
    --filled:         #333333 !important;
    --hover:          transparent !important;
    --danger:         #a33333 !important;
    --danger-dim:     #a33333 !important;
    --danger-deep:    #7a2010 !important;
    --ok:             #2a7a4a !important;
    --item-name:      #6b4e0e !important;
    --item-desc:      #333333 !important;
    --item-effet:     #1f5a73 !important;
    --placeholder:    #888888 !important;
    --select-bg:      #ffffff !important;
    --cell-bg:        #ffffff !important;
  }

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

  /* ── Mise en page : le site est bâti pour tenir dans 100vh (comme une app
     de bureau), l'exact opposé d'un document imprimé qui doit couler sur
     sa hauteur naturelle. ── */
  html, body, .aspect-wrap, .app {
    height: auto !important;
    min-height: 0 !important;
    min-width: 0 !important;
    width: auto !important;
    overflow: visible !important;
    background: #ffffff !important;
    box-shadow: none !important;
    border: none !important;
  }

  /* ── 3) Chrome d'interface masqué à l'impression, dans tous les cas ── */
  .nav-bar,
  .modal-overlay,
  .map-chat-panel,
  .rings-float,
  .prostheses-panel,
  .map-modal-overlay {
    display: none !important;
  }

  /* ── 2) Les 4 sections du personnage, forcées visibles ensemble ──
     Seulement quand le PDF a été lancé via le bouton dédié (classe posée
     par exportFichePdf()) — un Ctrl+P "sauvage" sur un onglet quelconque
     n'active pas ce comportement, seul le nettoyage des couleurs (§1)
     s'applique alors. */
  body.exporting-pdf .page {
    display: none !important;
  }
  body.exporting-pdf #page-fiche,
  body.exporting-pdf #page-inventaire,
  body.exporting-pdf #page-competences,
  body.exporting-pdf #page-capital {
    display: flex !important;
    flex-direction: column !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    page-break-inside: auto;
    page-break-after: always;
    break-after: page;
  }
  /* Dernière section : pas de page blanche superflue après. */
  body.exporting-pdf #page-capital {
    page-break-after: auto;
    break-after: auto;
  }
  #page-inventaire.active { flex-direction: column !important; }
  body.exporting-pdf .main-body {
    height: auto !important;
    overflow: visible !important;
  }

  /* Boutons d'édition (ajouter/retirer/éditer...) : du contrôle d'interface,
     pas du contenu de fiche — masqués dans les 4 sections imprimées. */
  body.exporting-pdf #page-fiche button,
  body.exporting-pdf #page-inventaire button,
  body.exporting-pdf #page-competences button,
  body.exporting-pdf #page-capital button {
    display: none !important;
  }

  /* ── 4) Champs de saisie : rendus comme du texte simple, sans cadre ── */
  body.exporting-pdf .char-input,
  body.exporting-pdf .fiche-stat-inp,
  body.exporting-pdf .param-input,
  body.exporting-pdf input[type="text"],
  body.exporting-pdf input[type="number"],
  body.exporting-pdf textarea,
  body.exporting-pdf select {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid #999999 !important;
    box-shadow: none !important;
    color: #111111 !important;
  }

  /* Cases à cocher / radios : gardées telles quelles (leur état coché fait
     partie du contenu), juste recolorées pour rester lisibles. */
  body.exporting-pdf input[type="checkbox"],
  body.exporting-pdf input[type="radio"] {
    border-color: #999999 !important;
    background: #ffffff !important;
  }
}
