/* ===================================================================
   VitaminérO — Feuille d'impression partagée (Modules 1 · 2 · 3)
   -------------------------------------------------------------------
   Objectif : un PDF sobre, dense et lisible, pensé pour le papier —
   et NON une copie de l'écran. Pas de photo, pas de grandes cartes
   colorées : typographie soignée, filets fins, encre économe, et des
   sauts de page maîtrisés (plus de pages blanches).
   Chargée via <link rel="stylesheet" media="print" href="print.css">
   =================================================================== */

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

/* Thème « papier » — forcé quel que soit le thème écran (clair/sombre) */
:root, [data-theme="light"], [data-theme="dark"] {
  --bg:#fff; --bg2:#fff; --bg3:#f5f1e9; --card:#fff;
  --text:#23201b; --text2:#46403a; --muted:#736b60;
  --accent:#1c8f4c; --accent2:#0f766e; --amber:#a9740f; --blue:#2b6cab;
  --gold:#a9760f; --red:#b1462f; --on-accent:#fff; --border:#dcd6ca; --shadow:none;
}

* { -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important;
    box-shadow:none !important; text-shadow:none !important; }

html, body {
  background:#fff !important; color:var(--text) !important; margin:0 !important; padding:0 !important;
  font-family:'Nunito Sans', system-ui, sans-serif; font-size:10pt; line-height:1.45;
}

/* — Interface masquée (commune aux 3 modules) — */
.topnav, .topbar, .hero, .recap, .center-cta, .errbox, .loading, .q-flow,
.actions, .r-cta, .r-tools, .tool, .elem-link, .gen-btn, .gen-hint,
.r-hero, .chev, .nav-back, .member-badge, .mbar-right { display:none !important; }

/* — Zone imprimée : on neutralise le conteneur, on déploie le résultat — */
.wrap { display:block !important; max-width:none !important; margin:0 !important; padding:0 !important; }
.results, .carnet { position:static !important; display:block !important; background:#fff !important;
  overflow:visible !important; margin:0 !important; padding:0 !important; }
.r-inner { max-width:none !important; margin:0 !important; padding:0 !important; }
a { color:inherit !important; text-decoration:none !important; }

/* — Masthead (en-tête de document) — */
.print-head {
  display:flex !important; align-items:baseline; justify-content:space-between; gap:1rem;
  padding-bottom:6pt; margin:0 0 14pt; border-bottom:1.5pt solid var(--accent);
}
.print-head .ph-logo { font-family:'Newsreader', serif; font-weight:600; font-size:15pt;
  letter-spacing:-0.01em; color:var(--text); }
.print-head .ph-logo span { color:var(--accent); }
.print-head .ph-meta { font-family:'DM Mono', monospace; font-size:8pt; letter-spacing:0.04em;
  text-transform:uppercase; color:var(--muted); text-align:right; }

/* — Sauts de page : laisser couler les gros blocs, protéger les petites unités — */
h1, h2, h3, h4, .sec-h, .sec-title, .jour-t, .rayon h4, .block-t {
  break-after:avoid; page-break-after:avoid; }
.comp, .repas, .elem, .elem-mini, .listcard, .profil-tile, .flagbox, .mixte-box,
.enbref, .disc, .steps li, .ci, .recette, .block, .rayon {
  break-inside:avoid; page-break-inside:avoid; }

/* =====================  Module 3 — Carnet de route  ===================== */
.c-intro {
  font-family:'Newsreader', serif; font-size:11pt; font-style:italic; line-height:1.5;
  color:var(--text2); background:none !important; border:0 !important;
  border-left:2pt solid var(--accent) !important; border-radius:0 !important;
  padding:1pt 0 1pt 10pt; margin:0 0 14pt;
}
.c-intro strong { font-style:normal; color:var(--text); }

