/* ============================================================
   Impression — compléments à assets/questionnaire.css.

   Cette feuille est chargée en media="print" : elle ne s'applique qu'à
   l'impression. Elle a deux rôles que le bloc @media print de la feuille
   d'écran ne peut pas couvrir.

   1. Faire réapparaître ce que le JavaScript masque. Un module non choisi
      est caché à l'écran ; sur papier, toutes les questions doivent être
      présentes. On ne peut pas le faire depuis la feuille d'écran, car
      l'attribut `hidden` est posé par le script après chargement.
   2. Poser le cartouche d'identification en haut de chaque page : le
      document sera rempli à la main, détaché de son contexte, et il doit
      rester identifiable.
   ============================================================ */

/* Le script pose hidden sur les modules non choisis et sur les questions
   conditionnelles. À l'impression, on rétablit tout : un questionnaire
   papier amputé serait un questionnaire perdu. */
@media print{
  .q-module[hidden],
  .q-q[hidden],
  #q-modules-vide[hidden]{
    display:block!important;
  }

  /* Les cinq mentions obligatoires sont repliées à l'écran. Sur papier, un
     bloc replié ne s'imprime pas : le document exige qu'elles figurent sur la
     version distribuée. On rouvre donc le corps, et on retire la ligne de
     résumé et le chevron, qui n'ont plus d'objet. */
  .q-repli-case:not(:checked) ~ .q-repli-corps,
  .q-repli-case:checked ~ .q-repli-corps{
    display:block!important;
  }
  .q-repli-case,.q-repli-chevron,.q-repli-resume{display:none!important}
  .q-repli-titre{
    color:#000;background:#fff;padding:0 0 6pt;border-bottom:1pt solid #000;
  }
  .q-repli{border:0;border-left:0;margin-bottom:14pt}
  .q-repli-corps{padding:10pt 0 0}
  #q-modules-vide,
  .q-actions,
  .q-recap,
  #q-recap-zone{
    display:none!important;
  }

  /* Le cartouche : repris sur chaque page par l'en-tête de table. */
  thead{display:table-header-group}

  body::before{
    content:"Vivre à Saint Barthélemy — questionnaire · Saint-Barth d'Abord · octobre 2026";
    display:block;font-size:8.5pt;color:#000;border-bottom:.5pt solid #000;
    padding-bottom:4pt;margin-bottom:10pt;
  }

  /* Les cases à remplir à la main : un cadre visible vaut mieux qu'un
     soulignement qui disparaît au tirage. */
  .q-q textarea,.q-q input[type="text"]{
    border:0;border-bottom:.75pt solid #000;min-height:0;padding:2pt 0;
    background:none;font-size:11pt;resize:none;
  }
  .q-q textarea{height:auto;min-height:34pt}

  /* Les cases à cocher restent lisibles en noir et blanc : la forme
     l'emporte sur la couleur. */
  .q-opt,.q-profil{border:.75pt solid #555;background:none!important;
    box-shadow:none!important;padding:4pt 6pt;min-height:0}
  .q-opt span,.q-profil span{font-size:10.5pt}
  .q-note{border:.75pt solid #555;background:none!important;width:26pt;height:20pt}
  .q-note span{font-size:10pt}
  .q-note:has(input:checked){background:#000!important}
  .q-note:has(input:checked) span{color:#fff}
  .q-opt:has(input:checked),.q-profil:has(input:checked){
    background:#eee!important;box-shadow:none!important}

  /* La grille : sur papier, la version empilée du mobile devient un
     formulaire lisible ligne par ligne, sans tableau à sept colonnes. */
  .q-grille-zone{overflow:visible;border:0}
  .q-grille{min-width:0;display:block}
  .q-grille thead{display:none}
  .q-grille tbody,.q-grille tr,.q-grille th,.q-grille td{display:block}
  .q-grille tbody tr{border:.75pt solid #555;margin-bottom:6pt;padding:4pt 6pt}
  .q-grille tbody th{background:none;border-bottom:0;padding:0 0 3pt;
    font-size:10.5pt}
  .q-grille td{padding:0}
  .q-cellule{justify-content:flex-start;gap:8pt;padding:2pt 0;min-height:0}
  .q-cellule::after{content:attr(title);font-size:10.5pt}
  .q-visuel{order:-1;width:14pt;height:14pt;border-width:1pt}

  /* Les réponses libres doivent avoir la place d'être écrites à la main :
     la hauteur des zones de texte est celle du document, pas du confort
     d'écran. */
  .q-q{break-inside:auto;page-break-inside:auto;margin-bottom:6pt}
  .q-q:has(textarea){break-inside:avoid}
}