/* ============================================================================
   10 — TECHNIQUE
   ----------------------------------------------------------------------------
   Style documentation technique : police mono pour le code mis en valeur,
   sobre et fonctionnel, accent vert terminal, tableaux denses. Pour notes
   techniques, documentation de tes apps, manuels d'utilisation.
   ============================================================================ */

/* ============================================================================
   CORRECTIF — Neutralisation des puces de liste générées par l'extension
   ----------------------------------------------------------------------------
   L'extension logseq-pdf-export-plugin transforme CHAQUE bloc LogSeq en un
   élément <li> d'une liste HTML. Les "cercles" visibles dans le PDF sont donc
   les puces standard des <li>. On les masque ici pour avoir un rendu lisse.
   Conséquence : les listes Markdown explicites n'auront pas non plus de puces
   dans le PDF — c'est un compromis nécessaire puisque tout est rendu en liste.
   Si tu veux RESTAURER les puces, supprime ce bloc.
   ============================================================================ */

/* Neutralisation totale des puces de liste */
ul, ol {
  list-style: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}

li {
  list-style: none !important;
}

li::marker {
  content: "" !important;
}

/* Au cas où LogSeq préserverait aussi ses classes internes : on les masque */
.bullet,
.bullet-container,
.bullet-link-wrap,
.block-control,
.rotating-arrow,
.control-hide,
.block-control-wrap {
  display: none !important;
}

/* Annule le décalage négatif que LogSeq applique au conteneur de blocs */
.page-blocks-inner {
  margin-left: 0 !important;
}

:root {
  --couleur-titre: #1A1A1A;
  --couleur-accent: #0F8C5C;               /* Vert "terminal" / IDE */
  --couleur-lien: #0F6FB8;                 /* Bleu liens techniques */
  --couleur-texte: #1F2937;
  --couleur-filet: #E5E7EB;
  --couleur-encadre: #F3F4F6;              /* Gris très clair pour code */
  --couleur-encadre-fonce: #1F2937;        /* Sombre pour les blocs de code */

  --police-titre: 'Inter', 'Source Sans 3', 'Source Sans Pro', sans-serif;
  --police-texte: 'Inter', 'Source Sans 3', 'Source Sans Pro', sans-serif;
  --police-code:  'JetBrains Mono', 'Fira Code', 'Source Code Pro', monospace;

  --taille-base: 10.5pt;                   /* Un peu plus petit : densité */
  --interligne: 1.55;
}