section.part { margin:0 0 13pt; padding:0; }
.sec-h {
  display:flex; align-items:center; gap:7pt; margin:0 0 7pt; padding-bottom:4pt;
  font-family:'Newsreader', serif; font-weight:600; font-size:13.5pt; color:var(--text);
  border-bottom:0.75pt solid var(--border);
}
.sec-h .ch-num { flex:0 0 auto; width:19pt; height:19pt; border-radius:50%; display:grid; place-items:center;
  font-family:'DM Mono', monospace; font-size:9.5pt; font-weight:500;
  background:var(--sc, var(--accent)); color:#fff; }
.sec-h .ic { width:15pt; height:15pt; color:var(--sc, var(--accent)); flex:0 0 auto; }
.sec-h > span:last-child { flex:1 1 auto; }
.synthese, .part .synthese { margin:0; color:var(--text2); font-size:10pt; line-height:1.5;
  background:none !important; border:0 !important; border-left:2pt solid var(--sc, var(--accent)) !important;
  border-radius:0 !important; padding:1pt 0 1pt 10pt !important; }

/* Compléments : 3 colonnes compactes, filet de couleur en tête */
.comp-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:8pt; }
.comp { border:0.75pt solid var(--border); border-top:2pt solid var(--sc, var(--accent2)); border-radius:0;
  padding:7pt 8pt; background:#fff; }
.comp-top { display:flex; align-items:baseline; justify-content:space-between; gap:4pt; margin-bottom:3pt; }
.comp .cn { font-family:'Newsreader', serif; font-weight:600; font-size:10.5pt; color:var(--text); }
.comp .orig { font-family:'DM Mono', monospace; font-size:6.2pt; letter-spacing:0.03em; text-transform:uppercase;
  color:var(--muted); border:0.5pt solid var(--border); border-radius:100px; padding:1pt 4pt; white-space:nowrap; }
.comp .cf { font-weight:700; font-size:8.6pt; color:var(--text); margin-bottom:2pt; }
.comp .cpos { font-size:8.4pt; color:var(--text2); margin-bottom:3pt; }
.comp .cc { font-size:8.2pt; color:var(--muted); font-style:italic; line-height:1.4; }

/* Marche à suivre */
ol.steps { list-style:none; margin:0; padding:0; counter-reset:st; }
ol.steps li { counter-increment:st; position:relative; padding:0 0 5pt 20pt; margin:0; font-size:10pt; line-height:1.45; }
ol.steps li::before { content:counter(st); position:absolute; left:0; top:0.5pt; width:13pt; height:13pt; border-radius:50%;
  background:transparent; border:1pt solid var(--sc, var(--gold)); color:var(--sc, var(--gold));
  font-family:'DM Mono', monospace; font-size:8pt; font-weight:500; display:grid; place-items:center; }

/* 3 journées type — dense, sans habillage « details » */
.jour, .part .jour { margin:0 0 8pt !important; padding:8pt 10pt !important; border-radius:4pt !important; }
.jour-t { font-family:'Newsreader', serif; font-weight:600; font-size:11pt; color:var(--sc, var(--amber));
  margin:0 0 5pt; padding-bottom:2pt; border-bottom:0.5pt dotted var(--border); }
.repas { margin:0 0 6pt; padding:0; border:0; background:none; }
.repas > summary { list-style:none; display:block; margin:0 0 2pt; }
.repas > summary::-webkit-details-marker { display:none; }
.repas .moment { font-family:'DM Mono', monospace; font-size:6.6pt; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--sc, var(--amber)); margin-right:5pt; }
.repas .rtitle { font-weight:700; font-size:9.6pt; color:var(--text); }
.repas .rnote { display:block; font-size:8.2pt; color:var(--muted); font-style:italic; margin-top:1pt; }
.recette { margin:3pt 0 0; padding:5pt 8pt; background:var(--bg3); border-radius:0; border-left:1.5pt solid var(--sc, var(--amber)); }
.recette .rh { font-family:'DM Mono', monospace; font-size:6.6pt; letter-spacing:0.06em; text-transform:uppercase;
  color:var(--muted); margin:0 0 1pt; }
