/* =========================================================================
   IMPRESSION — quittances, récapitulatifs, bordereaux, états d'impayés
   À charger avec media="print".

   Principe : la page imprimée n'est pas une capture de l'écran, c'est un
   document. On retire toute la navigation, on rétablit les tableaux en
   tableaux (même si l'écran était en mode cartes), on passe en noir sur
   blanc et on ajoute l'en-tête et le pied qui font d'une page un papier
   opposable : identité de l'agence, objet, date d'édition, pagination.
   ========================================================================= */

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

@media print{

  /* ------------------------------------------------ ce qui disparaît */
  .barre-haute,.rail,.voile,.barre-basse,.barre-contact,.barre-validation,
  .site-entete,.site-nav,.site-pied,.saut,.bouton-menu,.bouton-haut,
  .barre-outils,.filtres,.onglets,.outils-secondaires,.action-ecran,
  .rangee-actions,.cellule-actions,.lien-action,.aide,.pagination,
  .fil-ariane,.etat-vide .btn,.sans-impression,.btn{
    display:none!important;
  }

  /* ------------------------------------------------ ce qui apparaît */
  .impression-seulement{ display:block!important; }

  /* --------------------------------------------------- mise en page */
  html,body{
    background:#FFF!important; color:#000!important;
    font-size:10.5pt; line-height:1.4;
  }
  body.appli{ display:block!important; grid-template-columns:none!important; }
  .zone,.contenu,.enveloppe{
    display:block!important; width:auto!important; max-width:none!important;
    padding:0!important; margin:0!important;
  }
  .bloc,.encart,.indicateur,.carte,.tableau-defile{
    border:1px solid #000!important; border-radius:0!important;
    background:#FFF!important; padding:6pt!important;
    box-shadow:none!important; break-inside:avoid;
  }
  .bloc + .bloc{ margin-top:6pt!important; }
  a{ color:#000!important; text-decoration:none!important; }

  h1{ font-size:15pt; } h2{ font-size:12.5pt; } h3{ font-size:11pt; }
  .titre-page,.entete-page h1{ font-size:15pt; margin-bottom:4pt; }

  /* --------------------------- en-tête de document (répété par page) */
  .entete-impression{
    display:flex!important; justify-content:space-between; align-items:flex-start;
    gap:10pt; border-bottom:2pt solid #000; padding-bottom:6pt; margin-bottom:8pt;
  }
  .entete-impression .identite b{ font-size:13pt; display:block; }
  .entete-impression .identite span{ font-size:8.5pt; display:block; }
  .entete-impression .objet{ text-align:right; font-size:9pt; }
  .entete-impression .objet b{ font-size:11.5pt; display:block;
    text-transform:uppercase; letter-spacing:.06em; }

  .pied-impression{
    display:block!important; margin-top:10pt; padding-top:5pt;
    border-top:1pt solid #000; font-size:8pt;
  }

  /* ------------------------------------ tableaux : toujours tabulaires */
  .tableau,.tableau thead,.tableau tbody,.tableau tfoot,
  .tableau tr,.tableau th,.tableau td{ display:revert!important; }
  .tableau{ display:table!important; width:100%!important;
    border-collapse:collapse!important; font-size:9pt; }
  .tableau thead{ display:table-header-group!important; }
  .tableau tfoot{ display:table-footer-group!important; }
  .tableau tr{ display:table-row!important; break-inside:avoid;
    border:0!important; padding:0!important; margin:0!important;
    background:#FFF!important; border-radius:0!important; }
  .tableau th,.tableau td{
    display:table-cell!important; padding:4pt 5pt!important;
    border:1px solid #666!important; background:#FFF!important;
    color:#000!important; text-align:left; vertical-align:top; }
  .tableau td::before{ display:none!important; }
  .tableau thead th{ background:#E8E8E8!important; font-size:8.5pt;
    text-transform:uppercase; letter-spacing:.04em; }
  .tableau .num{ text-align:right!important; }
  .tableau tfoot td{ font-weight:800; background:#F0F0F0!important; }
  .tableau-defile{ overflow:visible!important; }
  .tableau-defile .tableau{ min-width:0!important; }

  /* ------------------------------------------- états, en noir et blanc */
  .etat{ border:1px solid #000!important; background:#FFF!important;
    color:#000!important; padding:1pt 5pt!important; font-size:8pt; }
  .etat::before{ display:none!important; }
  .etat-paye::after{ content:" ✓"; }
  .etat-retard::after,.etat-impaye::after{ content:" ✗"; }

  /* ---------------------------------------------- indicateurs en ligne */
  .indicateurs,.cascade{ display:grid!important;
    grid-template-columns:repeat(3,1fr)!important; gap:5pt!important; }
  .indicateur .valeur{ font-size:13pt!important; color:#000!important; }
  .indicateur .intitule{ font-size:8.5pt!important; color:#000!important; }
  .indicateur{ border-bottom-width:1px!important; }

  /* --------------------------------------------- blocs propres au papier */
  .mention-legale{ font-size:8pt; margin-top:8pt; }
  .zone-signature{
    display:grid!important; grid-template-columns:1fr 1fr; gap:20pt;
    margin-top:18pt; break-inside:avoid; }
  .zone-signature div{ border-top:1pt solid #000; padding-top:4pt; font-size:9pt;
    min-height:60pt; }
  .cachet{ margin-top:14pt; border:1px dashed #000; height:70pt; width:180pt;
    display:grid; place-items:center; font-size:8pt; }

  .saut-page{ break-before:page; }
  h1,h2,h3{ break-after:avoid; }
  tr,.encart,.zone-signature{ break-inside:avoid; }
}

/* ⚠️ LA RÈGLE D'ÉCRAN N'EST PLUS ICI — déplacée dans base.css le
   27/09/2026, parce qu'elle ne servait à RIEN.
   Cette feuille est appelée avec `media="print"` (voir mise-en-page/nue.php) :
   le navigateur ne l'applique qu'à l'impression, et un `@media screen` qui s'y
   trouve ne peut jamais être vrai. L'en-tête d'impression — nom de l'agence,
   adresse, numéro d'agrément, objet — s'affichait donc EN CLAIR au-dessus de
   chaque quittance, de chaque récapitulatif et de chaque bordereau à l'écran,
   répétant ce que le document dit déjà en dessous.
   Constaté en refaisant la quittance. */

@media print{
  /* --- QUITTANCE DE LOYER -------------------------------------------------
     ⚠️ LA COULEUR DOIT SORTIR À L'IMPRESSION. Par défaut, un navigateur
     n'imprime PAS les fonds ni les bordures colorées : le trait orange sous
     le logo et le filet bleu des totaux disparaîtraient, et la quittance
     sortirait en noir et blanc — c'est-à-dire sans la marque que la
     directrice a demandé d'y mettre. `print-color-adjust:exact` l'impose,
     comme pour le cachet de l'agence (voir base.css).

     Le reste ne sert qu'à ce qu'aucun bloc ne se coupe entre deux pages.  */
  .quittance-entete, .quittance-titre,
  .quittance-expediteur, .quittance-destinataire,
  .quittance-formule, .quittance-bloc, .quittance-pied{
    page-break-inside:avoid;
    -webkit-print-color-adjust:exact; print-color-adjust:exact;
  }
  .quittance-logo{ height:72pt; }
  .quittance-pied-page{ border-top:1px solid #BBB; }
  .quittance-lignes > div{ border-bottom:1px solid #BBB; }
}
