/* ============================================================
   mesetudesdecas.fr | Bibliothèque VBA
   Feuille de style de la section /vba/ (charte du site)
   V1.2 - 29/10/2026
============================================================ */
:root{
  --fond:#F6F7F9;
  --encre:#0B1220;
  --encre-2:#525E70;
  --texte:#3A4455;
  --bleu:#2E52FF;
  --bleu-fonce:#1D38C4;
  --bleu-pale:#EBEFFF;
  --bleu-bord:#C9D4FF;
  --cyan:#39C4DD;
  --cyan-pale:#E2F6FA;
  --ambre:#F5A524;
  --ambre-fonce:#9A6206;
  --ambre-pale:#FDF3DF;
  --vert:#1F8A4C;
  --vert-pale:#E6F4EC;
  --rouge:#C8372D;
  --rouge-pale:#FCEBEA;
  --blanc:#FFFFFF;
  --ligne:#E2E5EB;
  --grille:#EDF0F4;
  --clair:#F5F7FB;
  --r:12px;
  --logo-fond:#FFFFFF;--logo-bord:#E2E5EB;--logo-trait:#2E52FF;
  --logo-texte:#0B1220;--logo-point:#2E52FF;--logo-tld:#525E70;
  /* coloration VBA, proche de l'éditeur VBE */
  --c-mot:#1D38C4;
  --c-com:#1F8A4C;
  --c-txt:#9A3412;
  --c-num:#0B1220;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,sans-serif;background:var(--fond);color:var(--encre);font-size:16.5px;line-height:1.66;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:'Archivo',sans-serif;line-height:1.12;letter-spacing:-.018em}
.mono,code,kbd{font-family:'IBM Plex Mono',monospace}
.wrap{max-width:1140px;margin:0 auto;padding:0 26px}
a{color:var(--bleu)}
::selection{background:var(--ambre);color:var(--encre)}
button{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--bleu);outline-offset:2px;border-radius:4px}

.kicker{display:block;margin-bottom:14px;font-family:'IBM Plex Mono',monospace;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bleu-fonce);font-weight:500}

