/* =========================================================================
   LEGATUS — habillage « bande dessinée »
   Case illustrée + bulle de dialogue + tableau de bord de jauges.
   ========================================================================= */
:root{
  --pierre:#F2ECE0; --parchemin:#FBF7EF; --pierre-bord:#D8CBB2;
  --encre:#3A2E26; --encre-doux:#6B6256;
  --pourpre:#732640; --pourpre-fonce:#511A2D;
  --pompei:#9E3B2E; --bronze:#A9803C; --olive:#4F6F52; --ambre:#C8862B;
  --olive-clair:#E4EBDD; --rouge-clair:#F6E2DD; --bronze-clair:#F2E7CF;
  --display:"Cinzel","Trajan Pro",Georgia,serif;
  --corps:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --rayon:6px; --cerne:3px solid var(--encre);
}
*{box-sizing:border-box} html,body{margin:0;padding:0}
body{background:var(--pierre);color:var(--encre);font-family:var(--corps);font-size:17px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  background-image:radial-gradient(circle at 12% 12%,rgba(169,128,60,.05),transparent 38%),radial-gradient(circle at 88% 88%,rgba(115,38,64,.05),transparent 40%);
  background-attachment:fixed;}

header.tete{text-align:center;padding:24px 20px 12px}
header.tete h1{font-family:var(--display);font-weight:700;letter-spacing:.08em;font-size:clamp(26px,4vw,40px);margin:0}
header.tete .sous{font-family:var(--corps);letter-spacing:.02em;font-size:14.5px;color:var(--pourpre);margin-top:6px}

.wrap{max-width:1180px;margin:0 auto;padding:0 22px 56px}

/* ===== jauges (sticky, à icônes) ===== */
#jauges{position:sticky;top:0;z-index:6;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;
  padding:12px 16px;margin:0 auto 18px;max-width:1180px;
  background:rgba(251,247,239,.96);border:2px solid var(--pierre-bord);border-radius:var(--rayon);backdrop-filter:blur(2px)}
/* mode pression : panneau menace à gauche + jauges en 2×2 à droite, à la même hauteur */
#jauges.avec-menace{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px 16px}
#jauges.avec-menace .revolte-banner{flex:0 0 100%}
#jauges.avec-menace .menace-sparte{flex:0 0 clamp(228px,27%,300px);margin:0;display:flex;flex-direction:column;justify-content:center}
#jauges.avec-menace .jauges-grille{flex:1 1 320px;min-width:0;display:grid;grid-template-columns:1fr 1fr;gap:9px 20px;align-content:center}
@media(max-width:620px){
  #jauges.avec-menace{flex-direction:column;align-items:stretch}
  #jauges.avec-menace .menace-sparte{flex:0 0 auto}
  #jauges.avec-menace .jauges-grille{flex:0 0 auto;align-content:start}
}
.jauge{display:flex;gap:9px;align-items:center;min-width:0}
.jauge .ic{flex:none;width:34px;height:34px;border-radius:8px;background:var(--bronze-clair);border:1.5px solid var(--pierre-bord);
  display:flex;align-items:center;justify-content:center}
