/* Impression — pour la revue mensuelle sur papier.

   Fichier séparé, chargé en media="print" : rien de tout cela ne pèse sur
   l'affichage écran, et les règles d'impression ne se mêlent pas au reste
   de la feuille où elles seraient noyées.

   Le principe : on imprime le contenu, pas l'application. Tout ce qui sert
   à agir — navigation, boutons, curseurs, champs de saisie — disparaît, et
   ce qui reste doit tenir en pages nettes, sans couper une catégorie en
   deux ni gaspiller de l'encre en aplats sombres. */

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

@media print {

  /* ------------------------------------------------- ce qui ne s'imprime pas */

  .sidebar,
  .months-nav,
  .assist,
  .undo,
  .modal,
  .alert__actions,
  .cat__outils,
  .cat__pied,
  .item__more,
  .detail,
  .sim-panel__reset,
  .sync,
  .sidebar__session,
  .export__actions,
  .gate {
    display: none !important;
  }

  /* --------------------------------------------------------- mise en page */

  html, body {
    background: #FFF;
    color: #000;
    font-size: 10.5pt;
  }

  .shell, .main {
    display: block;
    height: auto;
    padding: 0;
    margin: 0;
    overflow: visible;
  }

  .screen { gap: 10mm; }

  /* Les cartes deviennent des blocs sobres : les ombres et les fonds
     mangent de l'encre sans rien apporter sur papier. */
  .card, .hero, .kpi, .alert, .sim-panel {
    box-shadow: none !important;
    background: #FFF !important;
    border: 1px solid #999;
    break-inside: avoid;
  }

  /* Une catégorie, une ligne de tableau ou un compte ne se coupent pas
     entre deux pages : la moitié d'un poste est illisible. */
  .cat, .arow, .srow, .hrow, .compte, .dette, .dlist__row, .catbar {
    break-inside: avoid;
  }

  .head, .title { break-after: avoid; }
  .card__title, .table__head { break-after: avoid; }

  /* Les tableaux larges ne défilent pas sur papier : on les laisse tenir. */
  .scroll-x { overflow: visible !important; }
  .agrid, .sgrid, .hgrid, .bgrid { font-size: 8.5pt; }

  /* ------------------------------------------------- champs et contrôles */

  /* Un champ de saisie imprimé en bordure blanche donne un tableau troué :
     on ne garde que la valeur. */
  input, select, textarea {
    border: none !important;
    background: transparent !important;
    color: #000 !important;
    padding: 0 !important;
    -webkit-appearance: none;
    appearance: none;
  }
  input[type="range"], input[type="checkbox"] { display: none !important; }

  /* --------------------------------------------------------------- repères */

  a { color: #000; text-decoration: none; }

  /* Les teintes d'alerte se perdent en noir et blanc : on les remplace par
     un liseré, qui survit à une imprimante monochrome. */
  .agrid__cell.is-haut,
  .pill--seuil,
  .alerte-seuil {
    background: #FFF !important;
    border-left: 3px solid #000 !important;
    color: #000 !important;
  }
}

/* L'aide ne s'imprime pas : on imprime des chiffres, pas un mode d'emploi. */
@media print {
  .aide,
  .aide__bouton { display: none !important; }
}

/* L'assistant ne s'imprime pas. */
@media print {
  .chat, .chat__ouvrir { display: none !important; }
}
