:root{
  --navy:#2F2F58; --navy2:#242445; --blue:#6467D8; --blue-l:#EEEFFB;
  --ink:#1B2B36; --grey:#61707E; --soft:#8492A0; --line:#E3E9EE; --bg:#F5F7FA; --paper:#fff;
  --amber:#8A5A00; --amber-bg:#FFF7E8; --amber-line:#EBD3A0;
  --green:#2C6E52; --green-bg:#E6F3EC; --green-line:#BFE0CE;
  --red:#A33;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
  --r:12px; --rs:8px;
  --sh:0 1px 2px rgba(20,40,60,.05);
  --sh2:0 6px 20px rgba(20,40,60,.09);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--sans);font-size:16px;line-height:1.6;color:var(--ink);background:var(--bg)}
.wrap{max-width:980px;margin:0 auto;background:var(--bg);min-height:100vh;display:flex;flex-direction:column}

/* ── HEADER ── */
header{position:sticky;top:0;z-index:30;background:var(--paper);border-bottom:1px solid var(--line);padding:11px 30px}
.hrow{display:flex;align-items:center;justify-content:space-between;gap:14px}
.brand{display:flex;align-items:center;gap:11px;min-width:0}
.brand-mark{width:29px;height:29px;flex:0 0 29px;background:var(--navy);color:#fff;border-radius:8px;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center}
.brand-txt{font-size:14.5px;font-weight:700;color:var(--navy);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand-txt small{display:block;font-size:11.5px;font-weight:500;color:var(--soft);letter-spacing:0}
.hbtns{display:flex;align-items:center;gap:8px}
.langs{display:flex;flex:0 0 auto;background:var(--bg);border-radius:var(--rs);padding:2px}
.langs button{font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.05em;padding:6px 11px;border:0;background:transparent;color:var(--soft);cursor:pointer;border-radius:6px}
.langs button[aria-pressed="true"]{background:var(--paper);color:var(--navy);box-shadow:var(--sh)}
.langs button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.homebtn{font-family:var(--sans);font-size:12px;font-weight:600;background:transparent;border:1px solid var(--line);color:var(--navy);padding:7px 13px;cursor:pointer;border-radius:var(--rs)}
.homebtn:hover{background:var(--bg)}
.bar{margin-top:10px;height:6px;background:#EDF1F5;border-radius:4px;overflow:hidden}
.bar i{display:block;height:100%;background:var(--blue);width:0;border-radius:4px;transition:width .25s ease}
.barlab{margin-top:6px;font-size:11.5px;font-weight:600;color:var(--soft)}

/* ── SLIDES ── */
main{flex:1}
.slide{display:none;padding:30px 30px 12px}
.slide.on{display:block;animation:fade .18s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.eyebrow{font-size:12px;font-weight:700;color:var(--blue);margin-bottom:10px}
h1.title{font-size:31px;font-weight:700;letter-spacing:-.025em;line-height:1.18;color:var(--navy);margin-bottom:12px}
h1.title .sup{display:block;font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--soft);margin-bottom:7px}
.intro{font-size:17px;line-height:1.62;color:var(--grey);margin-bottom:20px;max-width:70ch}
p{max-width:72ch;margin-bottom:12px}
strong{font-weight:700;color:var(--navy)}
h3{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--soft);margin:26px 0 10px}
h4{font-size:16px;font-weight:700;color:var(--navy);margin:18px 0 4px;letter-spacing:-.01em}
ul.plain{list-style:none;margin:0 0 12px;max-width:72ch}
ul.plain li{position:relative;padding-left:20px;margin-bottom:8px}
ul.plain li::before{content:"";position:absolute;left:0;top:.66em;width:7px;height:7px;border-radius:50%;background:var(--blue)}

/* ── ACCUEIL / LANDINGS ── */
.cover{padding-top:34px}
.kick{font-size:12px;font-weight:700;color:var(--blue);margin-bottom:10px}
.cover h1{font-size:34px;font-weight:700;letter-spacing:-.025em;line-height:1.15;color:var(--navy)}
.cover .sub{margin-top:10px;font-size:16.5px;line-height:1.6;color:var(--grey);max-width:64ch;margin-bottom:22px}
.prog{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:15px 18px;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:16px;box-shadow:var(--sh)}
.prog .pl{font-size:12.5px;font-weight:600;color:var(--grey)}
.prog .track2{flex:1;min-width:150px;height:7px;background:#EDF1F5;border-radius:4px;overflow:hidden}
.prog .track2 i{display:block;height:100%;width:0;background:var(--blue);border-radius:4px;transition:width .3s}
.prog .pv{font-size:12.5px;font-weight:700;color:var(--navy)}

.tracks{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:14px}
.track{text-align:left;font-family:var(--sans);background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:22px 22px 18px;cursor:pointer;width:100%;box-shadow:var(--sh);transition:box-shadow .18s,border-color .18s,transform .18s}
.track:hover{box-shadow:var(--sh2);border-color:#C9D8E4;transform:translateY(-2px)}
.track:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.tr-ico{width:42px;height:42px;border-radius:11px;background:var(--blue-l);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.tr-ico svg{width:23px;height:23px}
.tr-n{display:none}
.tr-t{font-size:20px;font-weight:700;color:var(--navy);letter-spacing:-.02em;line-height:1.2}
.tr-s{font-size:12.5px;font-weight:600;color:var(--soft);margin-top:2px}
.track p{font-size:14px;line-height:1.6;color:var(--grey);margin:12px 0 0}
.tr-go{margin-top:18px;display:inline-block;font-size:12.5px;font-weight:700;color:#fff;background:var(--blue);padding:9px 16px;border-radius:var(--rs)}
.track .badge{float:right}

.mods{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}
.mod{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:18px 19px 16px;box-shadow:var(--sh)}
.mod-n{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--blue);letter-spacing:.04em}
.mod-t{font-size:17px;font-weight:700;color:var(--navy);margin:3px 0 7px;line-height:1.25;letter-spacing:-.01em}
.mod p{font-size:13.5px;line-height:1.6;color:var(--grey);margin-bottom:12px}
.mod.soon{background:transparent;border-style:dashed;box-shadow:none}
.mod.soon .mod-t,.mod.soon .mod-n{color:var(--soft)}
.soon-lb{font-size:11px;font-weight:700;color:var(--soft);background:#EDF1F5;padding:5px 11px;border-radius:20px;display:inline-block}
button.start{font-family:var(--sans);font-size:12.5px;font-weight:700;background:var(--navy);color:#fff;border:0;padding:10px 18px;cursor:pointer;border-radius:var(--rs)}
button.start:hover{background:var(--navy2)}
button.ghost{font-family:var(--sans);font-size:12.5px;font-weight:700;background:transparent;color:var(--navy);border:1px solid var(--line);padding:10px 18px;cursor:pointer;border-radius:var(--rs)}
button.ghost:hover{background:var(--bg)}
.badge{display:none;font-size:11px;font-weight:700;color:var(--green);background:var(--green-bg);padding:5px 11px;border-radius:20px;margin-right:8px}
.badge.on{display:inline-block}

/* ── CARTES ── */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:6px 0 14px}
.cards.two{grid-template-columns:repeat(2,1fr)}
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:17px 18px;box-shadow:var(--sh)}
.card h4{font-size:15px;font-weight:700;color:var(--navy);margin:0 0 6px;letter-spacing:-.01em}
.card p,.card ul{font-size:13.5px;line-height:1.6;color:var(--grey)}
.card ul{list-style:none;margin-top:6px}
.card ul li{padding-left:14px;position:relative;margin-bottom:5px}
.card ul li::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--blue)}

/* ── LISTES ÉTAPES ── */
ol.role,ol.flow{list-style:none;counter-reset:f;margin:6px 0 10px}
ol.role li,ol.flow li{counter-increment:f;position:relative;padding:0 0 18px 46px;margin-left:14px;border-left:2px solid var(--line)}
ol.role li:last-child,ol.flow li:last-child{border-left-color:transparent;padding-bottom:2px}
ol.role li::before,ol.flow li::before{content:counter(f,decimal-leading-zero);position:absolute;left:-15px;top:-2px;width:28px;height:28px;border-radius:9px;background:var(--navy);color:#fff;font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
ol.flow li.cl::before{background:var(--blue)}
ol.flow li.adm::before{background:var(--paper);color:var(--navy);border:1.5px solid var(--line)}
ol.role li b,ol.flow li b{display:block;font-size:16px;font-weight:700;color:var(--navy);line-height:1.3;letter-spacing:-.01em}
ol.role li>span.tx,ol.flow li span.tx{font-size:14.5px;line-height:1.6;color:var(--grey)}
ol.flow li p{font-size:14.5px;color:var(--grey);margin:0}
.legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--grey);margin:2px 0 14px}
.legend span.lg{display:flex;align-items:center;gap:7px}
.legend i{width:11px;height:11px;border-radius:4px;background:var(--navy);flex:0 0 11px}
.legend i.st{background:var(--blue)}
.legend i.ad{background:var(--paper);border:1.5px solid var(--line)}

/* ── TERMINAUX ── */
.terms{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:8px 0 14px}
.term{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--sh)}
.term .pic{background:var(--bg);border-bottom:1px solid var(--line);padding:18px 8px;display:flex;justify-content:center}
.term .pic svg{width:104px;height:140px}
.term .bd2{padding:16px 17px 17px}
.term .nm{font-size:16px;font-weight:700;color:var(--navy);line-height:1.2;letter-spacing:-.01em}
.term .bdg{font-size:11px;font-weight:700;color:var(--blue);background:var(--blue-l);padding:3px 9px;border-radius:20px;display:inline-block;margin-bottom:7px}
.term dl{font-size:13px;line-height:1.55;color:var(--grey);margin-top:8px}
.term dt{font-size:11px;font-weight:700;color:var(--soft);margin-top:9px}
.term .pr{margin-top:12px;padding-top:11px;border-top:1px solid var(--line);font-size:19px;color:var(--navy);font-weight:700;letter-spacing:-.02em}
.term .pr small{display:block;font-size:11.5px;font-weight:500;color:var(--soft);margin-top:5px;line-height:1.45;letter-spacing:0}

/* ── TABLEAUX ── */
.tw{margin:8px 0 14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
table{width:100%;border-collapse:collapse;font-size:13.5px}
caption{text-align:left;font-size:12.5px;color:var(--soft);padding:12px 15px 0}
th,td{padding:11px 14px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}
thead th{background:var(--bg);color:var(--soft);font-size:11.5px;font-weight:700;letter-spacing:.02em}
tbody th{font-weight:700;color:var(--navy);font-size:13.5px}
td{color:var(--grey)}
td.n,th.n{font-family:var(--mono);white-space:nowrap;font-size:13px}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
tr.best td,tr.best th{background:var(--green-bg)}

/* ── BLOCS ── */
.warn{display:flex;gap:12px;background:var(--amber-bg);border:1px solid var(--amber-line);border-radius:var(--r);padding:15px 17px;margin:14px 0}
.warn .ico{font-size:16px;flex:0 0 auto}
.warn b.t{display:block;color:var(--amber);font-size:13px;font-weight:700;margin-bottom:3px}
.warn p{font-size:14.5px;line-height:1.6;color:#4A3A16;margin:0;max-width:68ch}
.note{background:var(--blue-l);border-radius:var(--r);padding:14px 17px;margin:14px 0;font-size:14px;line-height:1.6;color:var(--grey)}
.note p{margin:0;max-width:none}
.note strong{color:var(--navy)}
.todo{background:var(--paper);border:1px dashed #B6CBD9;border-radius:var(--r);padding:14px 17px;margin:14px 0;font-size:13.5px;line-height:1.6;color:var(--grey)}
.todo b.t{display:block;color:var(--blue);font-size:12px;font-weight:700;margin-bottom:3px}
.todo p{margin:0;max-width:none}
.quote{background:var(--navy);color:#fff;border-radius:var(--r);padding:20px 22px;margin:16px 0;font-size:18px;font-weight:600;line-height:1.45;letter-spacing:-.01em;max-width:64ch}
.quote em{font-style:normal;color:#8FC4DC}

.calc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:14px 0;box-shadow:var(--sh)}
.calc h5{font-size:13px;font-weight:700;color:var(--navy);margin-bottom:9px;letter-spacing:-.01em}
.calc .ln{display:flex;justify-content:space-between;gap:14px;font-size:13.5px;padding:8px 0;border-bottom:1px solid var(--line)}
.calc .ln:last-of-type{border-bottom:0}
.calc .ln .lb{color:var(--grey)}
.calc .ln .vl{font-family:var(--mono);color:var(--navy);white-space:nowrap;font-size:13px}
.calc .ln.win{background:var(--green-bg);margin:0 -18px;padding:8px 18px;border-bottom:0;border-radius:var(--rs)}
.calc .ln.win .lb,.calc .ln.win .vl{color:var(--green);font-weight:700}
.calc .cc{margin-top:11px;padding-top:11px;border-top:1px solid var(--line);font-size:14px;line-height:1.6;color:var(--navy)}

/* ── À RETENIR ── */
.keys{list-style:none;counter-reset:k;background:var(--navy);color:#fff;border-radius:var(--r);padding:24px 26px 20px;margin:6px 0 16px}
.keys li{counter-increment:k;position:relative;padding-left:38px;margin-bottom:13px;font-size:15px;line-height:1.6;max-width:74ch;color:rgba(255,255,255,.86)}
.keys li::before{content:counter(k);position:absolute;left:0;top:2px;width:24px;height:24px;border-radius:8px;background:rgba(255,255,255,.13);color:#fff;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center}
.keys strong{color:#fff}

/* ── FAQ / ERREURS ── */
.foot-blocks{margin-top:28px;padding-top:20px;border-top:1px solid var(--line)}
.fb-title{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--soft);margin-bottom:11px}
details.faq{background:var(--paper);border:1px solid var(--line);border-radius:var(--rs);margin-bottom:8px;box-shadow:var(--sh)}
details.faq summary{cursor:pointer;padding:13px 16px;font-size:14.5px;font-weight:600;color:var(--navy);list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"+";font-family:var(--mono);color:var(--blue);font-weight:700;flex:0 0 auto}
details.faq[open] summary::after{content:"–"}
details.faq .ans{padding:0 16px 14px;font-size:13.5px;line-height:1.65;color:var(--grey)}
details.faq .ans p{margin:0 0 8px;max-width:none}
details.faq .ans p:last-child{margin:0}
ul.mist{list-style:none;margin-top:4px}
ul.mist li{position:relative;padding-left:28px;margin-bottom:10px;font-size:14.5px;line-height:1.6;color:var(--grey)}
ul.mist li::before{content:"✕";position:absolute;left:0;top:1px;width:18px;height:18px;border-radius:6px;background:#FBEBEB;color:var(--red);font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center}
ul.mist li b{color:var(--navy)}

/* ── NAV ── */
.nav{position:sticky;bottom:0;background:var(--paper);border-top:1px solid var(--line);padding:12px 30px;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:25}
.nav .pos{font-size:12.5px;font-weight:600;color:var(--soft)}
.nav .btns{display:flex;gap:8px}
.nav button{font-family:var(--sans);font-size:12.5px;font-weight:700;padding:11px 20px;border:1px solid var(--line);cursor:pointer;background:var(--paper);color:var(--navy);border-radius:var(--rs)}
.nav button:hover:not(:disabled){background:var(--bg)}
.nav button.primary{background:var(--navy);color:#fff;border-color:var(--navy)}
.nav button.primary:hover:not(:disabled){background:var(--navy2)}
.nav button:disabled{opacity:.35;cursor:default}
.nav button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* ── AUTO-CONTRÔLE ── */
.q{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:17px 19px;margin-bottom:11px;box-shadow:var(--sh)}
.q .qn{font-size:11.5px;font-weight:700;color:var(--blue);margin-bottom:5px}
.q p.qt{font-size:15.5px;font-weight:600;color:var(--navy);margin-bottom:0;letter-spacing:-.01em}
.q button.rv{margin-top:12px;font-family:var(--sans);font-size:12px;font-weight:700;background:transparent;border:1px solid var(--line);color:var(--navy);padding:8px 15px;cursor:pointer;border-radius:var(--rs)}
.q button.rv:hover{background:var(--bg)}
.answer{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:14px;line-height:1.65;color:var(--grey)}
.answer.open{display:block}
.answer p{margin-bottom:0;max-width:none}
.answer b{color:var(--navy)}

/* ── 3D ── */
.d3-btn{margin-top:11px;width:100%;font-family:var(--sans);font-size:12px;font-weight:700;background:var(--blue-l);border:0;color:var(--blue);padding:9px 12px;cursor:pointer;border-radius:var(--rs)}
.d3-btn:hover{background:#E0EEF6}
.d3{margin-top:12px;background:var(--bg);border-radius:var(--rs);padding:14px 0}
.stage{perspective:700px;height:150px;display:flex;align-items:center;justify-content:center}
.cube{position:relative;transform-style:preserve-3d;animation:spin 9s linear infinite}
.cube:hover{animation-play-state:paused}
.cube .f{position:absolute;display:block;background:var(--navy);border:1px solid var(--navy2)}
.cube.portable{width:66px;height:112px}
.cube.portable .front{width:66px;height:112px;background:linear-gradient(var(--navy2) 0 42%,var(--navy) 42%);transform:translateZ(14px)}
.cube.portable .back{width:66px;height:112px;transform:rotateY(180deg) translateZ(14px)}
.cube.portable .right{width:28px;height:112px;left:66px;transform-origin:left;transform:rotateY(90deg) translateX(-14px)}
.cube.portable .left{width:28px;height:112px;left:-28px;transform-origin:right;transform:rotateY(-90deg) translateX(14px)}
.cube.portable .top{width:66px;height:28px;top:-28px;transform-origin:bottom;transform:rotateX(90deg) translateY(14px);background:var(--blue)}
.cube.portable .bottom{width:66px;height:28px;top:112px;transform-origin:top;transform:rotateX(-90deg) translateY(-14px)}
.cube.counter{width:74px;height:92px}
.cube.counter .front{width:74px;height:92px;background:linear-gradient(var(--navy2) 0 48%,var(--navy) 48%);transform:translateZ(18px)}
.cube.counter .back{width:74px;height:92px;transform:rotateY(180deg) translateZ(18px)}
.cube.counter .right{width:36px;height:92px;left:74px;transform-origin:left;transform:rotateY(90deg) translateX(-18px)}
.cube.counter .left{width:36px;height:92px;left:-36px;transform-origin:right;transform:rotateY(-90deg) translateX(18px)}
.cube.counter .top{width:74px;height:36px;top:-36px;transform-origin:bottom;transform:rotateX(90deg) translateY(18px);background:var(--blue)}
.cube.counter .bottom{width:74px;height:36px;top:92px;transform-origin:top;transform:rotateX(-90deg) translateY(-18px)}
@keyframes spin{from{transform:rotateX(-12deg) rotateY(0)}to{transform:rotateX(-12deg) rotateY(360deg)}}

/* ── QUIZ ── */
.quiz{margin-top:6px}
.qz{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin-bottom:11px;box-shadow:var(--sh)}
.qz.ok{border-color:var(--green-line);background:var(--green-bg)}
.qz.ko{border-color:#EEC9C9;background:#FCF2F2}
.qzq{font-size:15.5px;font-weight:600;color:var(--navy);margin-bottom:10px;max-width:none;letter-spacing:-.01em}
.qz label{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;color:var(--grey);padding:8px 10px;cursor:pointer;border-radius:var(--rs)}
.qz label:hover{background:var(--bg)}
.qz input{margin-top:4px;flex:0 0 auto;accent-color:var(--blue)}
.qz-actions{display:flex;gap:9px;margin-top:6px;flex-wrap:wrap}
.qz-res{margin-top:14px;font-size:15px}
.qz-res .pass{background:var(--navy);color:#fff;padding:18px 20px;border-radius:var(--r)}
.qz-res .pass b{display:block;font-size:19px;font-weight:700;margin-bottom:4px;letter-spacing:-.02em}
.qz-res .fail{background:var(--amber-bg);border:1px solid var(--amber-line);border-radius:var(--r);padding:15px 18px;color:#4A3A16}

/* ── LANGUES ── */
[data-lang]{display:none}
body[data-active="fr"] [data-lang="fr"],body[data-active="nl"] [data-lang="nl"]{display:block}
body[data-active="fr"] span[data-lang="fr"],body[data-active="nl"] span[data-lang="nl"],
body[data-active="fr"] b[data-lang="fr"],body[data-active="nl"] b[data-lang="nl"]{display:inline}

@media(max-width:860px){
  .slide{padding:24px 18px 10px}header{padding:10px 18px}.nav{padding:11px 18px}
  h1.title{font-size:26px}.cover h1{font-size:28px}
  .cards,.cards.two,.terms,.tracks,.mods{grid-template-columns:1fr}
  .tw{overflow-x:auto}.tw table{min-width:600px}
  .calc .ln{flex-direction:column;gap:2px}
  .calc .ln.win{margin:0 -14px;padding:8px 14px}
  .nav .pos{display:none}.nav button{padding:11px 16px}
  .brand-txt small{display:none}
}
@media print{
  body{background:#fff;font-size:11pt}.wrap{max-width:none;background:#fff}
  header{position:static;border-bottom:2px solid var(--navy)}
  .langs,.bar,.barlab,.nav,.tracks,.d3,.d3-btn,.homebtn{display:none}
  .slide{display:block!important;padding:0 0 22px;break-after:page}
  .track,.mod,.card,.term,.tw,.calc,.q,.qz,details.faq{box-shadow:none}
  details.faq .ans{display:block!important}
  details.faq summary::after{display:none}
  .answer{display:block}
  body[data-active="fr"] .answer p[data-lang="fr"],body[data-active="nl"] .answer p[data-lang="nl"]{display:block}
  .keys,.quote{background:#fff;color:var(--ink);border:1.5px solid var(--navy)}
  .keys li,.keys strong{color:var(--ink)}
  .keys li::before{background:var(--navy);color:#fff}
  section,.q,.term,.calc,table{break-inside:avoid}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}


/* ── IDENTIFICATION & SUIVI ── */
.ident{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:17px 19px;margin-bottom:16px;box-shadow:var(--sh)}
.id-t{font-size:15px;font-weight:700;color:var(--navy);letter-spacing:-.01em;margin-bottom:12px}
.id-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fl{display:block;font-size:12px;font-weight:600;color:var(--soft)}
.fl input{display:block;width:100%;margin-top:5px;font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--rs);padding:10px 12px}
.fl input:focus{outline:2px solid var(--blue);outline-offset:-1px;background:var(--paper)}
.fl input.err{border-color:#D9A0A0;background:#FCF2F2}
.id-n{font-size:12.5px;line-height:1.55;color:var(--soft);margin:11px 0 0;max-width:none}
.qz-res .pass .who{font-size:13.5px;color:rgba(255,255,255,.7);margin-top:8px}
.qz-res .pass button{margin-top:14px;font-family:var(--sans);font-size:12.5px;font-weight:700;background:#fff;color:var(--navy);border:0;padding:10px 18px;border-radius:var(--rs);cursor:pointer}
.admin{background:var(--paper);border:1px dashed #C3D2DD;border-radius:var(--r);padding:13px 17px;margin:14px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.ad-l{font-size:13px;font-weight:600;color:var(--grey)}
.ad-b{display:flex;gap:8px}
.ad-b button{padding:8px 14px;font-size:12px}
@media(max-width:860px){.id-row{grid-template-columns:1fr}}
@media print{.ident,.admin{display:none}}

.hello{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px;font-size:16px;color:var(--grey)}
.hello b{color:var(--navy)}
button.link{background:none;border:0;font-family:var(--sans);font-size:13px;color:var(--blue);cursor:pointer;text-decoration:underline;padding:0}
.id-row{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.id-row .start{height:42px}
.empty{background:var(--paper);border:1px dashed var(--line);border-radius:var(--r);padding:16px 18px;font-size:14px;color:var(--soft);margin-bottom:14px}
.sc{display:inline-block;font-family:var(--mono);font-size:12.5px;font-weight:700;padding:3px 8px;border-radius:6px;margin-right:4px}
.sc.p{background:var(--green-bg);color:var(--green)}
.sc.f{background:#FBEBEB;color:var(--red)}
.st-ok{font-size:12px;font-weight:700;color:var(--green);background:var(--green-bg);padding:4px 10px;border-radius:20px;white-space:nowrap}
.st-ko{font-size:12px;font-weight:700;color:var(--soft);background:#EDF1F5;padding:4px 10px;border-radius:20px;white-space:nowrap}
.lock{background:var(--amber-bg);border:1px solid var(--amber-line);border-radius:var(--r);padding:18px 20px;font-size:14.5px;line-height:1.6;color:#4A3A16;margin-bottom:14px}
.lock b{display:block;font-size:17px;color:var(--amber);margin-bottom:5px}
@media(max-width:860px){.id-row{grid-template-columns:1fr}.id-row .start{width:100%}}
