/* Réussir VTC — une colonne pensée pour le téléphone. Couleurs : bleu « carte pro » et jaune « macaron ». */
:root{
  --bg:#f3f4f8; --surface:#ffffff; --ink:#141a2e; --muted:#5a6280;
  --line:#dfe2ec; --accent:#1f3fd1; --accent-ink:#ffffff; --plate:#f2b632;
  --good:#167a4a; --good-bg:#e3f4ea; --bad:#b3261e; --bad-bg:#fbe7e5; --warn:#8a5a00;
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --body:"Source Sans 3",ui-sans-serif,system-ui,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0e1222; --surface:#171c31; --ink:#eef0f8; --muted:#a3aac4;
  --line:#2a3150; --accent:#7f97ff; --accent-ink:#0e1222;
  --good:#5fd39a; --good-bg:#14301f; --bad:#ff8a80; --bad-bg:#3a1714; --warn:#f2b632; color-scheme:dark}}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.5;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));
  padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
a{color:var(--accent)}
.wrap{max-width:640px;margin:0 auto;padding-block:16px 40px;display:flex;flex-direction:column;gap:24px;min-height:100vh}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:800;font-size:18px;color:var(--ink);text-decoration:none}
.plate{background:var(--plate);color:#141a2e;border-radius:4px;padding:2px 8px;font-size:13px;letter-spacing:.08em}
nav{display:flex;gap:8px}
main{display:flex;flex-direction:column;gap:24px;flex:1}
h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;line-height:1.12}
h1{font-size:clamp(30px,8vw,44px);font-weight:800}
h2{font-size:24px;font-weight:600}
h3{font-size:18px;font-weight:600}
p{margin:0}
.lead{color:var(--muted);font-size:18px;max-width:60ch}
.muted{color:var(--muted)}
.small{font-size:14px}
.stack{display:flex;flex-direction:column;gap:14px}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px;display:flex;flex-direction:column;gap:16px}
.tag{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700;color:var(--accent)}
.btn{font:inherit;font-weight:700;border-radius:10px;padding:12px 18px;cursor:pointer;border:1.5px solid var(--accent);background:var(--accent);color:var(--accent-ink);text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
.btn.ghost{background:transparent;color:var(--accent)}
.btn.small{padding:7px 12px;font-size:15px}
.btn:disabled{opacity:.5;cursor:default}
.btn:focus-visible,.opt:focus-visible,.mode:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.stat{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;color:var(--muted);font-size:15px}
.stat b{font-family:var(--display);font-size:28px;color:var(--ink)}
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:16px}
.features div{display:flex;flex-direction:column;gap:4px}
.features b{font-family:var(--display);font-size:17px}
.features span{color:var(--muted);font-size:15px}
.price{font-family:var(--display);font-size:44px;font-weight:800;line-height:1}
.checks{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:4px}
.modes{display:grid;grid-template-columns:1fr;gap:10px}
.mode{text-align:left;font:inherit;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:14px;cursor:pointer;display:flex;flex-direction:column;gap:4px}
.mode:hover{border-color:var(--accent)}
.mode b{font-family:var(--display);font-size:17px}
.mode span{color:var(--muted);font-size:14px}
.mode.locked{opacity:.65}
.bar{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.progress{height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.progress span{display:block;height:100%;background:var(--accent);transition:width .3s}
.q{font-size:19px;font-weight:600}
.opts{display:flex;flex-direction:column;gap:10px}
.opt{text-align:left;font:inherit;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:12px 14px;cursor:pointer}
.opt:hover:not(:disabled){border-color:var(--accent)}
.opt.good{background:var(--good-bg);border-color:var(--good)}
.opt.bad{background:var(--bad-bg);border-color:var(--bad)}
.opt.picked{border-color:var(--accent);border-width:2.5px}
.opt:disabled{cursor:default}
.explain{border-left:3px solid var(--accent);padding-left:12px;color:var(--muted);font-size:16px}
.score{font-family:var(--display);font-size:56px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.score small{font-size:24px;color:var(--muted)}
.list{display:flex;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none}
.list li{display:flex;justify-content:space-between;gap:12px;font-size:15px;border-bottom:1px solid var(--line);padding-bottom:6px;font-variant-numeric:tabular-nums}
.meter{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;font-size:15px}
.meter .progress{grid-column:1/-1;height:8px}
.pill{display:inline-block;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}
.pill.good{background:var(--good-bg);color:var(--good)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}
.pill.mid{background:var(--line);color:var(--ink)}
form{display:flex;flex-direction:column;gap:12px}
label{font-weight:600;font-size:15px;display:flex;flex-direction:column;gap:6px}
input{font:inherit;color:var(--ink);background:var(--bg);border:1.5px solid var(--line);border-radius:10px;padding:11px 12px}
.notice{border-radius:10px;padding:12px 14px;font-size:15px;background:var(--line)}
.notice.ok{background:var(--good-bg)}
.notice.err{background:var(--bad-bg)}
details{border-bottom:1px solid var(--line);padding-block:10px}
summary{cursor:pointer;font-weight:600}
details p{margin-top:6px;color:var(--muted)}
.foot{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:13px;color:var(--muted)}
.foot span{flex-basis:100%}
.legal h2{margin-top:12px}
.legal p,.legal li{color:var(--ink);max-width:68ch}
@media (prefers-reduced-motion:reduce){.progress span{transition:none}}
.sign{display:flex;justify-content:center;padding-block:4px}
.sign svg{width:140px;height:140px;max-width:100%}

/* ---------- Ajouts v2 */
[tabindex="-1"]:focus{outline:none}
.stack.tight{gap:6px}
.row.spread{justify-content:space-between}
.mode.flat{background:transparent;border:0;padding:6px 0}
.mode:disabled{cursor:default;opacity:.6}
.mode:disabled:hover{border-color:var(--line)}
.opt{display:flex;align-items:center;gap:12px}
.opt .key{flex:none;display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;border:1.5px solid var(--line);font-weight:700;font-size:14px;color:var(--muted)}
.opt.picked .key{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.opt.good .key{border-color:var(--good);color:var(--good)}
.opt.bad .key{border-color:var(--bad);color:var(--bad)}
.opt .mark{margin-left:auto;font-weight:800;font-size:18px}
.opt.good .mark{color:var(--good)}
.opt.bad .mark{color:var(--bad)}
.feedback{font-weight:700}
.feedback.ok,.verdict.ok{color:var(--good)}
.feedback.ko,.verdict.ko{color:var(--bad)}
.verdict{font-weight:700}
#clock{font-weight:700;color:var(--ink)}
#clock.urgent{color:var(--bad)}
.dots{display:flex;flex-wrap:wrap;gap:6px}
.dot{font:inherit;font-size:13px;font-weight:700;width:34px;height:34px;border-radius:8px;border:1.5px solid var(--line);background:var(--bg);color:var(--muted);cursor:pointer;font-variant-numeric:tabular-nums}
.dot.done{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.dot.cur{outline:2.5px solid var(--ink);outline-offset:1px}
.dot:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.hint{display:none}
@media (hover:hover) and (pointer:fine){.hint{display:inline}}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.tile b{font-family:var(--display);font-size:26px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.tile span{color:var(--muted);font-size:13px;line-height:1.25}
.tile .progress{margin-top:6px}
.chart{width:100%;height:auto;display:block;overflow:visible}
.chart .axis{stroke:var(--line);stroke-width:1}
.chart .bar{fill:var(--accent)}
.chart .bar-g:hover .bar,.chart .bar-g:focus .bar{opacity:.8}
.chart .bar-g:focus{outline:none}
.chart .goal{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.chart .goal-label,.chart .val-label{fill:var(--muted);font-size:10px;font-family:var(--body)}
.chart .val-label{fill:var(--ink);font-weight:700}
.linkbtn{font:inherit;background:none;border:0;padding:0;color:var(--muted);text-decoration:underline;cursor:pointer}
.resume{border-color:var(--accent);border-width:1.5px}
.toast{position:fixed;left:50%;bottom:calc(16px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);max-width:min(560px,calc(100% - 32px));background:var(--ink);color:var(--bg);padding:12px 16px;border-radius:10px;font-size:15px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:10}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}
@media (max-width:380px){.tile b{font-size:22px}}

/* ---------- v3 : parcours */
/* --pc = couleur du parcours (posée en style inline). --pc-ui = version lisible sur le fond de page. */
[style*="--pc"]{--pc-ui:var(--pc)}
@media (prefers-color-scheme:dark){[style*="--pc"]{--pc-ui:color-mix(in srgb,var(--pc) 50%,#fff)}}
.brand-name{white-space:nowrap}
.plate{font-size:12px}
.picon{width:28px;height:28px;flex:none}

/* Accueil : choix du parcours */
.choices{display:grid;gap:12px}
.choice{font:inherit;color:var(--ink);text-align:left;cursor:pointer;display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:center;
  background:var(--surface);border:1.5px solid var(--line);border-left:6px solid var(--pc);border-radius:14px;padding:16px;transition:transform .15s,border-color .15s,box-shadow .15s}
.choice:hover:not(:disabled){border-color:var(--pc-ui);transform:translateY(-2px);box-shadow:0 6px 18px -10px var(--pc)}
.choice:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.choice-icon{grid-row:span 2;display:grid;place-items:center;width:56px;height:56px;border-radius:12px;background:color-mix(in srgb,var(--pc) 14%,transparent);color:var(--pc-ui)}
.choice-icon .picon{width:36px;height:36px}
.choice-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.choice-txt b{font-family:var(--display);font-size:20px}
.choice-meta{grid-column:2}
.choice.soon{opacity:.6;cursor:default;border-left-style:dashed}
@media (min-width:600px){.choices{grid-template-columns:repeat(3,1fr)}.choice{grid-template-columns:1fr}.choice-icon{grid-row:auto}.choice-meta{grid-column:1}}

/* Offres */
.offers{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px}
.offer{gap:10px}
.offer .price{font-size:36px}
.offer.star{border:2px solid var(--accent)}

/* Mon espace : onglets */
.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tab{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;text-decoration:none;font-weight:700;font-size:15px;color:var(--muted);
  border:1.5px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px 7px 10px}
.tab .picon{width:22px;height:22px}
.tab.on{background:var(--pc);border-color:var(--pc);color:#fff}
.tab.on .picon text{fill:var(--pc)}
.tab.add{padding-left:14px;border-style:dashed}

/* Mon espace : carte héros */
.hero{color:#fff;border-radius:20px;padding:20px;display:flex;flex-direction:column;gap:18px;position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--pc) 70%,#fff) 0%,transparent 55%),linear-gradient(150deg,var(--pc),color-mix(in srgb,var(--pc) 55%,#000))}
.hero h1{font-size:30px;color:#fff}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.hero-kicker{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.hero-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.16);color:#fff}
.hero-icon .picon{width:34px;height:34px}
.hero-icon .picon text{fill:var(--pc)}
.hero-score{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center}
.hero-label{font-weight:700}
.hero .small{opacity:.9}
.gauge-wrap{position:relative;width:150px}
.gauge{width:150px;height:auto;display:block}
.gauge .g-track{fill:none;stroke:rgba(255,255,255,.22);stroke-width:12;stroke-linecap:round}
.gauge .g-val{fill:none;stroke:#fff;stroke-width:12;stroke-linecap:round;transition:stroke-dasharray .6s ease}
.gauge .g-tick{stroke:rgba(255,255,255,.75);stroke-width:2.5;stroke-linecap:round}
.gauge-txt{position:absolute;left:0;right:0;bottom:0;text-align:center;font-variant-numeric:tabular-nums}
.gauge-txt b{font-family:var(--display);font-size:34px;font-weight:800;line-height:1}
.gauge-txt small{font-size:15px;opacity:.85}
.pill.on-hero{align-self:flex-start;background:#fff}
.pill.on-hero.good{color:#167a4a}
.pill.on-hero.mid{color:#141a2e}
.pill.on-hero.bad{color:#b3261e}
.hero .tiles{gap:8px}
.hero .tile{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.18);color:#fff}
.hero .tile span{color:rgba(255,255,255,.85)}
.hero .tile .progress{background:rgba(255,255,255,.22)}
.hero .tile .progress span{background:#fff}
@media (max-width:400px){.hero-score{grid-template-columns:1fr;justify-items:center;text-align:center}.pill.on-hero{align-self:center}}
@media (prefers-reduced-motion:reduce){.gauge .g-val,.choice{transition:none}}

/* Gros bouton examen blanc */
.cta{font:inherit;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;
  background:var(--pc);color:#fff;border:0;border-radius:14px;padding:16px 18px;box-shadow:0 8px 20px -12px var(--pc)}
.cta span{display:flex;flex-direction:column;gap:2px}
.cta b{font-family:var(--display);font-size:19px}
.cta .small{opacity:.9}
.cta-arrow{font-size:26px;font-weight:800}
.cta:hover{filter:brightness(1.08)}
.cta:focus-visible{outline:3px solid var(--ink);outline-offset:2px}
.cta.locked{opacity:.75}
.modes.two{grid-template-columns:1fr 1fr}
@media (max-width:420px){.modes.two{grid-template-columns:1fr}}

/* Thèmes avec barres « réseau » */
.themes{gap:4px;padding:8px 14px}
.theme{font:inherit;color:var(--ink);background:none;border:0;border-bottom:1px solid var(--line);cursor:pointer;text-align:left;
  display:grid;grid-template-columns:auto 1fr auto;gap:4px 12px;align-items:center;padding:12px 2px}
.theme:last-child{border-bottom:0}
.theme:hover .theme-txt b{color:var(--pc-ui)}
.theme:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}
.theme-txt{display:flex;flex-direction:column;min-width:0}
.theme-txt b{font-size:16px}
.theme-pct{font-family:var(--display);font-weight:800;font-variant-numeric:tabular-nums;color:var(--pc-ui)}
.theme .progress{grid-column:1/-1;height:6px}
.theme .progress span,.quiz .progress span,.tile .progress span{background:var(--pc-ui,var(--accent))}
.signal{width:26px;height:22px}
.signal rect.on{fill:var(--pc-ui)}
.signal rect.off{fill:var(--line)}

/* Graphique des examens */
.chart .bar{fill:var(--pc-ui,var(--accent));opacity:.55}
.chart .bar.pass{opacity:1}
.chart .ghost{fill:var(--line)}
.chart.empty .goal-label{opacity:.6}
.linkcard{text-decoration:none;color:var(--ink);flex-direction:row;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.linkcard:hover{border-color:var(--accent)}

/* Résultat */
.result.pass{border-top:5px solid var(--good)}
.result.fail{border-top:5px solid var(--bad)}

/* Glossaire des panneaux */
input[type=search]{width:100%}
h2 .count{font-family:var(--body);font-size:14px;font-weight:700;color:var(--muted);margin-left:8px;vertical-align:middle}
.signs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(140px,100%),1fr));gap:10px}
.sign-card{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 10px;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.sign-card .sign svg{width:84px;height:84px}
.sign-card figcaption{font-size:14px;line-height:1.3}
[hidden]{display:none!important}

/* Tuiles : chiffres lisibles même sur petit écran */
.tile{padding:12px 10px}
.tile b{font-size:clamp(18px,6vw,26px);overflow-wrap:anywhere}
.tile b small{font-size:.6em;font-weight:700;opacity:.75}

/* Schémas de situations */
.scene{display:flex;justify-content:center}
.scene svg{width:100%;max-width:300px;height:auto;border-radius:12px;border:1px solid var(--line)}

/* =====================================================================
   v4 — Interface « appli » : mobile d'abord, puis tablette et ordinateur
   ===================================================================== */
:root{
  --bg:#f4f6fb; --surface:#ffffff; --ink:#0f172a; --muted:#5b6478; --line:#e3e7ef;
  --accent:#2340d8; --accent-2:#1a2f9e; --accent-soft:#e8ecff; --plate:#f2b632;
  --shadow:0 1px 2px rgba(15,23,42,.05),0 10px 28px -14px rgba(15,23,42,.22);
  --radius:18px;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0b1020; --surface:#141a2f; --ink:#eef1fa; --muted:#a2aac3; --line:#252d4a;
  --accent:#8199ff; --accent-2:#5b75f0; --accent-soft:#1c2550;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 12px 30px -16px rgba(0,0,0,.7)}}
body{font-size:16px;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
.wrap{max-width:720px;gap:20px;padding-block:0 32px}
body[data-page="accueil"] .wrap,body[data-page="offres"] .wrap,body[data-page="panneaux"] .wrap{max-width:1120px}
main{gap:28px}
h1{font-size:clamp(30px,7.5vw,54px);letter-spacing:-.02em}
h2{font-size:clamp(22px,5.5vw,30px);font-weight:800;letter-spacing:-.01em}
.ico{width:20px;height:20px;flex:none}

/* ---- En-tête collant */
.top{position:sticky;top:0;z-index:30;margin-inline:-16px;padding:10px 16px;flex-wrap:nowrap;
  background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.brand{font-size:17px;gap:8px;min-width:0}
.brand-name{overflow:hidden;text-overflow:ellipsis}
#nav{align-items:center;gap:6px}
.navlink{display:none;text-decoration:none;color:var(--muted);font-weight:700;font-size:15px;padding:8px 12px;border-radius:999px}
.navlink:hover{color:var(--ink);background:var(--surface)}
.navlink.on{color:var(--accent);background:var(--accent-soft)}
.btn{gap:8px;border-radius:12px;transition:transform .12s,filter .12s,background .12s}
.btn:active{transform:scale(.98)}
.btn.small{padding:8px 12px;font-size:14px;border-radius:999px}
.btn.big{padding:15px 22px;font-size:17px;border-radius:14px}
.iconbtn{padding:8px!important}
.btn.light{background:#fff;color:#1a2f9e;border-color:#fff}
.btn.outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn.outline-light:hover{background:rgba(255,255,255,.1)}
@media (max-width:759px){#nav .btn.small span{display:none}#nav .btn.small{padding:8px}}

/* ---- Barre de navigation du bas (téléphone) */
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);
  background:color-mix(in srgb,var(--surface) 90%,transparent);backdrop-filter:saturate(1.6) blur(16px);-webkit-backdrop-filter:saturate(1.6) blur(16px);
  border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px))}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:700;border-radius:12px}
.tabbar a .ico{width:23px;height:23px}
.tabbar a.on{color:var(--accent)}
.tabbar a.on .ico{stroke-width:2.4}
body{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
body[data-page="quiz"] .tabbar{display:none}
body[data-page="quiz"]{padding-bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:760px){
  .tabbar{display:none}
  body{padding-bottom:env(safe-area-inset-bottom,0px)}
  .navlink{display:inline-block}
}

/* ---- Accueil : carte d'accroche */
.hero-home{position:relative;overflow:hidden;border-radius:24px;padding:28px 22px 26px;color:#fff;display:grid;gap:28px;
  background:radial-gradient(120% 80% at 100% 0%,#3d5cff 0%,transparent 60%),radial-gradient(90% 70% at 0% 100%,#0b1a5c 0%,transparent 70%),linear-gradient(160deg,#1a2f9e,#101c63)}
.hero-home::after{content:"";position:absolute;inset:auto -60px -80px auto;width:260px;height:260px;border-radius:50%;background:rgba(242,182,50,.16);filter:blur(4px)}
.hh-text{position:relative;z-index:1;display:flex;flex-direction:column;gap:16px}
.eyebrow{align-self:flex-start;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);padding:6px 10px;border-radius:999px}
.hero-home h1{color:#fff}
.hl{color:var(--plate)}
.hh-lead{font-size:17px;color:rgba(255,255,255,.86);max-width:52ch}
.hh-cta{display:flex;flex-wrap:wrap;gap:10px}
.hh-cta .btn{flex:1 1 200px}
.chips{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.chips li{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16);padding:7px 11px;border-radius:999px}
.chips .ico{width:16px;height:16px;color:var(--plate)}
.hh-visual{display:none;position:relative;z-index:1}
.mock{background:#fff;color:#0f172a;border-radius:22px;padding:16px;box-shadow:0 30px 60px -20px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:10px;transform:rotate(2deg);max-width:340px;margin-inline:auto}
.mock-bar{display:flex;justify-content:space-between;font-size:12px;font-weight:700;color:#5b6478}
.mock-bar b{color:#0f172a;font-variant-numeric:tabular-nums}
.mock-progress{height:6px;background:#e3e7ef;border-radius:3px;overflow:hidden}
.mock-progress span{display:block;height:100%;width:30%;background:#2340d8}
.mock-sign{display:flex;justify-content:center}
.mock-sign svg{width:96px;height:96px}
.mock-q{font-weight:700;font-size:16px}
.mock-opt{display:flex;align-items:center;gap:10px;border:1.5px solid #e3e7ef;border-radius:12px;padding:10px 12px;font-size:14px;font-weight:600}
.mock-opt span{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:1.5px solid #e3e7ef;font-size:12px;color:#5b6478}
.mock-opt.good{border-color:#167a4a;background:#e3f4ea}
.mock-opt.good span{border-color:#167a4a;color:#167a4a}
.mock-opt .ico{margin-left:auto;color:#167a4a}
@media (min-width:900px){
  .hero-home{grid-template-columns:1.15fr .85fr;align-items:center;padding:56px 52px}
  .hh-visual{display:block}
  .hh-cta .btn{flex:0 0 auto}
}

/* ---- Sections */
.section{display:flex;flex-direction:column;gap:16px;scroll-margin-top:80px}
.sec-head{display:flex;flex-direction:column;gap:6px;scroll-margin-top:80px}
.sec-head p{max-width:60ch}
.center{text-align:center}

/* ---- Choix du parcours */
.choices{display:grid;gap:12px;grid-template-columns:1fr}
.choice{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto;align-items:center;gap:14px;padding:14px;
  border:1px solid var(--line);border-left:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow)}
.choice:hover:not(:disabled){transform:translateY(-2px);border-color:color-mix(in srgb,var(--pc) 45%,var(--line));box-shadow:0 14px 30px -16px var(--pc)}
.choice-icon{grid-row:auto;width:54px;height:54px;border-radius:15px;background:color-mix(in srgb,var(--pc) 13%,var(--surface))}
.choice-icon .picon{width:32px;height:32px}
.choice-txt{gap:2px}
.choice-txt b{font-size:18px;line-height:1.2}
.choice-sub{font-size:14px;color:var(--muted)}
.choice-meta{grid-column:auto;font-size:12.5px;font-weight:700;color:var(--pc-ui)}
.choice-go{display:inline-flex;align-items:center;gap:2px;font-size:13px;font-weight:800;color:var(--pc-ui);background:color-mix(in srgb,var(--pc) 10%,transparent);padding:7px 8px 7px 12px;border-radius:999px;white-space:nowrap}
.choice-go .ico{width:16px;height:16px}
.choice-go.mine{color:#fff;background:var(--pc)}
@media (max-width:420px){.choice-go{font-size:0;padding:8px}.choice-go .ico{width:18px;height:18px}}
@media (min-width:900px){
  .choices{grid-template-columns:repeat(3,1fr);gap:16px}
  .choice{grid-template-columns:1fr;align-items:start;padding:22px;gap:14px}
  .choice-icon{grid-row:auto}
  .choice-go{justify-self:start;font-size:14px}
}

/* ---- Avantages */
.feat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.feat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--shadow)}
.feat-ico{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--accent-soft);color:var(--accent);margin-bottom:2px}
.feat b{font-family:var(--display);font-size:15.5px;line-height:1.25}
.feat span:last-child{font-size:13.5px;color:var(--muted);line-height:1.4}
@media (min-width:900px){.feat-grid{grid-template-columns:repeat(3,1fr);gap:16px}.feat{padding:20px}.feat b{font-size:17px}.feat span:last-child{font-size:15px}}
@media (max-width:360px){.feat-grid{grid-template-columns:1fr}}

/* ---- Chiffre clé */
.statband{display:flex;align-items:center;gap:16px;border-radius:var(--radius);padding:18px 20px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--plate) 28%,var(--surface)),var(--surface));border:1px solid color-mix(in srgb,var(--plate) 45%,var(--line))}
.statband b{font-family:var(--display);font-size:42px;font-weight:800;line-height:1;white-space:nowrap}
.statband p{color:var(--muted);font-size:15px}

/* ---- Offres : carrousel sur téléphone, grille sur ordinateur */
.offers{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,84%);grid-template-columns:none;gap:12px;
  overflow-x:auto;scroll-snap-type:x mandatory;padding:18px 16px 14px;margin-inline:-16px;scrollbar-width:none;overscroll-behavior-x:contain}
.offers::-webkit-scrollbar{display:none}
.offer{scroll-snap-align:center;position:relative;display:flex;flex-direction:column;gap:12px;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:22px 20px 20px;box-shadow:var(--shadow)}
.offer h3{font-size:19px}
.offer.star{border:2px solid var(--accent);box-shadow:0 18px 40px -20px var(--accent)}
.offer-badge{position:absolute;top:-12px;left:20px;display:inline-flex;align-items:center;gap:5px;background:var(--accent);color:#fff;font-size:12px;font-weight:800;padding:5px 10px;border-radius:999px}
.offer-badge .ico{width:13px;height:13px;fill:currentColor}
.offer-price{display:flex;align-items:baseline;gap:6px}
.offer .price{font-size:36px}
.ticks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;flex:1}
.ticks li{display:flex;gap:8px;align-items:flex-start;font-size:14.5px}
.ticks .ico{width:18px;height:18px;color:var(--good);margin-top:2px}
.offer .btn{width:100%}
@media (min-width:900px){.offers{grid-auto-flow:row;grid-template-columns:repeat(4,1fr);grid-auto-columns:auto;overflow:visible;margin-inline:0;padding:12px 0 0}}

/* ---- FAQ en cartes */
.faq{max-width:820px;width:100%;margin-inline:auto}
.faq-item{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:0;box-shadow:var(--shadow)}
.faq-item summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;font-weight:700;font-size:16px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-chev{color:var(--muted);transition:transform .2s}
.faq-item[open] .faq-chev{transform:rotate(90deg);color:var(--accent)}
.faq-item p{margin:0;padding:0 18px 16px;color:var(--muted)}

/* ---- Bandeau final */
.cta-band{display:flex;flex-direction:column;gap:16px;border-radius:24px;padding:26px 22px;color:#fff;background:linear-gradient(140deg,#1a2f9e,#2340d8)}
.cta-band h2{color:#fff}
.cta-band p{color:rgba(255,255,255,.85);margin-top:4px}
@media (min-width:760px){.cta-band{flex-direction:row;align-items:center;justify-content:space-between;padding:32px 36px}}

/* ---- Pied de page */
.foot{justify-content:center;text-align:center;font-size:13px;padding-top:8px;border-top:1px solid var(--line)}
.foot span{flex-basis:100%}

/* ---- Cartes et écrans existants, harmonisés */
.card{border-radius:var(--radius);box-shadow:var(--shadow)}
.hero{border-radius:24px}
.theme .progress{height:7px;border-radius:4px}
.mode{border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.quiz .q{font-size:20px;line-height:1.35}
.opt{padding:14px;border-radius:14px;background:var(--surface);font-size:16px;min-height:52px}
.quiz-actions{position:sticky;bottom:0;z-index:5;margin-inline:-20px;margin-bottom:-20px;padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));
  background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(10px);border-top:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);flex-wrap:nowrap}
.quiz-actions .btn:not(.quit){flex:1}
.quiz-actions .quit{flex:none}
.signs-grid .sign-card{border-radius:16px;box-shadow:var(--shadow)}
@media (prefers-reduced-motion:reduce){.btn,.choice,.faq-chev{transition:none}}

/* ---- Retouches petits écrans */
.resume .row{flex-wrap:nowrap}
.resume .row .btn{flex:1}
@media (max-width:400px){
  .hero{padding:16px;gap:14px}
  .hero h1{font-size:26px}
  .hero-icon{width:44px;height:44px}
  .gauge-wrap,.gauge{width:132px}
  .gauge-txt b{font-size:28px}
  .tile{padding:10px 8px}
  .tile span{font-size:12px}
  .card{padding:16px}
  .quiz-actions{margin-inline:-16px;margin-bottom:-16px;padding-inline:16px}
  .hero-home{padding:24px 18px 22px;border-radius:20px}
  .hh-lead{font-size:16px}
  .btn.big{padding:14px 18px;font-size:16px}
  .sec-head h2{font-size:22px}
}

/* =====================================================================
   v5 — Rangées horizontales, cartes d'action, grille de thèmes, animations
   ===================================================================== */
/* ---- Rangées qui défilent (téléphone) */
.rail-wrap{display:flex;flex-direction:column;gap:8px;min-width:0}
.rail{position:relative;display:grid;grid-auto-flow:column;grid-template-columns:none;gap:12px;
  overflow-x:auto;overflow-y:visible;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:16px;
  padding:6px 16px 12px;margin-inline:-16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.rail > *{scroll-snap-align:start;min-width:0}
.rail-dots{display:flex;justify-content:center;gap:6px;height:6px}
.rail-dots span{width:6px;height:6px;border-radius:3px;background:var(--line);transition:width .25s ease,background .25s ease}
.rail-dots span.on{width:20px;background:var(--accent)}
.rail.choices{grid-auto-columns:78%}
.rail.feat-grid{grid-auto-columns:64%}
.rail.offers{grid-auto-columns:84%;padding-top:20px}
.rail.actions{grid-auto-columns:74%}
@media (min-width:600px){
  .rail.choices{grid-auto-columns:46%}.rail.feat-grid{grid-auto-columns:38%}
  .rail.offers{grid-auto-columns:48%}.rail.actions{grid-auto-columns:42%}
}
@media (min-width:900px){
  .rail{grid-auto-flow:row;overflow:visible;margin-inline:0;padding:0;scroll-snap-type:none}
  .rail-dots{display:none}
  .rail.choices,.rail.feat-grid,.rail.actions{grid-template-columns:repeat(3,1fr);gap:16px}
  .rail.offers{grid-template-columns:repeat(4,1fr);gap:16px;padding-top:14px}
}

/* ---- Cartes de parcours dans la rangée : format « carte » vertical */
.rail.choices .choice{grid-template-columns:1fr;align-items:start;align-content:start;padding:18px;gap:12px;height:100%;
  background:linear-gradient(180deg,color-mix(in srgb,var(--pc) 11%,var(--surface)) 0%,var(--surface) 60%)}
.rail.choices .choice-icon{width:56px;height:56px}
.rail.choices .choice-txt b{font-size:20px}
.rail.choices .choice-go,.rail.choices .pill{justify-self:start;align-self:end;font-size:14px;padding:9px 12px 9px 16px}
.rail.choices .choice-go .ico{width:18px;height:18px}

/* ---- Avantages dans la rangée */
.rail.feat-grid .feat{height:100%;padding:16px}

/* ---- Cartes d'action (S'entraîner) */
.action{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;font:inherit;color:var(--ink);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 16px 18px;box-shadow:var(--shadow);cursor:pointer;min-height:156px;height:100%}
.action b{font-family:var(--display);font-size:18px;line-height:1.2;margin-top:6px}
.action > span:nth-of-type(2){font-size:13.5px;color:var(--muted);line-height:1.35}
.action-ico{display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:color-mix(in srgb,var(--pc) 14%,var(--surface));color:var(--pc-ui)}
.action-go{position:absolute;right:14px;top:16px;color:var(--muted)}
.action.primary{background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--pc) 60%,#fff) 0%,transparent 55%),linear-gradient(150deg,var(--pc),color-mix(in srgb,var(--pc) 55%,#000));color:#fff;border-color:transparent;box-shadow:0 14px 30px -16px var(--pc)}
.action.primary > span:nth-of-type(2){color:rgba(255,255,255,.88)}
.action.primary .action-ico{background:rgba(255,255,255,.16);color:#fff}
.action.primary .action-go{color:#fff}
.action:disabled{opacity:.55;cursor:default}

/* ---- Thèmes en grille de tuiles */
.themes-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media (min-width:760px){.themes-grid{grid-template-columns:repeat(3,1fr);gap:12px}}
.themes-grid .theme{display:flex;flex-direction:column;align-items:stretch;gap:8px;text-align:left;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:12px 12px 14px;box-shadow:var(--shadow)}
.themes-grid .theme:last-child{border-bottom:1px solid var(--line)}
.theme-top{display:flex;justify-content:space-between;align-items:center}
.themes-grid .theme-txt{gap:2px}
.themes-grid .theme-txt b{font-size:14.5px;line-height:1.25}
.themes-grid .theme-txt .small{font-size:12.5px}
.themes-grid .theme .progress{height:6px;margin-top:auto}
.themes-grid .theme-pct{font-size:15px}

/* ---- Puces qui défilent (panneaux, accroche) */
.chip-row{display:flex;gap:8px;overflow-x:auto;margin-inline:-16px;padding:2px 16px 6px;scrollbar-width:none;scroll-snap-type:x proximity}
.chip-row::-webkit-scrollbar{display:none}
.chip{flex:none;scroll-snap-align:start;font:inherit;font-size:14px;font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:8px 14px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
.chip span{color:var(--muted);font-weight:600}
@media (max-width:599px){
  .chips{flex-wrap:nowrap;overflow-x:auto;margin-inline:-4px;padding-inline:4px;scrollbar-width:none}
  .chips::-webkit-scrollbar{display:none}
  .chips li{flex:none}
  .dots{flex-wrap:nowrap;overflow-x:auto;padding:2px 2px 6px;scrollbar-width:none}
  .dot{flex:none}
}

/* ---- Fluidité : apparition des écrans et des réponses, retour au toucher */
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.025)}100%{transform:scale(1)}}
@keyframes shake{20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}
#view > *{animation:rise .42s cubic-bezier(.2,.8,.2,1) both}
#view > *:nth-child(2){animation-delay:.04s}#view > *:nth-child(3){animation-delay:.08s}
#view > *:nth-child(4){animation-delay:.12s}#view > *:nth-child(5){animation-delay:.16s}
#view > *:nth-child(n+6){animation-delay:.2s}
.quiz .opt{animation:rise .32s cubic-bezier(.2,.8,.2,1) both}
.quiz .opt:nth-child(2){animation-delay:.05s}.quiz .opt:nth-child(3){animation-delay:.1s}.quiz .opt:nth-child(4){animation-delay:.15s}
.quiz .opt.good{animation:pop .4s ease}
.quiz .opt.bad{animation:shake .4s ease}
.feedback:not([hidden]),.explain:not([hidden]){animation:rise .3s ease both}
.choice,.action,.theme,.chip,.opt,.dot,.tabbar a,.tab{transition:transform .14s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}
.choice:active,.action:active:not(:disabled),.theme:active,.chip:active,.opt:active:not(:disabled),.tabbar a:active,.tab:active{transform:scale(.97)}
@media (prefers-reduced-motion:reduce){
  #view > *,.quiz .opt,.quiz .opt.good,.quiz .opt.bad,.feedback,.explain{animation:none!important}
  .rail-dots span{transition:none}
}

/* Les raccourcis clavier ne servent à rien sur écran tactile */
@media (hover: none) and (pointer: coarse) { .hint { display: none; } }


/* ================= v6 — Cours ================= */
/* Rangée de chapitres dans « Mon espace » */
.rail.lessons{grid-auto-columns:60%}
@media (min-width:600px){.rail.lessons{grid-auto-columns:32%}}
@media (min-width:900px){.rail.lessons{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}}
.lesson{display:flex;flex-direction:column;gap:6px;height:100%;min-height:150px;padding:16px;border-radius:var(--radius);
  background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink);text-decoration:none}
.lesson b{font-family:var(--display);font-size:16.5px;line-height:1.25}
.lesson .small{color:var(--muted)}
.lesson-num{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;font-weight:800;
  background:color-mix(in srgb,var(--pc) 14%,var(--surface));color:var(--pc-ui,var(--accent))}
.lesson-num .ico{width:18px;height:18px}
.lesson.done .lesson-num{background:#16a34a;color:#fff}
.lesson-go{margin-top:auto;display:inline-flex;align-items:center;gap:4px;font-size:13.5px;font-weight:700;color:var(--pc-ui,var(--accent))}
.lesson-go .ico{width:16px;height:16px}
.course-progress{margin:2px 0 4px}
.course-next{align-self:flex-start;display:inline-flex;align-items:center;gap:8px;margin:4px 0 2px}
.course-next .ico{width:18px;height:18px}

/* Page d'un chapitre */
.backlink{display:inline-block;font-weight:700;color:var(--muted);text-decoration:none;margin-bottom:-4px}
.course-head{border-radius:calc(var(--radius) + 4px);padding:22px 20px 18px;color:#fff;
  background:radial-gradient(120% 90% at 100% 0%,color-mix(in srgb,var(--pc) 55%,#fff) 0%,transparent 55%),linear-gradient(150deg,var(--pc),color-mix(in srgb,var(--pc) 50%,#000));
  box-shadow:0 18px 36px -22px var(--pc)}
.course-head h1{color:#fff;margin:6px 0 8px;font-size:clamp(26px,7vw,36px);line-height:1.1}
.course-head p{margin:0;color:rgba(255,255,255,.9);line-height:1.5}
.course-kicker{font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;opacity:.85}
.course-steps{display:flex;gap:5px;margin-top:16px}
.course-steps span{flex:1;height:5px;border-radius:3px;background:rgba(255,255,255,.25)}
.course-steps span.done{background:rgba(255,255,255,.6)}
.course-steps span.on{background:#fff}
.fiche{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 18px 16px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:12px}
.fiche-head{display:flex;align-items:center;gap:12px}
.fiche-head h2{margin:0;font-size:19px;line-height:1.25}
.fiche-num{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;font-weight:800;font-size:14px;
  background:var(--accent-soft,#e8ecff);color:var(--accent)}
.fiche-points{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px;line-height:1.55}
.fiche-points li::marker{color:var(--accent)}
.fiche-signs{display:flex;gap:10px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.fiche-signs::-webkit-scrollbar{display:none}
.fiche-signs .sign{flex:none;width:64px;height:64px;margin:0;padding:6px;border-radius:14px;background:var(--bg);display:grid;place-items:center}
.fiche-signs .sign svg{width:100%;height:100%}
.fiche-box{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:14px;line-height:1.5;font-size:15px}
.fiche-box .ico{flex:none;width:20px;height:20px;margin-top:2px}
.fiche-box.keep{background:color-mix(in srgb,#16a34a 12%,var(--surface));color:var(--ink)}
.fiche-box.keep .ico{color:#16a34a}
.fiche-box.trap{background:color-mix(in srgb,#f59e0b 16%,var(--surface));color:var(--ink)}
.fiche-box.trap .ico{color:#d97706}
.fiche.locked{position:relative;min-height:84px;opacity:.7}
.fiche.locked .fiche-head h2{filter:blur(3px);user-select:none}
.fiche.locked::after{content:"";position:absolute;right:16px;top:20px;width:20px;height:20px;
  background:var(--muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11h14v10H5z'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 11h14v10H5z'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E") center/contain no-repeat}
.course-end{display:flex;flex-direction:column;gap:14px}
.upsell h3{display:flex;align-items:center;gap:6px;margin-top:0}
.upsell h3 .ico{width:20px;height:20px}
.course-actions{display:grid;gap:10px}
.course-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.course-actions .ico{width:20px;height:20px}
@media (min-width:600px){.course-actions{grid-template-columns:1fr 1fr}}
.lesson:active{transform:scale(.97)}

/* v7 : examen jour J (chrono par question) */
.progress.qtimer { height: 4px; margin-top: 4px; }
.progress.qtimer span { background: var(--pc, currentColor); transition: width .25s linear; }


/* v8 : carnet de conduite */
.carnet-form { display: grid; gap: 12px; }
.carnet-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 8px; }
.carnet-fields input, .carnet-fields select { width: 100%; min-width: 0; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line, #ccd); background: var(--surface, #fff); color: inherit; font: inherit; }
.carnet-fields input[type=text] { grid-column: 1 / -1; }
.skills { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.skill { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--line, #ccd); background: transparent; color: inherit; font: inherit; cursor: pointer; }
.skill .pill { flex: none; }
.skill.s2 { border-color: color-mix(in srgb, var(--pc, #2e7d32) 50%, transparent); }

/* v9 : lecture à voix haute */
.listen-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 10px; }
.listen { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; border: 1px solid color-mix(in srgb, var(--pc, #1f3fd1) 45%, transparent); background: color-mix(in srgb, var(--pc, #1f3fd1) 12%, transparent); color: inherit; font: inherit; font-size: .88rem; font-weight: 600; cursor: pointer; }
.listen .ico { width: 16px; height: 16px; }
.listen.ghosty { background: transparent; font-weight: 500; opacity: .85; }
.listen.on { background: var(--pc, #1f3fd1); border-color: var(--pc, #1f3fd1); color: #fff; }
.listen.on:not(.ghosty) .ico { animation: listen-pulse 1s ease-in-out infinite; }
.listen.small { padding: 5px 10px; font-size: .8rem; margin-left: auto; flex: none; }
.listen.on-hero { margin-top: 10px; border-color: rgba(255,255,255,.5); background: rgba(255,255,255,.14); color: #fff; }
.listen.on-hero.on { background: #fff; color: var(--pc, #1f3fd1); }
.fiche-head { display: flex; align-items: center; gap: 10px; }
.explain + .listen { margin-top: 6px; align-self: flex-start; }
@keyframes listen-pulse { 50% { transform: scale(1.2); } }
@media (prefers-reduced-motion: reduce) { .listen.on .ico { animation: none; } }

/* ---------- v10 : favoris, paiement avec renonciation, « Comment ça marche », cookies */
.listen.fav { background: transparent; font-weight: 500; }
.listen.fav.on { background: color-mix(in srgb, var(--plate) 22%, transparent); border-color: var(--plate); color: inherit; }
.listen.fav.on .ico { animation: none; fill: var(--plate); stroke: var(--warn, #8a5a00); }
.steps { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.step { display: flex; flex-direction: column; gap: 4px; padding: 16px; border-radius: var(--radius, 18px); background: var(--surface); border: 1px solid var(--line); box-shadow: var(--shadow, none); }
.step-num { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--accent); color: #fff; font-weight: 800; margin-bottom: 4px; }
.step .small { color: var(--muted); }
dialog.checkout { width: min(460px, calc(100% - 32px)); border: none; border-radius: var(--radius, 18px); padding: 22px; background: var(--surface); color: var(--ink); box-shadow: 0 20px 60px rgba(0,0,0,.35); }
dialog.checkout::backdrop { background: rgba(10, 14, 30, .55); }
dialog.checkout h3 { margin: 0 0 4px; }
.checkout-price { margin: 0 0 12px; color: var(--muted); }
.checkout-price b { color: var(--ink); font-size: 1.3rem; }
.consent { display: flex; gap: 10px; align-items: flex-start; padding: 12px; margin: 14px 0; border-radius: 12px; background: var(--bg); border: 1px solid var(--line); font-size: .92rem; line-height: 1.4; cursor: pointer; }
.consent input { width: 20px; height: 20px; flex: none; margin-top: 2px; accent-color: var(--accent); }
dialog.checkout .row { justify-content: flex-end; }
a.btn[aria-disabled="true"] { opacity: .45; }
.cookie-bar { position: fixed; left: 50%; transform: translateX(-50%); bottom: calc(76px + env(safe-area-inset-bottom, 0px)); width: min(560px, calc(100% - 32px)); z-index: 20; background: var(--surface); color: var(--ink); border: 1px solid var(--line); border-radius: 14px; padding: 14px 16px; box-shadow: 0 12px 40px rgba(0,0,0,.25); font-size: .9rem; }
.cookie-bar p { margin: 0 0 10px; }
.cookie-bar .row { justify-content: flex-end; }

/* ---------- v11 : coach, planning, récompenses, signalement */
.coach h2 { margin: 0; }
.coach-score { display: flex; align-items: center; gap: 14px; margin: 10px 0 6px; }
.coach-score > b { font-family: var(--display); font-size: 2.6rem; line-height: 1; color: var(--pc, var(--accent)); white-space: nowrap; }
.coach-score > b small { font-size: 1rem; color: var(--muted); font-weight: 600; }
.coach-score p { margin: 0; }
.coach .progress span { background: var(--pc, var(--accent)); }
.coach-today { display: flex; align-items: center; gap: 12px; margin: 16px 0; padding: 14px; border-radius: 14px; background: color-mix(in srgb, var(--pc, #1f3fd1) 10%, transparent); border: 1px solid color-mix(in srgb, var(--pc, #1f3fd1) 30%, transparent); }
.coach-today > div { flex: 1; min-width: 0; }
.coach-today .action-ico { flex: none; }
.coach-today.done { background: var(--good-bg, #e3f4ea); border-color: var(--good, #167a4a); }
.coach-cols { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.coach-cols h3 { margin: 0 0 6px; font-size: 1rem; }
.coach-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; font-size: .92rem; }
.coach-list li { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; }
.coach-list li > .ico { width: 16px; height: 16px; color: var(--good, #167a4a); flex: none; }
.coach-list li:has(> .ico) { justify-content: flex-start; }
.coach-plan { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); }
.coach-plan p { margin: 4px 0 10px; }
.coach-plan input, .coach-plan select, dialog.checkout select, dialog.checkout textarea { font: inherit; padding: 9px 10px; border-radius: 10px; border: 1px solid var(--line); background: var(--surface); color: var(--ink); max-width: 100%; }
dialog.checkout textarea { width: 100%; resize: vertical; }
dialog.checkout label.stack { margin: 10px 0; display: flex; flex-direction: column; gap: 4px; }
.coach-week { list-style: none; padding: 0; margin: 0; display: grid; gap: 4px; font-size: .9rem; }
.coach-week li { display: flex; gap: 10px; }
.coach-week li .muted { width: 56px; flex: none; }
.reward-level { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 8px 0; }
.rewards .progress { margin: 6px 0 12px; }
.badges { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
.badge { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 12px; border: 1px dashed var(--line); color: var(--muted); font-size: .85rem; line-height: 1.2; }
.badge .ico { width: 18px; height: 18px; flex: none; }
.badge.ok { border-style: solid; border-color: var(--plate); background: color-mix(in srgb, var(--plate) 16%, transparent); color: var(--ink); font-weight: 600; }
.badge.ok .ico { color: var(--warn, #8a5a00); }

/* ---------- v12 : installer l'appli */
.install-card { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; border: 1px solid color-mix(in srgb, var(--accent) 35%, var(--line)); }
.install-icon img { display: block; width: 48px; height: 48px; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,.15); }
.install-txt { flex: 1; min-width: 200px; display: flex; flex-direction: column; gap: 2px; }
.install-card .row { align-items: center; }
.install-steps { list-style: none; padding: 0; margin: 12px 0; display: grid; gap: 12px; }
.install-step { display: flex; gap: 12px; align-items: flex-start; line-height: 1.45; }
.install-step .step-num { flex: none; margin: 0; }
.inline-ico { display: inline-flex; align-items: center; gap: 4px; padding: 1px 8px; border-radius: 8px; background: var(--bg); border: 1px solid var(--line); white-space: nowrap; }
.inline-ico .ico { width: 16px; height: 16px; color: var(--accent); }
.install-nav { background: var(--plate); color: #141a2e; border-color: var(--plate); } .install-nav .ico { width: 16px; height: 16px; }
#nav .install-nav span { display: inline !important; } #nav .install-nav { width: auto !important; padding: 6px 10px; gap: 4px; }

/* ---------- v13 : connexion par code (appli installée sur iPhone) */
.code-step { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.code-input { font-size: 1.6rem !important; letter-spacing: .35em; text-align: center; font-weight: 700; }
