@import url('https://fonts.googleapis.com/css2?family=Fira+Code:wght@400;600&family=Fira+Sans:ital,wght@0,200;0,300;0,400;0,600;0,700;1,400&display=swap');

/* Masquer les titres d'onglets injectés JS en mode web normal */
.print-tab-title {
  display: none;
}

@media print {
  /* =========================================================
     1. PAGE, MARGES & SUPPRESSION DE L'INTERFACE WEB
     ========================================================= */
  @page {
    size: A4 portrait;
    margin: 8mm 15mm 15mm 15mm;
    
    @top-left {
      content: "Statistique Exploratoire";
      vertical-align: bottom;
      padding-bottom: 1.5mm;
      font-family: 'Fira Sans', sans-serif;
      font-size: 11px;
      font-weight: 300;
      color: #555;
      border-bottom: 0.5pt solid #888;
    }

    @top-center {
      content: "2026 -- 2027";
      vertical-align: bottom;
      padding-bottom: 1.5mm;
      font-family: 'Fira Sans', sans-serif;
      font-size: 11px;
      font-weight: 300;
      color: #555;
      border-bottom: 0.5pt solid #888;
    }

    @top-right {
      content: "Université de Toulouse";
      vertical-align: bottom;
      padding-bottom: 1.5mm;
      font-family: 'Fira Sans', sans-serif;
      font-size: 11px;
      font-weight: 300;
      color: #555;
      border-bottom: 0.5pt solid #888;
    }

    @bottom-center {
      content: counter(page) " / " counter(pages);
      font-family: 'Fira Sans', sans-serif;
      font-size: 11px;
      font-weight: 300;
      color: #555;
    }
  }

/* Masquer uniquement les éléments de navigation de Quarto */
  .navbar,
  #quarto-sidebar,
  #quarto-margin-sidebar,
  .quarto-secondary-nav,
  footer.footer,
  .nav-page,
  .toc-actions,
  .panel-tabset > .nav-tabs,
  .panel-tabset > ul.nav {
    display: none !important;
  }

  /* Laisser le header visible mais masquer ses composants de navigation internes */
  #quarto-header {
    display: block !important;
  }

  #quarto-header nav,
  #quarto-header .navbar-container {
    display: none !important;
  }

  /* S'assurer que le titre reste parfaitement visible */
  #quarto-header .title,
  h1.title {
    display: block !important;
    visibility: visible !important;
    color: #000 !important;
  }

  /* Le flux d'impression hérite de la zone utile délimitée par @page */
  #quarto-content,
  main.content,
  .page-columns,
  .body-content {
    box-sizing: border-box !important;
    max-width: 100% !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 1mm 0 0 0 !important;
    -webkit-box-decoration-break: clone;
    box-decoration-break: clone; 
  }

  /* =========================================================
     2. TYPOGRAPHIE GLOBALE (Fira Sans 11px / Pas de majuscules)
     ========================================================= */
  body, h1, h2, h3, h4, h5, h6 {
    font-family: 'Fira Sans', sans-serif !important;
    text-transform: none !important;
  }

  html, body {
    font-size: 14px !important;
    font-weight: 300 !important;
    line-height: 1.35 !important;
    color: #111111 !important;
  }

  a,
  a:visited {
    text-decoration: none !important;
    color: inherit;
  }

  em, i {
    font-weight: 300 !important;
  }

  strong, b {
    font-weight: 600 !important;
  }

  /* =========================================================
     3. HIÉRARCHIE DES TITRES & TITRES D'ONGLETS
     ========================================================= */
  h1, h2, h3, h4, h5, h6 {
    font-weight: 600 !important;
    color: #000000 !important;
    letter-spacing: normal !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  h1.title, h1 {
    font-size: 1.5rem !important; /* ~16.5px */
    margin: 0 0 0.6rem 0 !important;
    padding-bottom: 0.25rem !important;
  }

  h1 {
    border-bottom: 2px solid #eb811b !important; /* Orange Metropolis */
  }

  h1.title {
    font-size: 1.8rem !important;
    text-align: center !important;
    margin-bottom: 5rem !important;
    padding-bottom: 1rem !important;
    border-bottom: none !important;
  }

  h2 {
    font-size: 1.2rem !important; /* ~13px */
    margin: 3rem 0 0.5rem 0 !important;
    padding-bottom: 0.15rem !important;
    border-bottom: 1px solid #e0e0e0 !important;
  }

  h3 {
    font-size: 1.05rem !important; /* ~11.5px */
    margin: 1.5rem 0 0.4rem 0 !important;
  }

  h4, .print-tab-title {
    font-size: 1rem !important; /* 11px */
    margin: 0.6rem 0 0.2rem 0 !important;
  }

  /* Rendre visible le titre d'onglet injecté par le script JS */
  .print-tab-title {
    display: block !important;
    color: #eb811b !important;
    font-weight: 600 !important;
  }

  /* =========================================================
     4. GESTION DES BLOCS, CODE ET SAUTS DE PAGE
     ========================================================= */
  p, ul, ol {
    margin: 0.4rem 0 0.4rem 0 !important;
  }

  p, li {
    text-align: justify !important;
    text-justify: inter-word;
    hyphens: auto;
  }

  li {
    margin-bottom: 0.15rem !important;
  }

  p, li {
    orphans: 3;
    widows: 3;
  }

  /* Code source en Fira Code */
  pre, code, kbd {
    font-family: 'Fira Code', monospace !important;
    font-size: 9.5px !important;
  }

  /* Blocage des coupures au milieu d'un élément réactif */
  pre, 
  code, 
  .callout, 
  table, 
  .table, 
  figure, 
  .cell-output,
  .panel-tabset .tab-pane {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* =========================================================
     5. DÉPLIEMENT DES PANNEAUX (.panel-tabset) 
     ========================================================= */
  .panel-tabset > .tab-content {
    border: none !important;
    padding: 0 !important;
  }

  .panel-tabset .tab-pane {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    position: static !important;
    width: 100% !important;
    margin: 0.4rem 0 0.8rem 0 !important;
    padding: 8px 12px !important;
    box-sizing: border-box !important;
  }

  /* =========================================================
     5. COLONNES ET GRILLES CÔTE À CÔTE (.columns / .grid)
     ========================================================= */
  /* Conteneur de colonnes Quarto (.columns) */
  .columns {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    gap: 1.5rem !important;
    width: 100% !important;
    margin-bottom: 0.8rem !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  /* Chaque colonne individuelle */
  .column {
    flex: 1 1 0px !important;
    width: auto !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Gestion de la grille responsive Quarto (.grid) */
  .grid {
    display: grid !important;
    gap: 1.5rem !important;
    width: 100% !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  [class*="g-col-"] {
    margin: 0 !important;
  }
}