/* ===== header (identique au site) ===== */
header{position:sticky;top:0;z-index:60;background:rgba(246,247,249,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--ligne)}
.topbar{display:flex;align-items:center;justify-content:space-between;height:70px}
.lien-logo{display:flex;align-items:center;text-decoration:none}
.logo{display:block}
nav.principal{display:flex;gap:2px;align-items:center}
nav.principal a{text-decoration:none;color:var(--encre-2);font-weight:500;font-size:.92rem;padding:9px 14px;border-radius:8px;transition:background .15s,color .15s}
nav.principal a:hover{background:var(--grille);color:var(--encre)}
nav.principal a.actif{color:var(--bleu-fonce);background:var(--bleu-pale)}
nav.principal a.cta-nav{background:var(--bleu);color:#fff;font-weight:600;margin-left:10px}
nav.principal a.cta-nav:hover{background:var(--bleu-fonce);color:#fff}
.burger{display:none;background:none;border:1px solid var(--ligne);border-radius:8px;padding:8px 13px;font-size:1.05rem;cursor:pointer;color:var(--encre)}
.nav-cours{position:relative;display:flex;align-items:center}.nav-cours>a::after{content:"";display:inline-block;width:6px;height:6px;margin-left:8px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-3px) rotate(45deg);opacity:.7}.sous-menu{position:absolute;top:100%;left:0;min-width:240px;padding:8px;background:#fff;border:1px solid var(--ligne);border-radius:12px;box-shadow:0 18px 40px rgba(11,18,32,.12);display:none;flex-direction:column;gap:2px;z-index:60}.nav-cours:hover .sous-menu,.nav-cours:focus-within .sous-menu{display:flex}nav.principal .sous-menu a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:9px 12px}.sous-menu a b{font-weight:600;color:var(--encre)}.sous-menu a small{font-size:.76rem;color:var(--encre-2);font-weight:400}@media(max-width:980px){.nav-cours{flex-direction:column;align-items:stretch}.nav-cours>a::after{display:none}.sous-menu{position:static;display:flex;min-width:0;padding:0 0 0 14px;border:0;box-shadow:none;background:transparent}}
@media(max-width:1120px){nav.principal a{padding:9px 10px}}
@media(max-width:1060px){nav.principal a{padding:9px 6px}}
@media(max-width:980px){
  nav.principal{display:none;position:absolute;top:70px;left:0;right:0;background:var(--fond);border-bottom:1px solid var(--ligne);flex-direction:column;align-items:stretch;padding:12px 20px 18px;gap:6px}
  nav.principal.ouvert{display:flex}
  nav.principal a.cta-nav{margin-left:0}
  .burger{display:block}
}

/* ===== boutons ===== */
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;cursor:pointer;border:none;font-family:'Archivo';font-weight:700;font-size:.95rem;letter-spacing:.01em;padding:14px 26px;border-radius:10px;transition:transform .14s,background .14s,color .14s}
.btn-bleu{background:var(--bleu);color:#fff;box-shadow:0 6px 24px rgba(46,82,255,.25)}
.btn-bleu:hover{transform:translateY(-2px);background:var(--bleu-fonce)}
.btn-fantome{border:1.5px solid #C9CFDB;color:var(--encre);background:transparent}
.btn-fantome:hover{border-color:var(--bleu);color:var(--bleu)}
.btn-sm{padding:9px 16px;font-size:.85rem}

/* ===== structure ===== */
section{padding:64px 0}
section.premiere{padding-top:46px}
.fil{font-family:'IBM Plex Mono',monospace;font-size:.76rem;color:var(--encre-2);margin-bottom:24px}
.fil a{color:var(--encre-2);text-decoration:none}
.fil a:hover{color:var(--bleu)}
.fil .sep{margin:0 8px;color:#C9CFDB}

/* ===== footer (identique au site) ===== */
footer{padding:26px 0 30px;font-size:.84rem;color:var(--encre-2);border-top:1px solid var(--ligne);margin-top:30px}
footer .bas{display:flex;gap:30px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
footer .fale{max-width:66ch;flex:1;min-width:280px}
footer .liens-legaux{display:flex;gap:20px;flex-wrap:wrap;padding-top:2px}
footer a{color:var(--encre-2)}
.version-site{opacity:.6;font-family:'IBM Plex Mono',monospace;font-size:.72rem}

/* ============================================================
   ACCUEIL DE LA BIBLIOTHÈQUE
============================================================ */
.hero-vba{position:relative;overflow:hidden;padding:46px 0 56px;border-bottom:1px solid var(--ligne)}
.hero-vba::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.8;
  background:linear-gradient(var(--grille) 1px,transparent 1px),linear-gradient(90deg,var(--grille) 1px,transparent 1px);
  background-size:36px 36px;mask-image:linear-gradient(180deg,#000 0%,transparent 95%);-webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 95%)}
.hero-vba .wrap{position:relative}
.hero-grille{display:grid;grid-template-columns:1.15fr .85fr;gap:46px;align-items:center}
.hero-vba h1{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:900;line-height:1.04;margin-bottom:18px}
.hero-vba h1 .souligne{background:linear-gradient(transparent 68%,rgba(57,196,221,.45) 68%)}
.hero-vba .intro{font-size:1.08rem;color:var(--encre-2);max-width:56ch;margin-bottom:26px}

.recherche{position:relative;max-width:560px}
.recherche input{width:100%;font:inherit;font-size:1.02rem;padding:17px 70px 17px 52px;border:1.5px solid var(--ligne);border-radius:14px;background:#fff;color:var(--encre);box-shadow:0 10px 30px rgba(11,18,32,.06);transition:border-color .15s,box-shadow .15s}
.recherche input:focus{outline:none;border-color:var(--bleu);box-shadow:0 0 0 4px rgba(46,82,255,.12)}
.recherche .loupe{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--encre-2)}
.recherche kbd{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:.75rem;border:1px solid var(--ligne);border-bottom-width:2px;border-radius:6px;padding:2px 8px;color:var(--encre-2);background:var(--clair)}
.chiffres{display:flex;gap:26px;margin-top:22px;flex-wrap:wrap}
.chiffres div{font-size:.86rem;color:var(--encre-2)}
.chiffres b{display:block;font-family:'Archivo';font-size:1.45rem;color:var(--encre);line-height:1.1}

/* fenêtre façon éditeur VBE dans le hero */
.fenetre{background:#fff;border:1px solid var(--ligne);border-radius:14px;box-shadow:0 24px 60px rgba(11,18,32,.10);overflow:hidden}
.fenetre .barre{display:flex;align-items:center;gap:7px;padding:10px 14px;background:var(--clair);border-bottom:1px solid var(--ligne);font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--encre-2)}
.fenetre .barre i{width:10px;height:10px;border-radius:50%;background:#D9DDE5;display:inline-block}
.fenetre .barre span{margin-left:8px}
.fenetre pre{margin:0;padding:16px 18px;font-size:.84rem;line-height:1.75;font-family:'IBM Plex Mono',monospace;overflow:hidden}
.fenetre pre{white-space:normal}
.fenetre .ligne-hero{display:block;white-space:pre;padding:0 6px;border-radius:4px;transition:background .3s}
.fenetre .ligne-hero.active{background:#FFF3B8}

/* filtres */
.filtres{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 24px}
.filtre{border:1px solid var(--ligne);background:#fff;border-radius:999px;padding:7px 15px;font-size:.86rem;font-weight:500;color:var(--encre-2);cursor:pointer;transition:all .15s}
.filtre:hover{border-color:var(--bleu);color:var(--bleu)}
.filtre.actif{background:var(--encre);border-color:var(--encre);color:#fff}
.filtre .n{font-family:'IBM Plex Mono',monospace;font-size:.72rem;opacity:.7;margin-left:4px}

.titre-bloc{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:22px}
.titre-bloc h2{font-size:clamp(1.4rem,2.8vw,1.9rem);font-weight:800}
.titre-bloc p{color:var(--encre-2);font-size:.95rem}

.grille-fiches{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.fiche-carte{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--ligne);border-radius:var(--r);padding:20px 20px 18px;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s,border-color .15s;min-height:168px}
a.fiche-carte:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(11,18,32,.08);border-color:var(--bleu-bord)}
.fiche-carte .cat{font-family:'IBM Plex Mono',monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--bleu-fonce);margin-bottom:8px}
.fiche-carte h3{font-size:1.04rem;margin-bottom:6px}
.fiche-carte h3 code{font-size:.92em;background:var(--clair);padding:1px 6px;border-radius:5px}
.fiche-carte p{font-size:.86rem;color:var(--encre-2);flex-grow:1}
.fiche-carte .pied{display:flex;align-items:center;justify-content:space-between;margin-top:12px;font-size:.78rem}
.niveau{display:inline-flex;gap:3px;align-items:center}
.niveau i{width:7px;height:7px;border-radius:50%;background:var(--ligne);display:inline-block}
.niveau i.on{background:var(--ambre)}
.fiche-carte .etat{font-family:'IBM Plex Mono',monospace;font-size:.7rem;padding:3px 8px;border-radius:6px}
.etat.dispo{background:var(--vert-pale);color:var(--vert)}
.etat.bientot{background:var(--clair);color:var(--encre-2)}
.etat.lu{background:var(--bleu-pale);color:var(--bleu-fonce)}
.fiche-carte.a-venir{background:#FAFBFC;border-style:dashed}
.fiche-carte.a-venir h3,.fiche-carte.a-venir p{opacity:.65}
.fiche-carte .interactif{position:absolute;top:16px;right:16px;font-size:.68rem;font-family:'IBM Plex Mono',monospace;background:var(--ambre-pale);color:var(--ambre-fonce);padding:2px 7px;border-radius:5px}
.aucun{display:none;padding:34px;text-align:center;color:var(--encre-2);background:#fff;border:1px dashed var(--ligne);border-radius:var(--r)}
mark{background:#FFF3B8;color:inherit;border-radius:3px;padding:0 1px}

/* parcours */
.parcours{display:grid;grid-template-columns:repeat(7,1fr);gap:0;position:relative;margin-top:8px}
.parcours::before{content:"";position:absolute;top:27px;left:7%;right:7%;height:3px;background:var(--ligne);border-radius:3px}
.etape-p{position:relative;text-align:center;padding:0 6px;text-decoration:none;color:inherit}
.etape-p .rond{position:relative;z-index:1;width:56px;height:56px;margin:0 auto 12px;border-radius:50%;background:#fff;border:2px solid var(--ligne);display:flex;align-items:center;justify-content:center;font-family:'Archivo';font-weight:800;font-size:1.15rem;color:var(--encre-2);transition:all .2s}
.etape-p:hover .rond{border-color:var(--bleu);color:var(--bleu);transform:scale(1.06)}
.etape-p.fait .rond{background:var(--bleu);border-color:var(--bleu);color:#fff}
.etape-p h3{font-size:.9rem;margin-bottom:4px}
.etape-p p{font-size:.76rem;color:var(--encre-2);line-height:1.45}

/* outils */
.outils{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.outil{background:#fff;border:1px solid var(--ligne);border-radius:var(--r);padding:24px;position:relative;overflow:hidden}
.outil .ico{width:44px;height:44px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:14px;background:var(--bleu-pale);color:var(--bleu-fonce)}
.outil.o2 .ico{background:var(--ambre-pale);color:var(--ambre-fonce)}
.outil.o3 .ico{background:var(--cyan-pale);color:#127A8C}
.outil h3{font-size:1.08rem;margin-bottom:6px}
.outil p{font-size:.9rem;color:var(--encre-2);margin-bottom:12px}
.outil .etat{font-family:'IBM Plex Mono',monospace;font-size:.7rem;padding:3px 8px;border-radius:6px}
.outil a{font-weight:600;font-size:.9rem;text-decoration:none}

/* bandeau études de cas */
.pont{background:var(--encre);color:#fff;border-radius:18px;padding:42px 46px;display:grid;grid-template-columns:1.4fr .6fr;gap:30px;align-items:center;position:relative;overflow:hidden}
.pont::after{content:"";position:absolute;right:-60px;top:-60px;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle,rgba(46,82,255,.55),transparent 70%)}
.pont .kicker{color:var(--cyan)}
.pont h2{font-size:clamp(1.35rem,2.6vw,1.8rem);margin-bottom:10px}
.pont p{color:#C6CEDC;max-width:60ch}
.pont .btn{background:#fff;color:var(--encre);position:relative;z-index:1;justify-self:end}
.pont .btn:hover{background:var(--ambre-pale);transform:translateY(-2px)}

/* ============================================================
   FICHE
============================================================ */
.mise-en-page{display:grid;grid-template-columns:220px minmax(0,1fr);gap:48px;align-items:start}
.cote{position:sticky;top:96px}
.cote .kicker{margin-bottom:10px}
.cote ol{list-style:none;border-left:2px solid var(--ligne)}
.cote li a{display:block;padding:6px 0 6px 14px;margin-left:-2px;border-left:2px solid transparent;font-size:.86rem;color:var(--encre-2);text-decoration:none;line-height:1.35}
.cote li a:hover{color:var(--encre)}
.cote li a.ici{color:var(--bleu-fonce);border-left-color:var(--bleu);font-weight:600}
.cote .progression{margin-top:22px;font-size:.8rem;color:var(--encre-2)}
.cote .jauge{height:5px;border-radius:5px;background:var(--ligne);overflow:hidden;margin-top:6px}
.cote .jauge i{display:block;height:100%;width:0;background:var(--bleu);transition:width .2s}

.fiche{min-width:0;max-width:800px}
.fiche h1{font-size:clamp(1.9rem,4vw,2.7rem);font-weight:900;line-height:1.08;margin:4px 0 14px}
.fiche h1 code{font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:.82em;background:var(--bleu-pale);color:var(--bleu-fonce);padding:2px 12px;border-radius:10px}
.meta{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.meta span{font-size:.78rem;font-family:'IBM Plex Mono',monospace;background:#fff;border:1px solid var(--ligne);padding:4px 10px;border-radius:7px;color:var(--encre-2)}
.meta span b{color:var(--encre);font-weight:500}
.fiche .chapo{font-size:1.14rem;color:var(--encre);line-height:1.7;margin-bottom:10px}
.fiche h2{font-size:clamp(1.35rem,2.5vw,1.65rem);font-weight:800;margin:52px 0 14px;scroll-margin-top:92px;display:flex;align-items:center;gap:12px}
.fiche h2 .num{font-family:'IBM Plex Mono',monospace;font-size:.75rem;font-weight:500;color:var(--bleu-fonce);background:var(--bleu-pale);border-radius:6px;padding:3px 8px}
.fiche h3{font-size:1.08rem;margin:26px 0 8px}
.fiche p,.fiche li{color:var(--texte);font-size:1.01rem;line-height:1.75}
.fiche p{margin-bottom:14px}
.fiche ul,.fiche ol{margin:0 0 16px 22px}
.fiche li{margin:5px 0}
.fiche :not(pre)>code{font-size:.88em;background:var(--clair);border:1px solid var(--ligne);padding:1px 6px;border-radius:5px;color:var(--encre)}

/* définition */
.definition{background:#fff;border:1px solid var(--ligne);border-left:4px solid var(--bleu);border-radius:var(--r);padding:20px 24px;margin:18px 0}
.definition .kicker{margin-bottom:6px}
.definition p{margin:0;color:var(--encre);font-size:1.05rem}

/* blocs de code */
.code{position:relative;background:#fff;border:1px solid var(--ligne);border-radius:var(--r);margin:16px 0 20px;overflow:hidden}
.code .entete-code{display:flex;justify-content:space-between;align-items:center;padding:8px 10px 8px 16px;background:var(--clair);border-bottom:1px solid var(--ligne);font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--encre-2)}
.code pre{margin:0;padding:16px 18px;overflow-x:auto;font-family:'IBM Plex Mono',monospace;font-size:.86rem;line-height:1.7;color:var(--c-num);tab-size:4}
.copier{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--ligne);background:#fff;border-radius:7px;padding:4px 10px;font-size:.72rem;font-family:'IBM Plex Mono',monospace;color:var(--encre-2);cursor:pointer;transition:all .15s}
.copier:hover{border-color:var(--bleu);color:var(--bleu)}
.copier.ok{border-color:var(--vert);color:var(--vert);background:var(--vert-pale)}
.k{color:var(--c-mot);font-weight:500}
.c{color:var(--c-com);font-style:italic}
.s{color:var(--c-txt)}

/* tableau d'arguments */
.tableau{overflow-x:auto;margin:0 0 18px;border:1px solid var(--ligne);border-radius:var(--r);background:#fff}
.tableau table{width:100%;border-collapse:collapse;font-size:.92rem}
.tableau th{background:var(--clair);text-align:left;padding:10px 14px;font-family:'Archivo';font-size:.85rem}
.tableau td{padding:10px 14px;border-top:1px solid var(--grille);vertical-align:top;color:var(--texte)}
.tableau td.mono-cell{font-family:'IBM Plex Mono',monospace;font-size:.84rem;color:var(--bleu-fonce);white-space:nowrap}
.tableau td code{white-space:nowrap}

/* encarts pédagogiques */
.encart{border-radius:var(--r);padding:16px 20px;margin:18px 0;background:var(--clair);border-left:4px solid var(--cyan)}
.encart.piege{border-left-color:var(--ambre);background:var(--ambre-pale)}
.encart .titre-encart{font-family:'Archivo';font-weight:700;font-size:.95rem;margin-bottom:4px;display:block}
.encart p{margin:0;font-size:.96rem}
.encart p+p{margin-top:8px}

/* ===== SIMULATEUR ===== */
.simu{background:#fff;border:1px solid var(--ligne);border-radius:16px;box-shadow:0 18px 50px rgba(11,18,32,.07);margin:20px 0 26px;overflow:hidden}
.simu-onglets{display:flex;gap:4px;padding:10px 10px 0;background:var(--clair);border-bottom:1px solid var(--ligne);overflow-x:auto}
.simu-onglet{border:1px solid transparent;border-bottom:none;background:none;padding:9px 14px;border-radius:9px 9px 0 0;font-size:.84rem;font-weight:500;color:var(--encre-2);cursor:pointer;white-space:nowrap}
.simu-onglet:hover{color:var(--encre)}
.simu-onglet.actif{background:#fff;border-color:var(--ligne);color:var(--encre);font-weight:600;margin-bottom:-1px}
.simu-corps{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.simu-code{border-right:1px solid var(--ligne);padding:14px 0;min-width:0}
.simu-code .titre-zone,.simu-droite .titre-zone{font-family:'IBM Plex Mono',monospace;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--encre-2);padding:0 18px 8px}
.simu-lignes{font-family:'IBM Plex Mono',monospace;font-size:.84rem;line-height:1.85;overflow-x:auto}
.sl{display:grid;grid-template-columns:22px 30px 1fr;align-items:center;white-space:pre;padding-right:14px;transition:background .18s}
.sl .fl{color:var(--ambre);font-size:.8rem;text-align:center;visibility:hidden}
.sl .no{color:#A9B1BF;font-size:.72rem;text-align:right;padding-right:12px;user-select:none}
.sl.active{background:#FFF3B8}
.sl.active .fl{visibility:visible}
.sl.vient{background:rgba(57,196,221,.10)}
.simu-droite{padding:14px 0 0;display:flex;flex-direction:column;min-width:0}
.feuille{margin:0 18px 14px;border:1px solid var(--ligne);border-radius:8px;overflow:hidden;font-size:.8rem}
.feuille table{border-collapse:collapse;width:100%;table-layout:fixed}
.feuille th{background:var(--clair);color:var(--encre-2);font-weight:500;font-family:'IBM Plex Mono',monospace;font-size:.68rem;padding:3px;border:1px solid var(--ligne)}
.feuille th:first-child{width:30px}
.feuille td{height:26px;border:1px solid var(--grille);padding:0 6px;font-family:'Inter';text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .4s}
.feuille td.txt{text-align:left}
.feuille td.flash{background:#D7F5DE;animation:flash .9s ease}
.feuille td.cible{box-shadow:inset 0 0 0 2px var(--vert)}
@keyframes flash{0%{background:#9FE3B1}100%{background:#D7F5DE}}
.locales{margin:0 18px 14px;border:1px solid var(--ligne);border-radius:8px;overflow:hidden}
.locales table{width:100%;border-collapse:collapse;font-size:.8rem}
.locales th{background:var(--clair);text-align:left;font-weight:500;font-family:'IBM Plex Mono',monospace;font-size:.68rem;color:var(--encre-2);padding:5px 10px}
.locales td{padding:5px 10px;border-top:1px solid var(--grille);font-family:'IBM Plex Mono',monospace}
.locales td.val{font-weight:500}
.locales tr.change td.val{background:#FFF3B8;transition:background .2s}
.locales td.vide{color:#A9B1BF}
.immediat{margin:auto 0 0;border-top:1px solid var(--ligne);background:var(--clair);padding:10px 18px 12px;font-size:.86rem;min-height:72px}
.immediat .titre-zone{padding:0 0 4px!important}
.immediat p{margin:0;color:var(--encre);font-size:.9rem;line-height:1.5}
.simu-commandes{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:12px 14px;border-top:1px solid var(--ligne);background:#fff}
.cmd{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--ligne);background:#fff;border-radius:9px;padding:8px 13px;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .15s}
.cmd:hover:not(:disabled){border-color:var(--bleu);color:var(--bleu)}
.cmd.principal{background:var(--bleu);border-color:var(--bleu);color:#fff}
.cmd.principal:hover:not(:disabled){background:var(--bleu-fonce);color:#fff}
.cmd:disabled{opacity:.45;cursor:not-allowed}
.cmd kbd{font-size:.68rem;font-weight:500;opacity:.75;border:1px solid currentColor;border-radius:4px;padding:0 4px}
.vitesse{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:.78rem;color:var(--encre-2)}
.vitesse input{accent-color:var(--bleu);width:90px}
.compteur{font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:var(--encre-2)}
.msgbox{position:absolute;inset:0;background:rgba(11,18,32,.18);display:none;align-items:center;justify-content:center;z-index:5}
.msgbox.ouvert{display:flex}
.msgbox .boite{background:#fff;border:1px solid var(--ligne);border-radius:10px;box-shadow:0 18px 50px rgba(11,18,32,.2);min-width:260px;max-width:80%;overflow:hidden}
.msgbox .boite .t{background:var(--clair);border-bottom:1px solid var(--ligne);padding:6px 12px;font-size:.78rem;color:var(--encre-2)}
.msgbox .boite .m{padding:18px 16px;font-size:.92rem}
.msgbox .boite .b{padding:0 16px 14px;text-align:right}
.simu-zone{position:relative}

/* quiz */
.quiz{background:#fff;border:1px solid var(--ligne);border-radius:16px;padding:6px 24px 22px;margin:18px 0}
.question{padding:18px 0;border-bottom:1px solid var(--grille)}
.question:last-of-type{border-bottom:none}
.question .q{font-weight:600;color:var(--encre);margin-bottom:10px}
.question pre{background:var(--clair);border-radius:8px;padding:10px 14px;font-family:'IBM Plex Mono',monospace;font-size:.82rem;margin:0 0 12px;overflow-x:auto;line-height:1.6}
.choix{display:flex;gap:8px;flex-wrap:wrap}
.choix button{border:1.5px solid var(--ligne);background:#fff;border-radius:9px;padding:8px 16px;font-weight:500;cursor:pointer;transition:all .15s;font-size:.92rem}
.choix button:hover:not(:disabled){border-color:var(--bleu)}
.choix button.bon{background:var(--vert-pale);border-color:var(--vert);color:var(--vert)}
.choix button.faux{background:var(--rouge-pale);border-color:var(--rouge);color:var(--rouge)}
.choix button:disabled{cursor:default}
.explication{display:none;margin-top:10px;font-size:.93rem;color:var(--texte);background:var(--clair);border-radius:8px;padding:10px 14px}
.explication.ouvert{display:block}
.score{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px;padding-top:14px;border-top:1px solid var(--ligne);font-size:.92rem;color:var(--encre-2)}
.score b{color:var(--encre);font-family:'Archivo';font-size:1.1rem}

/* comparaison */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0 18px}
.duo>div{background:#fff;border:1px solid var(--ligne);border-radius:var(--r);padding:16px 18px}
.duo h3{margin:0 0 6px!important;font-size:1rem}
.duo p{font-size:.92rem;margin:0}

/* CTA et voir aussi */
.cta-fiche{background:var(--encre);color:#fff;border-radius:16px;padding:30px 32px;margin:48px 0 26px;position:relative;overflow:hidden}
.cta-fiche::after{content:"";position:absolute;right:-50px;bottom:-70px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(46,82,255,.5),transparent 70%)}
.cta-fiche .kicker{color:var(--cyan);margin-bottom:8px}
.cta-fiche h2{color:#fff;margin:0 0 8px!important;font-size:1.35rem!important;display:block!important}
.cta-fiche p{color:#C6CEDC!important;margin-bottom:16px}
.cta-fiche .btn{background:#fff;color:var(--encre);position:relative;z-index:1}
.cta-fiche .btn:hover{background:var(--ambre-pale)}
.voir-aussi{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}
.voir-aussi a,.voir-aussi div{display:block;background:#fff;border:1px solid var(--ligne);border-radius:10px;padding:12px 14px;text-decoration:none;color:var(--encre);font-size:.9rem;font-weight:600;transition:border-color .15s}
.voir-aussi a:hover{border-color:var(--bleu)}
.voir-aussi small{display:block;font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:.68rem;color:var(--encre-2);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px}
.voir-aussi div{opacity:.6;border-style:dashed}
.maj{margin-top:30px;font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:var(--encre-2)}

/* ===== responsive ===== */
@media(max-width:940px){
  .hero-grille{grid-template-columns:1fr}
  .fenetre{display:none}
  .mise-en-page{grid-template-columns:1fr}
  .cote{display:none}
  .parcours{grid-template-columns:repeat(4,1fr);row-gap:22px}
  .parcours::before{display:none}
  .outils{grid-template-columns:1fr}
  .pont{grid-template-columns:1fr;padding:32px 26px}
  .pont .btn{justify-self:start}
}
@media(max-width:760px){
  .wrap{padding:0 16px}
  section{padding:46px 0}
  .simu-corps{grid-template-columns:1fr}
  .simu-code{border-right:none;border-bottom:1px solid var(--ligne)}
  .vitesse{margin-left:0;width:100%}
  .duo,.voir-aussi{grid-template-columns:1fr}
  .parcours{grid-template-columns:repeat(2,1fr)}
  .cta-fiche{padding:24px 22px}
}

/* ===== impression : la fiche reste propre sur papier ===== */
@media print{
  header,footer,.cote,.simu-commandes,.copier,.cta-fiche,.voir-aussi,.quiz .choix,.filtres,.recherche{display:none!important}
  body{background:#fff;font-size:11pt}
  .mise-en-page{display:block}
  .simu,.code,.definition,.encart{box-shadow:none;break-inside:avoid}
  .explication{display:block!important}
  a{color:inherit;text-decoration:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}

/* ===== V1.1 : boutons PDF, recueil, encarts ===== */
.btn-pdf{display:flex;align-items:center;gap:14px;text-decoration:none;background:var(--bleu);color:#fff;border-radius:14px;padding:14px 20px;margin:6px 0 8px;box-shadow:0 10px 28px rgba(46,82,255,.22);transition:transform .15s,background .15s;width:fit-content;max-width:100%}
.btn-pdf:hover{transform:translateY(-2px);background:var(--bleu-fonce)}
.btn-pdf svg{flex:none;width:22px;height:22px}
.btn-pdf span{font-family:'Archivo';font-weight:700;font-size:1rem;line-height:1.25}
.btn-pdf small{display:block;font-family:'Inter';font-weight:400;font-size:.8rem;opacity:.85}
.btn-pdf.petit{margin:18px 0 0;padding:9px 14px;border-radius:10px;font-family:'Archivo';font-weight:700;font-size:.85rem;gap:8px;box-shadow:none}
.btn-pdf.petit svg{width:16px;height:16px}
.etat.pdf{background:var(--bleu-pale);color:var(--bleu-fonce)}
.recueil{margin-top:26px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;background:#fff;border:1px solid var(--bleu-bord);border-radius:16px;padding:24px 28px;background-image:radial-gradient(circle at 100% 0,var(--bleu-pale),transparent 55%)}
.recueil h3{font-size:1.25rem;margin-bottom:4px}
.recueil p{color:var(--encre-2);font-size:.95rem}
.recueil .kicker{margin-bottom:6px}
.encart .lab{display:block;font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:#127A8C;margin-bottom:2px}
.encart.piege .lab{color:var(--ambre-fonce)}
.fiche ol.etapes{list-style:none;counter-reset:e;margin-left:0}
.fiche ol.etapes li{counter-increment:e;position:relative;padding-left:40px;margin:10px 0}
.fiche ol.etapes li::before{content:counter(e);position:absolute;left:0;top:2px;width:26px;height:26px;border-radius:50%;background:var(--bleu-pale);color:var(--bleu-fonce);font-family:'Archivo';font-weight:800;font-size:.82rem;display:flex;align-items:center;justify-content:center}
.fiche kbd,.fiche code{font-family:'IBM Plex Mono',monospace}
@media(max-width:760px){.recueil{padding:20px}}

/* ===== V1.2 : gratuit, FAQ, navigation entre fiches ===== */
.meta span.gratuit{background:var(--vert-pale);border-color:#BFE3CC;color:var(--vert);font-weight:500}
.faq{display:flex;flex-direction:column;gap:10px;margin:14px 0 8px}
.faq-q{background:#fff;border:1px solid var(--ligne);border-radius:var(--r);padding:0 20px;transition:border-color .15s}
.faq-q[open]{border-color:var(--bleu-bord)}
.faq-q summary{cursor:pointer;list-style:none;padding:16px 30px 16px 0;position:relative;font-family:'Archivo';font-weight:700;font-size:1rem;color:var(--encre)}
.faq-q summary::-webkit-details-marker{display:none}
.faq-q summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:'IBM Plex Mono',monospace;font-size:1.2rem;color:var(--bleu)}
.faq-q[open] summary::after{content:"\2212"}
.faq-q p{margin:0 0 16px!important;color:var(--texte);font-size:.97rem;line-height:1.7}
.faq-accueil{max-width:820px}
.suite{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:34px 0 0}
.suite a{display:block;background:#fff;border:1px solid var(--ligne);border-radius:12px;padding:14px 18px;text-decoration:none;color:var(--encre);font-family:'Archivo';font-weight:700;transition:border-color .15s,transform .15s}
.suite a:hover{border-color:var(--bleu);transform:translateY(-2px)}
.suite small{display:block;font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:.68rem;color:var(--encre-2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}
.suite .suiv{text-align:right}
.retour{margin-top:16px}
.retour a{font-weight:600;text-decoration:none}
@media(max-width:760px){.suite{grid-template-columns:1fr}.suite .suiv{text-align:left}}

/* ================= Formules Excel V1.0 ================= */
:root{--xl-vert:#107C41;--xl-vert-pale:#E7F3EC;--xl-entete:#F3F4F6;--c-ref:#0F6E8C;--c-nb:#7C3AED}
.ref{color:var(--c-ref);font-weight:500}.nb{color:var(--c-nb)}
pre.formule{white-space:pre-wrap;word-break:break-word}
/* mini-feuille Excel */
.grille-xl{margin:16px 0 20px;border:1px solid var(--ligne);border-radius:var(--r);overflow:hidden;background:#fff}
.grille-titre{padding:8px 14px;background:var(--clair);border-bottom:1px solid var(--ligne);font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--encre-2)}
.grille-titre code{font-size:.72rem}
.grille-defil{overflow-x:auto}
.grille-xl table{border-collapse:collapse;font-size:.88rem;min-width:100%;font-family:Inter,sans-serif}
.grille-xl th{background:var(--xl-entete);color:#6B7280;font-weight:500;font-size:.75rem;text-align:center;padding:4px 10px;border:1px solid #E5E7EB;min-width:34px}
.grille-xl thead th{border-top:0}
.grille-xl th.coin{background:#ECEEF2}
.grille-xl td{border:1px solid #E5E7EB;padding:6px 12px;white-space:nowrap;color:var(--texte);vertical-align:middle}
.grille-xl td.entete{font-weight:600;background:#FAFBFC}
.grille-xl td.num{text-align:right;font-variant-numeric:tabular-nums}
.grille-xl td.evidence{background:var(--xl-vert-pale)}
.grille-xl td.active{outline:2px solid var(--xl-vert);outline-offset:-2px;background:#fff}
.grille-xl td code.f{font-family:'IBM Plex Mono',monospace;font-size:.8rem;background:none;padding:0;color:var(--encre)}
/* fenêtre d'accueil façon Excel */
.fenetre-xl .barre-fx{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--ligne);font-size:.8rem;overflow:hidden}
.fenetre-xl .barre-fx .fx{font-family:Georgia,serif;font-style:italic;color:#6B7280;border-right:1px solid var(--ligne);padding-right:10px}
.fenetre-xl .barre-fx code{font-family:'IBM Plex Mono',monospace;white-space:nowrap;background:none;padding:0;font-size:.8rem}
.mini-xl{border-collapse:collapse;width:100%;font-size:.86rem}
.mini-xl th{background:var(--xl-entete);color:#6B7280;font-weight:500;font-size:.72rem;padding:5px 8px;border:1px solid #E5E7EB}
.mini-xl td{border:1px solid #E5E7EB;padding:7px 10px}
.mini-xl td.e{font-weight:600;background:#FAFBFC}
.mini-xl td.num{text-align:right}
.mini-xl tr.trouve td{background:var(--xl-vert-pale)}
.mini-xl tr.trouve td:last-child{outline:2px solid var(--xl-vert);outline-offset:-2px;font-weight:600}
@media print{.grille-xl{break-inside:avoid}}
