/* Ludiscapade : l'écran d'une escapade (public/js/ludiscapade.js). Couleurs lisibles avec un
   daltonisme rouge-vert (vert bleuté, vermillon, violet) et toujours doublées d'une forme
   (✓, ✗, ◌, ◐, 🔒) ; de grandes cibles, pour le doigt. */
.esc-jeu{--e-bg:#F4F1EA;--e-carte:#fff;--e-bg2:#ECE7DC;--e-texte:#1F2633;--e-texte2:#55606F;--e-bord:#D9D2C3;
  --e-teal:#0E7C70;--e-teal-l:#DDF4F1;--e-verm:#C2410C;--e-verm-l:#FCE9DC;--e-violet:#5B47B8;--e-violet-l:#EEEBFB;--e-r:12px;
  position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;background:var(--e-bg);color:var(--e-texte);
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:21px;line-height:1.5}
@media(prefers-color-scheme:dark){.esc-jeu{--e-bg:#17202E;--e-carte:#212C3D;--e-bg2:#2A3649;--e-texte:#EDF1F6;--e-texte2:#AEB8C7;--e-bord:#3A4860;
  --e-teal:#2CC4B2;--e-teal-l:#0B3A38;--e-verm:#FF9A6B;--e-verm-l:#4A1E08;--e-violet:#B3A6F0;--e-violet-l:#2A2346}}
.esc-jeu *{box-sizing:border-box}
/* Le chemin (31/10/2026) : pour ceux qui ne lisent pas encore. Tout est plus grand, rien ne se lit par la couleur seule. */
.esc-petits{font-size:24px}
.esc-petits .esc-recit{font-size:26px;line-height:1.45}
.esc-petits .esc-voix{min-height:52px!important;min-width:60px;font-size:26px}
.esc-petits .esc-corps>section{max-width:1060px}
.esc-petits .esc-aides button{min-height:60px}
.esc-jeu .esc-go{display:block;margin:16px auto;min-height:72px;min-width:220px;font-size:28px}
.esc-chemin{text-align:center}
.esc-ligne-arrets{position:relative;height:74px;margin:6px 8px 12px}
.esc-rail{position:absolute;left:0;right:0;top:44px;height:6px;background:repeating-linear-gradient(90deg,var(--e-texte2) 0 10px,transparent 10px 18px)}
.esc-arret{position:absolute;top:32px;width:30px;height:30px;margin-left:-15px;border-radius:50%;border:3px solid var(--e-texte2);background:var(--e-carte);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700}
.esc-arret.fait{border-color:var(--e-teal);color:var(--e-teal)}
.esc-arret.ici{border-width:5px;border-color:var(--e-violet)}
.esc-loco{position:absolute;top:0;margin-left:-23px;width:46px;height:46px;font-size:36px;line-height:46px;text-align:center;transition:left 1.3s ease-in-out}
.esc-loco-img{width:46px;height:46px;object-fit:contain;mix-blend-mode:multiply}
.esc-loco .esc-provisoire{min-height:0;height:46px;padding:0;font-size:12px}.esc-loco .esc-provisoire b,.esc-loco .esc-provisoire small{display:none}
.esc-train{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin:14px auto 4px}
.esc-wagon{position:relative;display:flex;align-items:center;justify-content:center;width:78px;height:58px;border:3px solid var(--e-teal);border-radius:8px;background:var(--e-carte);font-size:26px}
.esc-wagon.loco{border-style:solid;border-color:var(--e-texte2)}
.esc-wagon.loco img,.esc-cases-ordre .tete img{transform:scaleX(-1)}
.esc-wagon.vide{border:3px dashed var(--e-bord);color:var(--e-texte2)}
.esc-wagon b{position:absolute;right:2px;top:-4px;font-size:16px;color:var(--e-teal)}
.esc-wagon-img,.esc-wagon .esc-provisoire{width:100%;height:100%;object-fit:contain;min-height:0;padding:0;font-size:11px}.esc-wagon-img{mix-blend-mode:multiply}.esc-wagon .esc-provisoire small{display:none}
.esc-bravo{text-align:center;padding:14px;border:3px solid var(--e-teal);border-radius:var(--e-r);background:var(--e-teal-l)}
.esc-noir{max-width:460px;margin:10px auto;padding:8px;border-radius:var(--e-r);background:#14161c;touch-action:none;cursor:none}
.esc-noir>span{display:block}.esc-noir svg{display:block;width:100%;height:auto}.esc-noir .clou{fill:transparent}.esc-noir .clou.vu{fill:#ffe9a8}.esc-noir .lampe{fill:rgba(255,233,168,.14);stroke:rgba(255,233,168,.5);stroke-width:1;pointer-events:none}
.esc-series{margin:12px auto;max-width:560px}.esc-serie{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;margin-bottom:4px}.esc-serie span{display:flex;flex-direction:column;align-items:center;font-size:15px}
.esc-points-n{display:grid;grid-template-columns:repeat(2,22px);gap:2px;justify-content:center;margin:0 auto 8px;font-size:15px;font-weight:600;text-align:center}.esc-points-n span{border:1px solid var(--e-bord);border-radius:50%}
.esc-series .esc-sous{margin:2px 0;text-align:center}.esc-lire-mot{margin-top:12px}
.esc-clous{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:10px 0}
.esc-fenetre{display:flex;flex-direction:column;align-items:center;gap:10px;margin:10px auto;max-width:520px}
.esc-fenetre-l{display:flex;align-items:center;justify-content:center;width:150px;height:150px;font-size:96px;font-weight:700;border:3px solid var(--e-bord);border-radius:var(--e-r);background:var(--e-carte)}
.esc-fenetre input{width:100%}
.esc-groupe{margin-top:12px}.esc-groupe-t{font-size:22px;text-align:center}
.esc-groupe-c{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.esc-jeu .esc-groupe-c button{min-height:56px;font-size:21px;padding:8px 14px}
.esc-jeu .esc-groupe-c button.choisi{border:4px solid var(--e-violet)!important;background:var(--e-violet-l)!important}
.esc-cases6{display:flex;flex-wrap:wrap;gap:16px;justify-content:center}
.esc-case6{display:grid;grid-template-columns:repeat(2,56px);gap:6px;padding:8px;border:2px solid var(--e-bord);border-radius:var(--e-r);background:var(--e-carte)}
.esc-jeu .esc-case6 button{width:56px;height:56px;min-height:0;padding:0!important;margin:0;font-size:30px;line-height:1}
.esc-jeu .esc-case6 button.on{border:3px solid var(--e-violet)!important;background:var(--e-violet-l)!important}
.esc-alpha{display:grid;grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:4px;margin-top:6px}
.esc-alpha span{display:flex;flex-direction:column;align-items:center;font-size:15px}
.esc-signe-b{display:flex;justify-content:center}
.esc-petits .esc-meca>.esc-pr{display:block;margin:12px auto}
.esc-cartes-n{text-align:center;font-size:20px;font-weight:600}
.esc-savoir{margin:12px auto 4px;max-width:640px;text-align:left;padding:12px 16px;border:2px solid var(--e-teal);border-radius:var(--e-r);background:var(--e-carte)}
.esc-savoir-img{display:block;width:100%;aspect-ratio:8/5;object-fit:cover;margin-bottom:8px;border-radius:var(--e-r)}.esc-savoir .esc-provisoire{min-height:90px;margin-bottom:8px}
.esc-savoir-t{font-size:15px;font-weight:600;color:var(--e-teal)}.esc-savoir h3{margin:2px 0 4px;font-size:20px}.esc-savoir p{margin:0;font-size:18px;line-height:1.4}
.esc-album{display:flex;flex-direction:column;gap:6px}.esc-mes-cartes{margin:8px 0;max-width:none;width:100%}.esc-mes-cartes summary{font-size:19px;font-weight:600;cursor:pointer}
.esc-verite{margin:14px auto;max-width:640px;font-size:14px;text-align:left}.esc-verite summary{cursor:pointer}.esc-verite ul{margin:4px 0;padding-left:20px}
.esc-bravo-img{display:block;width:260px;max-width:70%;margin:0 auto 10px;object-fit:contain}
.esc-bravo-img,.esc-img-img,.esc-q-img,.esc-petits .esc-carte-img{mix-blend-mode:multiply}
.esc-img-pied{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px;font-size:22px;font-weight:600}
.esc-carte-z{position:relative}
.esc-jeu .esc-zoom-b{position:absolute;top:4px;right:4px;z-index:2;width:44px;height:44px;min-height:0;padding:0!important;margin:0;font-size:22px;line-height:1;background:var(--e-carte);border:2px solid var(--e-bord);border-radius:50%}
.esc-grand{position:absolute;inset:0;z-index:900;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;background:var(--e-bg)}
.esc-grand-img{max-width:100%;max-height:calc(100% - 150px);object-fit:contain;min-height:0;flex:1 1 auto}
.esc-grand p{margin:0;font-size:24px;text-align:center}
.esc-images{display:flex;flex-wrap:wrap;justify-content:center;gap:14px;margin-top:12px}
.esc-images.serre{gap:8px}.esc-images.serre .esc-img-b{width:150px;min-height:0}.esc-images.serre .esc-img-img{width:116px;height:116px}
.esc-img-z{display:flex;flex-direction:column;align-items:center;gap:6px}
.esc-img-b{position:relative;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:190px;min-height:190px;padding:10px!important}
.esc-img-b.choisi{border:5px solid var(--e-violet)!important;background:var(--e-violet-l)!important}
.esc-img-img{width:150px;height:150px;object-fit:contain}.esc-img-b .esc-provisoire{width:150px;min-height:130px}
.esc-img-mot{font-size:24px;font-weight:600}
.esc-img-ok{position:absolute;right:6px;top:2px;font-size:28px;color:var(--e-violet)}
.esc-quantite,.esc-modele{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;max-width:170px}
.esc-modele{max-width:none;margin:8px 0}
.esc-q-img{width:44px;height:44px;object-fit:contain}.esc-quantite .esc-provisoire,.esc-modele .esc-provisoire{width:44px;min-height:44px;height:44px;padding:0}.esc-quantite .esc-provisoire b,.esc-quantite .esc-provisoire small,.esc-modele .esc-provisoire b,.esc-modele .esc-provisoire small{display:none}
.esc-suite{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin:12px 0}
.esc-jeu .esc-suite-c{display:flex;align-items:center;justify-content:center;width:76px;height:76px;padding:6px!important;border:2px solid var(--e-texte2);border-radius:8px;background:var(--e-bg2);font-size:32px;font-weight:700}
.esc-jeu .esc-suite-c.trou{border:4px dashed var(--e-violet);background:var(--e-carte)}
.esc-jeu .esc-suite-c.posee{border-style:solid}
.esc-suite-p{display:flex;justify-content:center;gap:18px;margin-top:14px}
.esc-suite-b{width:112px;height:112px;padding:12px!important}
.esc-forme,.esc-picto{display:block;width:100%;height:100%}
.esc-suite-c span,.esc-suite-b span{display:block;width:100%;height:100%}
.esc-plan-f{margin:0}
.esc-fleches-z{display:flex;flex-wrap:wrap;gap:20px;justify-content:center;align-items:center}
.esc-plan.esc-plan-f td{position:relative;width:92px;height:92px;min-width:92px;padding:4px;text-align:center;font-size:44px;line-height:1}
.esc-plan-f td .esc-icone{position:static;font-size:50px;opacity:1}
.esc-plan-f .esc-case-p{position:absolute;inset:16px;display:block}
.esc-plan-f td.pion{outline:4px solid var(--e-violet);outline-offset:-4px}
.esc-plan-f .esc-pion{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:54px;background:none;color:inherit;width:auto;height:auto}
.esc-prog{flex:1 1 380px;max-width:520px}
.esc-prog-l{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;align-items:center;min-height:64px;font-size:38px;line-height:1;padding:4px;border:2px dashed var(--e-bord);border-radius:var(--e-r)}
.esc-prog-b{display:grid;grid-template-columns:repeat(3,92px);justify-content:center;gap:10px;margin-top:10px}
.esc-jeu .esc-prog-b button{width:92px;height:92px;font-size:52px;line-height:1;padding:0!important;margin:0;min-width:0}
.esc-jeu .esc-prog-b .h{grid-column:2}.esc-jeu .esc-prog-b .g{grid-column:1;grid-row:2}.esc-jeu .esc-prog-b .d{grid-column:3;grid-row:2}.esc-jeu .esc-prog-b .b{grid-column:2;grid-row:2}.esc-jeu .esc-prog-b .ef{grid-column:1;grid-row:3}.esc-jeu .esc-prog-b .pt{grid-column:2/4;grid-row:3;width:100%}
.esc-indications{list-style:none;padding:0;margin:0 0 8px;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;font-size:22px;line-height:1.25}.esc-indications li{display:flex;align-items:center;gap:8px}
@media(max-width:800px){.esc-indications{grid-template-columns:1fr}}
.esc-cases-ordre.images{flex-direction:row;flex-wrap:wrap;gap:6px;justify-content:center;padding:0}
.esc-cases-ordre.images li::before{display:none}
.esc-petits .esc-el{border-color:transparent!important;color:var(--e-violet);font-size:30px;font-weight:800}
.esc-petits .esc-el.entoure{border-color:var(--e-violet)!important}
.esc-cases-ordre.images li{display:flex;align-items:center;justify-content:center;width:120px;min-height:112px;padding:2px;border:3px dashed var(--e-bord);border-radius:8px;font-size:26px;color:var(--e-texte2)}
.esc-cases-ordre.images li.fixe,.esc-cases-ordre.images li.tete{border-style:solid;border-color:var(--e-texte2)}
/* La boîte à codes en images */
.esc-boite-pics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:560px;margin:12px auto}
.esc-boite-pics button{height:112px;padding:14px!important;color:var(--e-texte)}
.esc-boite-pics button span{display:block;width:100%;height:100%}
.esc-boite-lu{display:flex;justify-content:center;gap:8px;min-height:84px;margin:8px 0;padding:6px;border:3px dashed var(--e-bord);border-radius:var(--e-r)}
.esc-boite-lu span{display:block;width:70px;height:70px}
.esc-boite-env{font-size:96px;font-weight:800;line-height:1.1;margin:0;border:5px solid currentColor;border-radius:16px;display:inline-block;padding:0 34px}
.esc-boite-outils{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:12px}
.esc-jeu .esc-boite-outils button{min-height:64px;font-size:22px}
.esc-boite-ligne{display:flex;justify-content:center;gap:10px}
.esc-jeu .esc-boite-ligne button{min-height:72px;min-width:120px;font-size:30px}
.esc-petits .esc-carte{flex-direction:column;justify-content:center;text-align:center;padding:6px!important;gap:4px;font-size:21px}
.esc-petits .esc-carte-img{width:96px;height:80px}
.esc-petits .esc-cartes{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px}
.esc-petits .esc-cartes .esc-carte{width:236px;min-height:140px}.esc-petits .esc-cartes .esc-carte-img{width:190px;height:104px}
.esc-cases-ordre.images .esc-carte{width:100%;min-height:0;border:0!important;font-size:17px;line-height:1.15;background:none}
.esc-cases-ordre.images .esc-carte-img{width:96px;height:62px}
.esc-jeu.attente{cursor:progress}
.esc-jeu button{font:inherit;color:inherit;cursor:pointer;border-radius:var(--e-r);border:1px solid var(--e-bord);background:var(--e-carte);padding:10px 16px;min-height:44px}
.esc-jeu button:hover{background:var(--e-bg2)}
.esc-jeu button:focus-visible,.esc-jeu input:focus-visible{outline:3px solid var(--e-teal);outline-offset:2px}
.esc-jeu .esc-pr{background:var(--e-teal);border-color:var(--e-teal);color:#fff;font-weight:700}
.esc-jeu .esc-pr:hover{filter:brightness(1.08);background:var(--e-teal)}
.esc-jeu h1{font-size:34px;margin:12px 0}.esc-jeu h2{font-size:27px;margin:4px 0 10px}.esc-jeu h3{font-size:21px;margin:18px 0 6px}.esc-jeu h4{font-size:20px;margin:10px 0 6px}
.esc-barre{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 14px;background:var(--e-carte);border-bottom:1px solid var(--e-bord)}
.esc-barre button{padding:6px 12px;min-height:40px;font-size:18px}
.esc-titre{font-size:20px}.esc-avance,.esc-temps{font-size:18px;color:var(--e-texte2);font-variant-numeric:tabular-nums}
.esc-espace{flex:1}
.esc-fermer{font-weight:700}
.esc-corps{flex:1;overflow:auto;padding:16px;outline:none}
.esc-corps>section{max-width:980px;margin:0 auto}
.esc-recit{font-size:22px}
.esc-sous{color:var(--e-texte2);font-size:17px}
.esc-voix{padding:2px 8px!important;min-height:32px!important;font-size:18px;vertical-align:middle}
.esc-grande{display:block;width:100%;max-height:46vh;object-fit:cover;border-radius:var(--e-r)}
.esc-ouverture,.esc-fin{text-align:center}.esc-ouverture .esc-recit,.esc-fin .esc-recit{text-align:left;max-width:720px;margin:0 auto 16px}
.esc-provisoire{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:3px dashed var(--e-bord);border-radius:var(--e-r);background:repeating-linear-gradient(45deg,var(--e-bg2) 0 12px,var(--e-carte) 12px 24px);color:var(--e-texte2);text-align:center;padding:8px;min-height:120px}
.esc-provisoire span{font-size:34px;line-height:1}.esc-provisoire small{font-size:15px;word-break:break-all}
.esc-provisoire.esc-grande{height:36vh}
.esc-lieux{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.esc-lieu{display:flex!important;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:10px!important}
.esc-lieu.ferme{border:2px dashed var(--e-bord);border-radius:var(--e-r);padding:14px;background:var(--e-bg2)}
.esc-cadenas{font-size:32px}
.esc-vignette{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px;min-height:0}
.esc-scene{position:relative;border-radius:var(--e-r);overflow:hidden;background:var(--e-bg2)}
.esc-scene-img{display:block;width:100%;height:auto}
.esc-scene .esc-provisoire{aspect-ratio:16/9;min-height:0}
.esc-zone{position:absolute;padding:0!important;min-height:0!important;border:3px dashed rgba(255,255,255,.9)!important;outline:2px dashed rgba(0,0,0,.55);outline-offset:-5px;background:rgba(255,255,255,.12)!important;border-radius:10px!important;color:#fff;font-weight:800;font-size:27px;text-shadow:0 1px 3px #000}
.esc-zone:hover,.esc-zone:focus-visible{background:rgba(255,255,255,.3)!important}
.esc-zone.fait{border-style:solid!important;background:rgba(14,124,112,.25)!important}
.esc-liste{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.esc-liste button{width:100%;text-align:left}
.esc-fermee{display:block;padding:10px 16px;border:1px dashed var(--e-bord);border-radius:var(--e-r);color:var(--e-texte2)}
.esc-info{padding:10px 14px;border-radius:var(--e-r);background:var(--e-violet-l);color:var(--e-texte);border-left:5px solid var(--e-violet)}
.esc-retour{padding:10px 14px;border-radius:var(--e-r);font-weight:600}
.esc-retour.juste{background:var(--e-teal-l);border-left:5px solid var(--e-teal)}
.esc-retour.faux{background:var(--e-verm-l);border-left:5px dashed var(--e-verm)}
.esc-retour-l{margin-bottom:8px}
.esc-docs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.esc-meca{background:var(--e-carte);border:1px solid var(--e-bord);border-radius:var(--e-r);padding:12px 14px;margin:12px 0}
.esc-message{display:flex;flex-wrap:wrap;gap:16px 22px;align-items:flex-end}
.esc-mot{display:flex;gap:6px}
.esc-case{display:flex;flex-direction:column;align-items:center;gap:4px}
.esc-s{min-width:40px;min-height:44px;display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:700;padding:0 4px;border-bottom:2px solid var(--e-bord)}
.esc-signe-img{width:44px;height:44px;object-fit:contain}
.esc-signe-img.esc-provisoire{min-height:44px;padding:0}
.esc-case input{width:40px;height:40px;text-align:center;font-size:24px;text-transform:uppercase;border:2px solid var(--e-bord);border-radius:8px;background:var(--e-bg);color:inherit}
.esc-cle{margin-top:12px}.esc-cle-l{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:22px}
.esc-cle-l span{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--e-bord);border-radius:8px;background:var(--e-bg)}
.esc-cle-l .esc-signe-img{width:30px;height:30px}
.esc-grille{border-collapse:collapse;margin-top:10px;font-size:22px}.esc-grille th,.esc-grille td{border:1px solid var(--e-bord);width:36px;height:36px;text-align:center}.esc-grille th{background:var(--e-bg2);font-size:17px}
.esc-indices li{margin-bottom:6px}
.esc-cadenas-z{background:var(--e-carte);border:2px solid var(--e-teal);border-radius:var(--e-r);padding:12px 14px;margin:12px 0}
.esc-roues{display:flex;gap:10px;margin:6px 0 12px}
.esc-roue{display:flex;flex-direction:column;align-items:center;gap:4px}
.esc-roue button{width:56px;min-height:44px;padding:4px!important;font-size:22px}
.esc-roue input{width:56px;height:64px;text-align:center;font-size:41px;font-weight:800;border:2px solid var(--e-bord);border-radius:10px;background:var(--e-bg);color:inherit;font-variant-numeric:tabular-nums}
.esc-ligne{display:flex;gap:8px;flex-wrap:wrap}
.esc-champ{flex:1;min-width:200px;font:inherit;font-size:27px;padding:8px 12px;border:2px solid var(--e-bord);border-radius:10px;background:var(--e-bg);color:inherit;text-transform:uppercase}
.esc-objets{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.esc-objets button,.esc-objet{display:flex!important;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:10px;border:1px solid var(--e-bord);border-radius:var(--e-r);background:var(--e-carte)}
.esc-objet-img{width:96px;height:96px;object-fit:contain}
.esc-objet-img.esc-provisoire{min-height:96px;padding:2px}
.esc-effets{padding:12px 14px;border-radius:var(--e-r);background:var(--e-teal-l);border:2px solid var(--e-teal);margin:10px 0}
.esc-solution{padding:12px 14px;border-radius:var(--e-r);background:var(--e-violet-l);border:2px dashed var(--e-violet);margin:10px 0}
.esc-trouve{font-family:ui-monospace,Consolas,monospace;font-weight:800;letter-spacing:.08em;padding:1px 8px;border-radius:6px;background:var(--e-bg2)}
.esc-aides{margin-top:14px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.esc-aides ol{margin:0;padding-left:22px}
.esc-aides li{background:var(--e-carte);border:1px solid var(--e-bord);border-radius:8px;padding:6px 10px;margin-bottom:6px}
.esc-confirmer{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.esc-onglets{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.esc-onglets button.actif{background:var(--e-teal);color:#fff;border-color:var(--e-teal);font-weight:700}
.esc-calque{position:absolute;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:16px;z-index:2}
.esc-calque[hidden]{display:none}
.esc-doc{background:var(--e-carte);border-radius:var(--e-r);padding:14px 16px;max-width:860px;width:100%;max-height:100%;overflow:auto;display:flex;flex-direction:column;gap:10px}
.esc-doc header{display:flex;align-items:center;gap:8px}.esc-doc header h2{flex:1;margin:0}
.esc-doc-img{position:relative}.esc-doc-img img{display:block;width:100%;height:auto;border-radius:8px}
.esc-sur{position:absolute;transform:translate(-50%,-50%);background:rgba(255,255,255,.92);color:#111;padding:2px 8px;border-radius:6px;font-weight:800;font-size:22px;white-space:nowrap}
.esc-doc-t{white-space:pre-line;font-size:22px;margin:0}
.esc-bilan{text-align:left;max-width:760px;margin:16px auto}
.esc-chiffres{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px}
.esc-chiffres div{background:var(--e-carte);border:1px solid var(--e-bord);border-radius:var(--e-r);padding:10px;display:flex;flex-direction:column;align-items:center}
.esc-chiffres b{font-size:29px}.esc-chiffres span{font-size:16px;color:var(--e-texte2)}
.esc-demarches{padding-left:20px}.esc-demarches li{margin-bottom:8px}.esc-demarches summary{cursor:pointer;font-weight:600}
@media(max-width:600px){.esc-jeu{font-size:20px}.esc-barre{gap:6px}.esc-titre{width:100%}.esc-roue input{width:46px;height:56px;font-size:34px}.esc-roue button{width:46px}}
/* Étape 5 : le mot de l'ordre, les balances, le message caché, le recoupement, la décision */
.esc-question{font-size:22px;font-weight:600;background:var(--e-bg2);border-radius:10px;padding:8px 12px}
.esc-cases-ordre{list-style:none;counter-reset:o;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:6px}
.esc-cases-ordre li{counter-increment:o;display:flex;align-items:center;gap:8px;min-height:52px}
.esc-cases-ordre li::before{content:counter(o);flex:0 0 32px;height:32px;border-radius:50%;background:var(--e-teal);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center}
.esc-cases-ordre li.vide{border:2px dashed var(--e-bord);border-radius:var(--e-r);padding:6px 10px}
.esc-cases-ordre li.vide::before{background:var(--e-bord);color:var(--e-texte)}
.esc-cartes{display:flex;flex-direction:column;gap:6px}
.esc-carte{display:flex!important;align-items:center;gap:10px;text-align:left;width:100%}
.esc-carte span{flex:1}
.esc-carte.placee{border-color:var(--e-teal)!important;border-width:2px!important}
.esc-signe-c{flex:0 0 auto;min-width:34px;height:34px;border-radius:8px;border:2px solid var(--e-texte);display:flex;align-items:center;justify-content:center;font-size:22px}
.esc-carte-img{width:64px;height:64px;object-fit:contain}
.esc-carte-img.esc-provisoire{min-height:64px;padding:0}
.esc-mot-forme{font-size:22px}
.esc-balances{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:12px}
.esc-balance{margin:0;border:1px solid var(--e-bord);border-radius:var(--e-r);padding:10px;background:var(--e-bg)}
.esc-balance figcaption{font-size:17px;color:var(--e-texte2);margin-top:6px;text-align:center}
.esc-fleau{display:flex;align-items:flex-end;justify-content:center;gap:10px;border-bottom:4px solid var(--e-texte);padding-bottom:6px}
.esc-egal{font-size:37px;line-height:1}
.esc-plateau{display:flex;flex-wrap:wrap;gap:4px;align-items:flex-end;justify-content:center;min-width:90px;min-height:60px;padding:4px 8px;border-bottom:3px solid var(--e-texte2);border-radius:0 0 40px 40px}
.esc-pese{display:inline-flex;align-items:center;gap:2px;font-weight:700}
.esc-pese-img{width:46px;height:46px;object-fit:contain}
.esc-pese-img.esc-provisoire{min-height:46px;width:46px;padding:0}.esc-pese-img.esc-provisoire small,.esc-pese-img.esc-provisoire b{display:none}
.esc-poids{display:inline-flex;align-items:center;justify-content:center;min-width:64px;height:46px;padding:0 10px;background:var(--e-texte);color:var(--e-bg);border-radius:8px 8px 4px 4px;font-weight:800;font-size:22px;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%)}
.esc-texte-cache{font-size:24px;line-height:2;background:var(--e-carte);border-radius:10px;padding:6px 10px}
.esc-texte-cache p{margin:0}
.esc-motb{display:inline!important;padding:0 3px!important;min-height:0!important;border:none!important;background:none!important;font-size:inherit!important;line-height:inherit;border-radius:4px!important;border-bottom:2px solid transparent!important}
.esc-motb.esc-surligne{background:var(--e-violet-l)!important;border-bottom:3px solid var(--e-violet)!important;font-weight:700}
.esc-motb.esc-surligne::after{content:" ✎";font-size:16px;color:var(--e-violet)}
.esc-recoupe{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-top:10px}
.esc-recoupe-doc{border:1px solid var(--e-bord);border-radius:var(--e-r);padding:10px;background:var(--e-bg);display:flex;flex-direction:column;gap:8px}
.esc-recoupe-doc h4{margin:0}
.esc-recoupe-img{padding:0!important;border:none!important;background:none!important}.esc-recoupe-img img{width:100%;border-radius:8px}
.esc-options{display:flex;flex-direction:column;gap:8px}
.esc-option{display:flex!important;align-items:center;gap:12px;text-align:left;width:100%;font-size:21px}
.esc-option-n{flex:0 0 36px;height:36px;border-radius:50%;border:2px solid var(--e-texte);display:flex;align-items:center;justify-content:center;font-weight:800}
.esc-option:disabled{opacity:.7;cursor:default}
/* Étape 6 : cherche et trouve, la grille de déduction, le plan, la grille trouée, le document déchiré */
.esc-cherche .esc-provisoire{aspect-ratio:16/9;min-height:0}
.esc-el{position:absolute;padding:0!important;min-height:0!important;background:transparent!important;border:2px dashed rgba(255,255,255,.55)!important;border-radius:50%!important}
.esc-el.entoure{border:4px solid var(--e-violet)!important;box-shadow:0 0 0 3px #fff}
.esc-el-n{position:absolute;right:-6px;top:-6px;min-width:26px;height:26px;border-radius:13px;background:#fff;color:#111;border:2px solid #111;font-weight:800;font-size:18px;display:flex;align-items:center;justify-content:center}
.esc-indices-d{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}
.esc-indices-d li{display:flex;align-items:center;gap:8px;background:var(--e-carte);border:1px solid var(--e-bord);border-radius:8px;padding:6px 10px}
.esc-indices-d label{flex:1;font-size:20px;font-weight:400;color:inherit;margin:0}
.esc-indices-d li.vu label{text-decoration:line-through;color:var(--e-texte2)}
.esc-indices-d input{width:20px;height:20px;vertical-align:-4px}
.esc-deducs{display:flex;flex-wrap:wrap;gap:16px}
.esc-deduc{border-collapse:collapse}
.esc-deduc th,.esc-deduc td{border:1px solid var(--e-bord);padding:0;text-align:center;font-size:18px}
.esc-deduc th{background:var(--e-bg2);padding:6px 8px;font-weight:600}
.esc-deduc th.coin{font-size:15px;color:var(--e-texte2);font-weight:500}
.esc-dcase{width:56px;height:52px;min-height:0!important;border:none!important;border-radius:0!important;font-size:29px;font-weight:800;padding:0!important}
.esc-dcase.oui{background:var(--e-teal-l)!important;color:var(--e-teal)}
.esc-dcase.non{background:var(--e-verm-l)!important;color:var(--e-verm)}
.esc-plan-z{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;margin-top:10px}
.esc-plan-cadre{position:relative}
.esc-plan-fond{position:absolute;inset:26px 0 0 26px;width:calc(100% - 26px);height:calc(100% - 26px);object-fit:cover;opacity:.45;border-radius:4px;pointer-events:none}
.esc-plan-fond.esc-provisoire{display:none}
.esc-plan{position:relative;border-collapse:collapse}
.esc-plan th{width:26px;height:26px;font-size:16px;color:var(--e-texte2)}
.esc-plan td{width:52px;height:52px;border:1px solid var(--e-texte2);position:relative;text-align:center;vertical-align:middle;background:rgba(255,255,255,.25)}
.esc-plan td.passe{background:var(--e-teal-l)}
.esc-plan td.pion{outline:3px solid var(--e-violet);outline-offset:-3px}
.esc-lettre{font-size:24px}
.esc-icone{position:absolute;left:2px;top:0;font-size:16px}
.esc-depart{position:absolute;right:2px;top:0;font-size:16px}
.esc-pion{position:absolute;right:3px;bottom:0;color:var(--e-violet);font-size:27px;line-height:1}
.esc-fleches{display:flex;flex-direction:column;gap:6px;align-items:stretch;min-width:220px}
.esc-rose{font-weight:800;text-align:center}
.esc-croix{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"n n" "o e" "s s";gap:6px}
.esc-croix .n{grid-area:n}.esc-croix .o{grid-area:o}.esc-croix .e{grid-area:e}.esc-croix .s{grid-area:s}
.esc-cache{border-collapse:collapse;margin:8px 0;font-family:ui-monospace,Consolas,monospace}
.esc-cache td{width:44px;height:44px;border:1px solid var(--e-bord);text-align:center;font-size:27px;font-weight:700;background:var(--e-carte)}
.esc-cache.pose td.couvert{background:repeating-linear-gradient(45deg,#2b2f3a 0 6px,#3a3f4d 6px 12px)}
.esc-cache.pose td.trou{background:#fff;color:#111;box-shadow:inset 0 0 0 3px var(--e-violet)}
.esc-cadre{display:grid;gap:4px;max-width:640px;border:3px dashed var(--e-bord);padding:4px;border-radius:10px;background:var(--e-bg2)}
.esc-emplacement,.esc-morceau{aspect-ratio:4/3;min-height:0!important;padding:0!important;border-radius:6px!important}
.esc-emplacement{border:2px dashed var(--e-bord)!important;background:var(--e-bg)!important;font-size:34px;color:var(--e-teal)}
.esc-morceau{position:relative;overflow:hidden;border:2px solid var(--e-texte2)!important;background:#fff!important}
.esc-morceau-in{transition:transform .15s}
.esc-morceau.choisi{outline:4px solid var(--e-violet);outline-offset:2px}
.esc-morceau-in{position:absolute;pointer-events:none}
.esc-dech-img{display:block;width:100%;height:100%;object-fit:cover}
.esc-dech-texte{width:100%;height:100%;padding:6%;font-size:18px;line-height:1.5;color:#111;background:#fdf6e3;white-space:pre-line;text-align:left}
.esc-plateau-m{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:10px 0;max-width:640px}
@media(max-width:600px){.esc-plan td{width:40px;height:40px}.esc-dcase{width:44px;height:44px}.esc-cache td{width:34px;height:34px;font-size:22px}}
/* Étape 9 : la boîte à codes de la classe (vue de loin : tout en grand) */
.esc-boite .esc-corps>section{max-width:1100px}
.esc-boite-q{font-size:37px!important;text-align:center;margin:10px 0 16px!important}
.esc-boite-groupes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px}
.esc-boite-g{display:flex!important;flex-direction:column;align-items:center;gap:6px;padding:22px 10px!important;font-size:29px!important;border-width:3px!important}
.esc-boite-g b{font-size:37px}.esc-boite-g span{font-size:22px;color:var(--e-texte2)}
.esc-boite-g.fini{border-color:var(--e-teal)!important;background:var(--e-teal-l)!important}
.esc-boite-saisie{max-width:560px;margin:0 auto}
.esc-boite-champ{font-size:49px!important;text-align:center;letter-spacing:.1em}
.esc-boite-pave{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:14px}
.esc-boite-pave button{font-size:41px!important;font-weight:800;min-height:72px!important}
.esc-boite-retour{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:24px;border-radius:var(--e-r);margin:10px auto 16px;max-width:760px}
.esc-boite-retour b{font-size:72px;line-height:1}.esc-boite-retour p{font-size:34px;font-weight:700;margin:0}
.esc-boite-retour.juste{background:var(--e-teal-l);border:4px solid var(--e-teal)}
.esc-boite-retour.faux{background:var(--e-verm-l);border:4px dashed var(--e-verm)}
.esc-boite-retour+.esc-boite-saisie{display:none}
.esc-boite-classement{margin-top:20px;padding:12px 16px;border:2px solid var(--e-violet);border-radius:var(--e-r);background:var(--e-violet-l)}
.esc-boite-classement ol{font-size:27px;margin:0}
.esc-boite-adulte{margin-top:30px;text-align:right}.esc-boite-adulte.esc-meca{text-align:left}
.esc-boite-adulte select{font:inherit;padding:8px;border-radius:8px;border:1px solid var(--e-bord);background:var(--e-carte);color:inherit}
.esc-boite-bilan div{align-items:flex-start!important;text-align:left;gap:4px}.esc-boite-bilan b{font-size:24px!important}.esc-boite-bilan span{font-size:18px!important}
.esc-boite-aides{overflow-x:auto;margin-bottom:12px}
.esc-boite-aides table{border-collapse:collapse}.esc-boite-aides th,.esc-boite-aides td{border:1px solid var(--e-bord);padding:6px 10px;text-align:left}
.esc-boite-aides select{font:inherit;padding:4px 8px;border-radius:6px;border:1px solid var(--e-bord);background:var(--e-carte);color:inherit}
/* Les cadres à toucher ne se voient pas (l'élève explore), sauf après « Je ne trouve pas » ; au clavier, le cadre qui a la main se voit. */
.esc-scene:not(.reperes) .esc-zone{border-color:transparent!important;outline:none;background:transparent!important;cursor:default}
.esc-scene:not(.reperes) .esc-zone:hover{background:transparent!important}
.esc-scene:not(.reperes) .esc-zone:focus-visible{border-color:rgba(255,255,255,.9)!important;outline:2px dashed rgba(0,0,0,.55)}
.esc-scene:not(.reperes) .esc-zone.fait{background:transparent!important}
.esc-consigne{margin:4px 0 8px;font-weight:600} .esc-reperes{margin:10px 0}
/* Le plan des lieux */
.esc-carte-plan{position:relative;aspect-ratio:16/10;margin:8px 0 16px;border:3px solid var(--e-bord);border-radius:var(--e-r);background:var(--e-bg2);overflow:hidden}
.esc-piece{position:absolute;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;padding:4px!important;min-height:0!important;border:2px solid var(--e-bord)!important;border-radius:10px!important;font-size:clamp(11px,1.8vw,16px)}
.esc-piece.ferme{border-style:dashed!important;background:var(--e-bg)}
.esc-piece.brume{border-style:dotted!important;color:var(--e-texte2,#8a94a6);font-size:clamp(18px,4vw,34px);background:repeating-linear-gradient(135deg,transparent 0 8px,rgba(128,128,128,.12) 8px 16px)}
/* L'habillage (27/10/2026) : ce qu'il faut réunir, les portraits, la bulle du compagnon, la finale illustrée, le diplôme */
.esc-reunir{display:inline-flex;gap:4px;align-items:center}
.esc-ing{position:relative;display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:2px dashed var(--e-bord);border-radius:50%;background:var(--e-carte);overflow:hidden}
.esc-ing.ok{border:2px solid var(--e-teal)}
.esc-ing .esc-ing-img{width:100%;height:100%;object-fit:contain;opacity:.35;filter:grayscale(1)} .esc-ing.ok .esc-ing-img{opacity:1;filter:none}
.esc-ing b{position:absolute;right:-1px;bottom:-3px;font-size:15px;background:var(--e-carte);border-radius:50%;padding:0 2px;line-height:1.1} .esc-ing.ok b{color:var(--e-teal)}
.esc-ing .esc-provisoire{min-height:0;font-size:0;width:100%;height:100%}
.esc-portrait{width:64px;height:64px;object-fit:cover;border-radius:50%;border:2px solid var(--e-bord);background:var(--e-carte);flex:none}
.esc-portrait.mini{width:44px;height:44px} .esc-portrait.flotte{float:right;width:96px;height:96px;margin:0 0 8px 12px}
div.esc-portrait{font-size:0;min-height:0!important;aspect-ratio:auto!important}
.esc-bulle{display:flex;gap:10px;align-items:flex-start;margin:0 0 12px;padding:10px 14px;border:2px solid var(--e-violet);border-radius:18px 18px 18px 4px;background:var(--e-violet-l)}
.esc-bulle p{margin:0}
.esc-souffle{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px;list-style:none}
.esc-doc header .esc-portrait{margin-right:6px}
.esc-finale li{display:flex;align-items:center;gap:8px;flex-wrap:wrap} .esc-finale .esc-ing-img{width:44px;height:44px;object-fit:contain}
.esc-diplome-z{display:flex;flex-direction:column;align-items:center;gap:10px;margin:18px 0}
.esc-diplome{width:min(640px,100%);text-align:center;padding:26px 22px;border:6px double var(--e-violet);border-radius:14px;background:var(--e-carte)}
.esc-dip-titre{font-size:32px;font-weight:800;margin:0 0 6px} .esc-dip-noms{font-size:27px;font-weight:700;margin:4px 0 10px} .esc-dip-texte{font-style:italic}
.esc-dip-sign{display:flex;gap:8px;align-items:center;justify-content:flex-end;margin-top:12px;font-weight:700}
/* Le diplôme (30/10/2026) : une page A4 entière, en paysage (le même pour la partie, l'enseignant et le kit papier) */
@page diplome{size:A4 landscape;margin:0}
.dip4{page:diplome;box-sizing:border-box;width:297mm;height:210mm;padding:9mm;background:#fff;color:#1B2436;font-family:Georgia,'Times New Roman',serif;break-after:page;page-break-after:always}
.dip4-cadre{height:100%;box-sizing:border-box;border:3mm double #5B47B8;outline:1mm solid #E8A13A;outline-offset:-7mm;border-radius:4mm;padding:13mm 20mm 11mm;display:flex;flex-direction:column;align-items:center;justify-content:space-between;text-align:center;background:radial-gradient(circle at 50% 40%,#FFFDF6,#F6ECD6)}
.dip4-sur{font:600 13pt 'Segoe UI',Arial,sans-serif;letter-spacing:.3em;text-transform:uppercase;color:#7A2E0B;margin:0}
.dip4-t{font-size:34pt;line-height:1.15;margin:0;color:#5B2A86}
.dip4-dec{font-size:16pt;font-style:italic;margin:0}
.dip4-noms{font-size:28pt;font-weight:700;margin:0;min-width:60%;padding:0 6mm 2mm;border-bottom:.5mm solid #5B47B8}
.dip4-noms.vide{height:15mm;border-bottom-style:dotted}
.dip4-x{font-size:16pt;font-style:italic;max-width:210mm;margin:0}
.dip4-ch{font:11pt 'Segoe UI',Arial,sans-serif;color:#4F5B70;margin:0}
.dip4-pied{width:100%;display:flex;align-items:flex-end;justify-content:space-between}
.dip4-date{font-size:14pt;margin:0 0 4mm;min-width:60mm;text-align:left}
.dip4-sceau{width:30mm;height:30mm;border-radius:50%;background:radial-gradient(circle,#F6CF62,#D9931A);outline:.8mm solid #D9931A;outline-offset:1mm;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#5B2A86;font:800 12pt 'Segoe UI',Arial,sans-serif}
.dip4-sceau span{font-size:22pt;line-height:1}
.dip4-sign{display:flex;align-items:flex-end;gap:4mm;min-width:60mm;justify-content:flex-end}
.dip4-sign img{width:22mm;height:22mm;object-fit:cover;border-radius:50%;border:.6mm solid #5B47B8}
.dip4-sign span{display:flex;flex-direction:column;align-items:flex-start;font-size:14pt}
.dip4-sign i{display:block;width:45mm;border-bottom:.3mm solid #1B2436;margin-top:7mm}
.dip4-ecran{width:min(100%,760px);aspect-ratio:297/210;overflow:hidden;position:relative;border-radius:6px;box-shadow:0 4px 18px rgba(0,0,0,.18)}
.dip4-ecran .dip4{position:absolute;left:0;top:0;transform-origin:0 0}
@media screen{#esc-dipl-impr{display:none}}
@media print{body.esc-dipl>*:not(#esc-dipl-impr){display:none!important}body.esc-dipl #esc-dipl-impr{display:block}
/* (le kit papier met les marges de page à 0 : les cartes portent les leurs, redites à chaque feuille) */
.esc-cartes-impr{box-sizing:border-box;padding:12mm;-webkit-box-decoration-break:clone;box-decoration-break:clone;columns:2;column-gap:8mm;color:#000}.esc-cartes-impr h1{column-span:all;margin:0 0 6mm;font-size:20pt;text-align:center}
.esc-cartes-impr .esc-savoir{break-inside:avoid;max-width:none;margin:0 0 6mm;border:.5mm solid #000;background:#fff}.esc-cartes-impr .esc-savoir p{font-size:12pt}.esc-cartes-impr .esc-savoir-t{color:#000}
.esc-cartes-impr .esc-voix,.esc-cartes-impr .esc-provisoire{display:none}}
div.esc-portrait *{display:none}
/* L'enseignant (le tableau de bord) : ses messages, sa pause */
.esc-bulle.prof{border-color:var(--e-teal);background:var(--e-teal-l)} .esc-porte-voix{font-size:34px;line-height:1}
.esc-pause-prof{text-align:center;padding:40px 16px} .esc-pause-i{font-size:72px;margin:0} .esc-pause-prof h2{font-size:39px;margin:6px 0}

/* Le plan illustré : l'image du manoir ; les pièces découvertes en cadres légers, les autres sous le brouillard */
.esc-carte-plan.illustre{background:#1b2436}
.esc-plan-img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.esc-carte-plan .esc-provisoire.esc-plan-img{min-height:0}
.illustre .esc-piece{background:transparent!important;border:3px solid rgba(255,255,255,.85)!important;box-shadow:0 0 0 2px rgba(0,0,0,.35) inset;justify-content:flex-end}
.illustre .esc-piece strong,.illustre .esc-piece .esc-sous{background:rgba(255,255,255,.92);color:#1F2633;border-radius:8px;padding:1px 8px}
.illustre .esc-piece.ferme{border-style:dashed!important;background:rgba(20,24,34,.35)!important}
.illustre .esc-piece.brume{background:radial-gradient(circle at 50% 50%,rgba(236,231,220,.97),rgba(236,231,220,.9) 60%,rgba(236,231,220,.75))!important;border:2px dotted rgba(255,255,255,.7)!important;color:#55606F}
.illustre .esc-piece:hover:not(.brume):not(.ferme){background:rgba(255,255,255,.15)!important}

/* Retours des essais (30/10/2026) */
/* l'affiche déchirée : le cadre et les morceaux côte à côte ; un morceau garde sa forme (bord déchiré), où qu'il soit */
.esc-dech-z{display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
/* (le cadre et le plateau de même largeur : un morceau a la même taille dans l'un et dans l'autre) */
.esc-dech-z .esc-cadre{flex:1 1 0;min-width:280px;max-width:none}
.esc-dech-z .esc-plateau-m{flex:1 1 0;min-width:280px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:7px;margin:0;max-width:none;align-content:start}
.esc-dech-svg{width:100%;height:100%}.esc-dech-svg svg{display:block}
.esc-morceau{border:0!important;background:#F6E4C4!important}
.esc-morceau.choisi .esc-morceau-in{opacity:.55}
.esc-morceau.choisi::after{content:"✓ choisi";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:3px 10px;border-radius:999px;background:var(--e-violet);color:#fff;font-weight:800;font-size:16px}
/* la clé par calculs : une carte par lettre (« 2 + 3 = ☐ »), un mot par ligne */
.esc-message.calculs{flex-direction:column;align-items:flex-start;gap:18px}
.esc-message.calculs .esc-mot{flex-wrap:wrap;gap:12px}
.esc-message.calculs .esc-case{flex-direction:row;gap:8px;padding:8px 12px;border:2px solid var(--e-bord);border-radius:12px;background:var(--e-carte)}
.esc-message.calculs .esc-s{border:0;font-size:24px;min-width:0}
.esc-message.calculs .esc-s::after{content:" =";white-space:pre}
/* le registre : des cases de taille fixe, le tableau ne bouge plus */
.esc-deduc{table-layout:fixed}
.esc-deduc td{width:62px;height:56px}
.esc-dcase{display:block;width:100%!important;height:56px!important;line-height:56px!important;overflow:hidden}
/* le clavier */
.esc-pave{position:fixed;left:50%;bottom:8px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:16px;background:var(--e-carte);border:2px solid var(--e-bord);box-shadow:0 8px 28px rgba(0,0,0,.22);max-width:calc(100vw - 16px)}
.esc-pave[hidden]{display:none}
.esc-pave-r{display:flex;gap:6px;justify-content:center}
.esc-pave button{min-width:44px;min-height:50px;padding:0 6px;font-size:22px;font-weight:700;border-radius:10px}
.esc-pave button.large{min-width:72px}.esc-pave button.espace{flex:1 1 200px}
.avec-pave .esc-corps{padding-bottom:340px}
.esc-clav-b[aria-pressed=true]{background:var(--e-teal-l);border-color:var(--e-teal)}

/* Au téléphone (28/10/2026) : la barre sur une ligne (les boutons en icônes), les morceaux de l'affiche plus petits */
@media(max-width:600px){
  .esc-barre{flex-wrap:nowrap;overflow-x:auto;gap:6px}
  .esc-barre .esc-lib{display:none}
  .esc-barre button{flex-shrink:0;min-width:44px}
  .esc-titre{display:none}
  .esc-avance,.esc-temps,.esc-reunir{white-space:nowrap;flex-shrink:0}
  .esc-dech-z .esc-plateau-m{grid-template-columns:repeat(3,minmax(0,1fr))}
}