/* === 2. MISE EN PAGE & PAGINATION === */
@page {
  size: A4;
  margin: 2cm 2cm 2.2cm 2cm;               /* Marges étroites : maximiser l'espace */

  /* Pagination type "v1.0.0 — Page 3 / 12" en pied de page */
  @bottom-left {
    content: "Documentation technique";   /* Modifie selon ton projet */
    font-family: 'JetBrains Mono', monospace;
    font-size: 8pt;
    color: #888888;
    padding-top: 0.4cm;
  }

  @bottom-right {
    content: counter(page) " / " counter(pages);
    font-family: 'JetBrains Mono', monospace;
    font-size: 8pt;
    color: var(--couleur-accent, #0F8C5C);
    font-weight: 600;
    padding-top: 0.4cm;
  }
}

@page :first { margin-top: 2.8cm; }

/* === 3. STRUCTURE DE BASE === */
body {
  font-family: var(--police-texte);
  font-size: var(--taille-base);
  line-height: var(--interligne);
  color: var(--couleur-texte);
  text-align: left;                        /* Pas de justification en doc tech */
  hyphens: none;                           /* Pas de césure : mots techniques entiers */
}

/* === 4. TITRES === */
h1, h2, h3, h4, h5, h6 {
  font-family: var(--police-titre);
  color: var(--couleur-titre);
  font-weight: 700;
  page-break-after: avoid;
  break-after: avoid;
  text-align: left;
  letter-spacing: -0.01em;
}

/* Titre principal avec préfixe "# " mono comme un commentaire de code */
h1 {
  font-size: 1.8em;
  margin: 0 0 0.5em 0;
  padding-bottom: 0.3em;
  border-bottom: 2px solid var(--couleur-titre);
}
h1::before {
  content: "# ";
  font-family: var(--police-code);
  color: var(--couleur-accent);
  font-weight: 400;
}

h2 {
  font-size: 1.3em;
  margin: 1.5em 0 0.4em 0;
  padding-bottom: 0.2em;
  border-bottom: 1px solid var(--couleur-filet);
}
h2::before {
  content: "## ";
  font-family: var(--police-code);
  color: var(--couleur-accent);
  font-weight: 400;
}

h3 {
  font-size: 1.15em;
  margin: 1.2em 0 0.3em 0;
}
h3::before {
  content: "### ";
  font-family: var(--police-code);
  color: var(--couleur-accent);
  font-weight: 400;
}

h4 { font-size: 1.05em; margin: 1em 0 0.2em 0; }
h5, h6 { font-size: 1em; margin: 0.8em 0 0.2em 0; font-style: italic;
         color: var(--couleur-accent); }

/* === 5. PARAGRAPHES === */
p { margin: 0 0 0.8em 0; orphans: 3; widows: 3; }
strong, b { font-weight: 700; color: var(--couleur-titre); }
em, i { font-style: italic; }

/* === 6. LIENS === */
a, a:link, a:visited {
  color: var(--couleur-lien);
  text-decoration: none;
  border-bottom: 1px dotted var(--couleur-lien);
}
a:hover { border-bottom-style: solid; }

/* === 7. LISTES === */
ul, ol { margin: 0.5em 0 0.9em 0; padding-left: 1.5em; }
li { margin-bottom: 0.2em; text-align: left; }
li > ul, li > ol { margin: 0.2em 0; }

/* === 8. TABLEAUX === */
/* Style dense, technique, avec accents typographiques */
table { width: 100%; border-collapse: collapse; margin: 0.8em 0 1em;
        page-break-inside: avoid; font-size: 0.95em; }
th, td { padding: 0.4em 0.6em; text-align: left; vertical-align: top;
         border-bottom: 1px solid var(--couleur-filet); }
thead th {
  background-color: var(--couleur-encadre-fonce);
  color: white;
  font-weight: 600;
  font-family: var(--police-code);
  font-size: 0.9em;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border-bottom: none;
}
tbody tr:nth-child(even) { background-color: var(--couleur-encadre); }

/* === 9. CITATIONS (style "note" / "warning") === */
blockquote {
  margin: 1em 0;
  padding: 0.7em 1em;
  background-color: var(--couleur-encadre);
  border-left: 4px solid var(--couleur-accent);
  color: var(--couleur-texte);
  page-break-inside: avoid;
}
blockquote p:last-child { margin-bottom: 0; }
/* Préfixe automatique "NOTE" sur les citations (style doc tech) */
blockquote::before {
  content: "NOTE ";
  font-family: var(--police-code);
  font-weight: 700;
  font-size: 0.85em;
  color: var(--couleur-accent);
  letter-spacing: 0.1em;
}

/* === 10. CODE (très soigné, c'est le cœur du style) === */
code {
  font-family: var(--police-code);
  font-size: 0.9em;
  background-color: var(--couleur-encadre);
  padding: 0.15em 0.4em;
  border-radius: 3px;
  color: var(--couleur-accent);
  border: 1px solid var(--couleur-filet);
}

/* Bloc de code "terminal" : fond sombre, texte clair */
pre {
  font-family: var(--police-code);
  font-size: 0.85em;
  background-color: var(--couleur-encadre-fonce);
  color: #E5E7EB;
  padding: 1em 1.2em;
  border-radius: 4px;
  border-left: 4px solid var(--couleur-accent);
  margin: 1em 0;
  overflow-x: auto;
  white-space: pre-wrap;
  word-wrap: break-word;
  page-break-inside: avoid;
  line-height: 1.4;
}
pre code {
  background: none;
  padding: 0;
  border: none;
  color: inherit;
  font-size: 1em;
}

/* === 11. IMAGES & HR === */
img { max-width: 100%; height: auto; display: block; margin: 1em auto;
      border: 1px solid var(--couleur-filet); }
hr {
  border: none;
  border-top: 1px dashed var(--couleur-filet);
  margin: 1.5em 0;
}

/* === 12. IMPRESSION === */
@media print {
  body { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  h1, h2, h3, h4, h5, h6 { page-break-after: avoid; break-after: avoid; }
}
