/* Arthur — design system (inspiration « Bagel »).
   Périwinkle signature + blanc + cartes arrondies à visuels colorés + pilules
   noires + titres arrondis bleu-nuit. Sert aux pages promo ET à l'application. */

:root{
  --bg:#ffffff;--ink:#15152e;--soft:#616175;--mut:#8a8a9c;--line:#e7e7ef;--line2:#dfdfe9;--bg2:#f7f7fb;
  --peri:#5b58f0;--peri-d:#4a47d6;--peri-soft:#edecff;--peri-card:#c9c6f8;
  --mint:#2ad3b4;--mint-soft:#c7f3ea;--orange:#ff7a1f;--cream:#fdeedd;--grape:#7c4dff;--forest:#1f5e3a;
  --ok:#0e9f6e;--ok-soft:#d7f5e9;--warn:#b9780f;--warn-soft:#fbeccd;--info-soft:#e7edfc;--info:#2b55bc;
  --r:18px;--r-sm:12px;
  --disp:'Plus Jakarta Sans',system-ui,sans-serif;--sans:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:400 15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--disp);letter-spacing:-.02em;line-height:1.1}
.w{max-width:1280px;margin:0 auto;padding:0 40px}
.muted{color:var(--soft)}
.center{text-align:center}

/* ---------- boutons ---------- */
.pill,.btn{display:inline-flex;align-items:center;gap:9px;border-radius:999px;padding:13px 24px;font:600 14px var(--sans);cursor:pointer;border:1px solid transparent;transition:.15s;white-space:nowrap}
.pill{background:var(--ink);color:#fff}
.pill:hover{background:#26263f}
.pill.peri{background:var(--peri)}.pill.peri:hover{background:var(--peri-d)}
.pill.lt{background:#fff;color:var(--ink);border-color:var(--line2)}
.pill.lt:hover{background:var(--bg2)}
.pill.sm{padding:10px 17px;font-size:13px}
.pill.block{width:100%;justify-content:center}
.pill.danger{background:#fff;color:#c0392b;border-color:#eccac6}
.pill.danger:hover{background:#fdeeec}
.lnk{font:600 15px var(--sans)}.lnk:hover{color:var(--peri)}

/* ---------- barre de navigation ---------- */
.nav{border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:30}
.nav .w{display:flex;align-items:center;height:92px;gap:22px}
.logo{font:800 32px/1 var(--disp);letter-spacing:-.04em;color:var(--ink)}
.nav .tag{font-size:13px;color:var(--soft);border-left:1px solid var(--line);padding-left:22px;display:flex;align-items:center;gap:7px}
.nav .tag-i{width:18px;height:18px;color:var(--peri)}
.sp{flex:1}
.nav .acct{display:flex;align-items:center;gap:16px}
.burger{width:50px;height:50px;border:1px solid var(--line2);border-radius:12px;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer}
.burger i{width:20px;height:2px;background:var(--ink);border-radius:2px}
.burger:hover{border-color:var(--ink)}

/* tiroir de navigation (consigne initiale : navbar haute + hamburger) */
.scrim{position:fixed;inset:0;z-index:45;background:rgba(17,18,34,.5);opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s}
body.nav-open .scrim{opacity:1;visibility:visible}
.drawer{position:fixed;top:0;right:0;bottom:0;width:50%;max-width:560px;z-index:50;background:var(--ink);color:#fff;transform:translateX(100%);transition:transform .34s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;padding:30px 40px;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.26) transparent}
body.nav-open .drawer{transform:translateX(0)}
.drawer::-webkit-scrollbar{width:8px}
.drawer::-webkit-scrollbar-track{background:transparent}
.drawer::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:99px}
.drawer::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.4)}
.drawer .top{display:flex;align-items:center;height:56px}
.drawer .top .logo{color:#fff}
.drawer .x{margin-left:auto;width:44px;height:44px;border:1px solid rgba(255,255,255,.25);border-radius:12px;background:none;color:#fff;font-size:19px;cursor:pointer}
.drawer nav{display:flex;flex-direction:column;margin-top:30px}
.drawer nav a{font:700 clamp(26px,3vw,42px)/1.15 var(--disp);letter-spacing:-.02em;color:#fff;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}
.drawer nav a span{font:500 13px var(--sans);color:#9e9ac8}
.drawer nav a:hover{color:var(--peri-card)}
.drawer .foot{margin-top:auto;padding-top:24px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
@media(max-width:720px){.drawer{width:88%}}
@media(max-width:560px){.nav .w{height:74px;gap:12px}.nav .tag{display:none}.hide-xs{display:none}.logo{font-size:27px}}
.avatar{width:38px;height:38px;border-radius:50%;background:var(--peri);color:#fff;display:grid;place-items:center;font:700 15px var(--disp)}

/* ---------- messages ---------- */
.flash{border-radius:var(--r-sm);padding:12px 16px;margin:16px 0;font-weight:500;font-size:14px}
.flash.ok{background:var(--ok-soft);color:#0a7a54}
.flash.err{background:#fdecea;color:#b4291d}
.flash.info{background:var(--info-soft);color:var(--info)}

/* ---------- pied de page ---------- */
footer.ft{background:var(--ink);color:#fff;margin-top:90px}
footer.ft .w{padding:60px 40px 30px;display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:34px}
footer.ft .logo{color:#fff}
footer.ft .blurb{color:#b7b7cf;margin-top:14px;max-width:34ch;font-size:14.5px}
footer.ft .social{display:flex;gap:10px;margin-top:20px}
footer.ft .social a{width:38px;height:38px;border-radius:50%;border:1px solid rgba(255,255,255,.2);display:grid;place-items:center;color:#fff;font-size:14px}
footer.ft .social a:hover{background:rgba(255,255,255,.12)}
footer.ft h5{font:700 13px var(--disp);letter-spacing:.02em;color:#fff;margin-bottom:14px}
footer.ft ul{list-style:none}
footer.ft li{margin:9px 0}
footer.ft li a{color:#c3c3d8;font-size:14.5px}
footer.ft li a:hover{color:#fff}
footer.ft .bar{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.12);margin-top:24px;padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:#8a8aa4;font-size:13px}
footer.ft .bar a{color:#8a8aa4}footer.ft .bar a:hover{color:#fff}

/* ==================== LANDING (accueil pro) ==================== */
.eyerow{display:flex;gap:14px;align-items:center;margin-bottom:22px}
.eye-acc{font:700 11.5px/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--peri)}
.eye-mut{font:600 11.5px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--mut)}

.lhero{border-bottom:1px solid var(--line);background:var(--bg2)}
.lhero-grid{display:grid;grid-template-columns:1.2fr .9fr;gap:52px;align-items:center;padding:66px 40px 60px}
.lhero-l h1{font:800 clamp(40px,5vw,66px)/1.02 var(--disp);letter-spacing:-.04em}
.lhero-l h1 em{font-style:normal;color:var(--peri)}
.lhero .lead{font-size:17.5px;color:var(--soft);max-width:46ch;margin:24px 0 30px}
.lcta{display:flex;gap:12px;flex-wrap:wrap}
.lspecs{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:38px}
.spec{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.spec-ic{width:38px;height:38px;flex:none;align-self:center;border-radius:11px;background:var(--peri-soft);color:var(--peri-d);display:flex;align-items:center;justify-content:center;line-height:0}
.spec-ic svg{display:block;width:20px;height:20px}
.kpi-ic svg,.lconf-ic svg,.mlist .mi svg{display:block}
.kpi-ic,.lconf-ic,.mlist .mi{line-height:0}
.spec>div b{display:block;font:800 18px/1.1 var(--disp);color:var(--ink);letter-spacing:-.02em}
.spec>div span{display:block;margin-top:2px;font:500 12.5px var(--sans);color:var(--soft)}

.figcard{background:#fff;border:1px solid var(--line2);border-radius:var(--r);padding:22px;box-shadow:0 30px 60px -44px rgba(21,21,46,.4)}
.figcap{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:10px;margin-bottom:12px;font:700 12px var(--sans);color:var(--ink)}
.lradar{width:100%;max-width:300px;margin:0 auto;display:block}
.figread{margin-top:14px}
.figread .row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px dotted var(--line)}
.figread .row:last-child{border-bottom:0}
.figread .k{width:22px;height:22px;flex:none;border-radius:7px;display:grid;place-items:center;font:700 11px var(--sans);color:#fff}
.figread .nm{flex:1;font-size:13.5px;font-weight:500}
.figread .vl{font:800 15px var(--disp)}

.lstrip{background:var(--ink);color:#fff}
.lstrip-in{display:flex;align-items:center;gap:40px;padding:22px 40px;flex-wrap:wrap}
.lstrip-in>div:not(.lstrip-note){display:flex;flex-direction:column}
.lstrip-in b{font:800 24px/1 var(--disp);letter-spacing:-.02em}
.lstrip-in span{font:500 12px var(--sans);color:#a7a7c0;margin-top:4px}
.lstrip-note{margin-left:auto;max-width:28ch;font:500 12px var(--sans);color:#8f8fac;line-height:1.5}

.lindex{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin:34px 0 10px}
.lindex a{padding:20px 20px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:9px;transition:.15s}
.lindex a:last-child{border-right:0}
.lindex a:hover{background:var(--bg2)}
.lindex .n{font:700 12px var(--sans);color:var(--peri);letter-spacing:.06em}
.lindex .t{font:700 17px/1.05 var(--disp);letter-spacing:-.01em}

.lsec{padding:54px 0}
.lsec+.lsec{border-top:1px solid var(--line)}
.lshead{display:grid;grid-template-columns:auto 1fr auto;gap:24px;align-items:start;margin-bottom:28px}
.lshead .big{font:800 54px/.85 var(--disp);letter-spacing:-.04em;color:var(--peri-card)}
.lshead h2{font:800 30px/1.05 var(--disp);letter-spacing:-.02em}
.lshead p{color:var(--soft);margin-top:9px;max-width:50ch;font-size:15px}
.lshead .run{font:600 11.5px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--mut);text-align:right;padding-top:8px}

.lsteps{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.lstep{border-left:1px solid var(--line);padding:22px}
.lstep:first-child{border-left:0}
.lstep .ix{font:600 11px var(--sans);color:var(--mut);letter-spacing:.06em;text-transform:uppercase}
.lstep .bar{height:3px;width:30px;border-radius:2px;margin:14px 0;background:var(--peri)}
.lstep h3{display:flex;align-items:center;gap:8px}
.hi{width:18px;height:18px;flex:none;color:var(--peri-d)}
.lstep h3{font:800 18px/1.1 var(--disp);letter-spacing:-.01em}
.lstep p{font-size:13.5px;color:var(--soft);margin-top:8px}
.lstep .meta{margin-top:16px;font:600 11px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--peri-d)}
.lstep.s1,.lstep.s3{background:var(--peri-soft)}
.lstep.s2,.lstep.s4{background:var(--bg2)}

.lmethod{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}
.mlist{list-style:none}
.mlist li{display:grid;grid-template-columns:46px 1fr;gap:16px;padding:18px 0;border-top:1px solid var(--line)}
.mlist li:first-child{border-top:0}
.mlist .mi{width:46px;height:46px;border-radius:13px;background:var(--peri-soft);color:var(--peri-d);display:grid;place-items:center}
.mtag{display:inline-block;font:700 10.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--peri-d);background:var(--peri-soft);padding:2px 8px;border-radius:999px;margin-bottom:6px}
.mlist h4{font:700 16px var(--disp);letter-spacing:-.01em;margin-bottom:4px}
.mlist p{font-size:13.5px;color:var(--soft)}
.qbox{border:1px solid var(--line2);border-radius:var(--r);padding:24px;background:var(--bg2)}
.qbox .pk{font:600 11.5px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--mut);display:flex;justify-content:space-between}
.qprog{height:4px;border-radius:99px;background:var(--line);margin:14px 0 18px}.qprog i{display:block;height:100%;width:35%;border-radius:99px;background:var(--peri)}
.qbox .q{font:700 19px/1.35 var(--disp);margin-bottom:18px}
.likert{display:flex;gap:8px}
.likert b{flex:1;text-align:center;border:1px solid var(--line2);border-radius:10px;padding:13px 0;font:700 14px var(--sans);cursor:pointer;background:#fff}
.likert b.on{background:var(--peri);color:#fff;border-color:var(--peri)}
.qscale{display:flex;justify-content:space-between;font-size:11.5px;color:var(--soft);margin-top:9px}

.lmap{display:grid;grid-template-columns:240px 1fr;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.lfilters{padding:20px;border-right:1px solid var(--line)}
.lfilters h4{font:600 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:12px}
.fchip{display:flex;align-items:center;gap:10px;padding:9px 0;font-size:13.5px;font-weight:500;cursor:pointer;color:var(--soft)}
.fchip i{width:10px;height:10px;border-radius:50%}
.fchip.on{color:var(--ink);font-weight:600}
.ltoggle{display:flex;margin-top:16px;border:1px solid var(--line2);border-radius:10px;overflow:hidden}
.ltoggle span{flex:1;text-align:center;font:600 11px var(--sans);letter-spacing:.04em;text-transform:uppercase;padding:10px;cursor:pointer;color:var(--soft)}
.ltoggle span.on{background:var(--ink);color:#fff}
.lmapfig{position:relative;background-color:var(--bg2);background-image:radial-gradient(#e3e2ef 1.2px,transparent 1.2px);background-size:26px 26px;min-height:360px;overflow:hidden}
.lpin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px}
.lpin b{width:14px;height:14px;border-radius:50%;border:3px solid #fff;box-shadow:0 1px 5px rgba(0,0,0,.25)}
.lpin span{font:600 11px var(--sans);background:#fff;border:1px solid var(--line2);border-radius:7px;padding:3px 8px;white-space:nowrap}
.ledge{position:absolute;height:2px;background:var(--peri);transform-origin:left center;opacity:.5;border-radius:2px}
.lmaplg{position:absolute;left:16px;bottom:16px;background:#fff;border:1px solid var(--line2);border-radius:9px;padding:9px 12px;font:600 11px var(--sans);display:flex;gap:16px}
.lmaplg div{display:flex;align-items:center;gap:7px}.lmaplg i{width:10px;height:10px;border-radius:50%}

.lpsup{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.lpsup-l{padding:30px;border-right:1px solid var(--line)}
.lpsup-l h3{font:800 24px/1.1 var(--disp);letter-spacing:-.02em;margin-bottom:16px}
.lpsup ul{list-style:none}
.lpsup li{display:grid;grid-template-columns:22px 1fr;gap:12px;padding:13px 0;font-size:14.5px;border-top:1px solid var(--line)}
.lpsup li:first-child{border-top:0}
.lpsup li .mono{color:var(--peri);font:700 12px var(--sans)}
.lvoeux{padding:0}
.lvoeux .vh{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--line)}
.lvoeux .vh .t{font:700 12px var(--sans);letter-spacing:.06em;text-transform:uppercase}
.lvoeux .vh .lien{font:600 11px var(--sans);color:var(--peri-d);letter-spacing:.04em}
.voeu{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line)}
.voeu .vt{flex:1}.voeu .vt b{font-weight:700;font-size:14px}.voeu .vt span{display:block;font-size:12.5px;color:var(--soft)}
.vstat{font:700 10.5px var(--sans);letter-spacing:.02em;padding:5px 10px;border-radius:999px;white-space:nowrap}
.vstat.sur{background:var(--ok-soft);color:#0a7a54}.vstat.cible{background:var(--peri-soft);color:var(--peri-d)}.vstat.amb{background:var(--warn-soft);color:var(--warn)}
.lvoeux .vf{padding:14px 20px;font:600 11.5px var(--sans);color:var(--mut);display:flex;justify-content:space-between}
.vstat.ok{background:var(--ok-soft);color:#0a7a54}
.vstat.info{background:var(--peri-soft);color:var(--peri-d)}
.vstat.wait{background:var(--warn-soft);color:var(--warn)}

/* Parcoursup (maquette) */
.demo-banner{background:var(--warn-soft);color:#8a5a0b;border:1px solid #f0d49a;border-radius:12px;padding:12px 16px;font-size:13.5px;margin-bottom:20px;line-height:1.5}
.psup-connect{text-align:center;padding:30px 22px}
.psup-masc{margin-bottom:4px}
.psup-connect h2{font-size:20px;font-weight:800}
.psup-cal{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-top:1px solid var(--line);font-size:14px}
.psup-cal:first-of-type{border-top:0}

.lbudget{max-width:640px;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden}
.lbudget .bh{padding:16px 20px;border-bottom:1px solid var(--line);font:600 11.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.lbudget table{width:100%;border-collapse:collapse;font-size:14px}
.lbudget td{padding:13px 20px;border-top:1px solid var(--line)}
.lbudget td.v{text-align:right;font-weight:600;color:var(--soft)}
.lbudget tr:first-child td{border-top:0}
.lbudget tr.tot td{font-weight:800;color:var(--ink);border-top:2px solid var(--ink)}
.lbudget tr.tot td.v{color:var(--ink)}
.lbudget .est{padding:14px 20px;font-size:12px;color:var(--soft);border-top:1px solid var(--line)}

.lconf{background:var(--bg2);border-top:1px solid var(--line)}
.lconf .lshead .big{color:var(--peri)}
.lconf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.lconf-c{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:22px}
.lconf-ic{display:grid;place-items:center;width:46px;height:46px;border-radius:13px;background:var(--peri-soft);color:var(--peri-d);margin-bottom:14px}
.lconf-c h4{font:700 16px var(--disp);letter-spacing:-.01em;margin-bottom:8px}
.lconf-c p{font-size:13.5px;color:var(--soft)}

.lfinal{padding:56px 0}
.lfinal-card{background:var(--ink);color:#fff;border-radius:calc(var(--r) + 6px);padding:54px 40px;text-align:center;background-image:radial-gradient(rgba(255,255,255,.05) 1.3px,transparent 1.3px);background-size:24px 24px}
.lfinal-masc{margin-bottom:10px}
.lfinal-masc .mascotte{filter:drop-shadow(0 16px 26px rgba(0,0,0,.35))}

/* bannière onboarding + états vides (mascotte) */
.obhero{display:flex;align-items:center;gap:22px;background:var(--peri-soft);border:1px solid var(--peri-card);border-radius:var(--r);padding:22px 26px;margin-bottom:22px}
.obhero-masc{flex:none}
.obhero-masc .mascotte{filter:drop-shadow(0 12px 22px rgba(91,88,240,.28))}
.obhero-tx h1{font:800 26px/1.1 var(--disp);letter-spacing:-.02em}
.obhero-tx p{color:var(--soft);margin-top:8px;max-width:52ch;font-size:14.5px}
.emptybox{text-align:center;padding:26px 20px}
.emptybox-masc{margin-bottom:6px}
.emptybox-masc .mascotte{filter:drop-shadow(0 12px 20px rgba(21,21,46,.14))}
.emptybox h3{font:800 17px var(--disp);letter-spacing:-.01em;margin-bottom:5px}
.emptybox p{color:var(--soft);font-size:13.5px;max-width:40ch;margin:0 auto 14px}
@media(max-width:560px){.obhero{flex-direction:column;text-align:center}}

/* ==================== PARCOURS (designer + explorateur, flowchart) ==================== */
.ptabs{display:flex;gap:8px;margin:8px 0 22px;border-bottom:1px solid var(--line)}
.ptab{background:none;border:0;border-bottom:2px solid transparent;padding:12px 6px;margin-bottom:-1px;font:700 14.5px var(--sans);color:var(--mut);cursor:pointer}
.ptab.on{color:var(--peri-d);border-bottom-color:var(--peri)}
.ptab:hover{color:var(--ink)}
.pform{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;margin-bottom:22px}
.pf{display:flex;flex-direction:column;gap:6px}
.pf label{font:600 12px var(--sans);color:var(--soft)}
.pf input,.pf select{border:1px solid var(--line2);border-radius:10px;padding:10px 12px;font:400 14px var(--sans);background:#fff;color:var(--ink);min-width:150px}
.pf input:focus,.pf select:focus{outline:none;border-color:var(--peri);box-shadow:0 0 0 3px var(--peri-soft)}

.scgrid{display:flex;flex-direction:column;gap:18px}
.sccard{border:1px solid var(--line2);border-radius:var(--r);padding:20px 22px}
.sccard.out{opacity:.72}
.sctop{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:16px}
.sctop h3{font:800 19px var(--disp);letter-spacing:-.01em}

.flow{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:4px 2px 10px}
.ftile{flex:none;width:184px;background:#fff;border:1px solid var(--line2);border-radius:14px;padding:13px 15px;display:flex;flex-direction:column;gap:3px}
.ftile b{font:700 14px var(--disp);letter-spacing:-.01em;line-height:1.2}
.fpal{align-self:flex-start;font:700 10px var(--sans);letter-spacing:.04em;text-transform:uppercase;color:var(--peri-d);background:var(--peri-soft);padding:2px 8px;border-radius:999px;margin-bottom:3px}
.fet{font-size:12px;color:var(--soft)}
.fcost{font:600 11.5px var(--sans);color:var(--peri-d);margin-top:4px}
.ftile.entry{background:var(--ink);color:#fff;justify-content:center;width:120px}
.ftile.entry b{color:#fff}.ftile.entry span{color:rgba(255,255,255,.7);font-size:11px}
.ftile.goal{background:var(--peri-soft);border-color:var(--peri-card);justify-content:center;width:130px}
.ftile.goal b{color:var(--peri-d)}.ftile.goal span{color:var(--peri-d);font-size:11px}
.farrow{flex:none;align-self:center;color:var(--mut);font-size:20px;padding:0 10px}

.scfoot{display:flex;flex-wrap:wrap;align-items:center;gap:22px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.scfoot>div{display:flex;flex-direction:column}
.scfoot .k{font:500 11px var(--sans);color:var(--mut)}
.scfoot b{font:700 15px var(--disp)}
.scfoot b.net{color:var(--peri-d)}

.pchips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.pchips .chip .dot{width:9px;height:9px;border-radius:50%;margin-right:7px;display:inline-block}
.pchips .chip.on{border-color:var(--peri);background:var(--peri-soft);color:var(--peri-d)}
.flowcols{display:flex;gap:16px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.fcol{flex:none;width:220px;display:flex;flex-direction:column;gap:10px}
.fcol-h{font:700 12px var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);padding:8px 10px;background:var(--bg2);border-radius:10px;text-align:center}
.fcol .ftile{width:auto}
@media(max-width:620px){.pform{flex-direction:column;align-items:stretch}.pf input,.pf select{width:100%}}
.lfinal-card h2{font:800 clamp(28px,3.4vw,40px)/1.05 var(--disp);letter-spacing:-.03em}
.lfinal-card p{color:#b9b9cf;margin:12px auto 26px;max-width:46ch;font-size:16px}
.lfinal-card .lcta{justify-content:center}

@media(max-width:960px){
  .lhero-grid{grid-template-columns:1fr;gap:34px;padding:44px 20px}
  .lhero-r{order:-1}
  .lmethod,.lmap,.lpsup{grid-template-columns:1fr}
  .lpsup-l,.lfilters{border-right:0;border-bottom:1px solid var(--line)}
  .lindex{grid-template-columns:1fr 1fr}
  .lsteps{grid-template-columns:1fr 1fr}
  .lshead{grid-template-columns:auto 1fr}.lshead .run{display:none}
  .lconf-grid{grid-template-columns:1fr}
  .lstrip-note{margin-left:0;flex-basis:100%}
}
@media(max-width:560px){
  .lspecs{grid-template-columns:1fr 1fr;gap:14px}
  .lindex,.lsteps{grid-template-columns:1fr}
  .lstep{border-left:0;border-top:1px solid var(--line)}
  .lstep:first-child{border-top:0}
}

/* ---------- hero promo (ancien) ---------- */
.hero{padding:60px 0 26px;background-image:radial-gradient(#ececf6 1.3px,transparent 1.3px);background-size:24px 24px}
.hero h1{text-align:center;font-size:clamp(38px,5vw,60px);letter-spacing:-.035em;font-weight:800}
.hero .lead{text-align:center;color:var(--soft);font-size:18px;max-width:54ch;margin:14px auto 40px}

/* ---------- cartes ---------- */
.card{background:#fff;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden}
.feat{display:grid;grid-template-columns:2fr 1fr;gap:22px}
.big{display:grid;grid-template-columns:1fr 1.05fr}
.big .tx{padding:34px 32px;display:flex;flex-direction:column}
.big .eye{font:600 13px var(--sans);color:var(--soft)}
.big h2{font-size:27px;margin:14px 0 12px;font-weight:800}
.big p{color:var(--soft);font-size:14.5px;margin-bottom:auto}
.big .pill{align-self:flex-start;margin-top:22px}
.graphic{background:linear-gradient(140deg,#1f5e3a,#3b2d8f 55%,#7c4dff);position:relative;display:flex;align-items:center;justify-content:center;min-height:300px;overflow:hidden}
.uiwrap{position:relative;z-index:2;display:flex;gap:10px;align-items:center;background:#fff;border-radius:14px;padding:10px 12px;box-shadow:0 20px 40px -18px rgba(0,0,0,.5)}
.uiwrap .lbl{font:700 15px var(--disp)}
.uiwrap .gen{display:inline-flex;align-items:center;gap:7px;background:var(--peri);color:#fff;border-radius:9px;padding:9px 13px;font:600 13px var(--sans)}
.radar-badge{position:absolute;left:22px;bottom:22px;z-index:2;background:rgba(255,255,255,.95);border-radius:14px;padding:10px}
.radar-badge svg{display:block;width:92px;height:92px}
.promo{background:var(--cream);position:relative;overflow:hidden;padding:34px 30px;display:flex;flex-direction:column}
.promo .cir{position:absolute;border-radius:50%;background:var(--orange)}
.promo .c1{width:120px;height:120px;top:-46px;right:-30px}
.promo .c2{width:150px;height:150px;left:-64px;bottom:-60px;background:#ffb06b}
.promo h3{position:relative;z-index:2;font-size:24px;font-weight:800}
.promo p{position:relative;z-index:2;color:#7a5a33;font-size:14.5px;margin:12px 0 auto}
.promo .pill{position:relative;z-index:2;align-self:flex-start;margin-top:22px}

/* ---------- section « cartes colorées » ---------- */
.sec{padding:70px 0}
.sec .hd{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:26px}
.sec .hd h2{font-size:40px;font-weight:800;letter-spacing:-.03em}
.search{display:flex;align-items:center;gap:10px;border:1px solid var(--line2);border-radius:12px;padding:12px 16px;width:320px;color:var(--soft)}
.search input{border:0;outline:0;font:400 14px var(--sans);flex:1;color:var(--ink);background:none}
.chips{display:flex;align-items:center;gap:10px;margin-bottom:30px;flex-wrap:wrap}
.chip{border:1px solid var(--line2);background:#fff;border-radius:999px;padding:10px 17px;font:600 13.5px var(--sans);cursor:pointer;color:var(--ink)}
.chip.on{background:var(--peri);color:#fff;border-color:var(--peri)}
.chip:hover:not(.on){border-color:var(--ink)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.acard{background:#fff;border:1px solid var(--line2);border-radius:var(--r);overflow:hidden;transition:.2s;display:flex;flex-direction:column}
.acard:hover{transform:translateY(-4px);box-shadow:0 24px 50px -30px rgba(21,21,46,.35)}
.acard .top{height:190px;position:relative;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--line)}
.acard .bd{padding:22px;flex:1}
.acard .eye{font:600 12.5px var(--sans);color:var(--soft)}
.acard h3{font-size:20px;font-weight:800;margin:9px 0 8px}
.acard p{color:var(--soft);font-size:14px}
.g-peri{background:var(--peri-card)}
.g-peri .ring{position:absolute;inset:18px;border:2px solid rgba(21,21,46,.22);border-radius:50%}
.g-peri .row{display:flex;gap:18px;align-items:center;z-index:2}
.bubble{width:60px;height:60px;border-radius:50%;background:#fff;border:2px solid var(--ink);display:grid;place-items:center;font:800 15px var(--disp);color:var(--peri)}
.bubble.s{width:44px;height:44px;font-size:12px}
.g-mint{background:var(--mint-soft)}
.g-mint .orb{width:140px;height:140px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#5fe6cd,var(--mint));border:2px solid var(--ink)}
.g-orange{background:var(--cream)}
.g-orange .q1{position:absolute;width:150px;height:150px;border-radius:50%;background:var(--orange);top:-50px;left:-40px}
.g-orange .q2{position:absolute;width:120px;height:120px;border-radius:50%;background:#ffb981;bottom:-44px;right:-30px}
.g-orange .tagx{z-index:2;background:#fff;border:2px solid var(--ink);border-radius:12px;padding:10px 16px;font:800 16px var(--disp)}

/* ---------- formulaires / auth (split modèle adon) ---------- */
.authsplit{position:relative;display:grid;grid-template-columns:1fr 1fr;height:100vh;height:100dvh;overflow:hidden}
.authback{position:absolute;top:24px;left:26px;z-index:6;display:inline-flex;align-items:center;gap:7px;font:600 13px var(--sans);color:var(--soft)}
.authback svg{width:17px;height:17px}
.authback:hover{color:var(--ink)}
.authpanel{display:flex;align-items:center;justify-content:center;padding:32px 40px;overflow-y:auto}
.authform{width:100%;max-width:410px}
.authlogo{display:inline-block;font:800 28px/1 var(--disp);letter-spacing:-.04em;color:var(--ink);margin-bottom:20px}
.authform h1{font:800 30px/1.05 var(--disp);letter-spacing:-.03em}
.authform .sub{color:var(--soft);margin:8px 0 22px;font-size:15px}
.authform .field{margin-bottom:13px}
.field{margin-bottom:16px}
.field label{display:block;font:600 13px var(--sans);margin-bottom:7px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line2);border-radius:11px;padding:13px 15px;font:400 15px var(--sans);color:var(--ink);background:#fff;outline:none}
.field input::placeholder{color:var(--mut)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--peri);box-shadow:0 0 0 3px var(--peri-soft)}
.field .hint{font-size:12px;color:var(--mut);margin-top:6px}
.field-row{display:flex;justify-content:space-between;align-items:center;margin:2px 0 16px}
.check{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--soft);cursor:pointer}
.check input{width:16px;height:16px;accent-color:var(--peri)}
.authform .alt{text-align:center;margin-top:16px;font-size:14px;color:var(--soft)}
.authform .alt a{color:var(--peri);font-weight:600}
.pill.block{display:flex;width:100%;justify-content:center;padding:15px}
.ordiv{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--mut);font:600 11.5px var(--sans);text-transform:lowercase}
.ordiv::before,.ordiv::after{content:"";flex:1;height:1px;background:var(--line)}
.social{display:flex;gap:10px}
.sbtn{flex:1;display:flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--line2);border-radius:11px;padding:11px 10px;font:600 13.5px var(--sans);color:var(--ink);background:#fff}
.sbtn:hover{background:var(--bg2);border-color:var(--ink)}
.sbtn svg{flex:none}

/* vitrine (panneau droit) */
.authshow{position:relative;overflow:hidden;background:linear-gradient(145deg,#6b68f5 0%,#5b58f0 42%,#4a47d6 100%);
  display:flex;flex-direction:column;justify-content:center;gap:22px;padding:56px}
.authshow::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.08) 1.4px,transparent 1.4px);background-size:26px 26px;opacity:.7}
.authshow>*{position:relative;z-index:1}
.as-scene{position:relative;display:flex;justify-content:center;align-items:flex-end;min-height:330px;margin-bottom:14px}
.as-glow{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.5) 0%,rgba(255,255,255,0) 68%)}
.as-plate{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);width:230px;height:30px;border-radius:50%;background:rgba(255,255,255,.18);filter:blur(2px)}
.as-masc{position:relative;z-index:2;filter:drop-shadow(0 22px 30px rgba(21,21,46,.28))}
.as-chip{position:absolute;z-index:3;display:flex;align-items:center;gap:7px;background:#fff;border-radius:999px;padding:9px 14px;font:700 12.5px var(--sans);color:var(--ink);box-shadow:0 14px 30px -12px rgba(21,21,46,.4)}
.as-chip .d{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.as-chip.c1{top:22px;left:4%;color:var(--peri-d)}
.as-chip.c2{top:92px;right:0}
.as-chip.c3{bottom:40px;left:0;color:#b9780f}
.as-copy{position:relative;z-index:2}
.as-copy h2{font:800 30px/1.1 var(--disp);color:#fff;letter-spacing:-.02em}
.as-copy p{color:rgba(255,255,255,.86);font-size:15px;margin-top:12px;max-width:40ch}
@media(max-width:860px){.authsplit{grid-template-columns:1fr}.authshow{display:none}.authpanel{padding:68px 22px 40px}.authback{color:var(--soft)}}

/* ---------- autocomplétion ---------- */
.ac-wrap{position:relative}
.ac-box{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:50;background:#fff;border:1px solid var(--line2);border-radius:12px;box-shadow:0 20px 50px -20px rgba(21,21,46,.35);padding:6px;max-height:340px;overflow:auto}
.ac-item{padding:9px 11px;border-radius:8px;cursor:pointer;font-size:14px}
.ac-item b{font-weight:600;display:block}
.ac-item span{font-size:12.5px;color:var(--soft)}
.ac-item:hover,.ac-item.on{background:var(--bg2)}

/* ---------- barre applicative (dashboard) ---------- */
.appbar{position:sticky;top:0;z-index:30;background:#fff;border-bottom:1px solid var(--line)}
.appbar-in{display:flex;align-items:center;gap:22px;height:64px;padding:0 24px}
.appbar .logo{font-size:26px}
.appbar-link{font:500 13.5px var(--sans);color:var(--soft)}
.appbar-link:hover{color:var(--ink)}
.appbar .search{width:260px;padding:8px 12px;gap:8px;border-radius:10px;font-size:13.5px}
.search-ic{width:16px;height:16px;flex:none;color:var(--mut)}
.appbar .search input{font-size:13.5px}
.appburger{display:none;width:42px;height:42px;border:1px solid var(--line2);border-radius:11px;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:4px;cursor:pointer;flex:none}
.appburger i{width:18px;height:2px;background:var(--ink);border-radius:2px}
.side-scrim{position:fixed;inset:0;z-index:55;background:rgba(17,18,34,.5);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s}
body.side-open .side-scrim{opacity:1;visibility:visible}
.acctmenu{position:relative}
.acctmenu>summary{list-style:none;display:flex;align-items:center;gap:10px;cursor:pointer;padding:5px 8px;border:1px solid var(--line2);border-radius:999px}
.acctmenu>summary::-webkit-details-marker{display:none}
.acctmenu .nm{font:600 13.5px var(--sans)}
.acctmenu .chev{color:var(--soft);font-size:11px}
.acctmenu[open]>summary{border-color:var(--ink)}
.acctmenu .drop{position:absolute;right:0;top:calc(100% + 8px);width:230px;background:#fff;border:1px solid var(--line2);border-radius:14px;box-shadow:0 20px 50px -20px rgba(21,21,46,.35);padding:8px;z-index:40}
.acctmenu .dh{padding:10px 12px;border-bottom:1px solid var(--line);margin-bottom:6px}
.acctmenu .dh b{display:block;font:700 14px var(--disp)}.acctmenu .dh span{font-size:12px;color:var(--soft)}
.acctmenu .drop a,.acctmenu .drop button{display:block;width:100%;text-align:left;padding:10px 12px;border:0;background:none;border-radius:9px;font:500 14px var(--sans);color:var(--ink);cursor:pointer}
.acctmenu .drop a:hover,.acctmenu .drop button:hover{background:var(--bg2)}

/* ---------- application (dashboard) ---------- */
.app{display:grid;grid-template-columns:248px 1fr;min-height:calc(100vh - 64px)}
.side{border-right:1px solid var(--line);padding:22px 16px;position:sticky;top:64px;height:calc(100vh - 64px);align-self:start}
.side .sect{font:700 11px var(--disp);letter-spacing:.06em;text-transform:uppercase;color:var(--mut);padding:0 12px;margin:18px 0 8px}
.side .who{display:flex;align-items:center;gap:11px;padding:0 8px 18px;border-bottom:1px solid var(--line);margin-bottom:14px}
.side .who .nm{font:700 14px var(--disp)}.side .who .rl{font-size:12px;color:var(--soft)}
.side a{display:flex;align-items:center;gap:11px;padding:11px 12px;border-radius:11px;font:500 14.5px var(--sans);color:var(--soft);margin-bottom:3px}
.side a .ic{width:9px;height:9px;border-radius:3px;background:currentColor;opacity:.6}
.side a:hover{background:var(--bg2);color:var(--ink)}
.side a.on{background:var(--peri-soft);color:var(--peri-d);font-weight:600}
.side a.lock{color:var(--mut)}
.side a.lock:hover{background:transparent;color:var(--soft)}
.side a.lock .lockic{margin-left:auto;font-size:12px;opacity:.8}
.side .foot{position:absolute;bottom:20px;left:16px;right:16px}
/* fil conducteur (wizard) dans la sidebar */
.side .wizhead{display:block;background:var(--peri-soft);border:1px solid transparent;border-radius:12px;padding:12px 13px;margin-bottom:10px}
.side .wizhead:hover{background:var(--peri-soft);border-color:var(--peri-card)}
.side .wizhead.on{border-color:var(--peri)}
.side .wizhead .wh-top{display:flex;justify-content:space-between;align-items:center;font:600 13.5px var(--sans);color:var(--peri-d);margin:0}
.side .wizhead .wh-top b{font-weight:800}
.side .wizhead .wh-bar{height:6px;border-radius:99px;background:#fff;margin-top:8px;overflow:hidden}
.side .wizhead .wh-bar i{display:block;height:100%;background:var(--peri);border-radius:99px;transition:width .4s}
.side .wizsteps{display:flex;flex-direction:column;gap:1px;margin:0 0 6px;padding-left:4px;position:relative}
.side .wstep{display:flex;align-items:center;gap:10px;padding:8px 8px;border-radius:9px;font:500 13.5px var(--sans);color:var(--soft)}
.side .wstep .wdot{width:22px;height:22px;flex:none;border-radius:50%;border:1.5px solid var(--line2);background:#fff;color:var(--mut);display:flex;align-items:center;justify-content:center;font:700 11px var(--sans)}
.side .wstep.done .wdot{background:var(--ok);border-color:var(--ok);color:#fff}
.side .wstep.cur{background:var(--peri-soft)}
.side .wstep.cur .wdot{border-color:var(--peri);color:var(--peri-d)}
.side .wstep.cur .wlbl{color:var(--peri-d);font-weight:600}
.side .wstep:hover{background:var(--bg2);color:var(--ink)}
.side-logout{margin-top:2px}
.side-logout button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;padding:11px 12px;border:0;background:none;border-radius:11px;font:500 14.5px var(--sans);color:var(--soft);cursor:pointer}
.side-logout button:hover{background:var(--bg2);color:var(--ink)}
.side-logout .ic{width:9px;height:9px;border-radius:3px;background:currentColor;opacity:.6}
/* spécialités (réforme du lycée) */
.combo-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}
.combo-lbl{font:600 12px var(--sans);color:var(--mut);margin-right:4px}
.chip.combo{font-size:12.5px;padding:7px 12px}
.chip.combo:hover{border-color:var(--peri);color:var(--peri-d)}
.notetable{display:flex;flex-direction:column;gap:8px}
.nt-head,.nt-row{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:10px;align-items:center}
.nt-head{font:600 11px var(--sans);color:var(--mut);text-transform:uppercase;letter-spacing:.05em;padding:0 2px 2px}
.nt-head span{text-align:center}.nt-head span:first-child{text-align:left}
.nt-mat{font:500 13.5px var(--sans)}
.nt-row input{border:1px solid var(--line2);border-radius:9px;padding:9px 8px;font:400 14px var(--sans);text-align:center;background:#fff;width:100%}
.nt-row input:focus{outline:none;border-color:var(--peri);box-shadow:0 0 0 3px var(--peri-soft)}
@media(max-width:620px){.nt-head,.nt-row{grid-template-columns:1.3fr 1fr 1fr 1fr;gap:6px}.nt-mat{font-size:12px}.nt-row input{padding:8px 4px;font-size:13px}}
.spe-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}
.spe-tags:empty{display:none}
.spe-tag{display:inline-flex;align-items:center;gap:8px;background:var(--peri-soft);color:var(--peri-d);border:1px solid var(--peri-card);border-radius:999px;padding:7px 12px;font:600 13px var(--sans)}
.spe-tag b{cursor:pointer;font-size:14px;line-height:1;color:var(--peri);opacity:.7}
.spe-tag b:hover{opacity:1}
.spe-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.spe-chip{display:flex;align-items:center;gap:9px;border:1px solid var(--line2);border-radius:12px;padding:11px 14px;cursor:pointer;font:500 13.5px var(--sans);color:var(--ink);transition:.12s}
.spe-chip:hover{border-color:var(--peri-card);background:var(--bg2)}
.spe-chip input{position:absolute;opacity:0;width:0;height:0}
.spe-chip .tick{width:19px;height:19px;flex:none;border:1.5px solid var(--line2);border-radius:6px;display:grid;place-items:center;font-size:11px;color:transparent}
.spe-chip.on{border-color:var(--peri);background:var(--peri-soft);color:var(--peri-d);font-weight:600}
.spe-chip.on .tick{background:var(--peri);border-color:var(--peri);color:#fff}
@media(max-width:560px){.spe-grid{grid-template-columns:1fr}}
.kv{display:flex;flex-direction:column;gap:2px;padding:8px 0;border-bottom:1px solid var(--line)}
.kv span{font:500 12px var(--sans);color:var(--mut)}
.kv b{font:600 14.5px var(--sans)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:4px}
/* fiche lycée */
.posbar{position:relative;height:16px;border-radius:999px;background:var(--bg2);border:1px solid var(--line);overflow:visible}
.posfill{height:100%;border-radius:999px;background:var(--peri)}
.posmark{position:absolute;top:-4px;width:2px;height:24px;background:var(--ink)}
.posmark.nat{background:#15152e}
.posmark.dep{background:var(--warn)}
.poslgd{display:flex;flex-wrap:wrap;gap:18px;margin-top:14px;font:600 12.5px var(--sans);color:var(--soft)}
.poslgd i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:7px;vertical-align:-1px}
.poslgd .s-lyc{background:var(--peri)}.poslgd .s-nat{background:#15152e}.poslgd .s-dep{background:var(--warn)}
.facbox{display:flex;align-items:center;gap:18px;flex-wrap:wrap;background:var(--bg2);border:1px solid var(--line);border-radius:14px;padding:16px 20px;margin-top:6px}
.facbox>div{display:flex;flex-direction:column}
.facbox .k{font:500 12px var(--sans);color:var(--mut)}
.facbox b{font:800 22px var(--disp);letter-spacing:-.02em}
.facbox b.up{color:#0a7a54}
.facbox .arrow{color:var(--mut);font-size:20px}
.main{padding:34px 40px}
.main h1{font-size:30px;font-weight:800;letter-spacing:-.02em}
.main .subtitle{color:var(--soft);margin-top:6px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:26px 0}
.tile{border:1px solid var(--line2);border-radius:var(--r);padding:22px}
.tile .k{font-size:13px;color:var(--soft);font-weight:500}
.tile b{display:block;font:800 30px/1 var(--disp);margin-top:10px}
.tile.peri{background:var(--peri);color:#fff;border-color:var(--peri)}
.tile.peri .k{color:rgba(255,255,255,.8)}
.panel{border:1px solid var(--line2);border-radius:var(--r);padding:24px;margin-bottom:20px}
.panel.np{padding:0;overflow:hidden}
.panel h2{font-size:20px;font-weight:800;margin-bottom:4px}
.panel .ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:14px}
.panel .ph.pad{padding:18px 22px;margin-bottom:0;border-bottom:1px solid var(--line)}

/* ---------- KPI (modèle adon) ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:24px 0 20px}
.kpi{border:1px solid var(--line2);border-radius:var(--r);padding:20px}
.kpi-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}
.kpi-ic{width:42px;height:42px;border-radius:12px;background:var(--bg2);color:var(--ink);display:grid;place-items:center}
.kpi-dl{font:700 11.5px var(--sans);color:var(--peri-d);background:var(--peri-soft);padding:4px 9px;border-radius:999px}
.kpi-dl.up{color:#0a7a54;background:var(--ok-soft)}
.kpi-lbl{font:500 13px var(--sans);color:var(--soft)}
.kpi-val{font:800 30px/1 var(--disp);letter-spacing:-.02em;margin-top:7px;display:flex;align-items:baseline;gap:7px}
.kpi-val small{font:500 12.5px var(--sans);color:var(--mut);letter-spacing:0}

/* table + graphe dashboard */
.dashcols{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;margin-bottom:20px}
.dtable{width:100%;border-collapse:collapse;font-size:14px}
.dtable th{text-align:left;font:600 11px var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);padding:12px 22px;border-bottom:1px solid var(--line)}
.dtable td{padding:14px 22px;border-bottom:1px solid var(--line);vertical-align:middle}
.dtable tr:last-child td{border-bottom:0}
.dtable .ar{text-align:right}
.pchart{display:flex;align-items:flex-end;justify-content:space-around;gap:10px;padding:20px 22px 18px;min-height:220px}
.pcol{flex:1;display:flex;flex-direction:column;align-items:center;gap:8px;height:170px;justify-content:flex-end}
.ptrack{width:100%;max-width:46px;flex:1;background:var(--bg2);border-radius:8px;display:flex;align-items:flex-end;overflow:hidden}
.ptrack i{display:block;width:100%;border-radius:8px 8px 0 0;min-height:4px;transition:height .5s}
.pval{font:800 14px var(--disp)}
.pname{font:500 10.5px var(--sans);color:var(--soft);text-align:center;line-height:1.2;min-height:26px}

/* ---------- onboarding ---------- */
.ob-prog{height:10px;background:var(--line);border-radius:999px;overflow:hidden;margin:14px 0 8px}
.ob-prog i{display:block;height:100%;background:var(--peri);border-radius:999px;transition:width .3s}
.steplist{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.steprow{display:flex;align-items:center;gap:14px;border:1px solid var(--line2);border-radius:14px;padding:16px 18px;transition:.15s;color:var(--ink)}
.steprow:hover{border-color:var(--peri);background:var(--bg2)}
.steprow.done{opacity:.72}
.stepnum{width:34px;height:34px;border-radius:50%;background:var(--peri-soft);color:var(--peri-d);display:grid;place-items:center;font:800 15px var(--disp);flex:0 0 34px}
.steprow.done .stepnum{background:var(--ok-soft);color:#0a7a54}
.steplab{font:700 16px var(--disp);flex:1}
.stepstate{font:600 13px var(--sans);color:var(--soft)}
.steprow.next{border-color:var(--peri);box-shadow:0 0 0 3px var(--peri-soft)}
.steprow.next .stepstate{color:var(--peri-d)}

/* ---------- bilan / questionnaire ---------- */
.quiz{max-width:720px;margin:40px auto;padding:0 20px}
.quiz .prog{height:6px;background:var(--line);border-radius:999px;overflow:hidden;margin-bottom:24px}
.quiz .prog i{display:block;height:100%;background:var(--peri);border-radius:999px;transition:width .3s}
.qcard{border:1px solid var(--line2);border-radius:24px;padding:38px}
.qcard .step{font:600 12.5px var(--sans);color:var(--soft);text-transform:uppercase;letter-spacing:.06em}
.qcard .q{font:800 26px/1.3 var(--disp);letter-spacing:-.01em;margin:14px 0 26px}
.likert{display:flex;gap:10px}
.likert button{flex:1;border:1px solid var(--line2);background:#fff;border-radius:13px;padding:18px 0;font:700 16px var(--disp);cursor:pointer;transition:.12s}
.likert button:hover{border-color:var(--peri)}
.likert button.on{background:var(--peri);color:#fff;border-color:var(--peri)}
.likert label{flex:1;text-align:center;border:1px solid var(--line2);background:#fff;border-radius:13px;padding:16px 0;font:700 16px var(--disp);cursor:pointer;position:relative}
.likert label:hover{border-color:var(--peri)}
.likert label input{position:absolute;opacity:0;inset:0;cursor:pointer}
.likert label:has(input:checked){background:var(--peri);color:#fff;border-color:var(--peri)}
.qitem{border:1px solid var(--line2);border-radius:var(--r);padding:22px;margin-bottom:16px}
.qitem .q{font:700 18px/1.35 var(--disp);margin-bottom:16px}
.qitem .q .n{color:var(--peri);margin-right:8px}
.quiztop{display:flex;align-items:center;gap:16px;margin-bottom:20px}
.quiztop .prog{flex:1;margin:0}
.quiztop .cnt{font:700 13px var(--sans);color:var(--soft);white-space:nowrap;font-variant-numeric:tabular-nums}
.qcard[hidden]{display:none}
.qcard .qnum{font:700 12.5px var(--sans);color:var(--peri);text-transform:uppercase;letter-spacing:.06em}
.dimdesc{display:flex;gap:14px;padding:16px 0;border-top:1px solid var(--line)}
.dimdesc:first-child{border-top:0}
.dimdesc .code{flex:0 0 42px;height:42px;border-radius:11px;background:var(--peri-soft);color:var(--peri-d);display:grid;place-items:center;font:800 16px var(--disp)}
.dimdesc .sc{margin-left:auto;font:800 18px var(--disp)}
.timer{margin-left:auto;font:700 14px var(--sans);background:var(--ink);color:#fff;border-radius:999px;padding:7px 15px;font-variant-numeric:tabular-nums}
.timer.warn{background:#c0392b;animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.6}}
.aenonce{font:700 20px/1.4 var(--disp);margin:8px 0 18px}
.aoptions{display:flex;flex-direction:column;gap:10px}
.aoption{display:flex;align-items:center;gap:12px;border:1px solid var(--line2);border-radius:12px;padding:14px 16px;cursor:pointer;font:600 15px var(--sans);position:relative}
.aoption:hover{border-color:var(--peri)}
.aoption input{position:absolute;opacity:0;inset:0;cursor:pointer}
.aoption:has(input:checked){background:var(--peri);color:#fff;border-color:var(--peri)}
.aoption svg{display:block}
.hollandcode{display:inline-flex;gap:6px;margin-top:4px}
.hollandcode b{width:46px;height:46px;border-radius:12px;background:var(--peri);color:#fff;display:grid;place-items:center;font:800 20px var(--disp)}
.scale{display:flex;justify-content:space-between;font-size:12.5px;color:var(--soft);margin-top:10px}
.qnav{display:flex;justify-content:space-between;margin-top:28px}

/* radar + barres résultat */
.result{display:grid;grid-template-columns:300px 1fr;gap:30px;align-items:center}
.radar{width:100%;height:auto;max-width:300px}
.bars{display:flex;flex-direction:column;gap:13px}
.bar .l{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}.bar .l b{font-weight:600}
.track{height:9px;background:var(--bg2);border-radius:999px;overflow:hidden}
.track i{display:block;height:100%;border-radius:999px}
.reco{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}
.rtag{border:1px solid var(--line2);border-radius:var(--r-sm);padding:16px;display:flex;align-items:center;gap:12px}
.rtag .dot{width:12px;height:12px;border-radius:50%;flex:0 0 12px}
.rtag b{font-weight:600}.rtag span{display:block;font-size:12.5px;color:var(--soft)}

/* ---------- carte des parcours ---------- */
.mapwrap{display:grid;grid-template-columns:250px 1fr;gap:18px;border:1px solid var(--line2);border-radius:var(--r);padding:18px}
.filters h4{font:700 12px var(--disp);text-transform:uppercase;letter-spacing:.06em;color:var(--soft);margin-bottom:12px}
.fchip{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;font-size:13.5px;font-weight:500;cursor:pointer;color:var(--soft)}
.fchip i{width:10px;height:10px;border-radius:50%}
.fchip:hover{background:var(--bg2)}
.fchip.on{background:var(--peri-soft);color:var(--peri-d)}
.map{position:relative;background-color:var(--bg2);background-image:linear-gradient(0deg,transparent 27px,var(--line) 28px),linear-gradient(90deg,transparent 27px,var(--line) 28px);background-size:28px 28px;border-radius:14px;min-height:420px;overflow:hidden}
.pin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer}
.pin b{width:15px;height:15px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.28)}
.pin span{font:600 11.5px var(--sans);background:#fff;border:1px solid var(--line2);border-radius:7px;padding:2px 8px;white-space:nowrap}
.edge{position:absolute;height:2px;background:repeating-linear-gradient(90deg,var(--peri) 0 6px,transparent 6px 11px);transform-origin:left center;opacity:.6}

.flist{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}
.fcard2{border:1px solid var(--line2);border-radius:var(--r);padding:20px}
.fcard2 .c{display:inline-block;font:600 12px var(--sans);color:#fff;padding:3px 10px;border-radius:999px;margin-bottom:10px}
.fcard2 h3{font-size:18px;font-weight:800}
.fcard2 .et{color:var(--soft);font-size:13.5px;margin-top:3px}
.fcard2 .meta{display:flex;gap:14px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:12.5px;color:var(--soft)}
.fcard2 .fittop{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.fitbadge{display:inline-flex;align-items:center;gap:5px;font:700 12px var(--sans);color:#0a7a54;background:var(--ok-soft);padding:4px 10px;border-radius:999px;white-space:nowrap}
.fitbadge.mid{color:var(--warn);background:var(--warn-soft)}
.fcard2 .fmarks{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.fcard2 .acc{font:700 11.5px var(--sans);padding:3px 9px;border-radius:999px}
.fcard2 .acc.sur{color:#0a7a54;background:var(--ok-soft)}
.fcard2 .acc.cible{color:var(--peri-d);background:var(--peri-soft)}
.fcard2 .acc.amb{color:var(--warn);background:var(--warn-soft)}
.fcard2 .tx{font:600 11.5px var(--sans);color:var(--soft);background:var(--bg2);padding:3px 9px;border-radius:999px}

/* ---------- carte interactive v2 ---------- */
.carte-layout{display:grid;grid-template-columns:220px 1fr 300px;gap:18px;align-items:start}
.carte-tabs{display:inline-flex;border:1px solid var(--line2);border-radius:999px;padding:4px;margin-bottom:16px}
.carte-tabs button{border:0;background:none;padding:9px 18px;border-radius:999px;font:600 13.5px var(--sans);color:var(--soft);cursor:pointer}
.carte-tabs button.on{background:var(--ink);color:#fff}
.view{border:1px solid var(--line2);border-radius:var(--r);overflow:hidden;background:#fff}
.view.hidden{display:none}
.geomap{position:relative;background-color:var(--bg2);background-image:linear-gradient(0deg,transparent 27px,var(--line) 28px),linear-gradient(90deg,transparent 27px,var(--line) 28px);background-size:28px 28px;min-height:470px}
.gpin{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:5px;cursor:pointer}
.gpin b{width:16px;height:16px;border-radius:50%;border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3);transition:transform .15s}
.gpin:hover b,.gpin.sel b{transform:scale(1.4)}
.gpin span{font:600 11.5px var(--sans);background:#fff;border:1px solid var(--line2);border-radius:7px;padding:2px 8px;white-space:nowrap}
.gpin.dim{opacity:.22}
.geolg{position:absolute;left:16px;bottom:16px;background:#fff;border:1px solid var(--line2);border-radius:9px;padding:9px 12px;font-size:12px;display:flex;gap:16px}
.geolg i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.graphwrap{position:relative;min-height:470px;overflow:auto;padding:4px}
.graphwrap svg.edges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.gnode{position:absolute;transform:translate(-50%,-50%);width:150px;border:1.5px solid var(--ink);border-radius:12px;background:#fff;padding:9px 11px;cursor:pointer;font:600 12.5px var(--sans);line-height:1.25;box-shadow:0 6px 16px -10px rgba(0,0,0,.3);transition:box-shadow .15s}
.gnode:hover,.gnode.sel{box-shadow:0 14px 28px -12px rgba(0,0,0,.45)}
.gnode .et{font-weight:500;color:var(--soft);font-size:11px;margin-top:3px}
.gnode .c{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:middle}
.gnode.entry{background:var(--ink);color:#fff;border-color:var(--ink);width:auto;text-align:center;font:700 13px var(--disp)}
.gnode.dim{opacity:.28}
.gcol-label{position:absolute;top:6px;transform:translateX(-50%);font:700 11px var(--disp);text-transform:uppercase;letter-spacing:.05em;color:var(--mut);white-space:nowrap}
.detail{border:1px solid var(--line2);border-radius:var(--r);padding:20px;position:sticky;top:20px}
.detail .ph2{font:700 11px var(--disp);text-transform:uppercase;letter-spacing:.06em;color:var(--soft);margin-bottom:8px}
.detail h3{font-size:19px;font-weight:800;line-height:1.2}
.detail .meta{color:var(--soft);font-size:13.5px;margin-top:4px}
.detail .block{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.detail .block h4{font:700 12px var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--soft);margin-bottom:8px}
.detail .row{padding:8px 0;font-size:13.5px;border-top:1px solid var(--line)}
.detail .row:first-child{border-top:0}
.detail .row b{font-weight:600}.detail .row span{color:var(--soft)}
.detail .empty{color:var(--mut);font-size:13.5px}
.detail .chiptag{display:inline-block;font:600 11.5px var(--sans);color:#fff;padding:3px 10px;border-radius:999px;margin-bottom:10px}
@media(max-width:1000px){.carte-layout{grid-template-columns:1fr}.detail{position:static}}

/* ---------- tables (admin) ---------- */
table.tbl{width:100%;border-collapse:collapse;font-size:14px}
table.tbl th{text-align:left;font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--soft);padding:12px 14px;border-bottom:1px solid var(--line2)}
table.tbl td{padding:13px 14px;border-bottom:1px solid var(--line)}
table.tbl tr:hover td{background:var(--bg2)}
.badge{font:600 11.5px var(--sans);padding:4px 10px;border-radius:999px}
.badge.a{background:var(--ok-soft);color:#0a7a54}.badge.s{background:#f0eefe;color:var(--peri-d)}.badge.x{background:#f1f1f5;color:var(--soft)}

/* ---------- tutorat ---------- */
.tutgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.tutcard{border:1px solid var(--line2);border-radius:var(--r);padding:22px}
.tutcard .top{display:flex;align-items:center;gap:13px;margin-bottom:14px}
.tutcard .av{width:52px;height:52px;border-radius:50%;background:var(--peri-soft);color:var(--peri-d);display:grid;place-items:center;font:800 18px var(--disp)}
.tutcard .nm{font:700 16px var(--disp)}.tutcard .ro{font-size:13px;color:var(--soft)}
.tutcard .tags{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}
.tutcard .tg{background:var(--bg2);border-radius:999px;padding:5px 11px;font-size:12px;font-weight:500}
.tutcard p{color:var(--soft);font-size:14px;margin-bottom:16px}

@media(max-width:1000px){
  .app{grid-template-columns:1fr}
  /* sidebar → tiroir gauche, ouvert par le hamburger de l'appbar */
  .side{position:fixed;top:0;left:0;bottom:0;width:286px;max-width:84%;z-index:60;background:#fff;
        height:100%;overflow-y:auto;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
        box-shadow:0 30px 60px -30px rgba(21,21,46,.45);padding:22px 16px}
  body.side-open .side{transform:translateX(0)}
  .appburger{display:flex}
  .appbar .search{display:none}
  .feat,.big,.grid3,.result,.mapwrap,.footer .w{grid-template-columns:1fr}
  footer.ft .w{grid-template-columns:1fr 1fr}
  .kpis{grid-template-columns:1fr 1fr}
  .dashcols{grid-template-columns:1fr}
}
@media(max-width:620px){
  .w{padding:0 18px}
  .main{padding:22px 16px}
  .appbar-in{gap:12px;padding:0 16px}
  .acctmenu .nm{display:none}
  .hero{padding:40px 0 18px}
  .hero .lead{font-size:16px}
  .tiles{grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}
  .kpis{grid-template-columns:1fr 1fr;gap:12px}
  .reco,.flist,.tutgrid{grid-template-columns:1fr}
  footer.ft .w{grid-template-columns:1fr}
  footer.ft .w{padding:40px 22px 24px}
  .panel h2{font-size:17px}
}

/* ================= Explorateur de formations (/carte) ================= */
.xhead{background:var(--bg2);border-bottom:1px solid var(--line);padding:44px 0 34px}
.xtitle{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px}
.xtitle h1{font-size:40px;font-weight:800;margin-top:6px}
.xsearch{display:flex;align-items:center;gap:14px;background:#fff;border:1.5px solid var(--line2);border-radius:999px;padding:8px 8px 8px 24px;box-shadow:0 24px 50px -36px rgba(21,21,46,.45);transition:.15s}
.xsearch:focus-within{border-color:var(--peri);box-shadow:0 0 0 5px var(--peri-soft),0 24px 50px -36px rgba(21,21,46,.45)}
.xsearch svg{color:var(--peri);flex:none}
.xsearch input{flex:1;min-width:0;border:0;outline:0;font:500 18px var(--sans);color:var(--ink);background:none;padding:12px 0}
.xsearch input::placeholder{color:var(--mut)}
.xsearch .pill{padding:15px 28px;font-size:15px}
.xlayout{display:grid;grid-template-columns:270px 1fr;gap:34px;padding-top:30px;padding-bottom:70px;align-items:start}
.xfilters{position:sticky;top:90px;max-height:calc(100vh - 110px);overflow-y:auto;overflow-x:hidden;padding-right:10px;min-width:0}
.xfilters .xsel,.xfilters select{max-width:100%}
.xopt span{min-width:0;overflow-wrap:anywhere}
.xf-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.xf-hd b{font:800 17px var(--disp)}
.xreset{border:0;background:none;color:var(--peri-d);font:600 13px var(--sans);cursor:pointer}
.xf-blk{padding:16px 0;border-bottom:1px solid var(--line)}
.xf-blk h4{font:700 13px var(--sans);letter-spacing:.02em;margin-bottom:10px;display:flex;justify-content:space-between}
.xval{color:var(--peri-d);font-weight:700}
.xopt{display:flex;align-items:center;gap:10px;padding:6px 8px;margin:0 -8px;border-radius:9px;font-size:13.5px;color:var(--soft);cursor:pointer}
.xopt:hover{background:var(--bg2)}
.xopt input{display:none}
.xopt i{width:10px;height:10px;border-radius:50%;flex:none}
.xopt span{flex:1}
.xopt em{font-style:normal;font-size:12px;color:var(--mut)}
.xopt:has(input:checked){background:var(--peri-soft);color:var(--ink);font-weight:600}
.xopt.zero{opacity:.45}
.xsel{width:100%;border:1px solid var(--line2);border-radius:11px;padding:10px 12px;font:500 13.5px var(--sans);background:#fff;color:var(--ink)}
.xsel.sm{width:auto;padding:9px 12px;border-radius:999px}
.xseg{display:flex;gap:6px;flex-wrap:wrap}
.xseg.col{flex-direction:column}
.xseg label{cursor:pointer}
.xseg input{display:none}
.xseg span{display:inline-block;padding:7px 13px;border:1px solid var(--line2);border-radius:999px;font:600 12.5px var(--sans);color:var(--soft)}
.xseg input:checked+span{background:var(--ink);border-color:var(--ink);color:#fff}
.xrange{width:100%;accent-color:var(--peri)}
.xhint{font-size:12px;color:var(--mut);margin-top:6px;line-height:1.45}
.xperso{background:var(--peri-soft);border:0;border-radius:var(--r-sm);padding:16px;margin-top:16px}
.xperso b{color:var(--peri-d);font:700 14px var(--disp)}
.xperso p{font-size:13px;color:var(--soft);margin:6px 0 12px;line-height:1.5}
.xbar{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.xcount{font-size:15px;color:var(--soft)}.xcount b{color:var(--ink);font:800 20px var(--disp)}
.xbar-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.xfbtn{display:none}
.xview{display:flex;border:1px solid var(--line2);border-radius:999px;padding:3px;background:#fff}
.xview button{border:0;background:none;padding:7px 13px;border-radius:999px;font:600 12.5px var(--sans);color:var(--soft);cursor:pointer}
.xview button.on{background:var(--ink);color:#fff}
.xchips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.xchips:empty{display:none}
.xchip{border:1px solid var(--line2);background:#fff;border-radius:999px;padding:6px 12px;font:600 12.5px var(--sans);color:var(--ink);cursor:pointer}
.xchip span{color:var(--mut);margin-left:4px}.xchip:hover{border-color:var(--ink)}
.xbody{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}
.xlist .flist{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.xmapwrap{position:sticky;top:90px;height:calc(100vh - 120px);min-height:420px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line2)}
#xmap{width:100%;height:100%}
body[data-xview=liste] .xbody{grid-template-columns:1fr}
body[data-xview=liste] .xmapwrap{display:none}
body[data-xview=carte] .xbody{grid-template-columns:1fr}
body[data-xview=carte] .xlist{display:none}
body[data-xview=carte] .xmapwrap{position:relative;top:0;height:calc(100vh - 220px)}
.xcard{display:flex;flex-direction:column;cursor:pointer;transition:.15s;background:#fff}
.xcard:hover{border-color:var(--peri-card);box-shadow:0 18px 40px -30px rgba(21,21,46,.45)}
.xcard.on{border-color:var(--peri);box-shadow:0 0 0 3px var(--peri-soft)}
.xcard h3{font-size:16px;line-height:1.25}
.xcard .fmarks{margin-top:auto;padding-top:10px}
.xacts{display:flex;justify-content:space-between;gap:10px;margin-top:12px;font:600 12.5px var(--sans)}
.xacts button{border:0;background:none;color:var(--peri-d);font:inherit;cursor:pointer;padding:0}
.xacts a{color:var(--soft)}.xacts a:hover,.xacts button:hover{color:var(--ink)}
.xpager{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:22px;font-size:13.5px;color:var(--soft)}
.xpager:empty{display:none}
.xpager button{border:1px solid var(--line2);background:#fff;border-radius:999px;padding:9px 16px;font:600 13px var(--sans);cursor:pointer}
.xpager button:disabled{opacity:.4;cursor:default}
.xempty{grid-column:1/-1;text-align:center;padding:50px 20px;border:1px dashed var(--line2);border-radius:var(--r)}
.xempty p{color:var(--soft);margin:6px 0 16px}
.xpin i{display:block;width:14px;height:14px;border-radius:50%;border:2.5px solid #fff;box-shadow:0 2px 6px rgba(21,21,46,.35)}
.xclu{background:transparent}
.xclu div{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:var(--peri);color:#fff;font:700 13px var(--sans);box-shadow:0 0 0 6px rgba(91,88,240,.22)}
.xclu.m div{background:var(--peri-d)}.xclu.l div{background:var(--ink);box-shadow:0 0 0 7px rgba(21,21,46,.18)}
.leaflet-popup-content{font:13px/1.45 var(--sans)}.leaflet-popup-content span{color:var(--soft)}
.xscrim{display:none}
@media(max-width:1100px){.xbody{grid-template-columns:1fr}.xmapwrap{position:relative;top:0;height:420px}body[data-xview=mix] .xmapwrap{order:-1}}
@media(max-width:900px){
  .xlayout{grid-template-columns:1fr}
  .xfbtn{display:inline-flex}
  .xfilters{position:fixed;left:0;top:0;bottom:0;width:300px;max-height:none;background:#fff;z-index:80;padding:22px;transform:translateX(-105%);transition:.2s;box-shadow:20px 0 50px -30px rgba(21,21,46,.4)}
  body.xf-open .xfilters{transform:none}
  body.xf-open .xscrim{display:block;position:fixed;inset:0;background:rgba(21,21,46,.35);z-index:79}
  .xtitle{flex-direction:column;align-items:flex-start}.xtitle h1{font-size:30px}
}
@media(max-width:620px){.xsearch{padding:6px 6px 6px 16px}.xsearch input{font-size:15px}.xsearch .pill{padding:12px 16px}.xsearch svg{display:none}}

.xpop{display:inline-block;margin-top:6px;font-weight:600;color:var(--peri-d)!important}

/* ================= Fiche formation (/formation/<id>) ================= */
.fhero{background:linear-gradient(180deg,var(--bg2),#fff);border-bottom:1px solid var(--line);padding:26px 0 36px}
.crumb{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--mut);margin-bottom:22px;flex-wrap:wrap}
.crumb a{color:var(--soft)}.crumb a:hover{color:var(--peri)}.crumb b{color:var(--ink);font-weight:600}
.fhero-g{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end}
.fdom{display:inline-block;background:var(--dc);color:#fff;font:600 12.5px var(--sans);padding:4px 12px;border-radius:999px;margin-bottom:12px}
.fhero h1{font-size:38px;font-weight:800;max-width:24ch}
.fsub{font-size:16px;color:var(--soft);margin-top:10px}.fsub b{color:var(--ink)}
.ftags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.ftags span{border:1px solid var(--line2);background:#fff;border-radius:999px;padding:5px 12px;font:600 12.5px var(--sans);color:var(--soft)}
.ftags span.sel{border-color:var(--warn-soft);background:var(--warn-soft);color:var(--warn)}
.fdetail{margin-top:12px;color:var(--soft);font-size:14px;max-width:70ch}
.fhero-act{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.fbody{padding-top:30px;padding-bottom:70px}
.fpanel{border:1px solid var(--line2);border-radius:var(--r);padding:26px 28px;margin-bottom:20px;background:#fff}
.fph{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.fph h2{font-size:22px;font-weight:800}.fph .muted{font-size:13px}
.fpanel h3{font-size:15px;font-weight:700;margin-bottom:6px}
.muted.sm{font-size:12.5px;margin-bottom:12px}
.fyou{background:linear-gradient(135deg,var(--peri-soft),#fff 70%);border-color:var(--peri-card)}
.fyou-g{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ytile{background:#fff;border:1px solid var(--line2);border-radius:var(--r-sm);padding:20px}
.yk{font:700 11.5px var(--sans);letter-spacing:.06em;text-transform:uppercase;color:var(--peri-d);margin-bottom:10px}
.yv{font:800 42px/1 var(--disp);color:var(--ink)}.yv small{font-size:20px;margin-left:2px}
.ybar{height:7px;border-radius:99px;background:var(--line);margin:12px 0}.ybar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--peri),var(--mint))}
.ytile p{font-size:13px;color:var(--soft);line-height:1.5;margin-top:8px}
.ymini{font-size:12px!important;margin-top:12px!important;padding-top:10px;border-top:1px solid var(--line)}
.ygauge{--p:50;width:150px;height:150px;border-radius:50%;margin:4px auto 8px;display:grid;place-items:center;background:conic-gradient(var(--peri) calc(var(--p)*1%),var(--line) 0)}
.ygauge>div{width:118px;height:118px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.ygauge b{font:800 36px/1 var(--disp)}.ygauge b small{font-size:17px}
.ygauge span{font-size:11px;color:var(--soft);margin-top:4px;max-width:90px;line-height:1.3}
.yfac{list-style:none;font-size:12.5px;color:var(--soft);display:flex;flex-direction:column;gap:5px}
.yfac li:before{content:"·";color:var(--peri);font-weight:800;margin-right:6px}
.yacc{display:inline-block;font:800 20px var(--disp);padding:8px 16px;border-radius:999px}
.yacc.sur{color:#0a7a54;background:var(--ok-soft)}.yacc.cible{color:var(--peri-d);background:var(--peri-soft)}.yacc.amb{color:var(--warn);background:var(--warn-soft)}
.fnote{font-size:12.5px;color:var(--soft);margin-top:16px;line-height:1.55}
.fyou-lock{display:flex;justify-content:space-between;align-items:center;gap:20px}
.fyou-lock b{font:700 16px var(--disp);color:var(--peri-d)}.fyou-lock p{color:var(--soft);font-size:14px;margin-top:6px;max-width:60ch}
.kgrid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}
.kgrid.sm{grid-template-columns:repeat(4,1fr)}
.kbox{background:var(--bg2);border-radius:var(--r-sm);padding:14px 16px}
.kbox span{display:block;font-size:12px;color:var(--soft)}.kbox b{font:800 24px/1.2 var(--disp)}
.kgrid.sm .kbox b{font-size:19px}
.kbox.dark{background:var(--ink);color:#fff}.kbox.dark span{color:#c9c9de}
.fcols{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:24px}
.hrow{display:grid;grid-template-columns:1fr 120px 44px;align-items:center;gap:12px;font-size:13px;color:var(--soft);padding:6px 0}
.hrow.tight{grid-template-columns:1fr 44px;padding:0}
.htrack{height:8px;border-radius:99px;background:var(--line)}.htrack i{display:block;height:100%;border-radius:99px;background:var(--peri)}
.hrow b{color:var(--ink);text-align:right}
.ftab{width:100%;border-collapse:collapse;font-size:13.5px}
.ftab th{font:600 11.5px var(--sans);color:var(--mut);text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}
.ftab td{padding:10px 6px;border-bottom:1px solid var(--line)}
.ftab .r{text-align:right}.ftab tr.me td{background:var(--peri-soft)}.ftab tr.me td:first-child{font-weight:700}
.ftab.evo td:last-child{width:34%}
.mstack{display:flex;height:14px;border-radius:99px;overflow:hidden;background:var(--line);margin:8px 0 12px}
.mstack i,.mleg i{display:block}
.m1{background:#c9c6f8}.m2{background:#8f8cf5}.m3{background:var(--peri)}.m4{background:var(--peri-d)}.m5{background:var(--ink)}
.mleg{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--soft)}
.mleg span{display:flex;align-items:center;gap:6px}.mleg i{width:10px;height:10px;border-radius:3px}.mleg b{color:var(--ink)}
.fatt{display:flex;justify-content:space-between;align-items:center;gap:24px}
.fatt p{max-width:72ch;margin-top:6px;font-size:14px}
a.xcard{color:inherit}
.fsrc{font-size:12px;color:var(--mut);margin-top:6px}
@media(max-width:1000px){.fhero-g,.fcols,.fyou-g{grid-template-columns:1fr}.kgrid{grid-template-columns:repeat(3,1fr)}.fhero-act{flex-direction:row;flex-wrap:wrap}.fatt,.fyou-lock{flex-direction:column;align-items:flex-start}}
@media(max-width:620px){.fhero h1{font-size:27px}.kgrid,.kgrid.sm{grid-template-columns:repeat(2,1fr)}.fpanel{padding:20px 18px}.hrow{grid-template-columns:1fr 70px 40px}}

#xmap .leaflet-tile-pane{filter:grayscale(.85) brightness(1.06) contrast(.92)}
.dmoi{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:14px;align-items:center;background:var(--peri-soft);border-radius:var(--r-sm);padding:18px 20px;margin-bottom:6px}
.dmoi b{font:800 18px var(--disp);display:block}
.dkpi b{font:800 28px/1 var(--disp);color:var(--peri-d)}
.dkpi span{display:block;font-size:12px;color:var(--soft);margin-top:4px;line-height:1.35}
@media(max-width:800px){.dmoi{grid-template-columns:1fr 1fr}}

/* ================= Validité du profil ================= */
.verdict{display:flex;gap:14px;align-items:baseline;border-radius:var(--r-sm);padding:14px 18px;margin-bottom:16px;flex-wrap:wrap}
.verdict b{font:800 20px var(--disp)}.verdict span{font-size:14px}
.verdict.ok{background:var(--ok-soft);color:#0a7a54}.verdict.mid{background:var(--warn-soft);color:var(--warn)}.verdict.bad{background:#fdecea;color:#b4291d}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.vind{border:1px solid var(--line2);border-radius:var(--r-sm);padding:14px 16px}
.vind.alert{border-color:#f3c98b;background:#fffaf1}
.vk{font:600 12.5px var(--sans);color:var(--soft)}.vk em{font-style:normal;color:var(--warn);font-weight:700;margin-left:4px}
.vv{font:800 26px/1.2 var(--disp);margin:4px 0}.vv small{font-size:13px;color:var(--mut);margin-left:2px}
.vind p{font-size:12px;color:var(--soft);line-height:1.45}
.fnote{font-size:12.5px;color:var(--soft);margin-top:14px;line-height:1.55}
.pcomp{border:1px solid var(--line2);border-radius:var(--r-sm);padding:18px 20px;margin-bottom:18px}
.pc-head{display:flex;gap:20px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.pc-head b{display:block;font:800 34px/1 var(--disp)}.pc-head b small{font-size:15px;color:var(--mut)}
.pc-head p{flex:1;min-width:220px;font-size:13px;color:var(--soft)}
.pc-row{display:grid;grid-template-columns:180px 1fr 70px;gap:14px;align-items:center;padding:7px 0}
.pc-l{font-size:13.5px;font-weight:600}.pc-l em{font-style:normal;font-weight:500;font-size:11.5px;color:var(--mut)}
.pc-track{position:relative;height:8px;border-radius:99px;background:var(--line)}
.pc-track i{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;transform:translate(-50%,-50%);border:2px solid #fff;box-shadow:0 1px 4px rgba(21,21,46,.3)}
.pc-track i.moi,.pc-leg i.moi{background:var(--peri)}.pc-track i.eux,.pc-leg i.eux{background:var(--orange)}
.pc-v{font-size:12.5px;color:var(--soft);text-align:right}
.pc-leg{display:flex;gap:16px;font-size:12.5px;color:var(--soft);margin-top:8px}.pc-leg span{display:flex;align-items:center;gap:6px}.pc-leg i{width:10px;height:10px;border-radius:50%}
.newlink{background:var(--peri-soft);border-radius:var(--r-sm);padding:14px 16px;margin-bottom:16px}
.nl-row{display:flex;gap:10px;margin:8px 0 6px}.nl-row input{flex:1;border:1px solid var(--line2);border-radius:999px;padding:10px 14px;font:500 13px var(--sans);background:#fff}
.pinv{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.xlink{border:0;background:none;color:var(--mut);font:600 12.5px var(--sans);cursor:pointer}.xlink:hover{color:#b4291d}
.lkform .lk-head,.lkform .lk-row{display:grid;grid-template-columns:1fr repeat(5,64px);gap:6px;align-items:center}
.lk-head{font:600 10.5px/1.25 var(--sans);color:var(--mut);text-align:center;padding-bottom:10px;border-bottom:1px solid var(--line)}
.lk-row{border:0;border-bottom:1px solid var(--line);padding:12px 0;margin:0}
.lk-row legend{float:left;font-size:14.5px;padding-right:10px}
.lk-row label{display:flex;justify-content:center;cursor:pointer}
.lk-row input{position:absolute;opacity:0;pointer-events:none}
.lk-row label span{width:38px;height:38px;border-radius:50%;border:1.5px solid var(--line2);display:grid;place-items:center;font:700 13px var(--sans);color:var(--soft);transition:.12s}
.lk-row label:hover span{border-color:var(--peri)}
.lk-row input:checked+span{background:var(--peri);border-color:var(--peri);color:#fff}
.lk-row input:focus-visible+span{box-shadow:0 0 0 3px var(--peri-soft)}
.pvgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.pvgrid .wide{grid-column:1/-1}
.pv{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.pv form{margin:0}.cecr{display:inline-block;background:var(--peri);color:#fff;font:700 11.5px var(--sans);padding:2px 8px;border-radius:999px}
.pvform{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;margin-top:14px;align-items:end}
.pvform .field{margin-bottom:12px}.pvform .wide{grid-column:1/-1}.pvform .pill{justify-self:start}
.panel.wide .pvform{grid-template-columns:repeat(4,1fr)}
.corr{display:flex;flex-direction:column;gap:6px}
.corr-i{font-size:13.5px;padding:8px 12px;border-radius:10px;background:var(--bg2)}
.corr-i.corrobore{background:var(--ok-soft)}.corr-i.nuance{background:var(--warn-soft)}
.corr-i span{color:var(--soft)}
.bgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.bnotes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:0 12px;margin:6px 0 4px}
.bnotes .field label em{font-style:normal;font-size:11px;color:#0a7a54;background:var(--ok-soft);padding:1px 6px;border-radius:999px;margin-left:4px}
.bnotes .field.lu input{border-color:#9ddcc3}
.bl{padding:12px 0;border-bottom:1px solid var(--line)}
.bl-h{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px}.bl-h .muted{font-size:12.5px}
.bl-n{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;font-size:13px;color:var(--soft)}.bl-n b{color:var(--ink)}
.bl-a{margin-top:6px;font-size:13.5px;font-style:italic;color:var(--soft)}
@media(max-width:900px){.pvgrid,.pinv,.bgrid{grid-template-columns:1fr}.panel.wide .pvform{grid-template-columns:1fr 1fr}.pc-row{grid-template-columns:120px 1fr 60px}
  .lkform .lk-head{display:none}.lkform .lk-row{grid-template-columns:repeat(5,1fr)}.lk-row legend{float:none;grid-column:1/-1;margin-bottom:8px}}
.xzone{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:var(--peri-soft);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:12px;font-size:13.5px}
.xzone>span{flex:1;min-width:220px}.xzone em{font-style:normal;color:var(--soft);font-size:12.5px}
.xzone.off{background:var(--bg2)}
.xzt{display:flex;align-items:center;gap:6px;font:600 12.5px var(--sans);cursor:pointer}.xzt input{accent-color:var(--peri)}
.fcard2 .tx.km{background:var(--peri-soft);color:var(--peri-d)}.fcard2 .tx.km.out{background:#fdecea;color:#b4291d}
.mobgrid{display:grid;grid-template-columns:1fr 1.1fr;gap:24px;align-items:start}
#mobmap{height:340px;border-radius:var(--r-sm);border:1px solid var(--line2)}
.mobzones{display:flex;flex-direction:column;gap:6px}
.mobzones label{cursor:pointer}.mobzones input{display:none}
.mobzones span{display:block;padding:10px 14px;border:1px solid var(--line2);border-radius:11px;font:500 14px var(--sans)}
.mobzones input:checked+span{border-color:var(--peri);background:var(--peri-soft);color:var(--peri-d);font-weight:600}
.yzone{display:inline-block;font:700 12px var(--sans);padding:4px 10px;border-radius:999px;margin-top:10px}
.yzone.in{background:var(--ok-soft);color:#0a7a54}.yzone.out{background:#fdecea;color:#b4291d}
@media(max-width:900px){.mobgrid{grid-template-columns:1fr}}
.mmlist{list-style:none;columns:1;font-size:13px;color:var(--soft);max-height:260px;overflow:auto}
.mmlist li{padding:5px 0;border-bottom:1px solid var(--line)}
.precis .prgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.pr{border:1px solid var(--line2);border-radius:var(--r-sm);padding:12px 14px}.pr span{display:block;font-size:12.5px;color:var(--soft)}.pr b{font:800 22px var(--disp)}.pr b small{font-size:13px;color:var(--mut)}.pr em{display:block;font-style:normal;font-size:11.5px;color:var(--mut)}
.stgrid{display:flex;flex-direction:column;gap:4px}
.strow{display:grid;grid-template-columns:minmax(220px,1.2fr) 2fr 40px;gap:16px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}
.stl b{display:block;font-size:14.5px}.stl span{font-size:12.5px;color:var(--soft)}
.sttrack{height:10px;border-radius:99px;background:var(--line)}.sttrack i{display:block;height:100%;border-radius:99px;background:var(--peri)}
.strow.st-hi .sttrack i{background:var(--ok)}.strow.st-lo .sttrack i{background:var(--orange)}.stv{text-align:right;font:800 18px var(--disp)}
.stlist{margin:8px 0 0 18px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.aide{margin-top:18px;background:var(--info-soft);color:var(--info);border-radius:var(--r-sm);padding:12px 16px;font-size:13.5px;line-height:1.55}
@media(max-width:700px){.strow{grid-template-columns:1fr 40px}.sttrack{grid-column:1/-1;order:3}}
.tjpick{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:6px 0 18px}.tjpick label{font:600 13px var(--sans)}.tjpick select{flex:1;min-width:260px;max-width:620px;border:1px solid var(--line2);border-radius:11px;padding:11px 14px;font:500 14px var(--sans);background:#fff}
.tj{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.tjcol{background:var(--bg2);border-radius:var(--r);padding:16px}
.tjk{font:800 13px var(--disp);letter-spacing:.04em;text-transform:uppercase;color:var(--peri-d);margin-bottom:12px}
.tjk2{font:700 12px var(--sans);color:var(--soft);text-transform:uppercase;letter-spacing:.05em;margin:16px 0 8px}
.tjsub{font-size:13px;color:var(--soft);margin-bottom:10px}
.tjcard{display:block;background:#fff;border:1px solid var(--line2);border-radius:var(--r-sm);padding:14px;margin-bottom:10px;color:inherit}
a.tjcard:hover{border-color:var(--peri)}.tjcard.tj-main{border-color:var(--peri-card)}
.tjcard b{display:block;font:700 15px/1.3 var(--disp)}.tjcard>span{display:block;font-size:12.5px;color:var(--soft);margin-top:3px}
.tjpos{margin-top:12px;background:var(--peri-soft);border-radius:10px;padding:10px 12px}.tjpos em{display:block;font-style:normal;font-size:11.5px;color:var(--peri-d);font-weight:600}.tjpos strong{font:800 26px var(--disp)}.tjpos span{display:block;font-size:12px;color:var(--soft)}
.tjval{margin-top:8px;font-size:13px;color:var(--soft)}.tjval b{color:var(--ink)}
.tjtags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.tjtags .t{font:600 11.5px var(--sans);background:var(--bg2);color:var(--soft);padding:3px 9px;border-radius:999px}
.tjtags .t.t-app{background:var(--ok-soft);color:#0a7a54}.tjtags .t.int{background:var(--warn-soft);color:var(--warn)}.tjtags .t.val{background:var(--peri-soft);color:var(--peri-d)}
.tjvig{margin-top:10px;font-size:12.5px;color:var(--warn);background:#fffaf1;border-radius:10px;padding:10px}
.tjnote{font-size:11.5px;color:var(--mut);margin-top:6px;line-height:1.5}
.tjpas{background:#fff;border:1px solid var(--line2);border-radius:var(--r-sm);padding:12px 14px;margin-bottom:8px;font-size:13px}.tjpas b{display:block;font-size:14px}.tjpas span{display:block;color:var(--peri-d);font-weight:600;font-size:12.5px;margin:2px 0 4px}.tjpas em{display:block;font-style:normal;color:var(--soft);line-height:1.45}.tjpas small{display:block;margin-top:5px;color:var(--warn);font-size:11.5px}.tjpas small.t-app{color:#0a7a54}.tjpas a{display:inline-block;margin-top:6px;font-weight:600;color:var(--peri-d);font-size:12.5px}
.tjpas.dim{opacity:.72}
.tjfin{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:10px}
.eqgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px}.eqgrid b{font-size:14px}.eqgrid p{font-size:13px;color:var(--soft);margin-top:4px;line-height:1.5}
@media(max-width:1100px){.tj{grid-template-columns:1fr}.tjfin{grid-template-columns:1fr}}
.fval{display:grid;grid-template-columns:140px 1fr 1fr;gap:24px;align-items:center}.fval-k b{font:800 52px/1 var(--disp)}.fval-k small{font-size:18px;color:var(--mut)}.fval-t{display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.fafter{background:linear-gradient(135deg,#fff,var(--peri-soft));border-color:var(--peri-card)}.fafter-g{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.fafter-g>div{background:#fff;border:1px solid var(--line2);border-radius:var(--r-sm);padding:14px}.fafter-g b{display:block;font:800 26px var(--disp)}.fafter-g p{font-size:13px;color:var(--soft);margin-top:4px}
@media(max-width:900px){.fval,.fafter-g{grid-template-columns:1fr}}

/* ================= Barre de défilement Arthur (tout le site) ================= */
html{scrollbar-color:#b9b6f3 transparent;scrollbar-width:thin}
*{scrollbar-color:#c9c6f8 transparent;scrollbar-width:thin}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:#c9c6f8;border-radius:999px;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:#5b58f0;border:3px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}
.xfilters::-webkit-scrollbar{width:6px}
.xfilters::-webkit-scrollbar-thumb{border:0;background:#dcdaf8}
.xfilters:hover::-webkit-scrollbar-thumb{background:#5b58f0}

/* avertissement « score de complémentarité » (explorateur) */
.xscore{background:var(--ink);color:#fff}
.xscore.incomplet{background:#3b2a07;background:linear-gradient(90deg,#4a3307,#5b3e08)}
.xscore-in{display:flex;align-items:center;gap:16px;padding-top:14px;padding-bottom:14px}
.xscore-ic{width:38px;height:38px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--peri);font-size:16px}
.xscore.incomplet .xscore-ic{background:#d99412}
.xscore-t{flex:1;min-width:0}.xscore-t b{display:block;font:700 15px var(--disp)}.xscore-t span{display:block;font-size:13.5px;color:#c9c9de;margin-top:2px}
.xscore-a{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.xscore .pill.lt{background:transparent;color:#fff;border-color:rgba(255,255,255,.35)}.xscore .pill.lt:hover{background:rgba(255,255,255,.08)}
.xscore-x{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;cursor:pointer;font-size:13px}
.xscore-x:hover{background:rgba(255,255,255,.12)}
.xscore-chip{border:1px solid var(--peri-card);background:var(--peri-soft);color:var(--peri-d);border-radius:999px;padding:8px 13px;font:600 12.5px var(--sans);cursor:pointer}
.xperso.top{margin:0 0 16px;background:var(--ink);color:#fff;border-radius:var(--r-sm);padding:18px}
.xperso.top b{color:#fff;font:800 15px var(--disp)}.xperso.top p{color:#c9c9de}
.xperso.top.warn{background:#fff7e6;color:var(--ink);border:1px solid #f3c98b}.xperso.top.warn b{color:var(--warn)}.xperso.top.warn p{color:var(--soft)}
.xprog{height:6px;border-radius:99px;background:#f3dfb3;margin:4px 0 4px}.xprog i{display:block;height:100%;border-radius:99px;background:#d99412}
.xprog-l{display:block;font-size:12px;color:var(--soft);margin-bottom:12px}
@media(max-width:760px){.xscore-in{flex-wrap:wrap}.xscore-a{width:100%}}

/* ===== accueil : alternance des fonds de section ===== */
.lsec.tone-gris{background:var(--bg2)}
.lsec.tone-peri{background:var(--peri-soft)}
.lsec.tone-ink{background:var(--ink);color:#fff}
.lsec[class*="tone-"],.lsec[class*="tone-"]+.lsec{border-top:0}
.tone-peri .lshead .big{color:var(--peri)}
.tone-peri .lpsup,.tone-peri .lmap,.tone-peri .lbudget{background:#fff;border-color:var(--peri-card)}
.tone-gris .lmap,.tone-gris .lpsup,.tone-gris .lbudget{background:#fff}
.tone-ink .lshead .big{color:var(--peri)}
.tone-ink .lshead p{color:#b9b9cf}.tone-ink .lshead .run{color:#8f8fac}
.tone-ink .mlist li{border-top-color:rgba(255,255,255,.12)}
.tone-ink .mlist .mi{background:rgba(255,255,255,.08);color:#c9c6f8}
.tone-ink .mtag{background:rgba(91,88,240,.28);color:#dcdaff}
.tone-ink .mlist p{color:#b9b9cf}
.tone-ink .qbox{background:#1f1f3d;border-color:rgba(255,255,255,.1)}
.tone-ink .qbox .pk,.tone-ink .qscale{color:#8f8fac}
.tone-ink .qprog{background:rgba(255,255,255,.12)}
.tone-ink .likert b{background:transparent;color:#fff;border-color:rgba(255,255,255,.22)}
.tone-ink .likert b.on{background:var(--peri);border-color:var(--peri)}

/* fonds pleine largeur (les sections sont dans le conteneur .w) */
.lsec.tone-gris{box-shadow:0 0 0 100vmax var(--bg2);clip-path:inset(0 -100vmax)}
.lsec.tone-peri{box-shadow:0 0 0 100vmax var(--peri-soft);clip-path:inset(0 -100vmax)}
.lsec.tone-ink{box-shadow:0 0 0 100vmax var(--ink);clip-path:inset(0 -100vmax)}

/* mini-carte de l'accueil : traits en SVG dans le même repère (%) que les pastilles,
   pastille centrée exactement sur sa coordonnée, étiquette posée dessous */
.ledges{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.ledges line{stroke:#a9a6f5;stroke-width:2.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.lmapfig .ledge{display:none}
.lmapfig .lpin{width:14px;height:14px;display:block;transform:translate(-50%,-50%)}
.lmapfig .lpin b{display:block;width:14px;height:14px;box-sizing:border-box;position:relative;z-index:1}
.lmapfig .lpin span{position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%)}

/* mini-carte : types de trajets + annotations */
.ledges line.e-main{stroke:#5b58f0}
.ledges line.e-b{stroke:#8a8aa3;stroke-dasharray:5 5}
.ledges line.e-ast{stroke:#c58912}
.ledges line.e-app{stroke:#0e8a66;stroke-width:3.5}
.lmapfig .lpin em{position:absolute;top:calc(100% + 30px);left:50%;transform:translateX(-50%);white-space:nowrap;font:500 10px var(--sans);color:var(--soft);font-style:normal}
.lel{position:absolute;transform:translate(-50%,-50%);font:600 10px var(--sans);color:#5b58f0;background:var(--bg2);padding:1px 6px;border-radius:5px;white-space:nowrap;pointer-events:none}
.lel-b{color:#6f6f88}.lel-ast{color:#a06f0c}.lel-app{color:#0e8a66}
.lmaplg i.lk{width:18px;height:0;border-radius:0;border-top:3px solid #5b58f0;background:none}
.lmaplg i.lk-b{border-top:2px dashed #8a8aa3}.lmaplg i.lk-ast{border-top-color:#c58912}.lmaplg i.lk-app{border-top-color:#0e8a66}
@media(max-width:760px){.lel,.lmapfig .lpin em{display:none}.lmaplg{flex-wrap:wrap;gap:8px 12px;right:16px}}

/* designer : données du profil utilisées, avertissement, modale, étapes enrichies */
.pdata{border:1px solid var(--peri-card);background:var(--peri-soft);border-radius:var(--r-sm);padding:16px 18px;margin:0 0 16px}
.pdata-h b{display:block;font:800 14.5px var(--disp);color:var(--peri-d)}.pdata-h span{display:block;font-size:13px;color:var(--soft);margin-top:3px}
.pdata-g{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-top:12px}
.pdata-g a{background:#fff;border:1px solid var(--line2);border-radius:9px;padding:8px 11px;display:block;color:var(--ink);text-decoration:none}
.pdata-g a:hover{border-color:var(--peri)}
.pdata-g em{display:block;font-style:normal;font-size:11px;color:var(--soft);text-transform:uppercase;letter-spacing:.04em}
.pdata-g b{display:block;font-size:13px;font-weight:600;margin-top:2px}
.pdata-g a.manque{border-style:dashed}.pdata-g a.manque b{color:var(--warn)}
.pwarn{margin-bottom:16px}.pwarn-a{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:6px}
.pwarn .lnk{color:#c9c9de}.pwarn.warn .lnk{color:var(--peri-d)}
.pgen{margin-top:18px;background:#fff7e6;border:1px solid #f3c98b;border-radius:var(--r-sm);padding:12px 16px;font-size:13.5px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.pgen b{color:var(--warn)}
.fitbadge.none{background:var(--bg2);color:var(--soft)}
a.ftile{color:inherit;text-decoration:none}a.ftile:hover{border-color:var(--peri)}
.ftile.vig{border-color:#f3c98b}.ftile.hz{border-style:dashed}
.farrow.farrow-app{color:#0e8a66;font-weight:800}
.fstats{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.fstats i{font-style:normal;font-size:11px;font-weight:600;background:var(--bg2);border-radius:6px;padding:2px 6px;color:var(--soft)}
.fstats i.fi{background:var(--peri-soft);color:var(--peri-d)}.fstats i.ap{background:var(--ok-soft);color:#0a7a54}
.fstats i.vg,.fstats i.lo{background:var(--warn-soft);color:var(--warn)}
.scwarn{margin:10px 0 0;padding:10px 14px 10px 28px;background:#fff7e6;border-radius:9px;font-size:12.5px;color:var(--ink)}
.scfoot b.net-app{color:#0a7a54}
.pmodal{position:fixed;inset:0;z-index:200;background:rgba(21,21,46,.55);display:grid;place-items:center;padding:16px}
.pmodal[hidden]{display:none}
body.pmodal-on{overflow:hidden}
.pmodal-c{position:relative;background:#fff;border-radius:var(--r);max-width:520px;width:100%;padding:28px 28px 22px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.pmodal-c h3{font:800 20px var(--disp);margin:12px 0 8px}.pmodal-c p{font-size:14px;color:var(--soft);line-height:1.55}
.pmodal-c .xscore-ic{color:#fff}
.pmodal-x{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;border:1px solid var(--line2);background:#fff;cursor:pointer}
.pmodal-a{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.pmodal-go{display:block;margin-top:14px;background:none;border:0;padding:0;color:var(--soft);text-decoration:underline;cursor:pointer;font:500 13px var(--sans)}
.pmodal-n{display:flex;gap:7px;align-items:center;margin-top:10px;font-size:12px;color:var(--soft)}

/* bandeau : sources des données (logos cliquables, sans laisser croire à un partenariat) */
.lsrc{display:grid;grid-template-columns:220px 1fr;gap:24px;align-items:center;padding-top:6px;padding-bottom:26px}
.lsrc-h b{display:block;font:700 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#a9a6f5}
.lsrc-h span{display:block;font-size:11.5px;color:#8f8fac;line-height:1.5;margin-top:6px}
.lsrc-g{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.lsrc-g a{background:#fff;border-radius:10px;padding:12px 12px 10px;display:flex;flex-direction:column;justify-content:space-between;gap:8px;min-height:78px;color:var(--ink);text-decoration:none;transition:transform .15s,box-shadow .15s}
.lsrc-g a:hover{transform:translateY(-2px);box-shadow:0 6px 18px rgba(0,0,0,.25)}
.lsrc-g img{height:26px;width:auto;max-width:100%;object-fit:contain;object-position:left center}
.lsrc-g a b{font:800 14px/1.15 var(--disp);color:#000091}
.lsrc-g a span{font:500 10.5px/1.35 var(--sans);color:var(--soft);margin:0}
@media(max-width:1000px){.lsrc{grid-template-columns:1fr}.lsrc-g{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.lsrc-g{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* auth : logo centré sur le formulaire, plus grand, violet ; le formulaire long
   (inscription) défile sous « Retour au site » sans jamais le chevaucher */
.authpanel{flex-direction:column;align-items:stretch;justify-content:flex-start;padding:84px 40px 40px}
.authpanel>.authform{margin:auto}
.authlogo{display:block;width:max-content;margin:0 auto 30px;font:800 48px/1 var(--disp);letter-spacing:-.05em;color:var(--peri)}
.authlogo:hover{color:var(--peri-d)}
@media(max-width:860px){.authpanel{padding:72px 22px 40px}.authlogo{font-size:40px;margin-bottom:24px}}

/* ===================== espace de passation (tests en série, wizard verrouillé) ===================== */
.pzbar{position:sticky;top:0;z-index:1100;background:linear-gradient(100deg,#4a47d6 0%,#5b58f0 55%,#6b68f5 100%);color:#fff;box-shadow:0 2px 14px rgba(43,40,160,.25)}
.pzbar-in{display:flex;align-items:center;gap:22px;height:64px;padding:0 28px}
.pz-logo{font:800 26px/1 var(--disp);letter-spacing:-.05em;color:#fff;text-decoration:none;flex:none}
.pz-steps{display:flex;align-items:center;gap:6px;list-style:none;margin:0 auto;padding:0;min-width:0;overflow-x:auto;scrollbar-width:none}
.pz-steps::-webkit-scrollbar{display:none}
.pz-steps li{display:flex;align-items:center;flex:none}
.pz-steps li+li::before{content:"";width:18px;height:2px;background:rgba(255,255,255,.28);margin-right:6px;border-radius:2px}
.pz-steps li.done+li::before{background:rgba(255,255,255,.75)}
.pz-steps a{display:flex;align-items:center;gap:7px;color:rgba(255,255,255,.72);text-decoration:none;padding:6px 10px 6px 6px;border-radius:999px;font:600 12.5px var(--sans);white-space:nowrap}
.pz-steps a:hover{background:rgba(255,255,255,.1);color:#fff}
.pz-steps .d{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font:700 11px var(--sans);border:1.5px solid rgba(255,255,255,.5)}
.pz-steps li.done .d{background:#fff;color:#4a47d6;border-color:#fff}
.pz-steps li.cur a{background:#fff;color:#2f2ca8}
.pz-steps li.cur .d{background:#5b58f0;color:#fff;border-color:#5b58f0}
.pz-right{display:flex;align-items:center;gap:14px;flex:none}
.pz-count{font:500 13px var(--sans);color:rgba(255,255,255,.8)}.pz-count b{font:800 16px var(--disp);color:#fff}
.pz-menu{position:relative}
.pz-menu summary{list-style:none;cursor:pointer;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;font:700 14px var(--sans)}
.pz-menu summary::-webkit-details-marker{display:none}
.pz-menu .drop{position:absolute;right:0;top:46px;background:#fff;color:var(--ink);border-radius:12px;box-shadow:0 12px 34px rgba(0,0,0,.2);padding:6px;min-width:220px}
.pz-menu .drop a,.pz-menu .drop button{display:block;width:100%;text-align:left;padding:9px 12px;border-radius:8px;font:500 14px var(--sans);color:var(--ink);background:none;border:0;cursor:pointer;text-decoration:none}
.pz-menu .drop a:hover,.pz-menu .drop button:hover{background:var(--bg2)}
.pz-track{height:4px;background:rgba(255,255,255,.18)}.pz-track i{display:block;height:100%;background:#fff;border-radius:0 4px 4px 0;transition:width .4s}
body:has(.pzbar){background:var(--bg2)}
.pz{min-height:calc(100vh - 68px);padding:40px 20px 30px}
.pz-in{max-width:820px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:34px 40px;box-shadow:0 10px 40px rgba(21,21,46,.05)}
.pz-in h1{font:800 30px/1.1 var(--disp);letter-spacing:-.03em}
.pz-in .subtitle{color:var(--soft);margin-top:8px}
.pz-lock{max-width:820px;margin:16px auto 0;text-align:center;font-size:12.5px;color:var(--soft)}
/* chrono : toute la barre */
.pztimer{position:relative;height:68px;overflow:hidden;background:#2f2ca8}
.pzt-fill{position:absolute;inset:0 auto 0 0;width:100%;background:linear-gradient(100deg,#4a47d6,#6b68f5);transition:width 1s linear,background .4s}
.pztimer.warn .pzt-fill{background:linear-gradient(100deg,#c97a0c,#e39a1d)}
.pztimer.crit .pzt-fill{background:linear-gradient(100deg,#c0353f,#e0525b)}
.pztimer.crit .pzt-t{animation:pzpulse 1s infinite}
@keyframes pzpulse{50%{opacity:.55}}
.pzt-in{position:relative;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:100%;padding:0 28px;color:#fff}
.pzt-l{font:500 13.5px var(--sans);color:rgba(255,255,255,.85)}.pzt-l b{color:#fff}
.pzt-t{font:800 34px/1 var(--disp);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pzt-r{justify-self:end;font:500 13.5px var(--sans);color:rgba(255,255,255,.85)}.pzt-r b{color:#fff}
.pz .quiztop .timer{display:none}
@media(max-width:860px){.pz-steps .l{display:none}.pz-steps li.cur .l{display:inline}.pz-in{padding:24px 20px}.pzbar-in{padding:0 16px;gap:12px}.pzt-in{padding:0 16px}.pzt-l{display:none}.pzt-in{grid-template-columns:auto 1fr}.pzt-t{font-size:28px}}
.apthist{display:flex;align-items:flex-end;gap:10px;height:150px;margin-top:14px;padding-top:24px}
.apthist div{flex:1;max-width:60px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;position:relative}
.apthist i{display:block;width:100%;background:var(--peri-soft);border:1px solid var(--peri-card);border-radius:6px 6px 0 0;order:2}
.apthist div:first-child i{background:var(--peri);border-color:var(--peri)}
.apthist b{font:800 13px var(--disp);order:1;margin-bottom:4px}.apthist span{order:3;font-size:10px;color:var(--soft);margin-top:4px}
.qsave{font-size:12px;color:#0a7a54;margin-right:12px}.qlater{font-size:13px;margin-right:14px}
.pz-steps{flex:1 1 0;justify-content:safe center}
@media(max-width:860px){.pz-steps{justify-content:flex-start}}
.qnav{flex-wrap:wrap;row-gap:10px}
.qnav [hidden]{display:none!important}

.blu{margin:6px 0 16px;border:1px solid var(--line2);border-radius:var(--r-sm);padding:10px 14px}
.blu summary{cursor:pointer;font:600 13.5px var(--sans);color:var(--peri-d)}
.blu-t{width:100%;border-collapse:collapse;margin-top:10px;font-size:13px}
.blu-t th{text-align:left;font:600 11px var(--sans);text-transform:uppercase;letter-spacing:.04em;color:var(--soft);padding:6px 8px;border-bottom:1px solid var(--line2)}
.blu-t td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
.blu-t td span{display:block;font-size:11.5px;color:var(--soft)}
.blu-t td.n{font:700 14px var(--disp);white-space:nowrap}.blu-t td.mu{color:var(--soft);font-weight:500}
.blu-t td.ap{color:var(--soft);font-size:12.5px}
@media(max-width:700px){.blu-t td.ap{display:none}}

/* rythme de réponse : avis discret, relecture */
.qtoast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:1200;max-width:560px;width:calc(100% - 32px);background:var(--ink);color:#fff;border-radius:12px;padding:12px 16px;font-size:13.5px;box-shadow:0 12px 34px rgba(0,0,0,.25)}
.qtoast[hidden]{display:none}
.relire .rl{border:1px solid var(--line2);border-radius:var(--r-sm);padding:16px 18px;margin-bottom:12px}
.relire .rl .q{font:600 16px/1.4 var(--disp)}

/* ===================== coquille de l'application (refonte 2026-10) ===================== */
.shell{display:grid;grid-template-columns:264px minmax(0,1fr);min-height:100vh;background:#f5f5f9}
.shell .side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--line);padding:0;overflow:hidden}
.side-top{display:flex;align-items:center;justify-content:space-between;height:72px;padding:0 22px;border-bottom:1px solid var(--line);flex:none}
.side-logo{display:flex;align-items:center;gap:10px;font:800 24px/1 var(--disp);letter-spacing:-.05em;color:var(--ink)}
.side-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(140deg,#6b68f5,#4a47d6);color:#fff;display:grid;place-items:center;font:800 19px/1 var(--disp);letter-spacing:0;box-shadow:0 6px 16px -6px rgba(74,71,214,.6)}
.side-nav{flex:1;overflow-y:auto;padding:8px 14px 16px;scrollbar-width:thin}
.shell .side .sect{font:600 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--mut);padding:0 10px;margin:20px 0 6px}
.shell .side-nav a{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:10px;font:500 14px var(--sans);color:#4b4b60;margin-bottom:2px;transition:background .12s,color .12s}
.shell .side-nav a .sic{width:19px;height:19px;flex:none;color:#8d8da2}
.shell .side-nav a:hover{background:#f4f4f9;color:var(--ink)}
.shell .side-nav a:hover .sic{color:var(--ink)}
.shell .side-nav a.on{background:var(--peri-soft);color:var(--peri-d);font-weight:600;box-shadow:inset 0 0 0 1px #dcdafc}
.shell .side-nav a.on .sic{color:var(--peri)}
.side-user{position:relative;flex:none;margin:12px 14px 16px;border:1px solid var(--line2);border-radius:14px;background:#fff}
.side-user>summary{list-style:none;display:flex;align-items:center;gap:11px;padding:10px 12px;cursor:pointer}
.side-user>summary::-webkit-details-marker{display:none}
.side-user .avatar{width:36px;height:36px;flex:none}
.su-t{flex:1;min-width:0}.su-t b{display:block;font:700 14px var(--disp);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.su-t em{display:block;font-style:normal;font-size:12px;color:var(--soft)}
.su-c{color:var(--mut);transition:transform .2s}.side-user[open] .su-c{transform:rotate(180deg)}
.su-drop{position:absolute;left:0;right:0;bottom:calc(100% + 8px);background:#fff;border:1px solid var(--line2);border-radius:14px;box-shadow:0 18px 40px -16px rgba(21,21,46,.3);padding:6px}
.su-drop a,.su-drop button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;background:none;border-radius:9px;font:500 14px var(--sans);color:var(--ink);cursor:pointer;text-align:left}
.su-drop a:hover,.su-drop button:hover{background:#f4f4f9}
.su-drop .sic{width:17px;height:17px;color:var(--mut)}
.shell-main{min-width:0;display:flex;flex-direction:column}
.topb{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;height:72px;padding:0 36px;background:rgba(245,245,249,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.topb .sp{flex:1}
.topb-logo{display:none;font:800 22px var(--disp);letter-spacing:-.05em}
.topb .search{width:340px;padding:9px 14px;gap:9px;border-radius:11px;background:#fff;border:1px solid var(--line2);font-size:14px}
.topb .search input{font-size:14px}
.shell .main{padding:30px 36px 48px;max-width:1440px;width:100%}
@media(max-width:1000px){
  .shell{grid-template-columns:1fr}
  .shell .side{position:fixed;top:0;left:0;bottom:0;width:286px;max-width:84%;height:100%;z-index:60;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:0 30px 60px -30px rgba(21,21,46,.45)}
  body.side-open .shell .side{transform:translateX(0)}
  .topb{padding:0 18px}.topb-logo{display:block}
  .topb .search{width:auto;flex:1;max-width:340px}
  .shell .main{padding:22px 18px 40px}
}
@media(max-width:560px){.topb .search{display:none}}

/* ===================== tableau de bord (refonte 2026-10) ===================== */
.dhd{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.dhd h1{font:800 28px/1.15 var(--disp);letter-spacing:-.03em}
.dhd p{color:var(--soft);margin-top:4px}
.dhd-a{display:flex;gap:10px;flex-wrap:wrap}
.dhd-a .pill{padding:11px 20px}
.dcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 24px;box-shadow:0 1px 2px rgba(21,21,46,.03)}
.dcard+.dcard,.dg+.dcard,.dcard.dtab{margin-top:20px}
.dcard-h{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}
.dcard-h h2{font:700 17px var(--disp);letter-spacing:-.01em}
.dcard-h p{font-size:13px;color:var(--soft);margin-top:3px}
.dcard-h .lnk{font:600 13px var(--sans);color:var(--peri-d);white-space:nowrap}
/* indicateurs */
.dk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.dkc{display:block;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px 20px;transition:border-color .15s,box-shadow .15s}
.dkc:hover{border-color:var(--peri-card);box-shadow:0 8px 24px -14px rgba(74,71,214,.35)}
.dkc-h{display:flex;align-items:center;gap:10px;font:500 13px var(--sans);color:var(--soft)}
.dkc-i{width:32px;height:32px;border-radius:9px;background:var(--peri-soft);color:var(--peri);display:grid;place-items:center;flex:none}
.dkc-i svg{width:17px;height:17px}
.dkc-v{font:800 30px/1 var(--disp);letter-spacing:-.03em;margin:16px 0 6px}
.dkc-v small{font:600 14px var(--sans);color:var(--mut);margin-left:3px}
.dkc-v.ok{color:#0a8a5f}.dkc-v.mid{color:var(--warn)}.dkc-v.bad{color:#c0353f}
.dkc-s{font-size:12.5px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* domaines + colonne de droite */
.dg{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:20px;align-items:start}
.ddom{display:flex;flex-direction:column;gap:14px}
.ddom-r{display:grid;grid-template-columns:minmax(150px,220px) 1fr 34px;align-items:center;gap:14px}
.ddom-l{display:flex;align-items:center;gap:9px;font:500 14px var(--sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ddom-l i{width:9px;height:9px;border-radius:50%;flex:none}
.ddom-t{height:10px;border-radius:99px;background:#f0f0f6;overflow:hidden}
.ddom-t b{display:block;height:100%;border-radius:99px;opacity:.9}
.ddom-v{font:700 14px var(--disp);text-align:right}
.dside{display:flex;flex-direction:column;gap:20px}
.dins{position:relative;overflow:hidden;border-radius:16px;padding:22px 22px 20px;color:#fff;background:linear-gradient(135deg,#4a47d6 0%,#5b58f0 55%,#7c79ff 100%);box-shadow:0 16px 36px -18px rgba(74,71,214,.7)}
.dins-k{font:600 11.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.dins h3{font:800 22px/1.15 var(--disp);margin:8px 0 6px;max-width:80%}
.dins p{font-size:13.5px;color:rgba(255,255,255,.88);max-width:78%}
.dins-b{display:inline-block;margin-top:16px;background:#fff;color:var(--peri-d);font:600 13px var(--sans);padding:9px 15px;border-radius:10px}
.dins-g{position:absolute;right:18px;bottom:16px;width:62px;fill:rgba(255,255,255,.28)}
.dbil .dcard-h{margin-bottom:8px}
.dbil-r{display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}
.dbil-r:first-of-type{border-top:0}
.dbil-r em{font-style:normal;color:var(--mut);font-size:12.5px;white-space:nowrap}
.dbil-r:hover span{color:var(--peri-d)}
/* tableau des formations */
.dtab{padding-bottom:10px}
.dtool{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.dseg{display:inline-flex;background:#f3f3f8;border-radius:11px;padding:4px;gap:2px}
.dseg button{border:0;background:none;padding:7px 14px;border-radius:8px;font:500 13px var(--sans);color:var(--soft);cursor:pointer}
.dseg button.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 3px rgba(21,21,46,.1)}
.dsearch{display:flex;align-items:center;gap:8px;border:1px solid var(--line2);border-radius:10px;padding:7px 12px;width:240px;background:#fff}
.dsearch svg{width:16px;height:16px;color:var(--mut);flex:none}
.dsearch input{border:0;outline:0;font:400 13.5px var(--sans);width:100%;background:none}
.dtw{overflow-x:auto;margin:0 -24px;padding:0 24px}
.dt{width:100%;border-collapse:collapse;font-size:13.5px;min-width:820px}
.dt th{text-align:left;font:500 12px var(--sans);color:var(--mut);padding:10px 12px;background:#fafafd;border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap}
.dt th:first-child{border-radius:0}
.dt td{padding:13px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
.dt tbody tr{cursor:pointer;transition:background .12s}
.dt tbody tr:hover{background:#fafaff}
.dt tbody tr[hidden]{display:none}
.dt td b{display:block;font-weight:600;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dt td span{font-size:12.5px;color:var(--soft)}
.dt td>span:not([class]){display:block;max-width:340px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dt .r{text-align:right}.dt .mu{color:var(--soft)}
.dchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line2);border-radius:8px;padding:3px 9px;font:500 12px var(--sans);color:var(--ink)!important;white-space:nowrap}
.dchip i{width:7px;height:7px;border-radius:50%}
.dacc{display:inline-block;border-radius:7px;padding:3px 9px;font:600 12px var(--sans)!important;white-space:nowrap}
.dacc.sur{background:var(--ok-soft);color:#0a7a54!important}.dacc.cible{background:var(--peri-soft);color:var(--peri-d)!important}.dacc.amb{background:var(--warn-soft);color:var(--warn)!important}
.dfit{display:flex;align-items:center;gap:9px;font:700 13px var(--disp);color:var(--ink)!important;white-space:nowrap}
.dfit-t{width:70px;height:6px;border-radius:99px;background:#eeeef5;overflow:hidden;display:block}
.dfit-t b{display:block!important;height:100%;background:var(--peri);border-radius:99px;max-width:none!important}
.dgo{width:16px;height:16px;color:var(--mut)}
.dtab-f{display:flex;justify-content:space-between;align-items:center;padding:12px 0 4px;font-size:13px;color:var(--soft)}
.dtab-f .lnk{font-weight:600;color:var(--peri-d)}
/* actions */
.dact{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.dact-c{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--line);border-radius:13px;padding:14px;transition:border-color .15s,background .15s}
.dact-c:hover{border-color:var(--peri-card);background:#fbfbff}
.dact-i{width:26px;height:26px;flex:none;border-radius:50%;border:1.5px solid var(--line2);display:grid;place-items:center;font:700 12px var(--sans);color:var(--mut)}
.dact-c.fait .dact-i{background:var(--ok);border-color:var(--ok);color:#fff}
.dact-t b{display:block;font:600 13.5px/1.3 var(--sans)}
.dact-t em{display:block;font-style:normal;font-size:12px;color:var(--soft);margin-top:3px}
@media(max-width:1200px){.dact{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.dk{grid-template-columns:repeat(2,minmax(0,1fr))}.dg{grid-template-columns:1fr}}
@media(max-width:620px){.dk{grid-template-columns:1fr}.dact{grid-template-columns:1fr}.ddom-r{grid-template-columns:120px 1fr 30px}.dsearch{width:100%}.dhd h1{font-size:24px}}
.shell .side .side-logo{display:flex;align-items:center;gap:10px;padding:0;margin:0;border-radius:0;font:800 25px/1 var(--disp);letter-spacing:-.05em;color:var(--ink);background:none}
.dt{table-layout:fixed}
.dt td b,.dt td>span:not([class]){max-width:none}
.dt td.dt-v{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dt td .dchip{max-width:100%;overflow:hidden;text-overflow:ellipsis}
.dchip i{flex:none}
.dg{grid-template-areas:"dom side" "act side"}
.dg>.dcard:first-child{grid-area:dom}.dg>.dact-card{grid-area:act;margin-top:0}.dg>.dside{grid-area:side}
.dact-card .dact{grid-template-columns:repeat(2,minmax(0,1fr))}
.dact-card .dact-c:last-child:nth-child(odd){grid-column:1/-1}
@media(max-width:1100px){.dg{grid-template-areas:"dom" "side" "act"}}
@media(max-width:620px){.dact-card .dact{grid-template-columns:1fr}}

/* lisibilité des pages internes : retours visibles, panneaux sur fond blanc, respiration */
.backbtn{display:inline-flex;align-items:center;gap:8px;padding:8px 15px 8px 12px;border:1.5px solid var(--peri-card);border-radius:999px;background:#fff;color:var(--peri-d);font:600 13.5px var(--sans);margin-bottom:14px;transition:background .15s,border-color .15s,color .15s}
.backbtn svg{width:16px;height:16px}
.backbtn:hover{background:var(--peri);border-color:var(--peri);color:#fff}
.backbtn+h1{margin-top:0!important}
.shell .panel{background:#fff;border-color:var(--line)}
.shell .main>.panel,.shell .main>.precis,.shell .main>form.panel{margin-top:20px;margin-bottom:20px}
.shell .main>div[style*="display:flex"]{margin-top:20px;margin-bottom:20px}
.shell .main>*:last-child{margin-bottom:0}
.qnav #prev{border:1.5px solid var(--peri-card);color:var(--peri-d);background:#fff}
.qnav #prev:hover{background:var(--peri);border-color:var(--peri);color:#fff}

/* barre latérale repliable : icônes seules (bureau) */
.side-fold{width:32px;height:32px;flex:none;border:1px solid var(--line2);border-radius:9px;background:#fff;color:var(--mut);display:grid;place-items:center;cursor:pointer;transition:color .15s,border-color .15s,background .15s}
.side-fold svg{width:18px;height:18px;transition:transform .25s}
.side-fold:hover{color:var(--peri-d);border-color:var(--peri-card);background:var(--peri-soft)}
.shell{transition:grid-template-columns .25s ease}
@media(min-width:1001px){
  html.side-mini .shell{grid-template-columns:76px minmax(0,1fr)}
  html.side-mini .side-top{flex-direction:column;justify-content:center;gap:10px;height:auto;padding:16px 0 14px}
  html.side-mini .side-word{display:none}
  html.side-mini .side-fold svg{transform:scaleX(-1)}
  html.side-mini .side-nav{padding:6px 12px 16px}
  html.side-mini .shell .side .sect{font-size:0;height:1px;background:var(--line);margin:14px 6px 10px;padding:0}
  html.side-mini .shell .side-nav a{justify-content:center;padding:10px 0}
  html.side-mini .shell .side-nav a span{display:none}
  html.side-mini .side-user{margin:12px 10px 16px;border-color:transparent}
  html.side-mini .side-user>summary{justify-content:center;padding:6px 0}
  html.side-mini .su-t,html.side-mini .su-c{display:none}
  html.side-mini .su-drop{left:0;right:auto;width:220px}
}
@media(max-width:1000px){.side-fold{display:none}}
/* barre repliée : le menu du compte s'ouvre à droite, par-dessus le contenu */
@media(min-width:1001px){
  html.side-mini .shell .side{overflow:visible;z-index:40}
  html.side-mini .su-drop{left:calc(100% + 12px);right:auto;bottom:0;width:230px;z-index:50}
}
/* mobile : la colonne du bandeau d'accueil ne s'élargit plus selon son contenu */
@media(max-width:1000px){.lhero-grid{grid-template-columns:minmax(0,1fr)}.lhero-l,.lhero-r{min-width:0}}
/* mini-carte sur téléphone : étiquettes étroites, sur deux lignes, sans chevauchement */
@media(max-width:760px){
  .lmapfig{min-height:300px}
  .lmapfig .lpin span{white-space:normal;width:max-content;max-width:86px;text-align:center;font-size:10px;line-height:1.25;padding:3px 6px}
}
.lspecs{grid-template-columns:repeat(2,minmax(0,1fr))}
.spec{min-width:0}.spec>div{min-width:0}
@media(max-width:420px){.lspecs{grid-template-columns:minmax(0,1fr)}}
