/* metiersenuniforme.fr — feuille de style unique.
   Produite par _outils/css-unifier.mjs à partir des blocs <style> des pages,
   puis maintenue à la main. Ne plus remettre de CSS dans les pages : c'est
   la dérive de 52 copies qui avait fait perdre toute cohérence au site. */
:root{--marine:#1A1740;--marine-2:#241F55;--marine-3:#332B72;--papier:#FAFAFC;--blanc:#FFFFFF;--encre:#14161D;--encre-2:#3E4450;--acier:#616878;--filet:#DEE1E9;--filet-p:#EFF1F6;--vermillon:#4B3A8F;--tampon-p:#F0EDFA;--correc:#C2302A;--cyan:#14161D;--vert:#2F6B4F;--display:'Newsreader',Georgia,'Times New Roman',serif;--corps:'Archivo',system-ui,-apple-system,sans-serif;--mono:'Archivo',system-ui,sans-serif;--max:1080px;--sur-vermillon:#FFFFFF;--sur-v:#FFFFFF}
:root[data-theme="dark"]{--papier:#0E1016;--blanc:#161922;--encre:#E9EBF0;--encre-2:#B6BCC9;--acier:#8992A3;--filet:#282D3A;--filet-p:#1E222C;--vermillon:#A99AF2;--tampon-p:#1C1930;--correc:#EE7A72;--cyan:#E9EBF0;--vert:#63A986;--sur-vermillon:#14161D;--sur-v:#14161D}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--corps);color:var(--encre);background:var(--papier);font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;font-synthesis-weight:none}
.zone{max-width:var(--max);margin:0 auto;padding:0 24px}
.num{font-variant-numeric:tabular-nums}
td.num{font-variant-numeric:tabular-nums;font-size:13.5px;font-family:var(--mono);white-space:nowrap;text-align:right;color:var(--acier)}
.v{font-variant-numeric:tabular-nums}
.millesime{font-variant-numeric:tabular-nums}
table{font-variant-numeric:tabular-nums;border-collapse:collapse;width:100%;font-size:14.5px}
.tete{background:var(--papier);color:var(--encre);border-top:3px solid var(--vermillon);padding:30px 0 0}
.sceau{display:inline-flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--encre);text-decoration:none;margin-bottom:26px}
.sceau span{width:11px;height:11px;background:var(--vermillon);flex:0 0 auto}
.sceau:hover{color:var(--vermillon)}
.sceau:focus-visible{outline:2px solid var(--vermillon);outline-offset:4px}
.fil{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--vermillon);margin-bottom:30px}
.fil a{color:var(--vermillon);text-decoration:none}
.fil a:hover{text-decoration:underline;text-underline-offset:.25em}
h1{font-family:var(--display);font-weight:500;font-size:clamp(2.1rem,5.4vw,3.55rem);line-height:1.06;letter-spacing:-.018em;text-wrap:balance;max-width:24ch;font-variation-settings:'opsz' 44}
.chapeau{font-size:1.14rem;color:var(--encre-2);max-width:60ch;margin-top:20px;line-height:1.55}
.date{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--acier);margin-top:32px;padding:14px 0 15px;border-top:1px solid var(--filet);border-bottom:1px solid var(--filet)}
.date::before{content:"";display:inline-block;width:9px;height:9px;background:var(--vermillon);margin-right:11px;transform:translateY(1px)}
main{padding:54px 0 96px}
h2{font-family:var(--display);font-weight:500;font-size:1.78rem;letter-spacing:-.012em;line-height:1.14;text-wrap:balance;margin:56px 0 16px;font-variation-settings:'opsz' 28}
h2:first-child{margin-top:0}
h3{font-family:var(--display);font-weight:600;font-size:1.22rem;letter-spacing:-.006em;margin:36px 0 10px}
p{margin-bottom:17px;max-width:68ch}
a{color:var(--cyan);text-decoration:underline;text-decoration-color:var(--vermillon);text-decoration-thickness:.075em;text-underline-offset:.17em}
a:hover{color:var(--vermillon)}
a:focus-visible{outline:2px solid var(--vermillon);outline-offset:2px}
strong{font-weight:650}
.intro{font-size:1.1rem;color:var(--encre-2);line-height:1.58}
.intro strong{color:var(--encre)}
.defile{overflow-x:auto;margin:28px 0;background:transparent;border:0;border-top:2px solid var(--encre)}
caption{text-align:left;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--vermillon);padding:12px 0 13px;border-bottom:1px solid var(--filet)}
th{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--acier);text-align:left;padding:13px 20px 12px 0;border-bottom:1px solid var(--encre);vertical-align:bottom}
td{padding:13px 20px 13px 0;border-bottom:1px solid var(--filet-p);vertical-align:top}
tr:last-child td{border-bottom:1px solid var(--filet)}
td.lab{font-weight:600;color:var(--encre);white-space:nowrap}
.oui{color:var(--vert);font-weight:600}
.non{color:var(--acier);font-family:var(--mono);font-size:13px}
.gris{color:var(--acier)}
.urgence{background:var(--marine-2);color:#fff;border:0;padding:26px 26px;margin:28px 0}
.urgence .k{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#C6B9FF;margin-bottom:8px}
.urgence h3{color:#fff;margin:0 0 10px;font-size:1.3rem}
.urgence p{color:#D6D3EA;margin-bottom:10px}
.urgence p:last-child{margin-bottom:0}
.urgence a{color:#fff;text-decoration-color:#8B7BD8}
.cadre{background:var(--blanc);border:1px solid var(--filet);padding:24px;margin:26px 0}
.cadre h3{margin-top:0}
.cadre p:last-child{margin-bottom:0}
.alerte{border-left:3px solid var(--correc);padding:6px 0 6px 22px;margin:26px 0;background:transparent;border-top:0;border-right:0;border-bottom:0}
.alerte p:last-child{margin-bottom:0}
ul.liste{margin:14px 0 18px;padding-left:22px;max-width:68ch}
ul.liste li{margin-bottom:9px}
.paires{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:24px 0}
.paire{background:var(--blanc);padding:15px 17px;display:flex;flex-wrap:wrap;gap:6px 18px;border-bottom:1px solid var(--filet-p)}
.paire .k{font-family:var(--mono);font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--acier);display:block;margin-bottom:5px;font-weight:600;min-width:230px}
.paire .v{font-weight:600;font-size:15px;color:var(--encre-2)}
.cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.carte{background:var(--blanc);padding:20px 20px;display:flex;flex-direction:column;gap:8px}
.carte .k{font-family:var(--mono);font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--vermillon)}
.carte h3{margin:0;font-size:1.15rem}
.carte p{font-size:14px;color:var(--encre-2);margin:0}
.carte .go{margin-top:auto;padding-top:8px;font-size:14px;font-weight:600}
.sources{margin-top:72px;padding:26px 26px 24px;background:var(--tampon-p);border-top:2px solid var(--vermillon);font-size:13.5px;color:var(--encre-2)}
.sources h2{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--vermillon);margin:0 0 14px;border-bottom:0;padding-bottom:0}
.sources ol{padding-left:20px}
.sources li{margin-bottom:9px}
.sources a{word-break:break-word}
.maj{font-family:var(--corps);font-size:12.5px;color:var(--acier);margin-top:18px;padding-top:14px;border-top:1px solid var(--filet)}
footer{border-top:1px solid var(--filet);padding:28px 0 46px;font-family:var(--mono);font-size:13px;color:var(--acier);line-height:1.85}
footer a{color:var(--acier);text-decoration-color:var(--filet)}
footer a:hover{color:var(--vermillon)}
.pub{color:var(--acier);font-weight:400;text-transform:none;letter-spacing:0}
tr.gros td{background:var(--filet-p)}
tr.gros td.lab{color:var(--vermillon);font-weight:650}
.verdict{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.verdict div{background:var(--blanc);padding:24px 22px}
.verdict .k{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:10px}
.verdict h3{margin:0 0 10px;font-size:1.2rem}
.verdict ul{margin:0;padding-left:18px;font-size:14px;color:var(--encre-2)}
.verdict li{margin-bottom:7px}
.chiffre{background:var(--marine-2);color:#fff;padding:28px 26px;margin:28px 0;text-align:center}
.chiffre .v{font-family:var(--display);font-size:2.9rem;font-weight:700;line-height:1;display:block;margin-bottom:10px}
.chiffre .d{color:#D6D3EA;font-size:15px;max-width:52ch;margin:0 auto}
.docs{background:var(--blanc);border:1px solid var(--filet);margin:22px 0}
.docs .an{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 18px;padding:14px 18px;border-bottom:1px solid var(--filet-p)}
.docs .an:last-child{border-bottom:0}
.docs .millesime{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.06em;color:var(--vermillon);min-width:74px}
.docs .f{font-size:14.5px}
.docs .f + .f::before{content:"· ";color:var(--filet)}
.docs .f.gris{color:var(--acier)}
.docs .note{font-family:var(--mono);font-size:13px;color:var(--acier)}
.cle{background:var(--blanc);border:1px solid var(--filet);padding:22px;margin:24px 0}
.cle dl{display:grid;grid-template-columns:auto 1fr;gap:8px 18px;font-size:15px}
.cle dt{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--vermillon);white-space:nowrap;padding-top:2px}
.cle dd{color:var(--encre-2)}
tr.pivot td{background:var(--blanc)}
tr.pivot td.lab{color:var(--vermillon)}
.frise{margin:26px 0;border-left:2px solid var(--filet);padding-left:0}
.etape{display:grid;grid-template-columns:120px 1fr;gap:0 20px;padding:14px 0 14px 22px;position:relative;border-bottom:1px solid var(--filet-p)}
.etape:last-child{border-bottom:0}
.etape::before{content:"";position:absolute;left:-6px;top:22px;width:10px;height:10px;background:var(--acier);border-radius:50%}
.etape.fort::before{background:var(--vermillon);width:12px;height:12px;left:-7px}
.etape .mois{font-family:var(--mono);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--acier);padding-top:2px}
.etape .quoi{font-weight:600;font-size:15.5px}
.etape .det{font-size:14px;color:var(--encre-2);margin-top:3px}
.urgence h2{color:#fff;margin:0 0 10px;font-size:1.3rem}
td.non{color:var(--acier);font-family:var(--mono);font-size:12.5px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.kpi{background:var(--blanc);padding:20px 18px}
.kpi .v{font-family:var(--display);font-size:2.1rem;font-weight:700;line-height:1;display:block;margin-bottom:8px;font-variant-numeric:tabular-nums}
.kpi .l{font-size:14px;color:var(--encre-2);display:block}
.kpi .e{font-family:var(--mono);font-size:13px;color:var(--vert);display:block;margin-top:5px}
td.ev{font-family:var(--mono);font-size:12.5px;color:var(--vert);white-space:nowrap;text-align:right}
td.mal{color:var(--correc);font-weight:650}
.plan{background:var(--blanc);border:1px solid var(--filet);padding:22px;margin:24px 0;font-family:var(--mono);font-size:13.5px;line-height:1.9;border-left:2px solid var(--filet)}
.plan .n{color:var(--vermillon);font-weight:600}
.plan .in{display:block;padding-left:22px}
p.rem{font-size:14px;color:var(--acier);border-left:2px solid var(--filet);padding-left:16px;max-width:66ch}
blockquote{margin:26px 0;max-width:66ch;padding-left:26px;border-left:3px solid var(--vermillon);padding:20px 24px;background:var(--blanc)}
blockquote p{font-family:var(--display);font-size:1.2rem;font-style:normal;line-height:1.45;color:var(--encre);margin-bottom:10px;font-variation-settings:'opsz' 20}
blockquote cite{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;font-style:normal;color:var(--acier);display:block;margin-top:10px}
tr.court td{background:var(--blanc)}
tr.court td.num{color:var(--vermillon);font-weight:600}
.ph{display:grid;grid-template-columns:118px 1fr;gap:0 20px;padding:15px 0 15px 22px;position:relative;border-bottom:1px solid var(--filet-p)}
.ph:last-child{border-bottom:0}
.ph::before{content:"";position:absolute;left:-6px;top:23px;width:10px;height:10px;background:var(--acier);border-radius:50%}
.ph.fort::before{background:var(--vermillon);width:12px;height:12px;left:-7px}
.ph .t{font-family:var(--mono);font-size:13px;color:var(--acier);padding-top:2px}
.ph .q{font-weight:600;font-size:15.5px}
.ph .d{font-size:14px;color:var(--encre-2);margin-top:3px}
.prg{background:var(--blanc);border:1px solid var(--filet);margin:24px 0}
.pt{padding:18px 20px;border-bottom:1px solid var(--filet-p)}
.pt:last-child{border-bottom:0}
.pt .k{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:6px}
.pt h3{margin:0 0 8px;font-size:1.12rem}
.pt ul{margin:0;padding-left:20px;font-size:14.5px;color:var(--encre-2)}
.pt li{margin-bottom:4px}
.pt .note{font-size:13.8px;color:var(--acier);margin:10px 0 0;max-width:70ch}
.crit{background:var(--blanc);border:1px solid var(--filet);margin:24px 0}
.cr{padding:18px 20px;border-bottom:1px solid var(--filet-p)}
.cr:last-child{border-bottom:0}
.cr .k{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:7px}
.cr .v{font-family:var(--display);font-weight:700;font-size:1.45rem;display:block;line-height:1.15;margin-bottom:6px}
.cr p{margin:0;font-size:14.5px;color:var(--encre-2);max-width:70ch}
.grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.bloc{background:var(--blanc);padding:22px 20px;display:flex;flex-direction:column;gap:9px}
.bloc .cat{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon)}
.bloc h3{margin:0;font-size:1.22rem}
.bloc .cond{font-family:var(--mono);font-size:12.5px;color:var(--acier)}
.bloc p{font-size:14px;color:var(--encre-2);margin:0}
.bloc .go{margin-top:auto;padding-top:6px;font-size:14px;font-weight:600}
.sections{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.sec{background:var(--blanc);padding:18px 18px}
.sec a{font-weight:600;font-size:15.5px;text-decoration:none}
.sec a:hover{text-decoration:underline}
.sec p{font-size:13.5px;color:var(--acier);margin:5px 0 0}
.ecole{background:var(--blanc);border:1px solid var(--filet);padding:26px;margin:26px 0}
.ecole h3{margin-top:0}
.ecole .lieu{font-family:var(--mono);font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--vermillon);margin-bottom:8px}
.ecole .faits{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:18px 0 0}
.ecole .ft{background:var(--blanc);padding:13px 15px}
.ecole .ft .v{font-family:var(--display);font-weight:700;font-size:1.35rem;display:block;line-height:1.1}
.ecole .ft .l{font-size:13px;color:var(--acier);display:block;margin-top:4px}
.ecole p:last-of-type{margin-bottom:0}
blockquote p:last-child{margin-bottom:0}
.travaux{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.tv{background:var(--blanc);padding:20px}
.tv .n{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:8px}
.tv strong{display:block;font-size:16px;margin-bottom:6px}
.tv p{font-size:13.8px;color:var(--encre-2);margin:0}
ol.liste{margin:14px 0 18px;padding-left:22px;max-width:68ch}
ol.liste li{margin-bottom:10px}
td.bien{color:var(--vert);font-weight:600}
.temps{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.tp{background:var(--blanc);padding:22px 20px}
.tp .k{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:8px}
.tp h3{margin:0 0 6px;font-size:1.15rem}
.tp .d{font-family:var(--mono);font-size:13px;color:var(--acier);display:block;margin-bottom:10px}
.tp p{font-size:14.5px;color:var(--encre-2);margin:0}
.paire:last-child{border-bottom:0}
.regles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.regle{background:var(--blanc);padding:20px}
.regle .n{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:8px}
.regle strong{display:block;font-size:15.5px;margin-bottom:6px}
.regle p{font-size:13.8px;color:var(--encre-2);margin:0}
tr.phase td{background:var(--marine);color:#fff;font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;padding:9px 18px}
.bal{margin:26px 0;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--filet);border:1px solid var(--filet)}
.bal div{background:var(--blanc);padding:22px 20px;text-align:center}
.bal .k{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--acier);display:block;margin-bottom:8px}
.bal .v{font-family:var(--display);font-size:2.4rem;font-weight:700;line-height:1;display:block;margin-bottom:6px}
.bal .d{font-size:13.5px;color:var(--encre-2)}
.bal .fort .v{color:var(--vermillon)}
.opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:24px 0}
.op{background:var(--blanc);padding:18px}
.op strong{display:block;font-size:15px;margin-bottom:7px}
.op ul{margin:0;padding-left:18px;font-size:13.8px;color:var(--encre-2)}
.op li{margin-bottom:4px}
.langues{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:24px 0}
.lg{background:var(--blanc);padding:15px 16px}
.lg strong{display:block;font-size:15px}
.lg span{font-family:var(--mono);font-size:13px;color:var(--acier)}
.doss{background:var(--blanc);border:1px solid var(--filet);margin:24px 0}
.dl{display:flex;flex-wrap:wrap;gap:4px 14px;padding:12px 18px;border-bottom:1px solid var(--filet-p);font-size:14.5px}
.dl:last-child{border-bottom:0}
.dl .k{font-family:var(--mono);font-size:13px;color:var(--vermillon);min-width:96px;padding-top:2px}
.dl .t{color:var(--encre-2);flex:1;min-width:220px}
.dl .s{font-family:var(--mono);font-size:13px;color:var(--acier)}
.opt{border-top:2px solid var(--encre);padding-top:20px;margin-top:40px;display:block;font-family:var(--mono);font-size:12.5px;color:var(--encre-2);margin:16px 0 0}
.opt .fam{font-family:var(--mono);font-size:13px;letter-spacing:.11em;text-transform:uppercase;color:var(--vermillon);margin-bottom:5px}
.opt h3{margin:0 0 8px;font-size:1.34rem}
.opt .nat{font-size:14.5px;color:var(--encre-2);font-style:italic;margin-bottom:12px}
.opt ul{margin:0;padding-left:22px;max-width:68ch}
.opt li{margin-bottom:7px;font-size:14.8px}
.opt .rem{font-size:13.8px;color:var(--acier);margin:10px 0 0}
.gestes{background:var(--blanc);border:1px solid var(--filet);margin:24px 0}
.geste{display:flex;gap:16px;padding:16px 18px;border-bottom:1px solid var(--filet-p)}
.geste:last-child{border-bottom:0}
.geste .n{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--vermillon);padding-top:3px;min-width:26px}
.geste .t{font-size:15px;color:var(--encre-2)}
.geste .t strong{color:var(--encre);display:block;margin-bottom:2px}
tr.total td{border-top:2px solid var(--filet);font-weight:600}
.marches{margin:26px 0;border:1px solid var(--filet);background:var(--blanc)}
.marche{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 16px;padding:14px 18px;border-bottom:1px solid var(--filet-p)}
.marche:last-child{border-bottom:0}
.marche .n{font-family:var(--display);font-weight:700;font-size:1.5rem;min-width:96px;font-variant-numeric:tabular-nums}
.marche .q{font-size:15px}
.marche .r{font-family:var(--mono);font-size:13px;color:var(--acier);margin-left:auto}
.marche.cle .n{color:var(--vermillon)}
.prog{background:var(--blanc);border:1px solid var(--filet);margin:22px 0}
.bl{padding:17px 19px;border-bottom:1px solid var(--filet-p);margin:52px 0 0}
.bl:last-child{border-bottom:0}
.bl .k{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:7px}
.bl p{margin:0 0 6px;font-size:15.5px;max-width:72ch}
.bl .n{font-size:13.5px;color:var(--acier);display:block;max-width:72ch}
.exq{background:var(--blanc);border:1px solid var(--filet);padding:20px 22px;margin:22px 0;display:block;margin-top:6px;font-size:14px;color:var(--acier);font-style:italic}
.exq .src{font-family:var(--mono);font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--acier);margin-bottom:12px}
.exq .q{font-weight:600;margin-bottom:8px;max-width:64ch}
.exq ol{list-style:upper-alpha;padding-left:26px;margin:0 0 18px;font-size:15px;color:var(--encre-2)}
.exq ol.chif{list-style:decimal}
.exq ol li{margin-bottom:3px}
.exq > *:last-child{margin-bottom:0}
.ap{color:var(--vermillon);font-weight:700}
figure.gr{margin:30px 0 34px;padding:20px 0 0;border-top:2px solid var(--encre)}
figure.gr svg{display:block;width:100%;height:auto}
figure.gr figcaption{margin-top:16px;font-size:13.5px;line-height:1.6;color:var(--acier)}
.gr .pl{fill:var(--vermillon)}
.gr .cl{fill:var(--filet)}
.gr .ax{fill:var(--acier);font:400 11.5px var(--corps)}
.gr .vl{fill:var(--encre);font:600 12.5px var(--corps)}
.gr .ti{fill:var(--acier);font:700 11px var(--corps);letter-spacing:.1em}
.gr .rg{stroke:var(--filet);stroke-width:1;fill:none}
.gr .tr{stroke:var(--acier);stroke-width:1.5;fill:none;stroke-linejoin:round}
.gr .tr.fort{stroke:var(--vermillon);stroke-width:3}
.gr .dot{fill:var(--papier);stroke:var(--acier);stroke-width:1.5}
.gr .dot.fort{stroke:var(--vermillon)}
.mise{font-size:1.06rem}
.etapes{margin:26px 0;border-left:2px solid var(--filet);counter-reset:e;padding:0;list-style:none;max-width:68ch}
.et{display:grid;grid-template-columns:96px 1fr;gap:0 20px;padding:14px 0 14px 22px;position:relative;border-bottom:1px solid var(--filet-p)}
.et:last-child{border-bottom:0}
.et::before{content:"";position:absolute;left:-6px;top:22px;width:10px;height:10px;background:var(--acier);border-radius:50%}
.et.fort::before{background:var(--vermillon);width:12px;height:12px;left:-7px}
.et .t{font-family:var(--mono);font-size:13px;color:var(--acier);padding-top:2px}
.et .q{font-weight:600;font-size:15.5px}
.et .d{font-size:14px;color:var(--encre-2);margin-top:3px}
.tests{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.test{background:var(--blanc);padding:20px}
.test .n{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:8px}
.test strong{display:block;font-size:16px;margin-bottom:6px}
.test p{font-size:13.8px;color:var(--encre-2);margin:0}
.poids{margin:26px 0}
.pl{display:grid;grid-template-columns:210px 1fr 54px;gap:0 16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--filet-p)}
.pl:last-child{border-bottom:0}
.pl .nom{font-weight:600;font-size:14.5px}
.pl .barre{height:12px;background:var(--filet-p)}
.pl .barre i{display:block;height:100%;background:var(--acier)}
.pl.fort .barre i{background:var(--vermillon)}
.pl .val{font-family:var(--mono);font-size:13px;text-align:right;color:var(--encre-2)}
.fiches{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.fi{background:var(--blanc);padding:17px 18px}
.fi a{font-weight:600;font-size:15px;text-decoration:none}
.fi a:hover{text-decoration:underline}
.fi span{font-weight:600;font-size:15px;color:var(--acier)}
.fi p{font-size:13.5px;color:var(--acier);margin:5px 0 0}
.q{border-bottom:1px solid var(--filet);padding:20px 0}
.q:last-child{border-bottom:0}
.q h3{font-family:var(--display);font-weight:700;font-size:1.16rem;letter-spacing:-.008em;margin:0 0 9px;text-wrap:balance}
.q p{font-size:15.2px;color:var(--encre-2);margin-bottom:10px;max-width:70ch}
.q p:last-child{margin-bottom:0}
.q .att{color:var(--encre);font-weight:600}
.q .src{font-family:var(--mono);font-size:13px;color:var(--acier);margin-top:9px}
.sceau-i{width:11px;height:11px;background:var(--vermillon);flex:0 0 auto;align-self:center}
.marque{display:flex;align-items:baseline;gap:11px;margin-bottom:64px}
.marque .nom{font-family:var(--display);font-weight:600;font-size:17.5px;letter-spacing:-.01em;color:var(--encre)}
.marque .sous{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--vermillon)}
.ech{background:var(--tampon-p);border-top:1px solid var(--vermillon);color:var(--encre);padding:20px 0}
.ech .zone{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 20px}
.ech .k{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--vermillon)}
.ech .k::before{content:"";display:inline-block;width:9px;height:9px;background:var(--vermillon);margin-right:11px;transform:translateY(1px)}
.ech .t{font-weight:600;font-size:15.5px}
.ech a{color:var(--encre);text-decoration-color:var(--vermillon)}
section{margin-bottom:58px}
.trois{display:grid;grid-template-columns:repeat(auto-fit,minmax(238px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin-top:24px}
.c{background:var(--blanc);padding:22px 20px;display:flex;flex-direction:column;gap:8px}
.c .cat{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--vermillon)}
.c h3{font-family:var(--display);font-weight:600;font-size:1.2rem;margin:0}
.c .cond{font-family:var(--mono);font-size:12.5px;color:var(--acier)}
.c p{font-size:14px;color:var(--encre-2);margin:0}
.c .go{margin-top:auto;padding-top:6px;font-size:14px;font-weight:600}
.methode{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin-top:24px}
.m{background:var(--blanc);padding:20px 18px}
.m .n{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:8px}
.m strong{display:block;font-size:15.5px;margin-bottom:6px}
.m p{font-size:13.8px;color:var(--encre-2);margin:0}
.capte{background:var(--marine);color:#fff;padding:34px 30px;margin:0}
.capte h2{color:#fff;margin-bottom:10px;font-variation-settings:'opsz' 28}
.capte p{color:#CFCAE8;font-size:15px;max-width:56ch}
form{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px;max-width:520px}
input[type=email]{flex:1 1 240px;padding:13px 15px;border:1px solid #4A3F86;background:#120F2E;color:#fff;font-family:var(--corps);font-size:15px}
input[type=email]::placeholder{color:#8B84B0}
input[type=email]:focus{outline:2px solid var(--cyan);outline-offset:1px}
button{padding:13px 22px;border:0;background:var(--vermillon);color:var(--sur-vermillon);font-family:var(--corps);font-weight:600;font-size:15px;cursor:pointer}
button:hover{background:var(--marine-3)}
button:focus-visible{outline:2px solid #fff;outline-offset:2px}
.mentions{font-family:var(--mono);font-size:13px;color:#9A93BE;margin-top:14px;max-width:56ch}
.silos{display:grid;grid-template-columns:repeat(auto-fit,minmax(212px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin-top:24px}
.s{background:var(--blanc);padding:18px}
.s a{font-weight:600;font-size:15.5px;text-decoration:none}
.s a:hover{text-decoration:underline}
.s p{font-size:13.5px;color:var(--acier);margin:5px 0 0}
.suite{background:var(--blanc);border:1px solid var(--filet);padding:24px;margin-top:24px}
.suite p:last-child{margin-bottom:0}
tr.haut td{background:var(--blanc)}
tr.haut td.lab{color:var(--vermillon)}
tr.now td{background:var(--blanc)}
tr.now td.lab{color:var(--vermillon)}
.carte.vide .k{color:var(--acier)}
.arbo{background:var(--blanc);border:1px solid var(--filet);margin:20px 0}
.br{padding:15px 18px;border-bottom:1px solid var(--filet-p)}
.br:last-child{border-bottom:0}
.br a{font-weight:600;font-size:15.5px;text-decoration:none}
.br a:hover{text-decoration:underline}
.br p{font-size:13.8px;color:var(--encre-2);margin:4px 0 3px;max-width:74ch}
.br .u{font-family:var(--mono);font-size:13px;color:var(--acier)}
.bl h2{margin-bottom:6px}
.blk{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--acier);margin-bottom:22px}
.qz{border-top:1px solid var(--filet);padding:20px 0 6px;max-width:72ch}
.qz:last-child{border-bottom:1px solid var(--filet);padding-bottom:20px}
.qk{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--vermillon);margin-right:11px}
.qn{margin-bottom:11px;max-width:72ch}
.qo{list-style:lower-alpha;padding-left:26px;margin:0 0 6px;font-size:15px;color:var(--encre-2)}
.qo li{margin-bottom:3px}
details{border-left:3px solid var(--vermillon);padding:0 0 2px 16px;margin:14px 0 14px}
details.ouv{border-left-color:var(--acier)}
summary{font-family:var(--mono);font-size:14px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);cursor:pointer;list-style:none;padding:10px 0;line-height:24px;min-height:44px;box-sizing:border-box;display:inline-block}
summary::-webkit-details-marker{display:none}
summary::before{content:"▸ ";font-size:14px}
details[open] summary::before{content:"▾ "}
details.ouv summary{color:var(--acier)}
summary:hover{text-decoration:underline;text-underline-offset:.25em}
summary:focus-visible{outline:2px solid var(--vermillon);outline-offset:3px}
details[open] summary{margin-bottom:4px}
details p{font-size:15px;margin-bottom:0;max-width:68ch;color:var(--encre-2)}
details p+p{margin-top:9px}
.rp{font-weight:650;color:var(--encre)}
.nb{font-size:14px;border-top:1px solid var(--filet);padding-top:9px;margin-top:11px}
.nb b{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--correc)}
.qo li.sup{list-style:none;color:var(--vermillon);font-weight:600}
.qo li.sup::before{content:attr(data-c) ".";display:inline-block;width:20px;margin-left:-20px}
#app{margin-top:38px}
.ecran[hidden]{display:none}
fieldset{border:0;padding:0;margin:0 0 30px}
legend{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--vermillon);padding:0;margin-bottom:12px}
.choix{display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet)}
.choix button{background:var(--blanc);border:0;padding:15px 16px;text-align:left;font-family:var(--corps);font-size:15px;color:var(--encre);cursor:pointer;line-height:1.45}
.choix button:hover{background:var(--tampon-p)}
.choix button[aria-pressed=true]{background:var(--tampon-p);box-shadow:inset 3px 0 0 var(--vermillon)}
.choix button:focus-visible{outline:2px solid var(--vermillon);outline-offset:-2px}
.choix .n{display:block;font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--acier);margin-bottom:4px}
.choix button[aria-pressed=true] .n{color:var(--vermillon)}
.bouton{font-family:var(--corps);font-weight:650;font-size:15.5px;padding:13px 24px;border:0;background:var(--vermillon);color:var(--sur-v);cursor:pointer}
.bouton:hover{background:var(--marine-3)}
.bouton:disabled{background:var(--filet);color:var(--encre-2);cursor:not-allowed}
.bouton.sec{background:transparent;color:var(--encre);box-shadow:inset 0 0 0 1px var(--filet)}
.bouton.sec:hover{background:var(--filet-p);color:var(--encre)}
.bouton:focus-visible{outline:2px solid var(--vermillon);outline-offset:3px}
.opt input{margin-right:9px}
.barre{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 22px;border-top:1px solid var(--filet);border-bottom:1px solid var(--filet);padding:12px 0;margin-bottom:28px;font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;color:var(--acier)}
.barre b{color:var(--encre)}
.barre .chrono{margin-left:auto;color:var(--vermillon)}
.barre .chrono.court{color:var(--correc)}
.jauge{height:3px;background:var(--filet);margin:-28px 0 28px}
.jauge i{display:block;height:3px;background:var(--vermillon)}
.enonce{font-size:1.12rem;line-height:1.5;max-width:66ch;margin:0 0 20px}
.enonce .qk{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.1em;color:var(--vermillon);margin-right:11px}
.rep{margin:22px 0 0;border-left:3px solid var(--vermillon);padding-left:16px}
.rep .verdict{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;display:block;margin-bottom:7px}
.rep.j .verdict{color:var(--vert)}
.rep.f .verdict{color:var(--correc)}
.rep.a{border-left-color:var(--acier)}
.rep.a .verdict{color:var(--acier)}
.rep.f{border-left-color:var(--correc)}
.rep.j{border-left-color:var(--vert)}
.rep p{font-size:15px;color:var(--encre-2);max-width:66ch;margin:0}
.rep p+p{margin-top:9px}
.nav{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.bilan{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--filet);border:1px solid var(--filet);margin:26px 0}
.bilan div{background:var(--blanc);padding:18px}
.bilan .v{font-family:var(--display);font-weight:500;font-size:2.3rem;line-height:1;font-variation-settings:'opsz' 32}
.bilan .k{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:var(--acier);margin-top:7px}
.bilan .juste .v{color:var(--vert)}
.bilan .faux .v{color:var(--correc)}
.revue .qz{border-top:1px solid var(--filet);padding:20px 0 8px;max-width:72ch}
.revue .qz:last-child{border-bottom:1px solid var(--filet);padding-bottom:20px}
.revue .qo{list-style:lower-alpha;padding-left:26px;margin:0 0 6px;font-size:15px;color:var(--encre-2)}
.revue .qo li.b{color:var(--vert);font-weight:650}
.revue .qo li.m{color:var(--correc)}
.rouge{color:var(--vermillon);font-weight:600}
.fiche{border-top:2px solid var(--encre);padding-top:22px;margin-top:44px}
.fiche .rang{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--vermillon);margin-bottom:6px}
.fiche h2{margin-top:0}
.voie{background:var(--blanc);border:1px solid var(--filet);padding:24px;margin:24px 0}
.voie h3{margin-top:0}
.voie .k{font-family:var(--mono);font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--vermillon);display:block;margin-bottom:8px}
.voie p:last-child{margin-bottom:0}
.etapes li{counter-increment:e;position:relative;padding-left:34px;margin-bottom:12px;font-size:15px;color:var(--encre-2)}
.etapes li::before{content:counter(e);position:absolute;left:0;top:1px;font-family:var(--mono);font-size:13px;font-weight:600;color:var(--vermillon);border:1px solid var(--filet);width:22px;height:22px;display:grid;place-items:center}
.etapes li strong{color:var(--encre)}
.gl{border-top:1px solid var(--filet);padding:18px 0}
.gl:first-of-type{border-top:2px solid var(--encre)}
.gl dt{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:7px}
.gl .mot{font-family:var(--display);font-weight:700;font-size:1.18rem;letter-spacing:-.01em}
.gl .sig{font-family:var(--mono);font-size:13px;color:var(--vermillon);letter-spacing:.06em;text-transform:uppercase}
.gl dd{margin:0;font-size:15px;color:var(--encre-2);max-width:68ch}
.gl dd + dd{margin-top:8px}
.gl .att{color:var(--encre);font-weight:600}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){--papier:#0E1016;--blanc:#161922;--encre:#E9EBF0;--encre-2:#B6BCC9;--acier:#8992A3;--filet:#282D3A;--filet-p:#1E222C;--vermillon:#A99AF2;--tampon-p:#1C1930;--correc:#EE7A72;--cyan:#E9EBF0;--vert:#63A986;--sur-vermillon:#14161D;--sur-v:#14161D}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  *::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
@media (max-width:620px){
  body{font-size:16px}
  .tete{padding:20px 0 40px}
  .cle dl{grid-template-columns:1fr;gap:2px 0}
  .cle dd{margin-bottom:10px}
  .paire .k{min-width:0;width:100%}
  .marche .r{margin-left:0;width:100%}
  .marque{margin-bottom:36px}
  .capte{padding:26px 20px}
  .barre .chrono{margin-left:0;width:100%}
}
@media (max-width:560px){
  .verdict{grid-template-columns:1fr}
  .etape{grid-template-columns:1fr;gap:4px}
  .ph{grid-template-columns:1fr;gap:4px}
  .et{grid-template-columns:1fr;gap:4px}
  .pl{grid-template-columns:1fr 44px}
  .pl .barre{grid-column:1/-1}
}
@media (max-width:520px){
  .bal{grid-template-columns:1fr}
}

/* Tableau de bord du bilan des QCM d'entraînement (tableau-qcm.js, préparé le 15/10/2026). Couleurs des données
   validées par validate_palette.js : bleu = juste, orange = faux, gris = sans réponse ; teintes propres au mode sombre. */
:root { --tdbu-juste:#2A5FA8; --tdbu-faux:#C0661E; --tdbu-vide:#A9B1BF; }
:root[data-theme="dark"] { --tdbu-juste:#5486D2; --tdbu-faux:#D47334; --tdbu-vide:#6B7488; }
@media (prefers-color-scheme:dark) { :root:not([data-theme="light"]) { --tdbu-juste:#5486D2; --tdbu-faux:#D47334; --tdbu-vide:#6B7488; } }
.tdbu[hidden], .tdbu-bulle[hidden], .bilan[hidden] { display:none; }
.tdbu { margin:0 0 1.5rem; }
.tdbu-tete { display:grid; grid-template-columns:auto 1fr; gap:1.25rem 2rem; align-items:center; padding:1.5rem; background:var(--marine); color:#fff; border-top:4px solid var(--vermillon); }
.tdbu-taux { margin:0; font-family:var(--mono); font-weight:600; font-size:clamp(3rem, 11vw, 4.75rem); line-height:1; }
.tdbu-taux small { font-size:.4em; color:#C9CED6; }
.tdbu-tete__texte { margin:0 0 .5rem; color:#E4EBF4; }
.tdbu-tete__texte strong { color:#fff; }
.tdbu-progression { margin:0 0 .75rem; font-size:.9375rem; color:#C9CED6; }
.tdbu-progression strong { color:#fff; }
.tdbu-jauge { position:relative; height:10px; background:rgba(255,255,255,.14); border-radius:5px; margin-top:.75rem; }
.tdbu-jauge__plein { position:absolute; inset:0 auto 0 0; width:0; background:#fff; border-radius:5px; transition:width 1s cubic-bezier(.2,.7,.2,1); }
.tdbu-tuiles { display:grid; grid-template-columns:repeat(4, 1fr); gap:1px; background:var(--filet); border:1px solid var(--filet); margin:0 0 1.25rem; }
.tdbu-tuile { background:var(--papier); padding:1rem 1.1rem; }
.tdbu-tuile p { margin:0; }
.tdbu-tuile__k { font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--acier); }
.tdbu-tuile__v { font-family:var(--mono); font-weight:600; font-size:1.6rem; color:var(--encre); margin:.2rem 0 !important; }
.tdbu-tuile__v small { font-size:.55em; color:var(--acier); }
.tdbu-tuile__n { font-size:.8125rem; color:var(--acier); }
.tdbu-panneaux { display:grid; grid-template-columns:minmax(0, 5fr) minmax(0, 7fr); gap:1.25rem; margin:0 0 1.25rem; }
.tdbu-panneau, .tdbu-carte { background:var(--papier); border:1px solid var(--filet); padding:1.25rem; }
.tdbu-panneau h3, .tdbu-carte h3 { margin:0 0 .75rem; font-size:1.05rem; }
.tdbu-aide { margin:-.4rem 0 1rem; font-size:.875rem; color:var(--acier); }
.tdbu-donut { display:grid; grid-template-columns:150px 1fr; gap:1.25rem; align-items:center; }
.tdbu-donut svg { width:100%; height:auto; display:block; overflow:visible; }
.tdbu-part { cursor:pointer; transition:opacity .15s; }
.tdbu-donut svg:hover .tdbu-part:not(:hover) { opacity:.45; }
path.tdbu-part--juste { fill:var(--tdbu-juste); } path.tdbu-part--faux { fill:var(--tdbu-faux); } path.tdbu-part--vide { fill:var(--tdbu-vide); }
circle.tdbu-part--juste { stroke:var(--tdbu-juste); } circle.tdbu-part--faux { stroke:var(--tdbu-faux); } circle.tdbu-part--vide { stroke:var(--tdbu-vide); }
.tdbu-donut__v { font-family:var(--mono); font-size:32px; font-weight:600; fill:var(--encre); }
.tdbu-donut__k { font-size:11px; font-weight:700; letter-spacing:.08em; fill:var(--acier); }
.tdbu-legende { list-style:none; margin:0; padding:0; display:grid; gap:.6rem; }
.tdbu-legende li { display:grid; grid-template-columns:12px 1fr auto; gap:.6rem; align-items:center; }
.tdbu-legende strong { font-family:var(--mono); }
.tdbu-cle { width:12px; height:12px; border-radius:3px; }
.tdbu-cle--juste { background:var(--tdbu-juste); } .tdbu-cle--faux { background:var(--tdbu-faux); } .tdbu-cle--vide { background:var(--tdbu-vide); }
.tdbu-barres { list-style:none; margin:0; padding:0; display:grid; gap:.85rem; }
.tdbu-barre__haut { display:flex; justify-content:space-between; gap:1rem; font-size:.9rem; margin-bottom:.3rem; }
.tdbu-barre__haut strong { font-family:var(--mono); white-space:nowrap; }
.tdbu-barre__piste { position:relative; height:10px; background:var(--blanc); border:1px solid var(--filet-p); border-radius:5px; cursor:pointer; }
.tdbu-barre__plein { position:absolute; inset:0 auto 0 0; width:0; border-radius:5px; transition:width .9s cubic-bezier(.2,.7,.2,1); }
.tdbu-barre__plein--juste { background:var(--tdbu-juste); } .tdbu-barre__plein--faux { background:var(--tdbu-faux); }
.tdbu-barre__jury { position:absolute; top:-5px; bottom:-5px; width:3px; background:#C5A059; border-radius:2px; }
.tdbu-bilan { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; margin:0 0 1.25rem; }
.tdbu-carte { border-top:4px solid var(--tdbu-juste); }
.tdbu-carte--reprendre { border-top-color:var(--tdbu-faux); }
.tdbu-carte ul { margin:0; padding-left:1.1rem; display:grid; gap:.45rem; font-size:.9375rem; }
.tdbu-bulle { position:fixed; z-index:50; pointer-events:none; background:var(--marine); color:#fff; padding:.45rem .65rem; font-size:.8125rem; line-height:1.4; border-radius:3px; max-width:260px; }
@media (max-width:760px) { .tdbu-tuiles { grid-template-columns:repeat(2, 1fr); } .tdbu-panneaux, .tdbu-bilan { grid-template-columns:1fr; } }
@media (max-width:520px) { .tdbu-tete { grid-template-columns:1fr; } .tdbu-donut { grid-template-columns:1fr; justify-items:center; } .tdbu-donut svg { max-width:180px; } .tdbu-legende { width:100%; } }
@media (prefers-reduced-motion:reduce) { .tdbu-jauge__plein, .tdbu-barre__plein { transition:none; } }
.tdbu-capture { margin:0 0 1.25rem; }
.tdbu-raccourci { display:none; }
@media (max-width:760px) { .tdbu-raccourci { display:block; margin-top:1rem; padding:.8rem 1rem; background:var(--vermillon); color:#fff; font-weight:700; text-align:center; text-decoration:none; } .tdbu-raccourci:focus-visible { outline:3px solid #fff; outline-offset:2px; } }
.tdbu-capture .mu-alerte .zone { grid-template-columns:1fr; gap:18px; padding:24px; }
.tdbu-capture .mu-alerte h2 { font-size:clamp(1.3rem, 2.6vw, 1.7rem); }

/* ═══ CHARTE — marine et vermillon ═══ */
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-stretch:62% 125%;font-display:swap;src:url(/archivo-v25-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:400 900;font-stretch:62% 125%;font-display:swap;src:url(/archivo-v25-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/plex-mono-v20-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/plex-mono-v20-600-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  /* l'uniforme */
  --marine:#0A1B33; --marine-2:#13294B; --marine-3:#1D3A66;
  /* Trois teintes FIXES, identiques en clair et en sombre : le drap de
     l'uniforme, la bande garance du pantalon, l'argent des galons. Elles
     servent à l'habillage (barre, bannière, pied), qui reste marine dans
     les deux modes — contrairement à --marine, qui s'éclaircit en sombre. */
  --nuit:#0A1B33; --nuit-2:#13294B; --garance:#C8102E; --argent:#C9CED6;
  /* le papier : blanc franc, et un lavis bleuté pour les surfaces posées */
  --papier:#FFFFFF; --blanc:#F4F7FB;
  /* l'encre */
  --encre:#0F1826; --encre-2:#39465C; --acier:#5D6B84;
  --filet:#CBD5E4; --filet-p:#E4EBF4;
  /* le cachet — cette fois c'est vraiment du vermillon */
  --vermillon:#C8102E; --tampon-p:#FDECEE; --sur-vermillon:#FFFFFF;
  --correc:#C8102E; --vert:#276B4A; --cyan:#0F1826;
  /* La bande d'échéance a ses propres jetons : en mode sombre, --marine
     devient une teinte CLAIRE (elle n'y sert plus que de couleur de texte),
     et y poser du blanc donnerait du blanc sur bleu pâle. */
  --bande:#0A1B33; --sur-bande:#FFFFFF;
  --display:'Archivo',system-ui,-apple-system,sans-serif;
  --corps:'Archivo',system-ui,-apple-system,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;
}
:root[data-theme="dark"]{
  --marine:#A8BEE0; --marine-2:#8CA6CD; --marine-3:#7B97C2;
  --papier:#0C1220; --blanc:#151D2E;
  --encre:#E7ECF5; --encre-2:#B4BFD2; --acier:#8B99B1;
  --filet:#27324A; --filet-p:#1A2337;
  --vermillon:#F0796E; --tampon-p:#2A181A; --sur-vermillon:#15070A;
  --correc:#F0796E; --vert:#5FA982; --cyan:#E7ECF5;
  --bande:#16223A; --sur-bande:#E7ECF5;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --marine:#A8BEE0; --marine-2:#8CA6CD; --marine-3:#7B97C2;
    --papier:#0C1220; --blanc:#151D2E;
    --encre:#E7ECF5; --encre-2:#B4BFD2; --acier:#8B99B1;
    --filet:#27324A; --filet-p:#1A2337;
    --vermillon:#F0796E; --tampon-p:#2A181A; --sur-vermillon:#15070A;
    --correc:#F0796E; --vert:#5FA982; --cyan:#E7ECF5;
    --bande:#16223A; --sur-bande:#E7ECF5;
  }
}

/* ── La respiration du corps de page ────────────────────────────────── */
/* Défaut antérieur à la refonte : `main` demandait « padding:54px 0 96px »,
   mais il porte aussi la classe `.zone`, dont le raccourci « padding:0 24px »
   remet la marge verticale à zéro — et une classe l'emporte sur un élément.
   Le texte collait donc à la bande d'échéance et au pied de page sur les
   52 pages. Un sélecteur plus précis rend cette respiration. */
main.zone{padding-top:56px;padding-bottom:96px}

/* ── Titres : un slab, pas une didone ───────────────────────────────── */
h1,h2,h3{font-family:var(--display);font-stretch:72%;font-weight:800;
  font-variation-settings:normal;color:var(--marine)}
h1{font-size:clamp(2.5rem,5.6vw,4.1rem);letter-spacing:-.005em;line-height:1.02;max-width:20ch}
h2{font-size:2.15rem;letter-spacing:-.003em;line-height:1.08}
h3{font-size:1.5rem;letter-spacing:0;line-height:1.14}

/* ── Les chiffres portent la promesse du site : chasse fixe partout ── */
td.num,.chiffre .v,th{font-family:var(--mono);font-variant-numeric:tabular-nums}
th{font-weight:600;color:var(--marine);border-bottom:2px solid var(--marine)}
caption{font-family:var(--mono);color:var(--acier)}
tr.gros td{background:var(--tampon-p)}

/* ── Le cachet : le bloc des sources ────────────────────────────────── */
.sources{background:var(--tampon-p);border:1px solid var(--vermillon);
  border-top:3px double var(--vermillon);border-radius:2px}
.sources h2{font-family:var(--mono);font-size:13px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--vermillon);
  margin:0 0 14px;border:0;padding:0}
.maj{font-family:var(--mono);font-size:13px;letter-spacing:.01em;
  color:var(--acier);border-top:1px dashed var(--vermillon);padding-top:12px}

/* ── Les citations de jury restent des citations ────────────────────── */
blockquote{border-left:3px solid var(--vermillon);max-width:66ch;margin:26px 0}
blockquote p{font-style:italic;margin-bottom:10px}
blockquote cite{font-family:var(--mono);font-size:13px;font-style:normal;
  letter-spacing:.08em;text-transform:uppercase;color:var(--acier)}

/* ── L'échéance en cours : la bande de contrôle ─────────────────────── */
.ech{background:var(--bande);border-top:0;border-bottom:0}
.ech .k{font-family:var(--mono);color:var(--sur-bande);opacity:.78}
.ech .t{color:var(--sur-bande)}
.ech a{color:var(--sur-bande);text-decoration-color:color-mix(in srgb,var(--sur-bande) 45%,transparent)}

/* ── Les grilles réglées ────────────────────────────────────────────── */
/* Elles obtenaient leurs filets en peignant le fond du conteneur et en
   laissant un jour d'un pixel entre les cellules. Astuce efficace tant que
   les cellules remplissent la dernière ligne — sinon le fond apparaît en
   grand aplat gris. Cinq chiffres sur quatre colonnes suffisaient à créer
   ce trou. Chaque cellule porte donc désormais son propre filet. */
.kpis,.paires{background:transparent}
.kpi,.paire{box-shadow:0 0 0 1px var(--filet)}

/* ── La ligne de date : une phrase, pas une étiquette ───────────────── */
/* Elle porte une phrase entière ; en capitales espacées de 11 px, elle
   devenait un mur. Les capitales restent réservées aux libellés courts. */
.date{text-transform:none;letter-spacing:.005em;font-size:13px;line-height:1.6;
  font-weight:500;color:var(--encre-2)}

/* ── Variante : des phrases, pas des étiquettes ─────────────────────── */
.paires-phrases .paire .k{font-family:var(--corps);font-size:15px;font-weight:600;
  letter-spacing:0;text-transform:none;color:var(--encre);margin-bottom:6px}
.paires-phrases .paire .v{font-weight:400;color:var(--encre-2)}

/* ══════════════════════════════════════════════════════════════════════
   REFONTE DU 21 SEPTEMBRE 2026 — « grande école », l'uniforme pour charte
   Toutes les classes nouvelles sont préfixées mu- : aucune collision avec
   la base. L'habillage (barre, en-tête, pied) est posé dans les pages par
   _outils/habillage.mjs ; l'accueil est écrit à la main dans index.html.
   ══════════════════════════════════════════════════════════════════════ */
.mu-t{font-family:var(--display);font-stretch:72%;font-weight:800;line-height:1.02;letter-spacing:-.005em}
.mu-sur{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--vermillon)}
.mu-evitement{position:absolute;left:-9999px;top:0;background:var(--garance);color:#fff;padding:10px 16px;z-index:50}
.mu-evitement:focus{left:0}

/* ── Barre utilitaire : la promesse du site, et l'échéance du moment ── */
.mu-util{background:var(--nuit);color:var(--argent);font-size:13.5px;line-height:1.4}
.mu-util .zone{display:flex;justify-content:space-between;gap:8px 24px;align-items:center;min-height:40px;flex-wrap:wrap;padding-top:7px;padding-bottom:7px}
.mu-util-ech{display:flex;gap:6px 12px;align-items:center;flex-wrap:wrap;color:#fff}
.mu-util-ech b{font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:var(--garance);padding:3px 8px;font-weight:600}
.mu-util a{color:#fff;text-decoration-color:rgba(255,255,255,.5)}
.mu-util a:hover{color:#fff;text-decoration-color:#fff}

/* ── En-tête : le logo à la bande garance, et le menu ── */
.mu-entete{background:var(--papier);border-bottom:1px solid var(--filet);position:sticky;top:0;z-index:20}
.mu-entete .zone{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;position:relative}
.mu-logo{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--marine)}
.mu-logo:hover{color:var(--marine)}
.mu-logo-bande{width:8px;height:44px;background:var(--garance);flex:0 0 auto}
.mu-logo-nom{display:block;font-family:var(--display);font-stretch:70%;font-weight:900;font-size:25px;line-height:1;text-transform:uppercase;letter-spacing:.01em}
/* 10,5 px gardé exprès (04/10/2026) : partie du logotype ; à 13 px, il grossit l’en-tête mobile sans gain de lecture. Tout autre texte : 13 px au moins. */
.mu-logo-sous{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--acier);margin-top:5px;font-weight:500}
.mu-menu{display:flex;align-items:center;gap:26px;list-style:none;margin:0;padding:0;font-size:15px;font-weight:600}
.mu-menu li{margin:0}
.mu-menu a{display:block;text-decoration:none;color:var(--marine);padding:8px 0;border-bottom:3px solid transparent}
.mu-menu a:hover,.mu-menu a[aria-current]{border-color:var(--garance);color:var(--marine)}
.mu-menu .mu-fort a{background:var(--nuit);color:#fff;padding:11px 18px;border:0}
.mu-menu .mu-fort a:hover{background:var(--garance);color:#fff}
.mu-menu-mobile{display:none;border:0;padding:0;margin:0}
/* La base stylise tout <summary> pour « La réponse » du quiz (mono, capitales,
   flèche, filet) : le bouton du menu doit s'en défaire explicitement. */
.mu-menu-mobile summary{list-style:none;cursor:pointer;font-family:var(--corps);font-weight:700;font-size:15px;letter-spacing:0;text-transform:none;background:var(--nuit);color:#fff;padding:11px 16px;margin:0;border:0;display:block}
.mu-menu-mobile summary::before,.mu-menu-mobile[open] summary::before{content:none}
.mu-menu-mobile[open] summary{margin-bottom:0}
.mu-menu-mobile summary:hover{text-decoration:none;background:var(--garance)}
.mu-menu-mobile summary::-webkit-details-marker{display:none}
.mu-menu-mobile ul{position:absolute;left:0;right:0;top:100%;list-style:none;margin:0;padding:8px 24px 18px;background:var(--papier);border-bottom:3px solid var(--garance);box-shadow:0 24px 40px -24px rgba(10,27,51,.5)}
.mu-menu-mobile li{margin:0;border-bottom:1px solid var(--filet)}
.mu-menu-mobile li:last-child{border-bottom:0}
.mu-menu-mobile a{display:block;padding:11px 0;text-decoration:none;font-weight:600;color:var(--marine)}
/* Le menu en deux sections (01/10/2026) : liste déroulante au survol et au
   clavier sur ordinateur, titres de section sur téléphone. */
.mu-deroule{position:relative}
.mu-deroule>a{display:flex;align-items:center;gap:8px}
.mu-deroule>a::after{content:"";width:0;height:0;border-left:4.5px solid transparent;border-right:4.5px solid transparent;border-top:5px solid currentColor;margin-top:2px}
.mu-sous{display:none;position:absolute;left:-22px;top:100%;min-width:300px;list-style:none;margin:0;padding:8px 22px 12px;background:var(--papier);border-top:3px solid var(--garance);box-shadow:0 24px 40px -24px rgba(10,27,51,.5);z-index:30}
.mu-deroule:hover .mu-sous,.mu-deroule:focus-within .mu-sous{display:block}
.mu-sous li{border-bottom:1px solid var(--filet)}
.mu-sous li:last-child{border-bottom:0}
.mu-menu .mu-sous a{padding:10px 0;border-bottom:0;font-size:14.5px}
.mu-menu .mu-sous a:hover,.mu-menu .mu-sous a[aria-current]{color:var(--garance)}
.mu-menu-mobile ul{max-height:calc(100vh - 240px);max-height:calc(100dvh - 240px);overflow-y:auto}
.mu-menu-mobile li.mu-menu-titre{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--vermillon);padding:18px 0 4px;border-bottom:0}
.mu-menu-mobile a[aria-current]{color:var(--garance)}

/* ── L'en-tête des pages intérieures : drap marine, bande garance ── */
.tete{position:relative;background:var(--nuit);color:#fff;border-top:0;padding:56px 0 52px}
.tete::after{content:"";position:absolute;left:0;top:0;bottom:0;width:14px;background:var(--garance)}
.tete .sceau{display:none}
.tete h1{color:#fff}
.tete .chapeau{color:#D9DFE9}
.tete .fil{color:var(--argent);margin-bottom:26px}
.tete .fil a{color:#fff}
.tete .date{color:var(--argent);border-top-color:rgba(255,255,255,.2);border-bottom:0;padding-bottom:0}
.tete .date::before{background:var(--garance)}
.tete .pub{color:var(--argent)}

/* ── Boutons ── */
.mu-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:38px}
.mu-btn{display:inline-block;font-weight:700;font-size:16px;text-decoration:none;padding:16px 26px;border:2px solid transparent;transition:background .15s,color .15s,border-color .15s}
.mu-btn-plein{background:var(--garance);color:#fff}
.mu-btn-plein:hover{background:#fff;color:var(--nuit)}
.mu-btn-trait{border-color:rgba(255,255,255,.7);color:#fff}
.mu-btn-trait:hover{background:#fff;color:var(--nuit)}
.mu-btn-contour{border-color:var(--nuit);color:var(--nuit)}
.mu-btn-contour:hover{background:var(--nuit);color:#fff}
.mu-btn-marine{background:var(--nuit);color:#fff}
.mu-btn-marine:hover{background:var(--garance);color:#fff}
.mu-btn-contour{border-color:var(--marine);color:var(--marine)}
.mu-btn-contour:hover{background:var(--marine);color:var(--papier)}

/* ── Le relais vers Les Deux Galons ──
   Posé par _outils/offre.mjs au bas des pages où le lecteur travaille
   réellement son QCM. Nuit, bande garance : les mêmes codes que la
   couverture du produit, pour qu'on reconnaisse la même chose. */
.offre{background:var(--nuit);color:#fff;padding:32px 30px;margin:52px 0 0;border-left:6px solid var(--garance)}
.offre h2{color:#fff;margin:0 0 12px;font-size:1.45rem;line-height:1.15}
.offre p{color:var(--argent);font-size:15.5px;line-height:1.6;max-width:62ch;margin:0 0 14px}
.offre p:last-of-type{margin-bottom:22px}
.offre b{color:#fff;font-weight:700}
.offre .prix{font-family:var(--mono);font-weight:600;color:#fff;white-space:nowrap}
@media (max-width:640px){.offre{padding:26px 22px;margin-top:40px}.offre .mu-btn{display:block;text-align:center}}

/* ── Les graphiques, posés par _outils/infographies.mjs ──
   Ces règles vivaient dans un <style> de page jusquau 4 septembre 2026.
   La charte a retiré les <style>, et infographies.mjs, qui sy accrochait,
   na plus su reposer le graphique de qcm-ce-qui-tombe.html — page que
   build-synthese.mjs réécrit à chaque passage. Le graphique a donc disparu
   en silence pendant dix-neuf jours. */
figure.gr{margin:30px 0 34px;padding:20px 0 0;border-top:2px solid var(--encre)}
figure.gr svg{display:block;width:100%;height:auto}
figure.gr figcaption{margin-top:16px;font-size:13.5px;line-height:1.6;color:var(--acier)}
.gr .pl{fill:var(--vermillon)}
.gr .cl{fill:var(--filet)}
.gr .ax{fill:var(--acier);font:400 11.5px var(--corps)}
.gr .vl{fill:var(--encre);font:600 12.5px var(--corps)}
.gr .ti{fill:var(--acier);font:700 11px var(--corps);letter-spacing:.1em}
.gr .rg{stroke:var(--filet);stroke-width:1;fill:none}
.gr .tr{stroke:var(--acier);stroke-width:1.5;fill:none;stroke-linejoin:round}
.gr .tr.fort{stroke:var(--vermillon);stroke-width:3}
.gr .dot{fill:var(--papier);stroke:var(--acier);stroke-width:1.5}
.gr .dot.fort{stroke:var(--vermillon)}

/* ── Accueil : la bannière ── */
main.mu-accueil{padding:0}
.mu-banniere{position:relative;background:var(--nuit);color:#fff;overflow:hidden;isolation:isolate}
.mu-banniere picture,.mu-banniere-fond{position:absolute;inset:0;width:100%;height:100%;z-index:-2}
.mu-banniere-fond{object-fit:cover;object-position:62% 58%}
.mu-banniere::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,27,51,.96) 0%,rgba(10,27,51,.88) 38%,rgba(10,27,51,.45) 68%,rgba(10,27,51,.18) 100%)}
.mu-banniere::after{content:"";position:absolute;left:0;top:0;bottom:0;width:14px;background:var(--garance)}
.mu-banniere .zone{padding-top:96px;padding-bottom:104px}
.mu-banniere .mu-sur{color:#fff;opacity:.85;display:inline-flex;align-items:center;gap:12px}
.mu-banniere .mu-sur::before{content:"";width:34px;height:2px;background:var(--garance)}
.mu-banniere h1{color:#fff;font-size:clamp(2.75rem,7vw,5.75rem);max-width:11.5em;margin:22px 0 26px}
.mu-banniere h1 em{font-style:normal;box-shadow:inset 0 -.16em 0 var(--garance)}
.mu-banniere .chapeau{font-size:20px;line-height:1.55;max-width:33em;color:#E3E8F0;margin-top:0}
.mu-credit{position:absolute;right:16px;bottom:10px;font-size:13px;color:rgba(255,255,255,.75)}

/* ── Accueil : la bande de chiffres ── */
.mu-chiffres{background:var(--nuit-2);color:#fff;border-top:1px solid rgba(255,255,255,.12)}
.mu-chiffres .zone{display:grid;grid-template-columns:repeat(4,1fr)}
.mu-chiffre{padding:28px 24px 26px;border-left:1px solid rgba(255,255,255,.14)}
.mu-chiffre:first-child{border-left:0;padding-left:0}
.mu-chiffre b{display:block;font-family:var(--mono);font-size:40px;font-weight:600;line-height:1;letter-spacing:-.02em}
.mu-chiffre span{display:block;margin-top:10px;font-size:14.5px;color:var(--argent);line-height:1.4}

/* ── Accueil : les blocs ── */
.mu-bloc{padding:96px 0}
.mu-bloc-gris{background:var(--blanc)}
.mu-tete-bloc{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:end;margin-bottom:48px}
.mu-tete-bloc h2{font-size:clamp(2.1rem,4.4vw,3.5rem);margin:14px 0 0;max-width:none}
.mu-tete-bloc p{color:var(--encre-2);font-size:18px;margin:0;max-width:none}

/* Les trois concours — le nombre de galons dit le niveau : C, B, A */
.mu-concours{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.mu-concours-4{grid-template-columns:repeat(2,1fr)}
.mu-carte{background:var(--papier);border:1px solid var(--filet);display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .18s,box-shadow .18s}
.mu-carte:hover{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(10,27,51,.45);color:inherit}
.mu-epaulette{background:var(--nuit);color:#fff;padding:22px 26px;min-height:72px;display:flex;justify-content:space-between;align-items:center}
.mu-cat{font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--argent)}
.mu-galons{display:flex;flex-direction:column;gap:4px}
.mu-galons i{display:block;width:46px;height:5px;background:linear-gradient(180deg,#E8EBF0,#AEB5C0)}
.mu-carte-corps{padding:28px 26px 30px;display:flex;flex-direction:column;gap:14px;flex:1}
.mu-carte-titre{display:block;font-family:var(--display);font-stretch:72%;font-weight:800;font-size:2rem;line-height:1.05;color:var(--marine)}
.mu-carte-texte{display:block;color:var(--encre-2);font-size:16px}
.mu-cond{display:block;font-weight:700;color:var(--vermillon)}
.mu-va{margin-top:auto;padding-top:10px;font-weight:700;color:var(--marine)}
.mu-va::after{content:" →";color:var(--vermillon)}
.mu-renvoi{margin:36px 0 0;font-size:17px;color:var(--encre-2);max-width:none}
.mu-renvoi a{font-weight:700;text-decoration-thickness:2px;text-underline-offset:4px}

/* Les annales */
.mu-annales{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:64px;align-items:start}
.mu-photo{position:sticky;top:110px;margin:0}
/* height:auto est indispensable : l'attribut height de la balise fixerait sinon la hauteur en pixels. */
.mu-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.mu-photo::before{content:"";position:absolute;left:-14px;top:40px;bottom:64px;width:14px;background:var(--garance)}
.mu-photo figcaption{font-size:13px;color:var(--acier);margin-top:8px}
.mu-annales h2{font-size:clamp(2rem,4vw,3.1rem);margin:14px 0 20px}
.mu-annales p{color:var(--encre-2);margin:0 0 22px}
.mu-sujets{list-style:none;border-top:2px solid var(--marine);margin:26px 0 30px;padding:0}
.mu-sujets li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;margin:0;border-bottom:1px solid var(--filet);font-size:16px}
.mu-sujets a{text-decoration:none;font-weight:600;color:var(--marine)}
.mu-sujets a:hover{color:var(--vermillon)}
.mu-sujets span{font-family:var(--mono);font-size:14px;color:var(--encre-2);white-space:nowrap}
.mu-sujets span b{color:var(--marine)}
.mu-annales .mu-actions{margin-top:0}

/* La méthode, sur le drap marine */
.mu-methode{background:var(--nuit);color:#fff}
.mu-methode .mu-sur{color:#FF8A9B}
.mu-methode .mu-tete-bloc h2{color:#fff}
.mu-methode .mu-tete-bloc p{color:var(--argent)}
.mu-regles{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.18)}
.mu-regle{padding:30px 26px 6px 0;border-right:1px solid rgba(255,255,255,.18);margin-right:26px}
.mu-regle:last-child{border-right:0;margin-right:0}
.mu-regle-n{font-family:var(--mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#FF8A9B}
.mu-regle strong{display:block;font-family:var(--display);font-stretch:76%;font-weight:800;font-size:24px;line-height:1.12;margin:14px 0 12px}
.mu-regle p{font-size:15.5px;color:#D5DBE5;margin:0}
.mu-regle a{color:#fff}

/* Les constats */
.mu-constats{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--filet);background:var(--papier)}
.mu-constat{padding:36px 32px 38px;border-left:1px solid var(--filet)}
.mu-constat:first-child{border-left:0}
.mu-constat b{display:block;font-family:var(--mono);font-weight:600;font-size:46px;line-height:1;color:var(--marine);letter-spacing:-.03em}
.mu-constat b small{font-size:20px;color:var(--vermillon);letter-spacing:0}
.mu-constat strong{display:block;font-family:var(--display);font-stretch:76%;font-weight:800;font-size:23px;line-height:1.15;color:var(--marine);margin:18px 0 10px}
.mu-constat p{font-size:15.5px;color:var(--encre-2);margin:0}

/* L'alerte */
.mu-alerte{background:var(--garance);color:#fff}
.mu-alerte .zone{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:56px;align-items:center;padding-top:64px;padding-bottom:64px}
.mu-alerte h2{color:#fff;font-size:clamp(1.9rem,3.6vw,2.9rem);margin:0}
.mu-alerte p{margin:12px 0 0;color:#FFE3E7}
.mu-alerte form{display:flex;gap:0}
.mu-alerte input[type=email]{flex:1;min-width:0;font:inherit;padding:17px 18px;border:0;border-radius:0;background:#fff;color:#0E1726}
.mu-alerte button{font:inherit;font-weight:700;padding:17px 24px;border:0;background:var(--nuit);color:#fff;cursor:pointer}
.mu-alerte button:hover{background:#000}
/* 6/10/2026 : #FFD3D9 faisait 4,36:1 sur la garance ; #FFE3E7 = 4,87:1 */
.mu-alerte .mu-petit{display:block;margin-top:12px;color:#FFE3E7;font-size:13.5px}
/* Lien dans le bandeau garance : il héritait de la couleur d'encre, 3,03:1 sur garance.
   En blanc souligné, 5,9:1 (expertise du 4 octobre 2026). */
.mu-alerte a{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.mu-alerte a:hover{text-decoration-thickness:2px}
.mu-alerte a:focus-visible{outline:3px solid #fff;outline-offset:2px}
.mu-alerte input:focus-visible,.mu-alerte button:focus-visible{outline:3px solid #fff;outline-offset:3px}
.mu-cache{position:absolute;left:-9999px}

/* ── Le pied ── */
footer.mu-pied{background:#06111F;color:var(--argent);font-family:var(--corps);font-size:15px;line-height:1.6;padding:64px 0 28px;border-top:0}
.mu-pied-cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:40px}
.mu-pied-titre{font-family:var(--mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin:0 0 16px;font-weight:600}
.mu-pied ul{list-style:none;display:grid;gap:9px;margin:0;padding:0}
.mu-pied li{margin:0}
footer.mu-pied a{color:var(--argent);text-decoration:none}
footer.mu-pied a:hover{color:#fff;text-decoration:underline}
footer.mu-pied .mu-logo,footer.mu-pied .mu-logo:hover{color:#fff;text-decoration:none}
.mu-pied .mu-logo-sous{color:var(--argent)}
.mu-pied-note{margin:18px 0 0;max-width:30em;font-size:14px;line-height:1.55}
.mu-pied-bas{margin-top:48px;padding-top:20px;border-top:1px solid rgba(255,255,255,.12);font-size:13px;display:flex;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}

@media (max-width:960px){
  .mu-menu{display:none}
  .mu-menu-mobile{display:block}
  .mu-chiffres .zone{grid-template-columns:repeat(2,1fr)}
  .mu-chiffre{padding-left:0;border-left:0;border-top:1px solid rgba(255,255,255,.14)}
  .mu-chiffre:nth-child(-n+2){border-top:0}
  .mu-tete-bloc,.mu-annales,.mu-alerte .zone{grid-template-columns:1fr;gap:24px}
  .mu-concours,.mu-constats{grid-template-columns:1fr}
  .mu-constat{border-left:0;border-top:1px solid var(--filet)}
  .mu-constat:first-child{border-top:0}
  .mu-regles{grid-template-columns:1fr 1fr}
  .mu-regle{border-right:0;margin-right:0;padding-right:20px}
  .mu-pied-cols{grid-template-columns:1fr 1fr}
  .mu-bloc{padding:64px 0}
  .mu-banniere .zone{padding-top:64px;padding-bottom:72px}
  .mu-photo{position:relative;top:auto}
  .mu-photo::before{left:0}
  .tete{padding:40px 0 38px}
}
@media (max-width:560px){
  .mu-regles{grid-template-columns:1fr}
  .mu-alerte form{flex-direction:column}
  .mu-util-note{display:none}
  .mu-util-ech{display:block}
  .mu-util-ech b{margin-right:8px}
  .tete{padding:28px 0 30px}
  .tete h1{font-size:2.1rem}
  .tete .fil{margin-bottom:14px}
  .mu-logo-nom{font-size:21px;white-space:nowrap}
  .mu-logo-sous{font-size:9.5px;letter-spacing:.1em;white-space:nowrap}
  .mu-pied-cols{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){.mu-carte,.mu-btn{transition:none}.mu-carte:hover{transform:none}}

/* ── L'offre en grand, sur l'accueil ──
   Même bloc, mêmes couleurs, même bouton : seule la taille change. Il est posé
   haut dans la page, juste après la bande de chiffres, pour qu'on ne puisse pas
   le manquer. Le retrait reste celui du cran fort, 32 px bordure comprise. */
/* En pleine largeur sur l'accueil : la section porte le fond et la bande
   garance, la zone intérieure garde l'alignement du reste du site. Le bloc
   .offre y perd sa boîte — fond, bordure, retrait — et ne sert plus qu'à la
   typographie. Le sélecteur à deux classes passe devant l'échelle des retraits
   posée plus bas, qui vise .offre seul. */
.mu-offre-bande{background:var(--nuit);color:#fff;border-top:6px solid var(--garance)}
.mu-offre-bande .zone{padding-top:60px;padding-bottom:56px}
.mu-offre-bande .offre{background:none;border-left:0;padding:0;margin:0}
@media (max-width:640px){.mu-offre-bande .zone{padding-top:38px;padding-bottom:34px}}
/* La ligne des finances publiques, sous l'offre de l'accueil (30/09/2026) :
   un filet la sépare du bouton, pour qu'elle se lise comme un renvoi et non
   comme une seconde offre. */
.mu-offre-autre{color:var(--argent);font-size:15.5px;line-height:1.6;max-width:70ch;margin:8px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.22)}
.mu-offre-autre b{color:#fff;font-weight:700}
.mu-offre-autre a{color:#fff;font-weight:700;text-decoration-thickness:2px;text-underline-offset:4px}
.mu-offre-duo{display:grid;grid-template-columns:1fr 1fr;gap:56px}
.mu-offre-duo .offre{display:flex;flex-direction:column}
.mu-offre-duo .offre p:last-child{margin-top:auto;padding-top:8px}
@media (max-width:960px){.mu-offre-duo{grid-template-columns:1fr;gap:40px}.mu-offre-duo .offre + .offre{padding-top:34px;border-top:1px solid rgba(255,255,255,.22)}}

.offre-large{padding:44px 40px 40px;margin:0}
.offre-large h2{font-size:clamp(1.7rem,3vw,2.35rem);margin-bottom:16px}
.offre-large p{font-size:17px;max-width:70ch}
.offre-large .prix{font-size:1.2em}
.offre-large .mu-btn{font-size:17px;padding:18px 32px}
@media (max-width:640px){.offre-large{padding:30px 22px 26px}.offre-large p{font-size:16px}}

/* ── L'échelle des retraits ──
   Relevé du 25 septembre 2026, sur les 52 pages rendues : QUINZE valeurs de
   retrait différentes dans les encadrés — 15, 16, 17, 18, 19, 20, 22, 23, 24,
   25, 26, 27, 28, 33 et 36 px. La colonne de texte, elle, est parfaite : zéro
   élément hors grille. Mais un .details à 19 posé sur une .alerte à 25 puis un
   bloc .sources à 27 dessine un escalier, et l'œil le lit comme un défaut
   d'alignement sans pouvoir le nommer.

   On ramène tout à trois crans : 16, 24 et 32 px, BORDURE COMPRISE — c'est le
   retrait total qui se voit, pas le padding seul. Les bordures de 2, 3 et 6 px
   sont donc déduites ; celles d'un pixel sont ignorées, un pixel ne se voit pas.

   Seul le retrait GAUCHE est touché : c'est lui qui fixe où le texte commence.
   Le retrait droit est laissé tel quel, il n'entre pas dans l'alignement.
   La règle .mu-chiffre:first-child, qui met le retrait à zéro, garde la main :
   sa spécificité est plus forte. Pour revenir en arrière, supprimer ce bloc et
   relancer la chaîne. */
.paire,.sec,.fi{padding-left:16px}
.rem{padding-left:14px}
.carte,.regle,.test,.urgence,.chiffre,.mu-epaulette{padding-left:24px}
.alerte{padding-left:21px}
.offre{padding-left:26px}

/* Seconde passe, même jour. La première avait manqué l'essentiel : le retrait
   le plus répandu du site n'est pas une classe mais un ÉLÉMENT — le <details>
   qui replie chaque réponse des corrigés, 518 occurrences à 19 px, juste à côté
   de blocs à 25. Et ignorer les bordures d'un pixel laissait un résidu à 25, 26
   et 27 : invisible seul, mais c'est ce qui empêchait l'échelle de fermer.
   Ici les bordures sont déduites jusqu'au dernier pixel. */
main details,.ouv,main blockquote{padding-left:21px}
.cadre,.sources,.exq,.voie,.mu-chiffre,.cle,.ecole,.marche{padding-left:23px}
.plan{padding-left:22px}
.s,.kpi,.bloc,.tv,.tp,.fort{padding-left:24px}
.mu-constat{padding-left:31px}
/* Ces deux-là sont déclarés plus haut avec une spécificité supérieure :
   .ecole .ft et p.rem. Un sélecteur simple ne les atteint pas, on se met donc
   à leur niveau. Le .ft est un encadré DANS un encadré : il prend le cran
   compact, pas le standard. */
.ecole .ft{padding-left:16px}
p.rem{padding-left:14px}

/* Le rappel du haut des pages de travail, posé par offre.mjs le 28/09/2026.
   Mêmes codes que le bloc du bas, nuit et bande garance, mais compact : deux
   lignes et un bouton, pour ne pas retarder la première question. Retrait au
   cran standard, 24 px bordure comprise. */
.rappel-offre{background:var(--nuit);color:#fff;padding:20px 24px 20px 18px;margin:28px 0 36px;border-left:6px solid var(--garance)}
.rappel-offre p{color:var(--argent);font-size:15.5px;line-height:1.55;max-width:70ch;margin:0 0 14px}
.rappel-offre p:last-child{margin:0}
.rappel-offre b{color:#fff;font-weight:700}
.rappel-offre .prix{font-family:var(--mono);font-weight:600;color:#fff;white-space:nowrap}
@media (max-width:640px){.rappel-offre{padding:18px 18px 18px 18px}.rappel-offre .mu-btn{display:block;text-align:center}}
/* Corrigés dont le sujet numérote ses propositions 1 à 4 (finances publiques,
   28/09/2026), et figures reproduites du sujet : la règle générale des images
   les recadre en 4/3, ce qui couperait un diagramme ou une rangée de dominos. */
.qo.num{list-style:decimal}
figure.qfig{margin:14px 0 12px;max-width:640px}
figure.qfig img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;border:1px solid var(--filet);background:#fff}
figure.qfig figcaption{margin-top:8px;font-size:13px;line-height:1.5;color:var(--acier)}
/* L'achat dans le premier écran des pages de vente (4 octobre 2026, posé par
   offre.mjs dans l'en-tête marine) : l'échéance datée, puis le bouton. Les
   couleurs sont fixes, l'en-tête reste marine dans les deux modes. */
.mu-achat-haut{margin-top:24px;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.mu-achat-haut p{margin:0}
.mu-urgence{font-family:var(--mono);font-size:14px;line-height:1.5;color:#fff;border-left:4px solid var(--garance);padding:2px 0 2px 12px;max-width:46ch}
.mu-urgence b{font-weight:600}
.mu-urgence span{color:var(--argent)}
@media (max-width:640px){.mu-achat-haut{margin-top:18px;gap:14px}.mu-achat-haut p{width:100%}.mu-achat-haut .mu-btn{display:block;text-align:center}}
/* La note de l'article 6 des CGV sous « accès à vie* » (4 octobre 2026, posée
   par offre.mjs dans le paragraphe du prix) : discrète, mais lisible sur la
   nuit des blocs d'offre et des rappels. */
.offre-note{display:block;margin-top:8px;font-size:13px;line-height:1.5;color:var(--argent)}
.offre-note a{color:#fff;text-decoration-thickness:1px;text-underline-offset:3px}
/* Les relais posés par offre.mjs le 5 octobre 2026 : une ligne, pas un
   encadré. À côté du sujet officiel (annales, sources des corrigés), au milieu
   d'un corrigé, au bilan d'un entraînement. Filet garance à gauche, texte
   courant : ils se lisent comme une note. Retrait au cran compact, 16 px
   bordure comprise. */
.mu-relais{margin:16px 0 20px;padding:2px 0 2px 13px;border-left:3px solid var(--garance);font-size:15px;line-height:1.55;color:var(--encre-2);max-width:70ch}
.mu-relais b{color:var(--encre);font-weight:700}
.mu-relais a{color:var(--marine);font-weight:700;text-decoration-thickness:2px;text-underline-offset:3px}
.mu-relais .prix{font-family:var(--mono);font-weight:600;color:var(--encre);white-space:nowrap}
.mu-relais-sujet{margin-bottom:14px}
span.mu-relais-sujet{display:block;margin:10px 0 4px}
.mu-relais-milieu{margin:36px 0}
.mu-relais-quiz{margin:20px 0}
/* Objectif 5 novembre (12 octobre 2026, offre.mjs) : l'encart du bas des cinq pages d'entrée garde le gabarit
   .offre ; dans la ligne datée du rappel, le lien vers l'offre reste blanc et souligné sur la nuit. */
.mu-obj5-ruban-p[hidden]{display:none}
.mu-obj5-ruban{display:inline-flex;flex-wrap:wrap;gap:2px 12px;padding:10px 16px;background:var(--garance);color:#fff;font-size:15px;line-height:1.35;text-decoration:none}
.mu-obj5-ruban:hover{background:#9E0C24;color:#fff}
.mu-urgence .mu-obj5 a{color:#fff;font-weight:600;text-decoration-thickness:1px;text-underline-offset:3px}
.offre.mu-obj5 h2{margin-top:0}

/* Le bouton des préparations dans la barre de navigation des ordinateurs
   (habillage.mjs, 12/10/2026). Garance plein : lisible en clair comme en sombre. */
.mu-menu .mu-prep a{background:var(--garance);color:#fff;padding:11px 18px;border:0}
.mu-menu .mu-prep a:hover{background:var(--nuit);color:#fff}
/* La barre d'offre des téléphones, posée par offre.mjs le 12/10/2026 sur les
   pages de contenu. Masquée au départ (attribut hidden) ; son script la montre
   après le premier écran, sauf quand un encadré d'offre, l'alerte ou le pied
   sont à l'écran. Jamais sur ordinateur : le bouton du menu y suffit. */
.mu-barre-offre{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:stretch;background:var(--nuit);border-top:3px solid var(--garance);box-shadow:0 -6px 18px rgba(0,0,0,.18)}
.mu-barre-offre[hidden],.mu-barre-lien[hidden]{display:none}
.mu-barre-lien{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:10px 6px 10px 16px;color:#fff;text-decoration:none}
.mu-barre-txt{display:flex;flex-direction:column;min-width:0}
.mu-barre-txt b{font-family:var(--display);font-size:16px;line-height:1.25;color:#fff}
.mu-barre-txt small{font-size:13px;line-height:1.3;color:var(--argent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mu-barre-btn{flex:none;background:var(--garance);color:#fff;font-weight:700;font-size:15px;padding:11px 14px;white-space:nowrap}
.mu-barre-fermer{flex:none;width:42px;background:transparent;border:0;color:var(--argent);font-size:24px;line-height:1;cursor:pointer}
.mu-barre-lien:focus-visible,.mu-barre-fermer:focus-visible{outline:3px solid #fff;outline-offset:-3px}
@media (min-width:761px){.mu-barre-offre{display:none !important}}
/* 12/10/2026 : à 360 px (la largeur Android la plus courante), logo et bouton
   Menu dépassaient de 7 px ; écart resserré et nom du site réduit. À 320 px,
   c'est la ligne du dessous qui fixe la largeur du logo : on la resserre aussi,
   ainsi que les marges de la zone. */
@media (max-width:400px){.mu-entete .zone{gap:12px}.mu-logo-nom{font-size:22px}}
@media (max-width:340px){.mu-entete .zone{padding-left:16px;padding-right:16px}.mu-logo-nom{font-size:19px}.mu-logo-sous{font-size:8.5px;letter-spacing:.04em}}
/* 12/10/2026 : deux débordements antérieurs, relevés par le vérificateur. Les
   étiquettes des paires (min-width 230 px) dépassaient des colonnes de 190 px
   de la grille entre 620 et 1024 px ; une adresse d'un seul tenant dépassait
   de 3 px à 360 px. */
.paires .paire .k{min-width:0}
main{overflow-wrap:break-word}