.recette .ing { font-size:8.6pt; color:var(--text2); margin:0 0 3pt; }
.recette ol { margin:0 0 3pt; padding-left:13pt; font-size:8.6pt; color:var(--text2); }
.recette ol li { margin:0 0 1pt; }
.recette .atout { font-size:8pt; color:var(--accent); font-style:italic; }
.recette .none { font-size:8.4pt; color:var(--muted); font-style:italic; }

/* Liste de courses — 2 colonnes, cases à cocher fines, sans cartouche */
.courses, .part .courses { column-count:2; column-gap:18pt;
  background:none !important; border:0 !important; border-radius:0 !important; padding:0 !important; }
.rayon { margin:0 0 8pt; }
.rayon h4 { font-family:'Newsreader', serif; font-weight:600; font-size:10pt; color:var(--sc, var(--blue));
  margin:0 0 3pt; padding-bottom:1pt; border-bottom:0.5pt solid var(--border); }
ul.clist { list-style:none; margin:0; padding:0; }
.ci { margin:0 0 1.5pt; }
.ci label { display:flex; align-items:center; gap:5pt; font-size:9pt; color:var(--text2); }
.ci input { display:none; }
.ci .cb { flex:0 0 auto; width:8pt; height:8pt; border:0.75pt solid #8a8276; border-radius:1.5pt; display:inline-block; }
.ci .ct { flex:1 1 auto; }

/* Mode « liste de courses seule » (bouton dédié du carnet) :
   on ne garde que le masthead + la section liste de courses. */
.print-courses .c-intro,
.print-courses section.part:not(.part-courses),
.print-courses .actions,
.print-courses .disc { display:none !important; }
.print-courses .part-courses .ch-num { display:none !important; }  /* liste autonome : pas de n° de chapitre */

/* Disclaimer (commun) — filet simple, pas de cartouche */
.disc { margin:12pt 0 0; padding:6pt 0 0; background:none !important; border:0 !important;
  border-top:0.5pt solid var(--border) !important; border-radius:0 !important;
  font-size:7.6pt; line-height:1.4; color:var(--muted); }
.disc strong { color:var(--text2); }
.disc p { margin:0 0 3pt; }

/* =====================  Module 1 — Bilan  ===================== */
.sec-title { font-family:'Newsreader', serif; font-weight:600; font-size:12.5pt; color:var(--text);
  margin:12pt 0 6pt; padding-bottom:3pt; border-bottom:0.75pt solid var(--border); }
.flagbox { border:0.75pt solid var(--red); border-left:2.5pt solid var(--red); background:#fff; border-radius:0;
  padding:6pt 9pt; margin:0 0 10pt; }
.flagbox .ttl { font-weight:700; font-size:9.5pt; color:var(--red); margin-bottom:2pt; }
.flagbox ul { margin:0; padding-left:13pt; font-size:8.8pt; color:var(--text2); line-height:1.4; }
.elem-grid { display:grid; grid-template-columns:1fr 1fr; gap:9pt; }
.elem { border:0.75pt solid var(--border) !important; border-top:2.5pt solid var(--c, var(--accent)) !important;
  border-radius:0 !important; background:#fff !important; padding:8pt 9pt; }
.elem-tile { display:flex; align-items:center; gap:5pt; margin-bottom:4pt; flex-wrap:wrap; }
.elem-rank { font-family:'DM Mono', monospace; font-size:8pt; font-weight:600; color:var(--c, var(--accent)); }
.elem-prio { font-family:'DM Mono', monospace; font-size:6.4pt; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--muted); border:0.5pt solid var(--border); border-radius:100px; padding:1pt 4pt; }
.elem-sym { margin-left:auto; font-family:'Newsreader', serif; font-weight:600; font-size:11pt; color:var(--c, var(--accent)); }
.elem-type { font-size:6.6pt; text-transform:uppercase; letter-spacing:0.04em; color:var(--muted); }
.elem-name { font-family:'Newsreader', serif; font-weight:600; font-size:11.5pt; margin:0 0 2pt; color:var(--text); }
.elem-desc { font-size:8.8pt; color:var(--text2); line-height:1.45; margin:0 0 3pt; }
.elem-foods { font-size:8.4pt; color:var(--muted); margin:0; }
.elem-foods b { color:var(--text2); }
.elem-mini-wrap { margin-top:4pt; }
.elem-mini-grid { display:flex; flex-wrap:wrap; gap:5pt; }
.elem-mini { display:inline-flex; align-items:center; gap:4pt; border:0.75pt solid var(--border); border-radius:100px; padding:2pt 8pt; }
.elem-mini .ms { font-family:'Newsreader', serif; font-weight:600; font-size:8.6pt; color:var(--c, var(--accent)); }
.elem-mini .mn { font-size:8.2pt; color:var(--text2); }
.principes { border:0.75pt solid var(--border); border-left:2.5pt solid var(--accent); background:#fff; border-radius:0;
  padding:7pt 9pt; margin:10pt 0 0; }
.principes h3 { font-family:'Newsreader', serif; font-weight:600; font-size:10.5pt; margin:0 0 3pt; color:var(--text); }
.principes ul { margin:0; padding-left:13pt; font-size:8.8pt; color:var(--text2); line-height:1.45; }
.principes li { margin:0 0 1.5pt; }

/* =====================  Module 2 — Profil  ===================== */
.profil-tile { display:flex; align-items:center; gap:9pt; border:0.75pt solid var(--border);
  border-left:3pt solid var(--c, var(--accent)); border-radius:0; background:#fff; padding:8pt 10pt; margin:0 0 10pt; }
.profil-badge { flex:0 0 auto; width:26pt; height:26pt; border-radius:50%; background:var(--c, var(--accent)); color:#fff;
  font-family:'Newsreader', serif; font-weight:600; font-size:13pt; display:grid; place-items:center; }
.pt-name { font-family:'Newsreader', serif; font-weight:600; font-size:13pt; color:var(--text); }
.pt-terrain { font-size:8.6pt; color:var(--muted); }
.mixte-box { border:0.75pt solid var(--gold); border-left:2.5pt solid var(--gold); background:#fff; border-radius:0;
  padding:6pt 9pt; margin:0 0 9pt; }
.mixte-box .ttl { font-weight:700; font-size:9.2pt; color:var(--gold); margin-bottom:2pt; }
.mixte-box p { font-size:8.8pt; color:var(--text2); margin:0; line-height:1.45; }
p.lead { font-family:'Newsreader', serif; font-size:10.5pt; font-style:italic; color:var(--text2); margin:0 0 7pt; line-height:1.5; }
.enbref { font-size:9.2pt; color:var(--text); background:var(--bg3); border-radius:0; padding:6pt 9pt; margin:0 0 10pt;
  display:flex; gap:6pt; }
.two { display:grid; grid-template-columns:1fr 1fr; gap:9pt; margin:0 0 9pt; align-items:start; }
.two .card { margin:0; }
.card { border:0.75pt solid var(--border); border-radius:0; background:#fff; padding:8pt 9pt; margin:0 0 9pt; }
.card h3 { font-family:'Newsreader', serif; font-weight:600; font-size:10.5pt; margin:0 0 4pt; color:var(--text); }
.flist { list-style:none; margin:0; padding:0; font-size:8.8pt; color:var(--text2); line-height:1.4; }
.flist li { position:relative; padding-left:11pt; margin:0 0 2pt; }
.flist.bon li::before { content:"✓"; position:absolute; left:0; color:var(--accent); font-weight:700; }
.flist.evi li::before { content:"–"; position:absolute; left:0; color:var(--red); font-weight:700; }
.block { margin:0 0 5pt; }
.block-t { font-family:'DM Mono', monospace; font-size:7pt; letter-spacing:0.04em; text-transform:uppercase;
  color:var(--muted); margin:0 0 2pt; }
.block-t span { font-family:'Nunito Sans', sans-serif; }
.chips { display:flex; flex-wrap:wrap; gap:3pt; }
.chip { font-size:8pt; color:var(--text2); border:0.5pt solid var(--border); border-radius:100px; padding:1pt 6pt; }
.chip .arw { display:none; }
.rythme { font-size:9pt; color:var(--text2); margin:0; line-height:1.45; }