.jauge .ic svg{width:22px;height:22px;display:block}
.jauge-corps{flex:1;min-width:0}
.jauge-haut{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.jauge-nom{font-size:11.5px;letter-spacing:.04em;color:var(--encre-doux);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jauge-val{font-size:13px;font-weight:600;white-space:nowrap}
.delta{margin-left:5px;font-weight:700;font-size:12px;animation:flotte 1.4s ease forwards}
.delta.plus,.d-plus{color:var(--olive)} .delta.moins,.d-moins{color:var(--pompei)}
@keyframes flotte{0%{opacity:0;transform:translateY(6px)}25%{opacity:1;transform:translateY(0)}80%{opacity:1}100%{opacity:.85}}
.rail{height:8px;background:var(--pierre-bord);border-radius:4px;overflow:hidden;margin-top:4px}
.fill{height:100%;width:0;transition:width .7s cubic-bezier(.4,1.3,.5,1)}
.fill.pourpre{background:var(--pourpre)} .fill.bronze{background:var(--bronze)}
.fill.ok{background:var(--olive)} .fill.moyen{background:var(--ambre)} .fill.bas{background:var(--pompei)}

/* ===== la case (scène BD) ===== */
.case{position:relative;width:100%;aspect-ratio:16/10;border:4px solid var(--encre);border-radius:10px;overflow:hidden;
  background:#cdd9d0 center/cover no-repeat;box-shadow:0 6px 22px rgba(58,46,38,.18)}
.case::after{content:"";position:absolute;inset:0;pointer-events:none;transition:background .4s}
.case.danger::after{background:radial-gradient(circle at 50% 30%,rgba(158,59,46,.0),rgba(120,30,20,.28))}
.case.solennel::after{background:radial-gradient(circle at 50% 20%,rgba(217,169,60,.16),rgba(115,38,64,.22))}

.perso{position:absolute;left:1%;bottom:0;height:96%;width:auto;filter:drop-shadow(0 4px 6px rgba(58,46,38,.25));
  transition:opacity .35s ease, transform .35s ease}
.perso.entre{animation:apparait .4s ease}
@keyframes apparait{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* bulle de dialogue */
.bulle{position:absolute;top:7%;right:3.5%;width:54%;max-width:430px;background:#fff;border:3px solid var(--encre);
  border-radius:16px;padding:14px 18px;box-shadow:0 4px 0 rgba(58,46,38,.15);animation:pop .32s cubic-bezier(.3,1.4,.5,1)}
.bulle::after{content:"";position:absolute;left:-26px;bottom:26px;width:0;height:0;
  border:14px solid transparent;border-right-color:var(--encre);border-left:0}
.bulle::before{content:"";position:absolute;left:-20px;bottom:28px;width:0;height:0;z-index:1;
  border:11px solid transparent;border-right-color:#fff;border-left:0}
@keyframes pop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}
.bulle .qui{font-family:var(--corps);font-weight:700;font-size:12.5px;letter-spacing:.01em;color:var(--pourpre);margin-bottom:5px}
.bulle .dit{font-size:16px;line-height:1.5}
.bulle .dit .alerte{color:var(--pompei);font-style:italic}

/* vignette document (image réelle) */
.doc-vignette{position:absolute;right:3.5%;bottom:5%;width:30%;max-width:190px;background:#fff;border:3px solid var(--encre);
  border-radius:4px;padding:5px;transform:rotate(2deg);box-shadow:0 4px 10px rgba(58,46,38,.3)}
.doc-vignette img{display:block;width:100%;border-radius:2px}
.doc-vignette .leg{font-size:10.5px;text-align:center;color:var(--encre-doux);padding:3px 0 1px;font-family:var(--display);letter-spacing:.04em}

/* ===== intermède d'acte ===== */
.interlude{position:relative;border:4px solid var(--encre);border-radius:10px;overflow:hidden;
  background:var(--pourpre-fonce);color:#F7F2E8;padding:48px 32px;text-align:center;
  background-image:linear-gradient(135deg,rgba(115,38,64,.96),rgba(81,26,45,.96));box-shadow:0 6px 22px rgba(58,46,38,.22)}
.interlude.danger{background-image:linear-gradient(135deg,rgba(120,30,20,.96),rgba(60,18,14,.96))}
.interlude.solennel{background-image:linear-gradient(135deg,rgba(115,38,64,.96),rgba(80,60,20,.92))}
.int-acte{font-family:var(--corps);font-weight:800;letter-spacing:.01em;font-size:clamp(19px,3vw,27px);color:#F0D98C}
.int-texte{max-width:560px;margin:16px auto 0;font-size:17px;line-height:1.6}
.interlude .btn-primaire{background:#F0D98C;color:var(--pourpre-fonce)}
.interlude .btn-primaire:hover{background:#fff}

/* ===== progression du mandat ===== */
.progression{margin-top:16px}
.prog-acte{font-family:var(--corps);font-weight:700;letter-spacing:.01em;font-size:15px;color:var(--pourpre)}
.prog-seg{display:flex;gap:5px;margin-top:7px}
.prog-seg .dot{flex:1;height:6px;border-radius:3px;background:var(--pierre-bord);transition:background .3s}
.prog-seg .dot.passe{background:var(--bronze)}
.prog-seg .dot.actuel{background:var(--pourpre)}

/* ===== options de décision ===== */
.titre-acte{font-family:var(--corps);font-weight:700;letter-spacing:0;font-size:22px;margin:18px 2px 2px}
.kicker{font-family:var(--corps);font-weight:700;font-size:12px;letter-spacing:.02em;color:var(--bronze);margin:16px 2px 0}
.options{display:grid;gap:11px;margin-top:14px}
.option{text-align:left;background:#fff;border:2px solid var(--pierre-bord);border-left:5px solid var(--bronze);
  border-radius:var(--rayon);padding:14px 18px;cursor:pointer;font-family:inherit;font-size:16.5px;
  transition:transform .14s,box-shadow .14s,border-color .14s}
.option:hover{transform:translateX(3px);box-shadow:0 4px 14px rgba(58,46,38,.12);border-left-color:var(--pourpre)}
.option:focus-visible{outline:3px solid var(--pourpre);outline-offset:2px}
.option-titre{font-weight:600;display:flex;justify-content:space-between;gap:12px;align-items:baseline}
.option .cout{font-family:var(--display);font-size:12.5px;color:var(--bronze);white-space:nowrap;letter-spacing:.03em}
.option.indispo{opacity:.5;cursor:not-allowed;border-left-color:var(--pierre-bord)}
.option.indispo:hover{transform:none;box-shadow:none}
.option-sous{font-size:13px;color:var(--pompei);margin-top:4px}

/* ===== conséquences ===== */
.deltas{margin-top:14px;padding:11px 16px;border-radius:var(--rayon);font-weight:600;font-size:15px}
.deltas.juste{background:var(--olive-clair);border:2px solid var(--olive)}
.deltas.faux{background:var(--rouge-clair);border:2px solid var(--pompei)}
.deltas .corr{margin-top:5px;font-size:13px;font-weight:400;color:var(--encre-doux)}
.pourquoi{margin-top:13px;padding:13px 18px;background:var(--bronze-clair);border-left:5px solid var(--bronze);
  border-radius:0 var(--rayon) var(--rayon) 0;font-size:15px;line-height:1.5;color:#5c441b}
.pq-tete{font-family:var(--display);font-weight:700;letter-spacing:.04em;color:var(--bronze)}
.actions{display:flex;gap:12px;align-items:center;margin-top:18px;flex-wrap:wrap}
.btn{font-family:var(--corps);font-weight:700;letter-spacing:.01em;font-size:15px;
  padding:12px 26px;border-radius:var(--rayon);cursor:pointer;border:2px solid transparent;transition:all .14s}
.btn-primaire{background:var(--pourpre);color:#fff}.btn-primaire:hover{background:var(--pourpre-fonce)}
.btn:focus-visible{outline:3px solid var(--bronze);outline-offset:2px}

/* ===== fin de mandat ===== */
.bilan-jauges{margin-top:16px;display:grid;gap:8px}
.bilan-ligne{display:flex;justify-content:space-between;padding:10px 14px;background:#fff;border:2px solid var(--pierre-bord);border-radius:var(--rayon)}
.bilan-v{font-family:var(--display);font-weight:700;color:var(--pourpre)}

@media (max-width:620px){
  #jauges{grid-template-columns:repeat(2,1fr);gap:10px}
  .case{aspect-ratio:4/3}
  .bulle{width:60%;font-size:14px;padding:10px 12px}
  .bulle .dit{font-size:13.5px}
  .doc-vignette{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ===== choix de difficulté ===== */
.difficulte{border:4px solid var(--encre);border-radius:12px;background:#F2E7CF;padding:34px 24px;text-align:center}
.diff-titre{font-family:var(--display);font-weight:700;font-size:clamp(20px,3vw,28px);color:var(--pourpre)}
.diff-intro{max-width:580px;margin:10px auto 24px;color:#6B5A48;line-height:1.55}
.diff-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;max-width:720px;margin:0 auto}
.diff-carte{cursor:pointer;text-align:left;border:3px solid var(--encre);border-radius:10px;background:#fff;padding:16px 16px 18px;transition:transform .12s ease,box-shadow .12s ease}
.diff-carte:hover{transform:translateY(-3px);box-shadow:0 7px 18px rgba(58,46,38,.20)}
.diff-nom{font-family:var(--corps);font-weight:700;font-size:20px;color:var(--encre)}
.diff-sous{color:#6B5A48;font-size:13.5px;margin:3px 0 12px;line-height:1.4}
.diff-detail{font-size:13px;color:var(--pourpre);font-weight:700}
@media(max-width:640px){ .diff-grille{grid-template-columns:1fr} }

/* ===== révolte (niveau de difficulté) ===== */
.revolte-banner{grid-column:1/-1;background:linear-gradient(90deg,#8a2417,#b23a26);color:#fff;
  font-family:var(--display);font-weight:700;letter-spacing:.02em;text-align:center;
  padding:9px 12px;border-radius:8px;border:2px solid #5e1810;font-size:14px;
  animation:pulseRev 1.9s ease-in-out infinite}
@keyframes pulseRev{0%,100%{box-shadow:0 0 0 0 rgba(178,58,38,.55)}50%{box-shadow:0 0 0 6px rgba(178,58,38,0)}}
.note-revolte{margin:12px 0 2px;padding:11px 14px;border-radius:8px;border:2px solid #b23a26;
  background:#fbeae6;color:#7a2117;font-weight:600;line-height:1.5}
@media(prefers-reduced-motion:reduce){ .revolte-banner{animation:none} }

/* ===== indicateurs de trajectoire (sous les décisions) ===== */
.axes{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:11px 26px;
  align-items:start;padding:13px 16px 15px;background:rgba(251,247,239,.72);
  border:1.5px solid var(--pierre-bord);border-radius:var(--rayon)}
.axes-tete{grid-column:1/-1;font-family:var(--display,var(--corps));font-size:12.5px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--encre-doux);font-weight:700;margin-bottom:1px}
.axe-poles{display:flex;justify-content:space-between;font-size:11.5px;
  letter-spacing:.03em;font-weight:700;margin-bottom:5px}
.axe-pole-g{color:var(--pompei)} .axe-pole-d{color:var(--olive)}
.axe-rail{position:relative;height:9px;border-radius:5px;border:1px solid var(--pierre-bord)}
.axe-rail.dem{background:linear-gradient(90deg,var(--pompei),var(--pierre-bord) 50%,var(--olive))}
.axe-rail.lib{background:linear-gradient(90deg,var(--pompei),var(--pierre-bord) 50%,var(--olive))}
.axe-marqueur{position:absolute;top:50%;width:17px;height:17px;border-radius:50%;
  background:var(--parchemin);border:3px solid var(--encre);
  transform:translate(-50%,-50%);box-shadow:0 1px 3px rgba(58,46,38,.32)}
@media(max-width:620px){ .axes{grid-template-columns:1fr;gap:12px} }

/* ===== pression sur l'Empire (climax actes IV-V) ===== */
.menace-sparte{margin:0 0 12px;padding:9px 13px 11px;border-radius:var(--rayon);border:1.5px solid}
.menace-tete{display:flex;align-items:center;gap:9px;font-weight:800;letter-spacing:.02em;font-size:13.5px}
.menace-ic{font-family:var(--display,serif);font-weight:800;font-size:15px;width:23px;height:23px;flex:none;
  display:inline-flex;align-items:center;justify-content:center;border:2px solid currentColor;border-radius:50%}
.menace-ic svg{width:15px;height:15px;display:block}
.menace-titre{flex:1}
.menace-pct{font-variant-numeric:tabular-nums;font-size:13px}
.menace-rail{height:9px;border-radius:5px;background:rgba(60,30,20,.14);margin:7px 0 5px;overflow:hidden}
.menace-fill{height:100%;border-radius:5px;transition:width .5s ease}
.menace-note{font-size:11.5px;font-style:italic;opacity:.9}
.menace-sparte.niv-bas{color:#7a5a2a;border-color:#caa56a;background:linear-gradient(180deg,#fbf1df,#f2e2c4)}
.menace-sparte.niv-bas .menace-fill{background:#c79a52}
.menace-sparte.niv-moyen{color:#9a3b1e;border-color:#d27a4a;background:linear-gradient(180deg,#fbe6da,#f4cfbb)}
.menace-sparte.niv-moyen .menace-fill{background:linear-gradient(90deg,#d27a4a,#b23a26)}
.menace-sparte.niv-haut{color:#fff;border-color:#7d1d12;background:linear-gradient(180deg,#9a2417,#6f1409);animation:menacePulse 1.7s ease-in-out infinite}
.menace-sparte.niv-haut .menace-rail{background:rgba(255,255,255,.20)}
.menace-sparte.niv-haut .menace-fill{background:linear-gradient(90deg,#ffc05a,#ff6a3c)}
@keyframes menacePulse{0%,100%{box-shadow:0 0 0 0 rgba(155,36,23,0)}50%{box-shadow:0 0 0 5px rgba(155,36,23,.30)}}
@media(prefers-reduced-motion:reduce){ .menace-sparte.niv-haut{animation:none} .menace-fill{transition:none} }

/* ===== badge de fin : niveau atteint ===== */
.badge-rang{display:flex;align-items:center;gap:15px;justify-content:center;
  margin:6px 0 16px;padding:13px 18px;border-radius:var(--rayon);border:2px solid}
.badge-medaille{flex:none;width:62px;height:62px}
.badge-medaille svg{width:100%;height:100%;display:block}
.badge-niveau{font-size:11px;letter-spacing:.15em;text-transform:uppercase;font-weight:800;opacity:.78}
.badge-nom{font-family:var(--display,serif);font-weight:700;font-size:20px;line-height:1.15;margin-top:1px}
.badge-or{color:#9a7a1e;border-color:#cda93f;background:linear-gradient(180deg,#fcf4dc,#f1e4b4)}
.badge-argent{color:#566571;border-color:#9aa7b3;background:linear-gradient(180deg,#f3f6f9,#e1e7ee)}
.badge-bronze{color:#8a4f28;border-color:#bd7a44;background:linear-gradient(180deg,#f9ead8,#edd1b3)}
.badge-sombre{color:#5a4a40;border-color:#9a8674;background:linear-gradient(180deg,#efe7dd,#dcd0c2)}

/* ===== document source (à consulter avant de décider) ===== */
.source{margin:16px 0 6px;background:#F3E9D2;border:2px solid #C9B98F;border-left:6px solid var(--bronze);
  border-radius:8px;padding:13px 15px;box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}
.src-tete{font-family:var(--corps);font-weight:700;font-size:13px;letter-spacing:.01em;color:#9a7b2f}
.src-txt{margin-top:7px;font-size:15.5px;line-height:1.58;color:var(--encre)}
.src-ref{margin-top:9px;font-size:12.5px;font-style:italic;color:#6B5A48;text-align:right}

/* ===== revenu par tour (jauge Trésor) ===== */
.jauge-revenu{font-size:11px;font-weight:700;color:#9a7b2f;margin-top:4px}
.jauge-revenu.nul{color:#b23a26}

/* ===== avertissement de Rome (intermède) ===== */
.int-avert{max-width:560px;margin:14px auto 0;padding:11px 15px;border-radius:8px;
  background:rgba(251,234,230,.95);border:2px solid #b23a26;color:#7a2117;font-weight:600;line-height:1.5}

/* ===== mise en page : personnage à gauche, documents à droite ===== */
.scene-doc{display:flex;gap:14px;align-items:stretch;margin-bottom:6px}
.scene-doc .case{flex:1 1 58%;width:auto;align-self:flex-start}
.docs{flex:1 1 42%;min-width:0;display:flex;flex-direction:column;gap:10px;
  background:#EFE3C6;border:2px solid #C9B98F;border-radius:12px;padding:12px}
.docs-tete{font-family:var(--corps);font-weight:700;font-size:13.5px;letter-spacing:.01em;
  color:#8a6d28}
.docs .source{margin:0;flex:1 1 0;min-height:0;overflow:auto;background:#F7EFDB}
.docs .source:nth-child(3){border-left-color:#6b7f8a;background:#EEF2F4}
.docs .source:nth-child(3) .src-tete{color:#52707d}
@media (max-width:760px){
  .scene-doc{flex-direction:column}
  .scene-doc .case{flex:none;width:100%}
  .docs{flex:none}
  .docs .source{overflow:visible}
}

/* ===================== PAGE D'ACCUEIL ===================== */
.accueil{max-width:1180px;margin:0 auto}
.acc-hero{position:relative;text-align:center;padding:30px 22px 26px;border:3px solid var(--encre);border-radius:14px;
  background:radial-gradient(120% 130% at 50% 0%, #DCE6EA 0%, #EFE6CF 48%, #F4ECD7 100%);overflow:hidden}
.acc-hero::before,.acc-hero::after{content:"";position:absolute;top:0;bottom:0;width:46px;
  background:repeating-linear-gradient(90deg,#EFE7D2 0 10px,#E2D7B8 10px 13px);opacity:.5}
.acc-hero::before{left:0;border-right:2px solid var(--pierre-bord)}
.acc-hero::after{right:0;border-left:2px solid var(--pierre-bord)}
.acc-embleme{width:118px;margin:0 auto 6px;position:relative;z-index:1}
.embleme{width:118px;height:auto;display:block}
.acc-titre{font-family:var(--display);font-weight:700;letter-spacing:.06em;
  font-size:clamp(34px,7vw,58px);color:var(--pourpre);margin:2px 0 0;position:relative;z-index:1}
.acc-sous{font-family:var(--corps);letter-spacing:.04em;font-size:14.5px;color:var(--bronze);margin-top:6px;position:relative;z-index:1}
.acc-accroche{max-width:680px;margin:16px auto 4px;font-size:16.5px;line-height:1.6;color:var(--encre);position:relative;z-index:1}
.acc-section{margin-top:18px;background:var(--parchemin);border:2px solid var(--pierre-bord);border-radius:12px;padding:18px 20px}
.acc-pedago{background:#F3ECDD;border-left:6px solid var(--pourpre)}
.acc-sec-titre{font-family:var(--corps);font-weight:700;letter-spacing:.01em;
  font-size:14px;color:var(--pourpre);margin-bottom:12px}
.acc-jauges{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin-bottom:6px}
.acc-jauge{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;line-height:1.45}
.acc-ic{flex:none;width:32px;height:32px;border-radius:8px;background:var(--bronze-clair);border:1.5px solid var(--pierre-bord);
  display:flex;align-items:center;justify-content:center}
.acc-ic svg{width:20px;height:20px;fill:var(--encre)}
.acc-liste{margin:6px 0 0;padding-left:20px}
.acc-liste li{margin:6px 0;font-size:14.5px;line-height:1.5}
.accueil .difficulte{margin-top:22px}
@media (max-width:620px){ .acc-jauges{grid-template-columns:1fr} }

/* ===================== COMPACITÉ : tenir dans un écran d'ordinateur ===================== */
:root{ --case-h:clamp(220px, 40vh, 340px); }
header.tete{ display:none; }                 /* titre porté par l'accueil + l'onglet */
#jauges:empty{ display:none; border:none; padding:0; margin:0; }
.wrap{ padding:14px 22px 22px; }
#jauges{ padding:8px 14px; gap:12px; margin:0 auto 12px; }
.jauge .ic{ width:30px; height:30px; }
.jauge .ic svg{ width:19px; height:19px; }
.scene-doc{ align-items:stretch; justify-content:center; margin-bottom:8px; }
.scene-doc .case{ flex:none; width:auto; height:var(--case-h); align-self:flex-start; }
.docs{ flex:1 1 auto; height:var(--case-h); padding:10px 12px; gap:8px; }
.docs .source{ overflow:auto; }
.src-txt{ font-size:14px; line-height:1.45; margin-top:5px; }
.src-ref{ margin-top:6px; font-size:11.5px; }
.docs-tete{ margin-bottom:2px; }
.progression{ margin-top:10px; }
.kicker{ margin:8px 2px 0; }
.titre-acte{ margin:5px 2px 0; font-size:21px; }
.options{ gap:8px; margin-top:9px; }
.option{ padding:10px 16px; font-size:16px; }
.bulle{ padding:11px 15px; }
.bulle .dit{ font-size:15px; line-height:1.42; }
.deltas{ margin-top:10px; }
.pourquoi{ margin-top:9px; padding:10px 16px; }
.actions{ margin-top:12px; }
/* accueil compact */
.acc-hero{ padding:18px 22px 16px; }
.acc-embleme{ width:90px; margin-bottom:2px; }
.embleme{ width:90px; }
.acc-titre{ font-size:clamp(28px,5vw,44px); margin-top:0 }
.acc-accroche{ font-size:14.5px; line-height:1.5; margin:10px auto 2px; max-width:680px }
.acc-section{ margin-top:12px; padding:13px 18px }
.acc-jauges{ gap:8px 18px; margin-bottom:4px }
.acc-jauge{ font-size:13.5px; line-height:1.4 }
.acc-liste li{ margin:4px 0; font-size:13.5px; line-height:1.4 }
.acc-sec-titre{ margin-bottom:8px }
.accueil .difficulte{ margin-top:14px }
.diff-intro{ font-size:13.5px }
@media (max-width:760px){
  .scene-doc .case{ width:100%; height:auto; aspect-ratio:16/10 }
  .docs{ height:auto }
}
/* accueil : deux colonnes (comment / pédagogie) pour tenir dans l'écran */
.acc-cols{ display:flex; gap:14px; align-items:flex-start; margin-top:12px }
.acc-cols .acc-section{ flex:1 1 0; margin-top:0 }
.acc-jauges{ grid-template-columns:1fr; gap:7px }
@media (max-width:760px){ .acc-cols{ flex-direction:column } }

/* ===================== ACCUEIL — bannière illustrée (proposition A) ===================== */
.acc-hero{ position:relative; height:clamp(268px,41vh,314px); padding:0;
  border:3px solid var(--encre); border-radius:14px; overflow:hidden;
  background:#b9ab8c url('../img/decor-forum.svg') center 26% / cover no-repeat; }
.acc-hero::before{ content:""; position:absolute; inset:0; opacity:1; border:none; width:auto;
  background:linear-gradient(180deg, rgba(20,8,14,0) 36%, rgba(40,14,24,.74) 100%),
             linear-gradient(90deg, rgba(40,14,24,.66) 0%, rgba(40,14,24,0) 46%); }
.acc-hero::after{ display:none; }
.acc-perso{ position:absolute; left:2%; bottom:0; height:94%; width:auto; z-index:1;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.35)); }
.acc-titrebloc{ position:relative; z-index:2; width:100%; padding:14px 16px 0;
  display:flex; flex-direction:column; align-items:center; text-align:center; }
.acc-couronne{ line-height:0; }
.couronne{ width:clamp(78px,11vw,104px); height:auto; display:block; margin-bottom:-4px;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
.acc-titre{ font-family:var(--display); font-weight:700; letter-spacing:.06em;
  font-size:clamp(40px,7vw,68px); color:#F7EFDB; margin:0;
  text-shadow:0 2px 0 #2c0f1a, 0 4px 16px rgba(0,0,0,.55); }
.acc-regle{ width:min(320px,60%); height:2px; background:#E8C766; margin:6px auto 8px;
  box-shadow:0 1px 2px rgba(0,0,0,.4); }
.acc-plaque{ display:inline-block; max-width:680px; background:rgba(34,12,20,.46);
  border:1px solid rgba(232,199,102,.35); border-radius:12px; padding:9px 18px 11px; }
.acc-sous{ font-family:var(--corps); font-weight:700; letter-spacing:.14em;
  font-size:14px; color:#E8C766; }
.acc-accroche{ margin:6px auto 0; font-size:14.5px; line-height:1.5; color:#F3E9D6; max-width:640px; }
/* bandeau des jauges (aperçu HUD) */
.acc-hud{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:14px; }
.acc-tuile{ display:flex; align-items:center; gap:11px; padding:9px 12px; border-radius:11px;
  border:1.5px solid var(--pierre-bord); border-left-width:6px; background:#FBF7EF; }
.acc-tic{ flex:none; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.acc-tic svg{ width:22px; height:22px; fill:#fff; }
.acc-tt{ display:flex; flex-direction:column; min-width:0; line-height:1.25; }
.acc-tt strong{ font-size:14.5px; color:var(--encre); }
.acc-tt span{ font-size:12.5px; color:var(--encre-doux); }
.acc-tuile.pourpre{ border-color:var(--pourpre); background:#F3E7EB } .acc-tuile.pourpre .acc-tic{ background:var(--pourpre) }
.acc-tuile.olive{ border-color:var(--olive); background:#E7EEE1 } .acc-tuile.olive .acc-tic{ background:var(--olive) }
.acc-tuile.bronze{ border-color:var(--bronze); background:#F5EBD3 } .acc-tuile.bronze .acc-tic{ background:var(--bronze) }
.acc-tuile.tresor{ border-color:#8a6d28; background:#F2E8CE } .acc-tuile.tresor .acc-tic{ background:#8a6d28 }
/* cartes info à bandeau de titre */
.acc-cols{ display:flex; gap:14px; align-items:stretch; margin-top:14px; }
.acc-cols .acc-section{ flex:1 1 0; margin-top:0; padding:0; overflow:hidden;
  background:var(--parchemin); border:2px solid var(--pierre-bord); border-radius:12px; }
.acc-sec-titre{ font-family:var(--display); font-weight:700; letter-spacing:.02em;
  font-size:15px; color:#F7EFDB; background:var(--pourpre); padding:9px 16px; margin:0; }
.acc-pedago .acc-sec-titre{ background:var(--pourpre-fonce); }
.acc-corps{ padding:11px 16px; }
.acc-corps .acc-liste{ margin:0; padding-left:18px; }
.acc-corps .acc-liste li{ margin:5px 0; font-size:13.5px; line-height:1.45; }
@media (max-width:760px){
  .acc-hud{ grid-template-columns:1fr 1fr; }
  .acc-cols{ flex-direction:column; }
}

/* ===== image-document dans la colonne (au lieu d'une vignette qui masque la bulle) ===== */
.source-img{ display:flex; flex-direction:column; align-items:stretch; }
.doc-img{ flex:1 1 auto; min-height:60px; max-height:100%; max-width:100%; object-fit:contain;
  border:2px solid var(--encre); border-radius:6px; margin-top:5px; background:#fff; }
/* ===== ajustements bannière d'accueil ===== */
.acc-hero{ height:clamp(260px,40vh,306px); }
.acc-titrebloc{ padding-top:10px; }
.couronne{ width:clamp(86px,11vw,108px); margin-bottom:-2px; }
.acc-plaque{ padding:8px 16px 10px; }

/* =================== CORRECTIFS FINAUX (hero + panneaux d'image) =================== */
/* Hero : tout le bloc tient dans la bannière, centré verticalement */
.acc-hero{ height:clamp(250px,38vh,288px); }
.acc-titrebloc{ position:relative; z-index:2; width:100%; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; padding:10px 16px; gap:3px; }
.couronne{ width:clamp(56px,6vw,72px); height:auto; margin:0 0 2px;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.45)); }
.acc-titre{ font-size:clamp(30px,3.8vw,46px); line-height:1; margin:0; }
.acc-regle{ width:min(300px,55%); margin:4px auto 6px; }
.acc-plaque{ display:inline-block; max-width:660px; padding:7px 16px 9px; background:rgba(30,11,18,.52); }
.acc-sous{ font-size:13px; }
.acc-accroche{ margin:5px auto 0; font-size:13.5px; line-height:1.45; max-width:600px;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }

/* Colonne documents : défilement d'un seul bloc, pas de mini-ascenseurs par panneau */
.docs{ overflow:auto; }
.docs .source{ flex:0 0 auto; overflow:visible; min-height:0; }
/* Panneau image : cadre parchemin, jamais de grand blanc */
.source-img{ display:flex; flex-direction:column; }
.source-img .doc-img{ width:100%; display:block; margin-top:5px;
  border:1px solid var(--pierre-bord); border-radius:6px; background:#e7dcc3; }
/* image seule (intro) : grande, contenu entier sur fond parchemin */
.source-img-full{ flex:1 1 auto; min-height:140px; }
.source-img-full .doc-img{ flex:1 1 auto; min-height:0; height:100%; object-fit:contain; padding:6px; }
/* image + documents : bandeau large (remplit la largeur, sans blanc) */
.source-img-banner{ flex:0 0 auto; }
.source-img-banner .doc-img{ height:96px; object-fit:cover; object-position:center 35%; }

/* ============ Case "BD" : simple et robuste (bulle dans le flux, vignette dans le coin) ============ */
.scene-doc{ align-items:flex-start; }
.scene-doc .case{ flex:1 1 480px; width:auto; height:auto; aspect-ratio:auto; display:block;
  min-height:var(--case-h); max-width:720px; align-self:flex-start; position:relative; overflow:hidden; }
.docs{ flex:1 1 420px; height:auto; min-height:var(--case-h); max-height:var(--case-h); overflow:auto; }
/* personnage : ancré en bas-gauche, décoratif (hors flux), taille bornée */
.perso{ position:absolute; left:0; bottom:0; height:96%; max-height:var(--case-h); width:auto; z-index:0; }
/* bulle dans le flux : la case s'agrandit si le texte est long (jamais coupé) ; pointe vers le perso */
.bulle{ position:relative; z-index:2; top:auto; right:auto; left:auto;
  width:auto; max-width:60%; margin:14px 14px 14px 38%; }
.bulle .dit{ font-size:15px; line-height:1.42; }
/* on réserve une bande sous la bulle pour la vignette quand elle est présente */
.case.avec-vignette .bulle{ margin-bottom:96px; }
/* vignette minuscule, coin bas-droit, jamais sur la bulle */
.doc-vignette{ position:absolute; right:14px; bottom:14px; top:auto; left:auto;
  width:120px; max-width:32%; z-index:1; }
@media (max-width:760px){
  .scene-doc .case{ max-width:none; }
  .bulle{ max-width:62%; margin-left:36%; }
  .case.avec-vignette .bulle{ margin-bottom:14px; }
  .doc-vignette{ display:none; }
}

/* ============ Bouton de la trame sonore ============ */
.son-toggle{ position:fixed; left:16px; bottom:16px; z-index:50; width:46px; height:46px;
  border-radius:50%; cursor:pointer; padding:0; color:var(--encre);
  background:var(--parchemin); border:2px solid var(--pierre-bord);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 3px 10px rgba(58,46,38,.18); transition:transform .12s ease, box-shadow .12s ease; }
.son-toggle:hover{ transform:translateY(-2px); box-shadow:0 6px 16px rgba(58,46,38,.24); }
.son-toggle:focus-visible{ outline:3px solid var(--pourpre); outline-offset:2px; }
.son-toggle svg{ width:24px; height:24px; fill:currentColor; display:block; }
.son-toggle.muet{ color:var(--encre-doux); opacity:.9; }
@media (max-width:760px){ .son-toggle{ width:42px; height:42px; left:12px; bottom:12px; } }

/* ===================================================================
   COMPACTION VERTICALE — tout l'écran de décision tient sans défiler
   =================================================================== */
:root{ --case-h: clamp(146px, 24vh, 208px); }
.wrap{ padding:8px 22px 14px; }

/* jauges plus fines */
#jauges{ padding:5px 14px; gap:10px; margin:0 auto 7px; }
.jauge{ gap:8px; }
.jauge .ic{ width:25px; height:25px; }
.jauge .ic svg{ width:16px; height:16px; }
.jauge-nom{ font-size:11px; }
.jauge-val{ font-size:12.5px; }
.rail{ height:6px; margin-top:3px; }
.jauge-revenu{ font-size:10.5px; margin-top:2px; }
.revolte-banner{ padding:5px 10px; font-size:12.5px; }

/* scène : case courte ; documents à la hauteur de leur contenu (fin du scroll interne) */
.scene-doc{ align-items:stretch; margin-bottom:6px; }
.scene-doc .case{ min-height:var(--case-h); }
.docs{ min-height:var(--case-h); max-height:50vh; height:auto; padding:9px 11px; gap:6px; overflow:auto; }
.docs-tete{ font-size:12px; margin-bottom:1px; }
.docs .source{ flex:0 0 auto; }
.src-tete{ font-size:12.5px; }
.src-txt{ font-size:13px; line-height:1.4; margin-top:4px; }
.src-ref{ font-size:11px; margin-top:5px; }

/* bulle + vignette adaptées à la case courte */
.perso{ max-height:none; }
.bulle{ margin:10px 12px 10px 38%; padding:8px 13px; }
.bulle .qui{ font-size:12px; margin-bottom:3px; }
.bulle .dit{ font-size:13.5px; line-height:1.36; }
.case.avec-vignette .bulle{ margin-bottom:84px; }
.doc-vignette{ width:86px; max-width:30%; right:9px; bottom:9px; }
.doc-vignette .leg{ font-size:9px; }

/* blocs sous la scène, resserrés */
.progression{ margin-top:6px; }
.prog-acte{ font-size:13px; }
.prog-seg{ margin-top:4px; }
.prog-seg .dot{ height:5px; }
.kicker{ margin:5px 2px 0; font-size:11px; }
.titre-acte{ margin:2px 2px 0; font-size:18px; }
.options{ gap:6px; margin-top:7px; }
.option{ padding:7px 14px; font-size:14.5px; }
.option-sous{ font-size:11.5px; margin-top:2px; }
.deltas{ margin-top:7px; padding:8px 14px; font-size:13.5px; }
.deltas .corr{ font-size:12px; margin-top:2px; }
.note-revolte{ margin:7px 0 2px; padding:7px 12px; font-size:12.5px; }
.pourquoi{ margin-top:6px; padding:7px 14px; font-size:13.5px; }
.actions{ margin-top:9px; }
.btn{ padding:9px 18px; font-size:14px; }

/* intermède + accueil un cran plus compacts */
.interlude{ padding:18px 22px; }
.int-acte{ font-size:clamp(17px,2.6vw,23px); }
.int-texte{ margin-top:11px; font-size:15px; line-height:1.5; }
.int-avert{ margin-top:10px; padding:9px 13px; }
.difficulte{ padding:22px 22px; }
.diff-carte{ padding:12px 14px 13px; }
.diff-nom{ font-size:18px; }
.diff-sous{ margin:2px 0 8px; }

/* ===================================================================
   ÉQUILIBRE case / documents : même hauteur, plus de vide à gauche
   =================================================================== */
.scene-doc{ align-items:stretch; }
.scene-doc .case{ align-self:stretch; }      /* la case épouse la hauteur de la colonne de documents */
.perso{ max-height:300px; }                  /* le personnage ne gonfle pas démesurément */
.docs{ height:auto; min-height:var(--case-h); max-height:42vh; overflow:auto; }
/* documents un cran plus compacts pour rester dans l'écran */
.docs .source{ padding:7px 11px; }
.docs-tete{ margin-bottom:2px; }
.src-tete{ font-size:12px; }
.src-txt{ font-size:12.5px; line-height:1.35; margin-top:3px; }
.src-ref{ font-size:10.5px; margin-top:4px; }

/* ===== Vignette : dégager le coin arrondi de la case + écart avec la bulle ===== */
.doc-vignette{ right:18px; bottom:16px; width:84px; }
.case.avec-vignette .bulle{ margin-bottom:100px; }
.doc-vignette{ right:20px; bottom:18px; }

/* ===== Intro : vignette droite bien dégagée + bloc bas centré ===== */
.doc-vignette{ transform:none; right:16px; bottom:14px; box-shadow:0 3px 8px rgba(58,46,38,.22); }
.intro-bas{ text-align:center; }
.intro-bas .kicker, .intro-bas .titre-acte{ margin-left:0; margin-right:0; }
.intro-bas .actions{ justify-content:center; }

/* ===== Vignette : au premier plan, inclinée, non rognée par le coin ===== */
.case.avec-vignette{ overflow:visible; }
.doc-vignette{ transform:rotate(2.5deg); z-index:6; right:12px; bottom:12px;
  box-shadow:0 4px 10px rgba(58,46,38,.3); }
.doc-vignette{ bottom:-2px; }

/* ===========================================================================
   Verrou de lecture (les choix s'ouvrent après un délai) + pop-up des conséquences
   =========================================================================== */
.lecture-verrou{margin:12px 2px 4px;padding:10px 14px;border-radius:8px;
  background:var(--bronze-clair);border:2px solid #D9C79A;border-left:5px solid var(--bronze);
  transition:background .4s,border-color .4s}
.lecture-verrou .lv-tete{display:flex;align-items:center;gap:9px;font-size:14px;line-height:1.4;color:var(--encre)}
.lecture-verrou .lv-ic{font-size:17px;flex:none}
.lecture-verrou .lv-sec{font-family:var(--display);font-weight:700;color:var(--pourpre);font-size:15px}
.lecture-verrou .lv-jauge{margin-top:9px;height:6px;border-radius:6px;background:#E4D6B5;overflow:hidden}
.lecture-verrou .lv-jauge > i{display:block;height:100%;width:0;border-radius:6px;
  background:linear-gradient(90deg,var(--bronze),var(--ambre))}
.lecture-verrou.ouvert{background:var(--olive-clair);border-color:var(--olive);border-left-color:var(--olive)}
.lecture-verrou.ouvert .lv-txt{font-weight:600;color:var(--olive)}
.lecture-verrou.ouvert .lv-jauge{display:none}

.option.verrou{opacity:.55;cursor:wait;border-left-color:var(--pierre-bord);filter:saturate(.6)}
.option.verrou:hover{transform:none;box-shadow:none;border-left-color:var(--pierre-bord)}
.option.ouvre{animation:ouvreChoix .45s ease both}
@keyframes ouvreChoix{from{opacity:.55;transform:translateY(4px)}to{opacity:1;transform:none}}

.modal-fond{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(40,28,22,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);
  animation:modalFond .25s ease both}
@keyframes modalFond{from{opacity:0}to{opacity:1}}
.modal-carte{width:100%;max-width:540px;max-height:88vh;overflow:auto;
  background:var(--parchemin);border:3px solid var(--encre);border-radius:14px;
  box-shadow:0 18px 50px rgba(40,28,22,.4);padding:20px 22px 22px;
  animation:modalEntre .3s cubic-bezier(.2,.9,.3,1.1) both}
@keyframes modalEntre{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
.modal-tete{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.modal-perso{width:54px;height:54px;border-radius:50%;object-fit:cover;object-position:center top;
  border:2.5px solid var(--encre);background:#fff;flex:none}
.modal-kicker{font-family:var(--corps);font-weight:700;font-size:12px;letter-spacing:.04em;
  text-transform:uppercase;color:var(--bronze)}
.modal-qui{font-family:var(--display);font-weight:600;font-size:16px;color:var(--pourpre);margin-top:1px}
.modal-dit{font-size:15.5px;line-height:1.55;color:var(--encre)}
.modal-impact{margin-top:14px;padding:12px 15px;border-radius:8px}
.modal-impact.juste{background:var(--olive-clair);border:2px solid var(--olive)}
.modal-impact.faux{background:var(--rouge-clair);border:2px solid var(--pompei)}
.modal-impact-tete{font-family:var(--corps);font-weight:700;font-size:12px;letter-spacing:.03em;
  text-transform:uppercase;color:var(--encre-doux);margin-bottom:8px}
.modal-deltas{display:flex;flex-wrap:wrap;gap:7px}
.modal-deltas .chip{display:inline-block;padding:4px 11px;border-radius:999px;font-size:13.5px;
  font-weight:700;line-height:1.2;background:#fff;border:1.6px solid currentColor}
.modal-deltas .chip.d-plus{color:var(--olive)}
.modal-deltas .chip.d-moins{color:var(--pompei)}
.modal-deltas .chip.neutre{color:var(--encre-doux);font-weight:600}
.modal-impact .corr{margin-top:8px;font-size:13px;color:var(--encre-doux)}
.modal-carte .pourquoi{margin-top:14px}
.modal-carte .note-revolte{margin:14px 0 0}
.modal-actions{justify-content:flex-end;margin-top:18px}
@media (max-width:520px){
  .modal-carte{padding:16px 15px 18px;border-radius:12px}
  .modal-perso{width:46px;height:46px}
  .modal-dit{font-size:14.5px}
  .modal-actions{justify-content:stretch}
  .modal-actions .btn{width:100%;text-align:center}
}

/* ===========================================================================
   Bilan de fin de mandat : verdict, trajectoire des jauges, journal repliable,
   bouton d'impression et feuille @media print.
   =========================================================================== */
.bilan-entete{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.bilan-niveau{font-size:11px;color:var(--encre-doux);border:1.4px solid var(--pierre-bord);border-radius:6px;padding:3px 9px}
.bilan-grille{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:14px;align-items:start;margin-top:14px}
.bilan-traj,.bilan-journal{background:var(--parchemin);border:2px solid var(--pierre-bord);border-radius:var(--rayon);padding:13px 15px}
.bilan-sous-tete{font-family:var(--corps);font-weight:700;font-size:12px;letter-spacing:.03em;text-transform:uppercase;color:var(--bronze);margin-bottom:11px}

.traj-ligne{margin-bottom:12px}
.traj-ligne:last-of-type{margin-bottom:2px}
.traj-haut{display:flex;justify-content:space-between;align-items:center;gap:8px}
.traj-nom{font-size:13px;font-weight:600;display:flex;align-items:center;min-width:0}
.traj-ic{flex:none;display:inline-flex;margin-right:5px}
.traj-ic svg{width:16px;height:16px;display:block}
.traj-val{display:flex;align-items:center;gap:8px;white-space:nowrap}
.traj-chiffres{font-size:12.5px;color:var(--encre-doux)}
.chip-traj{display:inline-block;padding:2px 9px;border-radius:999px;font-size:11.5px;font-weight:700;background:#fff;border:1.5px solid currentColor}
.chip-traj.plus{color:var(--olive)} .chip-traj.moins{color:var(--pompei)} .chip-traj.nul{color:var(--encre-doux)}
.traj-rail{position:relative;height:9px;overflow:visible;margin-top:6px}
.traj-depart{position:absolute;top:-3px;height:15px;width:2px;background:var(--encre);opacity:.55;border-radius:1px}
.traj-legende{font-size:11px;color:var(--encre-doux);margin-top:11px;border-top:1px solid #ece2cd;padding-top:8px}

.jacte{border:1.5px solid var(--pierre-bord);border-radius:6px;margin-bottom:8px;overflow:hidden;background:#fff}
.jacte:last-child{margin-bottom:0}
.jacte-tete{width:100%;display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--bronze-clair);
  border:none;cursor:pointer;text-align:left;font-family:var(--display);font-size:12.5px;font-weight:600;color:var(--pourpre)}
.jacte-tete:hover{background:#EADFC2}
.jacte-tete:focus-visible{outline:3px solid var(--bronze);outline-offset:-3px}
.jacte-chev{flex:none;display:inline-flex;transition:transform .2s}
.jacte-chev svg{width:13px;height:13px;display:block}
.jacte.ouvert .jacte-chev{transform:rotate(90deg)}
.jacte-nom{flex:1;min-width:0}
.jacte-compte{flex:none;font-family:var(--corps);font-weight:400;font-size:11px;color:var(--encre-doux)}
.jacte-corps{display:none;padding:2px 12px 7px}
.jacte.ouvert .jacte-corps{display:block}
.jrow2{padding:8px 0;border-top:1px solid #ece2cd}
.jacte-corps .jrow2:first-child{border-top:none}
.jrow-titre{font-weight:600;font-size:12.5px;color:var(--encre)}
.jrow-bas{margin-top:3px;display:flex;flex-wrap:wrap;gap:7px;align-items:baseline}
.jrow-cons{font-size:11.5px;line-height:1.4;color:var(--encre-doux);flex:1;min-width:150px;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.jrow-chips{display:flex;gap:5px;flex-wrap:wrap}
.mini-chip{font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:999px;background:#fff;border:1.3px solid currentColor;white-space:nowrap}
.mini-chip.plus{color:var(--olive)} .mini-chip.moins{color:var(--pompei)}
.journal-vide{font-size:12.5px;color:var(--encre-doux)}

.btn-second{background:transparent;color:var(--pourpre);border:2px solid var(--pierre-bord)}
.btn-second:hover{border-color:var(--pourpre);background:var(--bronze-clair)}
.btn-imprimer{display:inline-flex;align-items:center;gap:7px}
.ic-print{width:16px;height:16px}

.print-entete,.verdict-print{display:none}

@media (max-width:760px){ .bilan-grille{grid-template-columns:1fr} }

.bilan-forts{margin-top:13px;background:var(--olive-clair);border:2px solid var(--olive);border-radius:8px;padding:12px 15px}
.bilan-forts .bilan-sous-tete{color:var(--olive);margin-bottom:8px}
.forts-liste{margin:0;padding:0;list-style:none}
.forts-liste li{position:relative;padding-left:22px;margin:5px 0;font-size:13.5px;line-height:1.45;color:var(--encre)}
.forts-liste li::before{content:"\2714";position:absolute;left:0;color:var(--olive);font-weight:700}
.bilan-negligees{margin-top:11px;background:var(--bronze-clair);border:2px solid #D9C79A;border-left:5px solid var(--bronze);border-radius:0 8px 8px 0;padding:12px 15px}
.bilan-negligees .bilan-sous-tete{color:var(--bronze);margin-bottom:8px}
.negligees-intro{font-size:12.5px;color:var(--encre-doux);margin-bottom:9px}
.negligees-vide{font-size:13px;color:var(--olive);font-weight:500;line-height:1.45}
.neg-item{padding:8px 0;border-top:1px solid #e6d9b8}
.neg-item:first-of-type{border-top:none}
.neg-titre{font-weight:600;font-size:13px;color:var(--pourpre)}
.neg-note{font-size:12.5px;color:var(--encre);line-height:1.5;margin-top:3px}

@media print{
  header.tete,#son-toggle,#jauges,.scene-doc,.bilan-actions,.bilan-niveau,.traj-legende,.jacte-chev{display:none !important}
  .bilan-forts,.bilan-negligees{background:#fff !important;border:1px solid #888 !important;page-break-inside:avoid;margin-top:12px}
  .bilan-forts .bilan-sous-tete,.bilan-negligees .bilan-sous-tete,.neg-titre,.neg-note,.negligees-intro,.forts-liste li{color:#000 !important}
  body{background:#fff !important;background-image:none !important;color:#000}
  .wrap{max-width:none;padding:0}
  .print-entete{display:block !important;margin:0 0 14px;border-bottom:2px solid #000;padding-bottom:8px}
  .pe-haut{display:flex;justify-content:space-between;align-items:baseline;font-weight:700}
  .pe-titre{font-family:var(--display);font-size:16px}
  .pe-niveau{font-size:12px}
  .pe-ligne{display:flex;justify-content:space-between;margin-top:7px;font-size:12.5px}
  .verdict-print{display:block !important;font-size:12.5px;line-height:1.5;margin:0 0 14px;color:#000}
  .bilan-entete,.titre-acte{margin-top:0}
  .titre-acte{color:#000;font-size:18px}
  .bilan-grille{display:block !important}
  .bilan-traj,.bilan-journal{border:1px solid #888;background:#fff;page-break-inside:avoid;margin-bottom:12px;padding:10px 12px}
  .bilan-sous-tete,.jrow-titre,.jrow-cons,.traj-chiffres,.jacte-compte{color:#000}
  .jacte-corps{display:block !important}
  .jacte{border:1px solid #aaa;page-break-inside:avoid}
  .jacte-tete{background:#ececec !important;color:#000;cursor:default;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .traj-rail{height:8px;border:1px solid #000;border-radius:4px}
  .fill{background:#777 !important;transition:none !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .traj-depart{background:#000 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .chip-traj,.mini-chip{border-color:#000 !important;color:#000 !important;background:#fff !important}
  *{box-shadow:none !important}
}

/* =========================================================================
   SIGNATURE DE L'AUTEUR (pied de page) — version discrète, accueil seulement
   Affichée uniquement sur l'écran de départ (body.ecran-depart).
   Filet à la grecque fin et pâle ; le bouton reprend le pourpre du thème.
   ========================================================================= */
.signature{display:none;margin-top:4px;border-top:1px solid var(--pierre-bord);
  background:linear-gradient(180deg,var(--parchemin),var(--pierre));}
body.ecran-depart .signature{display:block;}
.signature .meandre{height:11px;opacity:.32;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='16' viewBox='0 0 20 16'%3E%3Cpath d='M0,14 H20 M3,14 V4 H15 V11 H8 V7 H12' fill='none' stroke='%23A9803C' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:repeat-x;background-position:center top;background-size:13.75px 11px;}
.sig-inner{max-width:1180px;margin:0 auto;padding:9px 22px 12px 70px;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.sig-logo{height:30px;width:auto;flex:none;background:#fff;
  padding:4px 6px;border-radius:5px;border:1px solid var(--pierre-bord);
  box-shadow:0 1px 2px rgba(58,46,38,.10);}
.sig-txt{flex:1;min-width:180px;display:flex;flex-direction:column;gap:1px;}
.sig-nom{font-family:var(--display);font-weight:600;letter-spacing:.02em;
  font-size:13px;color:var(--encre);line-height:1.2;}
.sig-role{font-size:10.5px;color:var(--encre-doux);letter-spacing:.01em;}
.sig-contact{flex:none;display:inline-flex;align-items:center;gap:6px;
  background:var(--pourpre);color:#FBF7EF;text-decoration:none;
  font-family:var(--corps);font-weight:600;font-size:12px;letter-spacing:.02em;
  padding:6px 12px;border-radius:5px;border:1.5px solid var(--pourpre-fonce);
  box-shadow:0 1px 0 rgba(58,46,38,.15);
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;}
.sig-contact:hover{background:var(--pourpre-fonce);transform:translateY(-1px);
  box-shadow:0 3px 8px rgba(58,46,38,.18);}
.sig-contact:focus-visible{outline:3px solid var(--bronze);outline-offset:2px;}
.sig-contact svg{width:13px;height:13px;flex:none;fill:none;stroke:currentColor;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
@media (max-width:560px){
  .sig-inner{flex-direction:column;align-items:flex-start;gap:9px;padding:9px 18px 58px;}
  .sig-contact{align-self:stretch;justify-content:center;}
}
@media (min-width:1280px){.sig-inner{padding-left:22px;}}
@media (prefers-reduced-motion:reduce){.sig-contact{transition:none;}}
