@layer modules{
/* ════════ Studio « Édition » - bibliothèque de contenus type Finder ════════
   Réutilise les tokens de 01-tokens.css (clair/sombre/accent/densité ; modes
   Kids/Ado restent fonctionnels par cascade des tokens). 4 affichages (icônes /
   liste / galerie / colonnes macOS) + mode panneau (arbre + éditeur). */

.edition{ display:flex; flex-direction:column; gap:var(--sp-12); min-height:420px; }
/* Fichiers glissés depuis l'ordinateur au-dessus de la bibliothèque. */
.edition.ed-depot .ed-body{ outline:2px dashed var(--accent); outline-offset:-2px; border-radius:var(--radius); }
.ed-loading{ color:var(--mut); font-size:var(--fs-md); padding:var(--sp-24); }

/* ── Barre d'outils ──────────────────────────────────────────────────────── */
.ed-toolbar{ display:flex; align-items:center; gap:var(--sp-12);
  padding-bottom:var(--sp-10); border-bottom:1px solid var(--line); min-height:34px; }
/* margin:0 neutralise une règle homonyme orpheline (03-layout.css .ed-acts{margin:18px…})
   qui décalait les CTAs vers le bas et cassait l'alignement vertical de la barre. */
.ed-acts{ display:flex; gap:var(--sp-8); align-items:center; flex:none; margin:0; }
/* Outils + CTAs de création regroupés à DROITE de la barre, alignés au centre. */
.ed-tools{ display:flex; gap:var(--sp-10); align-items:center; margin-left:auto; flex:none; }

.ed-btn{ display:inline-flex; align-items:center; gap:var(--sp-6); padding:var(--sp-6) var(--sp-12); font:inherit; font-size:var(--fs-md);
  border:1px solid var(--line); border-radius:var(--radius); background:var(--card); color:var(--txt);
  cursor:pointer; transition:.13s; white-space:nowrap; }
.ed-btn:hover{ border-color:var(--accent); background:var(--card2); }
.ed-btn.primary{ background:var(--accent); border-color:var(--accent); color:var(--on-solid); }
.ed-btn.primary:hover{ filter:brightness(1.06); }
.ed-btn.sm{ padding:var(--sp-4) var(--sp-10); font-size:var(--fs-sm); }
.ed-btn .ic{ width:16px; height:16px; }

/* Fil d'Ariane */
.ed-crumb{ display:flex; align-items:center; gap:var(--sp-2); flex:1 1 220px; min-width:0; overflow:hidden;
  flex-wrap:nowrap; color:var(--mut); font-size:var(--fs-sm); }
.ed-cr{ display:inline-flex; align-items:center; gap:var(--sp-4); padding:var(--sp-2) var(--sp-8); border:0; background:none;
  color:var(--mut); font:inherit; font-size:var(--fs-sm); cursor:pointer; border-radius:var(--radius-sm); white-space:nowrap;
  max-width:200px; overflow:hidden; text-overflow:ellipsis; }
.ed-cr:hover{ background:var(--card2); color:var(--txt); }
.ed-cr.cur{ color:var(--txt); font-weight:var(--fw-strong); cursor:default; }
.ed-cr .ic{ width:14px; height:14px; }
.ed-cr-sep{ color:var(--mut); opacity:.5; display:inline-flex; }
.ed-cr-sep .ic{ width:12px; height:12px; }

/* Bascule d'affichage + panneau */
.ed-seg{ display:inline-flex; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; background:var(--card); }
.ed-vseg{ display:grid; place-items:center; width:34px; height:30px; border:0; background:none; color:var(--mut);
  cursor:pointer; transition:.12s; }
.ed-vseg:hover{ background:var(--card2); color:var(--txt); }
.ed-vseg.on{ background:var(--accent); color:var(--on-solid); }
.ed-vseg .ic{ width:16px; height:16px; }
.ed-panel-t{ border:1px solid var(--line); border-radius:var(--radius); }

/* ── Corps ───────────────────────────────────────────────────────────────── */
.ed-body{ flex:1; min-height:0; }
/* Un éditeur « plein » (le Tableur depuis le 2026-10-16) porte son propre en-tête et son propre fil d'Ariane : la barre
   d'outils de la bibliothèque s'efface et l'éditeur colle aux bords. 39-edition.js pose la classe. */
.edition.ed-plein{ gap:0; }
.edition.ed-plein .ed-toolbar{ display:none; }
.edition.ed-edite .ed-toolbar{ display:none; }   /* CDC_STUDIO_BANDEAU : un éditeur ouvert sous le bandeau partagé ; « Revenir aux dossiers » est dans Fichier */
.edition.ed-plein .ed-editor.full .ed-editor-host{ padding:0; }
.ed-pane{ min-height:360px; }

/* Vide */
.ed-empty{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-12);
  padding:var(--sp-48) var(--sp-16); color:var(--mut); text-align:center; }
.ed-empty-ic{ display:grid; place-items:center; width:64px; height:64px; border-radius:var(--radius-modal);
  background:var(--card2); color:var(--mut); }
.ed-empty-ic .ic{ width:30px; height:30px; }
.ed-empty p{ margin:0; font-size:var(--fs-md); }
/* Trois boutons depuis « Importer des fichiers » (2026-10-16) : ils passent à la ligne dans un panneau étroit au lieu de déborder. */
.ed-empty-acts{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--sp-8); }

/* ── Affichage ICÔNES ────────────────────────────────────────────────────── */
.ed-icons{ display:grid; grid-template-columns:repeat(auto-fill,minmax(118px,1fr)); gap:var(--sp-8); padding:var(--sp-6) var(--sp-2); }
.ed-tile{ display:flex; flex-direction:column; align-items:center; gap:var(--sp-8); padding:var(--sp-14) var(--sp-8); text-align:center;
  border:1px solid transparent; border-radius:var(--radius); background:none; color:var(--txt); font:inherit; cursor:pointer;
  transition:.12s; }
.ed-tile:hover{ background:var(--card2); }
.ed-tile.sel{ background:color-mix(in srgb,var(--accent) 16%,transparent); border-color:var(--accent); }
.ed-tile-ic{ position:relative; display:grid; place-items:center; width:62px; height:62px; border-radius:var(--radius-modal);
  background:var(--card2); color:var(--accent); border:1px solid var(--line); overflow:hidden; }
.ed-tile-ic.folder{ color:var(--mut); background:linear-gradient(180deg,var(--card),var(--card2)); }
.ed-tile-ic .ic{ width:30px; height:30px; }
.ed-tile-ic.has-thumb{ background:var(--card); border-color:var(--line); padding:0; }
.ed-tile-n{ font-size:var(--fs-sm); line-height:1.3; word-break:break-word; max-width:108px; }

/* Thumbnail commun */
.ed-th{ display:block; width:100%; height:100%; object-fit:cover; border-radius:inherit; }
.ed-gal-prev.has-thumb{ background:var(--card); padding:0; color:transparent; overflow:hidden; }
.ed-gal-prev.has-thumb .ed-th{ border-radius:var(--radius-modal); }
.ed-chip-ic.has-thumb{ background:var(--card); padding:0; color:transparent; overflow:hidden; }
.ed-chip-ic.has-thumb .ed-th{ border-radius:var(--radius); }

/* ── Affichage LISTE ─────────────────────────────────────────────────────── */
.ed-list{ display:flex; flex-direction:column; }
.ed-row{ display:grid; grid-template-columns:30px 1fr auto auto; align-items:center; gap:var(--sp-12);
  padding:var(--sp-8) var(--sp-10); border-radius:var(--radius); cursor:pointer; transition:.1s; }
.ed-row:hover{ background:var(--card2); }
.ed-row.sel{ background:color-mix(in srgb,var(--accent) 16%,transparent); }
.ed-row-ic{ display:grid; place-items:center; color:var(--accent); }
.ed-row-ic.folder{ color:var(--mut); }
.ed-row-ic .ic{ width:18px; height:18px; }
.ed-row.has-row-thumb{ grid-template-columns:46px 1fr auto auto; }
.ed-row-ic.has-thumb{ width:44px; height:30px; border-radius:var(--radius-sm); overflow:hidden; padding:0; background:var(--card); }
.ed-row-ic.has-thumb .ed-th{ border-radius:var(--radius-sm); }
.ed-row-n{ font-size:var(--fs-md); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  display:flex; align-items:center; gap:var(--sp-6); }
.ed-row-k,.ed-row-d{ font-size:var(--fs-sm); color:var(--mut); white-space:nowrap; }

/* ── Affichage GALERIE (aperçu + bande scroll-x) ─────────────────────────── */
.ed-gallery{ display:flex; flex-direction:column; gap:var(--sp-12); }
.ed-gal-stage{ display:flex; align-items:center; gap:var(--sp-20); padding:var(--sp-24); border:1px solid var(--line);
  border-radius:var(--radius); background:linear-gradient(180deg,var(--card),var(--card2)); min-height:220px; cursor:default; }
.ed-gal-prev{ flex:none; display:grid; place-items:center; width:170px; height:170px; border-radius:var(--radius-modal);
  background:var(--card2); color:var(--accent); border:1px solid var(--line); position:relative; }
.ed-gal-prev.folder{ color:var(--mut); }
.ed-gal-prev .ic{ width:78px; height:78px; }
.ed-gal-meta{ display:flex; flex-direction:column; gap:var(--sp-6); align-items:flex-start; }
.ed-gal-meta b{ font-size:var(--fs-lg); }
.ed-gal-meta span{ font-size:var(--fs-sm); color:var(--mut); }
.ed-gal-meta .ed-btn{ margin-top:var(--sp-6); }
.ed-strip{ display:flex; gap:var(--sp-8); overflow-x:auto; padding:var(--sp-8) var(--sp-2) var(--sp-12); scroll-snap-type:x proximity; }
.ed-chip{ flex:none; width:92px; display:flex; flex-direction:column; align-items:center; gap:var(--sp-6); padding:var(--sp-8) var(--sp-6);
  border:1px solid var(--line); border-radius:var(--radius); background:var(--card); color:var(--txt); font:inherit; cursor:pointer;
  scroll-snap-align:start; transition:.12s; }
.ed-chip:hover{ border-color:var(--accent); }
.ed-chip.on{ border-color:var(--accent); background:color-mix(in srgb,var(--accent) 14%,transparent); }
.ed-chip-ic{ display:grid; place-items:center; width:44px; height:44px; border-radius:var(--radius); background:var(--card2);
  color:var(--accent); }
.ed-chip-ic.folder{ color:var(--mut); }
.ed-chip-ic .ic{ width:22px; height:22px; }
.ed-chip-n{ font-size:var(--fs-xs); line-height:1.25; max-width:84px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ── Affichage COLONNES (macOS) ──────────────────────────────────────────── */
.ed-cols{ display:flex; gap:0; overflow-x:auto; min-height:360px; border:1px solid var(--line); border-radius:var(--radius); }
.ed-col{ flex:none; width:230px; border-right:1px solid var(--line); padding:var(--sp-6); overflow-y:auto; max-height:540px; }
.ed-col:last-child{ border-right:0; }
.ed-col-row{ display:flex; align-items:center; gap:var(--sp-8); width:100%; padding:var(--sp-6) var(--sp-8); border:0; border-radius:var(--radius);
  background:none; color:var(--txt); font:inherit; font-size:var(--fs-md); cursor:pointer; text-align:left; transition:.1s; }
.ed-col-row:hover{ background:var(--card2); }
.ed-col-row.on{ background:var(--accent); color:var(--on-solid); }
.ed-col-row.on .ed-col-ic{ color:var(--on-solid); }
.ed-col-ic{ display:grid; place-items:center; color:var(--accent); flex:none; }
.ed-col-ic.folder{ color:var(--mut); }
.ed-col-ic .ic{ width:17px; height:17px; }
.ed-col-n{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; display:flex; align-items:center; gap:var(--sp-6); }
.ed-col-ch{ display:inline-flex; color:var(--mut); opacity:.7; }
.ed-col-row.on .ed-col-ch{ color:var(--on-solid); opacity:.9; }
.ed-col-ch .ic{ width:13px; height:13px; }
.ed-col-empty{ color:var(--mut); font-size:var(--fs-sm); padding:var(--sp-10); }
.ed-col-prev{ width:260px; display:flex; flex-direction:column; align-items:center; gap:var(--sp-14); padding:var(--sp-24) var(--sp-16); }
.ed-col-prev .ed-gal-prev{ width:140px; height:140px; }
.ed-col-prev .ed-gal-prev .ic{ width:64px; height:64px; }
.ed-prev-meta{ display:flex; flex-direction:column; align-items:center; gap:var(--sp-6); text-align:center; }
.ed-prev-meta b{ font-size:var(--fs-base); }
.ed-prev-meta span{ font-size:var(--fs-sm); color:var(--mut); }

/* ── Mode PANNEAU (arbre + contenu/éditeur) ──────────────────────────────── */
/* Sans cadre ni filet (proprio, 2026-10-16) : l'arbre et le contenu posent à même la page ; le border:0 de .ed-tree
   annule aussi le cadre que 05-editor.css (couche components) donnait à l'arbre. */
.ed-split{ display:grid; grid-template-columns:230px 1fr; gap:0; border-radius:var(--radius);
  overflow:hidden; min-height:360px; }
.ed-tree{ border:0; padding:var(--sp-8); overflow-y:auto; max-height:600px; background:var(--card); display:flex; flex-direction:column; gap:var(--sp-1); }
/* Nœud d'arbre : hauteur de ligne cohérente (corrige les items Bibliothèque écrasés). */
.ed-tnode{ display:flex; align-items:center; gap:var(--sp-8); width:100%; box-sizing:border-box; min-height:30px; padding:var(--sp-6) var(--sp-8); padding-left:calc(8px + var(--d,0)*14px);
  border:0; border-radius:var(--radius); background:none; color:var(--txt); font:inherit; font-size:var(--fs-sm); line-height:1.3; cursor:pointer;
  text-align:left; transition:.1s; white-space:nowrap; overflow:hidden; flex:0 0 auto; }
.ed-tnode:hover{ background:var(--card2); }
.ed-tnode.on{ background:color-mix(in srgb,var(--accent) 18%,transparent); color:var(--txt); font-weight:var(--fw-strong); }
.ed-tnode .ic{ width:15px; height:15px; color:var(--mut); flex:none; }
.ed-split .ed-pane{ padding:var(--sp-10); overflow-y:auto; max-height:600px; }

/* ── Hôte d'éditeur ──────────────────────────────────────────────────────── */
.ed-editor{ display:flex; flex-direction:column; min-height:360px; }
.ed-editor.solo{ border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; }
/* Éditeur plein cadre (« met juste l'éditeur ») : pas de chrome autour, l'éditeur
   embarqué porte sa propre bordure ; on remplit la hauteur disponible. */
.ed-editor.full{ display:flex; flex-direction:column; min-height:600px; }
.ed-editor.full .ed-editor-host{ padding:0; flex:1; min-height:0; }
.ed-back{ display:inline-flex; align-items:center; gap:var(--sp-6); align-self:flex-start; margin:var(--sp-10); padding:var(--sp-6) var(--sp-10);
  border:1px solid var(--line); border-radius:var(--radius); background:var(--card); color:var(--txt); font:inherit; font-size:var(--fs-sm);
  cursor:pointer; }
.ed-back:hover{ border-color:var(--accent); }
.ed-back .ic{ width:14px; height:14px; }
.ed-editor-host{ flex:1; min-height:0; padding:0 var(--sp-12) var(--sp-12); }
.ed-split .ed-editor-host{ padding:var(--sp-14); }
.ed-soon{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--sp-10); padding:var(--sp-48) var(--sp-16);
  color:var(--mut); text-align:center; }
.ed-soon-ic{ display:grid; place-items:center; width:60px; height:60px; border-radius:var(--radius-modal); background:var(--card2);
  color:var(--accent); }
.ed-soon-ic .ic{ width:28px; height:28px; }
.ed-soon b{ color:var(--txt); font-size:var(--fs-base); }
.ed-soon p{ margin:0; font-size:var(--fs-md); }

/* Badge alias (copie liée) */
.ed-alias{ display:inline-flex; align-items:center; justify-content:center; color:var(--accent); }
.ed-alias .ic{ width:13px; height:13px; }
.ed-tile-ic .ed-alias,.ed-gal-prev .ed-alias{ position:absolute; right:-4px; bottom:-4px; width:22px; height:22px;
  border-radius:50%; background:var(--card); border:1px solid var(--line); }
.ed-tile-ic .ed-alias .ic,.ed-gal-prev .ed-alias .ic{ width:12px; height:12px; }

@media (max-width:720px){
  .ed-split{ grid-template-columns:1fr; }
  .ed-tree{ border-right:0; border-bottom:1px solid var(--line); max-height:200px; }
  .ed-gal-stage{ flex-direction:column; text-align:center; }
  .ed-gal-meta{ align-items:center; }
}

/* ════════ Éditeurs par-document (texte / tableur / slides / image / audio) ════════ */

/* - Texte - : l'éditeur Markdown d'avant (.etx-modes, .etx-grid) n'existe plus ; le Document a sa feuille,
   21d-edition-document.css (CDC_DOCUMENT_WORD W1, 2026-10-23). */

/* ═══════════════════════════════════════════════════════════════════════════
   Tableur Excel-level - .esh-* namespace  (refonte UI v2)
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Jetons du Tableur ───────────────────────────────────────────────────
   La maquette du proprio (2026-10-16) tient sur deux couleurs qui ne sont pas celles de l'atelier : un bleu pour tout
   ce qui est choisi (cellule active, onglet, panneau, Partager) et un jaune pour la couleur de fond par défaut ;
   l'en-tête, lui, est celui de l'app (accent, --ok, --chrome-*). Elles vivent ICI, sur l'hôte,
   et nulle part en dur dans les règles : le thème sombre ne redéfinit que ce qui change. Tout le reste (fonds, filets,
   encres) vient des jetons de 01-tokens.css, dont les neutres sont déjà ceux de la maquette. Trois états de thème
   (ora360-dessins-theme) : les valeurs claires sont sous html[data-theme="light"], le défaut est le sombre, comme 01-tokens. */
.esh-host{
  /* Le bleu et le jaune de la maquette sont partagés avec le Document depuis le 2026-10-23 (22c-studio-outils.css,
     CDC_DOCUMENT_WORD W0) : les noms --esh-* restent, ils lisent les jetons partagés. */
  --esh-bleu:var(--outils-accent); --esh-jaune:var(--outils-surligneur);
  --esh-bleu-doux:var(--outils-accent-doux);
  --esh-bleu-filet:var(--outils-accent-filet);
  --esh-hdr-h:22px;            /* hauteur de la rangée des lettres : 53b (ROW_HDR) la suit ; compactée le 2026-10-16 (27 avant) */
  --esh-hdr-w:40px;            /* largeur de la colonne des numéros : 53b (COL_HDR) la suit ; 50 avant le 2026-10-16 */
  --esh-bouton:var(--outils-h);   /* un bouton d'outil, un champ, un onglet : la hauteur des contrôles de la DA commune (36 px jusqu'au 2026-10-24, CDC_DA_COMMUNE § 6) */
}

/* ── Host / Layout ───────────────────────────────────────────────────────
   De haut en bas, comme la maquette : en-tête (marque, fil d'Ariane, recherche, compte), barre des menus, barre
   d'outils, barre de formule, grille, pied (onglets, commentaire, zoom). */
.esh-host{ display:flex; flex-direction:column; height:100%; min-height:520px; overflow:hidden; background:var(--card); color:var(--txt); font-size:var(--fs-base); }
.esh-host:fullscreen{ width:100vw; height:100vh; min-height:0; }
.esh-host:-webkit-full-screen{ width:100vw; height:100vh; min-height:0; }
.esh-host svg.ic{ width:20px; height:20px; }
.esh-toolbar-container{ flex:none; background:var(--card); }
.esh-main-wrap{ flex:1; display:flex; position:relative; overflow:hidden; min-height:0; background:var(--card); }
.esh-grid-container{ flex:1; position:relative; overflow:hidden; min-height:0; }

/* Les boutons d'icône du chrome : un carré de --esh-bouton, sans filet, qui s'éclaire au survol. */
.esh-tb-btn{ background:none; border:1px solid transparent; border-radius:var(--radius-sm); padding:0 var(--sp-8); min-width:var(--esh-bouton); height:var(--esh-bouton); font:inherit; font-size:var(--fs-base); color:var(--txt); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:var(--sp-4); white-space:nowrap; flex:none; line-height:var(--lh-flat); }
@media (prefers-reduced-motion:no-preference){ .esh-tb-btn{ transition:background-color .1s ease, border-color .1s ease; } }
.esh-tb-btn:hover{ background:color-mix(in srgb, var(--txt) 7%, transparent); }
.esh-tb-btn:active{ background:color-mix(in srgb, var(--esh-bleu) 14%, transparent); }
.esh-tb-btn.esh-active{ background:var(--esh-bleu-doux); color:var(--esh-bleu); }
.esh-tb-btn:disabled{ color:var(--mut2); opacity:.55; cursor:default; background:none; }
.esh-tb-btn .esh-chev svg.ic{ width:14px; height:14px; }
/* Un bouton à filet (le pied, la barre des menus) : fond carte, filet --line, 7 px de rayon. */
/* Le bouton commentaire du pied : sans cadre comme les autres boutons de la DA (CDC_DA_COMMUNE § 6, 2026-10-24). */
.esh-tb-btn.esh-cadre{ border-color:transparent; background:none; }
.esh-tb-btn.esh-cadre:hover{ background:var(--outils-survol); }
.esh-tb-spacer{ flex:1; }

/* ── Le bandeau à menus ──────────────────────────────────────────────────────────────────────────────────────────
   Depuis le 2026-10-17 (CDC_STUDIO_BANDEAU D1), le bandeau, son témoin et sa croix vivent dans 22b-bandeau.css, partagés
   par toutes les applications du Studio ; « Partager » est passé dans le menu Fichier le 2026-10-19 (proprio). */

/* ── Barre d'outils (une seule rangée) ─────────────────────────────────────
   Depuis le 2026-10-23 (CDC_DOCUMENT_WORD W0), la rangée, ses boutons, séparateurs, listes et boutons de couleur sont
   dessinés par la feuille partagée avec le Document (22c-studio-outils.css : .outils, .outil, .outil-sep…), à l'identique
   de ce qu'ils étaient ici (relevé de 15 pièces au banc document_ui). Restent ici les mesures propres au Tableur. */
/* Les deux décimales : leur dessin (22 × 20) ramené au gabarit des icônes. */
.esh-toolbar-fmt #esh-btn-dec-plus svg,.esh-toolbar-fmt #esh-btn-dec-moins svg{ width:18px; height:16px; }
/* Une liste native (data-native) ; habillée par DHSelect, c'est .outils .dhsel-trigger (22c) qui la dessine. */
.esh-tb-select{ appearance:none; -webkit-appearance:none; height:28px; border:1px solid transparent; border-radius:var(--radius-sm); background:var(--outils-champ); color:var(--txt); font:inherit; font-size:var(--fs-md); padding:0 var(--sp-8); cursor:pointer; outline:none; }
@media (prefers-reduced-motion:no-preference){ .esh-tb-select{ transition:border-color .12s ease, background-color .12s ease; } }
.esh-tb-select:hover{ border-color:var(--line); }
.esh-tb-select:focus{ border-color:var(--esh-bleu-filet); background:var(--card); }
.esh-tb-select-wrap{ position:relative; display:inline-flex; align-items:center; }
.esh-toolbar-fmt .esh-tb-select-wrap > svg.ic{ position:absolute; right:var(--sp-8); width:12px; height:12px; pointer-events:none; color:var(--mut); }
.esh-tb-select-wrap + .esh-tb-select-wrap{ margin-left:var(--sp-4); }
.esh-font-family{ width:112px; }
.esh-font-size{ width:58px; }
.esh-fmt-select{ width:118px; }

/* ── Barre de formule ────────────────────────────────────────────────────── */
/* Compacte (proprio, 2026-10-16) : 36 px de haut au lieu de 52 ; boîte de nom et champ à 28 px, au corps --fs-sm,
   boîte de nom sans bordure au repos (filet transparent : la taille ne saute pas), champ de formule au filet d'un
   demi-pixel ; le filet bleu revient au focus. */
.esh-toolbar-formula{ display:flex; align-items:center; gap:var(--sp-6); padding:var(--sp-4) var(--sp-12); border-bottom:1px solid var(--line2); background:var(--card); }
.esh-name-box-wrap{ flex:none; width:64px; position:relative; display:flex; align-items:center; }
.esh-name-box{ width:100%; height:28px; border:1px solid transparent; border-radius:var(--radius-sm); background:var(--card); color:var(--txt); font:inherit; font-size:var(--fs-sm); padding:0 var(--sp-8); outline:none; box-sizing:border-box; }
.esh-name-box:focus{ border-color:var(--esh-bleu-filet); }
.esh-fx-btn{ font-style:italic; font-weight:var(--fw-bold); font-size:var(--fs-lg); color:var(--esh-bleu); letter-spacing:var(--ls-tight); min-width:var(--esh-bouton); font-family:var(--font-sans); }
.esh-toolbar-formula .esh-fx-btn{ min-width:28px; width:28px; height:28px; padding:0; font-size:var(--fs-md); }
.esh-formula-bar-wrap{ flex:1; min-width:0; position:relative; }
.esh-formula-bar{ width:100%; height:28px; border:.5px solid var(--line); border-radius:var(--radius-sm); background:var(--card); color:var(--txt); font:inherit; font-size:var(--fs-sm); font-family:var(--font-mono); padding:0 var(--sp-10); box-sizing:border-box; outline:none; }
.esh-formula-bar::placeholder{ color:var(--mut2); }
.esh-formula-bar:focus{ border-color:var(--esh-bleu-filet); }
.esh-formula-bar-container{ flex:1; position:relative; }

/* ── Autocomplete ────────────────────────────────────────────────────────── */
.esh-autocomplete{ position:absolute; top:calc(100% + 4px); left:0; right:0; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--elev-2); z-index:200; max-height:210px; overflow-y:auto; }
.esh-ac-item{ padding:var(--sp-4) var(--sp-10); cursor:pointer; font-size:var(--fs-sm); display:flex; gap:var(--sp-10); align-items:baseline; }
.esh-ac-item:hover,.esh-ac-active{ background:color-mix(in srgb,var(--accent) 10%,transparent); }
.esh-ac-name{ font-weight:var(--fw-strong); color:var(--accent); font-family:var(--font-mono); min-width:90px; }
.esh-ac-sig{ color:var(--mut); font-size:var(--fs-xs); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.esh-sig-desc{ display:block; margin-top:var(--sp-2); color:var(--mut2); white-space:normal; max-width:360px; }
.esh-sig-tip{ position:absolute; top:calc(100% + 4px); left:0; background:var(--card2); border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-4) var(--sp-10); font-size:var(--fs-sm); white-space:nowrap; z-index:201; box-shadow:var(--elev-1); pointer-events:none; color:var(--mut); }

/* Le panneau de droite flottant (2026-10-16) est retiré le 2026-10-19 (proprio), avec son bouton du pied. */

/* ── Pied : onglets, statistiques de la sélection, zoom, plein écran ──────── */
.esh-footer{ flex:none; display:flex; flex-direction:column; }
/* Le pied (rangée, droite, zoom) est dessiné par la feuille partagée (.pied-app, 22c) depuis le 2026-10-23 ; onglets et
   « + » à 26 px, au corps --fs-sm, comme une barre d'état (proprio, 2026-10-16 : « beaucoup plus compact »). */
.esh-tabs-bar{ display:flex; align-items:center; gap:0; overflow-x:auto; scrollbar-width:none; min-width:0; }
.esh-tabs-bar::-webkit-scrollbar{ display:none; }
.esh-tab{ display:flex; align-items:center; gap:var(--sp-6); height:26px; padding:0 var(--sp-10); border:1px solid transparent; border-radius:var(--radius-sm); font-size:var(--fs-sm); cursor:pointer; color:var(--mut); background:transparent; white-space:nowrap; position:relative; user-select:none; }
/* Le filet entre deux onglets au repos : un trait de 20 px, jamais contre l'onglet actif. */
.esh-tab + .esh-tab::before{ content:''; position:absolute; left:-1px; top:50%; height:14px; width:1px; background:var(--line); transform:translateY(-50%); }
.esh-tab-active + .esh-tab::before,.esh-tab + .esh-tab-active::before{ display:none; }
.esh-tab:hover{ color:var(--txt); background:color-mix(in srgb, var(--txt) 5%, transparent); }
.esh-tab-active{ color:var(--esh-bleu); background:var(--esh-bleu-doux); border-color:var(--esh-bleu-filet); font-weight:var(--fw-strong); }
.esh-tab-label{ max-width:140px; overflow:hidden; text-overflow:ellipsis; }
.esh-tab-del{ background:none; border:none; color:var(--mut); cursor:pointer; font-size:var(--fs-base); padding:0; line-height:var(--lh-flat); opacity:0; }
.esh-tab:hover .esh-tab-del,.esh-tab-active .esh-tab-del{ opacity:.45; }
.esh-tab-del:hover{ opacity:1; color:var(--err); }
.esh-tab-color{ display:inline-block; width:8px; height:8px; border-radius:50%; flex:none; }
.esh-tab-add{ background:none; border:1px solid transparent; border-radius:var(--radius-sm); color:var(--txt); cursor:pointer; width:var(--ctl-h-petit); height:var(--ctl-h-petit); display:grid; place-items:center; padding:0; flex:none; }
.esh-tab-add svg.ic{ width:var(--ic-petit); height:var(--ic-petit); }
.esh-tab-add:hover{ background:color-mix(in srgb, var(--txt) 7%, transparent); }
.esh-pied-stats{ display:flex; align-items:center; gap:var(--sp-12); margin-left:var(--sp-10); color:var(--mut); font-size:var(--fs-sm); white-space:nowrap; }
.esh-pied-stats:empty{ display:none; }
/* Les statistiques (ex-barre d'état) : les identifiants sont lus par 53-edition-sheet.js ; vides, ils n'occupent rien. */
.esh-status-bar{ display:contents; }
.esh-sb-stat:empty{ display:none; }
.esh-sb-stat{ color:var(--mut); }

/* ── Grille ──────────────────────────────────────────────────────────────── */
.esh-grid-host{ position:absolute; inset:0; overflow:hidden; }
.esh-grid-wrap{ position:relative; width:100%; height:100%; }
.esh-scroller{ position:absolute; inset:0; overflow:auto; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
.esh-scroller::-webkit-scrollbar{ width:10px; height:10px; }
.esh-scroller::-webkit-scrollbar-thumb{ background:var(--line); border-radius:var(--radius-pill); border:2px solid var(--card); }
.esh-sizer{ position:absolute; top:0; left:0; pointer-events:none; }
.esh-tile{ position:absolute; top:0; left:0; }
.esh-canvas{ position:absolute; top:0; left:0; pointer-events:none; z-index:10; }
.esh-row{ display:flex; align-items:stretch; }
.esh-hdr-row{ position:sticky; top:0; z-index:5; height:var(--esh-hdr-h); }

.esh-cell{ border-right:1px solid var(--line2); border-bottom:1px solid var(--line2); font-size:var(--fs-base); padding:0 var(--sp-6); display:flex; align-items:center; overflow:hidden; white-space:nowrap; cursor:cell; box-sizing:border-box; color:var(--txt); flex:none; background:var(--card); }
.esh-col-hdr{ font-size:var(--fs-xs); font-weight:var(--fw-medium); color:var(--mut); background:var(--card2); justify-content:center; cursor:default; user-select:none; position:sticky; top:0; border-right-color:var(--line2); border-bottom-color:var(--line2); }
/* Le curseur de redimensionnement sur la poignée seulement, le bord de l'en-tête (53b-sheet-grid.js, 2026-10-20). */
.esh-col-hdr.esh-bord{ cursor:col-resize; } .esh-row-hdr.esh-bord{ cursor:row-resize; }
.esh-col-hdr:hover{ background:color-mix(in srgb, var(--txt) 5%, var(--card2)); color:var(--txt); }
.esh-row-hdr{ font-size:var(--fs-xs); font-weight:var(--fw-medium); color:var(--mut); background:var(--card2); justify-content:center; width:var(--esh-hdr-w); min-width:var(--esh-hdr-w); cursor:default; user-select:none; position:sticky; left:0; z-index:4; border-right-color:var(--line2); border-bottom-color:var(--line2); }
.esh-corner{ background:var(--card2); width:var(--esh-hdr-w); min-width:var(--esh-hdr-w); position:sticky; left:0; top:0; z-index:6; border-right-color:var(--line2); border-bottom-color:var(--line2); cursor:pointer; }
.esh-corner:hover{ background:color-mix(in srgb, var(--txt) 5%, var(--card2)); }

/* État sélection : la plage en bleu très pâle, la cellule active sans filet DOM (le canevas dessine le cadre et la poignée),
   l'en-tête de la ligne et de la colonne choisies en bleu doux avec la lettre en bleu gras. */
.esh-selected{ background:color-mix(in srgb, var(--esh-bleu) 9%, var(--card)); }
.esh-active{ z-index:2; position:relative; }
.esh-cell.esh-hdr-sel{ background:var(--esh-bleu-doux); color:var(--esh-bleu); font-weight:var(--fw-strong); }
.esh-data-cell:hover{ background:color-mix(in srgb, var(--txt) 3%, var(--card)); }
/* Un classeur importé (2026-10-19, 53f) : la police et la taille par défaut de la feuille suivent le zoom (variables posées
   par 53b sur .esh-grid-wrap) ; le quadrillage se masque par feuille ; un texte déborde sur les cellules vides qui le
   suivent ; formes et images vivent dans un calque qui ne prend pas la souris. Une feuille importée garde son papier
   blanc dans le thème sombre : ses couleurs ont été choisies pour lui (du bleu nuit sur fond sombre ne se lit pas). */
/* Carlito (OFL, Google, assets/fonts/carlito) : les mêmes largeurs que Calibri, la police de presque tous les classeurs
   Excel. Un Mac sans Office n'a pas Calibri : la police de repli, plus large, coupait les titres du calcul d'ICCP du
   proprio (2026-10-19). Servie telle quelle (la licence réserve le nom « Carlito » : un sous-ensemble serait une version
   modifiée), chargée seulement quand une feuille la demande. Logée avec le Tableur et non dans le moteur fontes, pour ne
   pas monter ce moteur : décision révocable. */
@font-face{ font-family:'Carlito'; font-style:normal; font-weight:400; font-display:swap; src:local('Carlito'), url('../fonts/carlito/Carlito-Regular.ttf') format('truetype'); }
@font-face{ font-family:'Carlito'; font-style:normal; font-weight:700; font-display:swap; src:local('Carlito Bold'), url('../fonts/carlito/Carlito-Bold.ttf') format('truetype'); }
@font-face{ font-family:'Carlito'; font-style:italic; font-weight:400; font-display:swap; src:local('Carlito Italic'), url('../fonts/carlito/Carlito-Italic.ttf') format('truetype'); }
@font-face{ font-family:'Carlito'; font-style:italic; font-weight:700; font-display:swap; src:local('Carlito Bold Italic'), url('../fonts/carlito/Carlito-BoldItalic.ttf') format('truetype'); }
.esh-data-cell{ font-size:var(--esh-cell-fs, var(--fs-base)); font-family:var(--esh-cell-ff, inherit); }
.esh-sans-grille .esh-data-cell{ border-right-color:transparent; border-bottom-color:transparent; }
/* La feuille « papier » : le papier et l'encre de la page du Document (22c, CDC_DOCUMENT_WORD W0). */
.esh-papier .esh-data-cell{ background:var(--page-papier); color:var(--page-encre); }
.esh-papier:not(.esh-sans-grille) .esh-data-cell{ border-right-color:#e1e3e6; border-bottom-color:#e1e3e6; }
.esh-papier .esh-scroller{ background:var(--page-papier); }
.esh-deborde{ white-space:nowrap; overflow:hidden; flex:none; }
.esh-dessins{ position:absolute; top:0; left:0; width:0; height:0; z-index:3; pointer-events:none; }
.esh-dessin{ position:absolute; box-sizing:border-box; overflow:hidden; }
.esh-dessin-texte{ display:flex; flex-direction:column; width:100%; height:100%; box-sizing:border-box; color:var(--page-encre); line-height:1.2; font-family:Calibri, Carlito, "Segoe UI", var(--font-sans, system-ui), sans-serif; overflow-wrap:anywhere; }
.esh-dessin-p{ margin:0; }
.esh-liste-fleche{ position:absolute; z-index:11; width:18px; padding:0; display:flex; align-items:center; justify-content:center; background:var(--card); color:var(--txt); border:1px solid var(--line); border-radius:var(--radius-sm, 4px); cursor:pointer; box-shadow:var(--elev-1); }
.esh-liste-fleche svg{ width:12px; height:12px; }
.esh-liste-fleche:hover{ background:var(--card2); }
.esh-invite{ position:absolute; z-index:11; max-width:280px; flex-direction:column; gap:var(--sp-2, 2px); padding:var(--sp-6, 8px) var(--sp-8, 10px); background:var(--card); color:var(--txt); border:1px solid var(--line); border-radius:var(--radius, 8px); box-shadow:var(--elev-2); font-size:var(--fs-sm); line-height:1.35; }
.esh-invite a{ color:var(--esh-bleu); text-decoration:underline; overflow-wrap:anywhere; }

/* ── Éditeur inline ──────────────────────────────────────────────────────── */
.esh-inline-editor{ position:absolute; border:none; outline:2px solid var(--esh-bleu); outline-offset:-2px; font:inherit; font-size:var(--fs-base); background:var(--card); color:var(--txt); padding:0 var(--sp-6); z-index:20; box-shadow:var(--elev-2); min-width:60px; box-sizing:border-box; }

/* ── Context menu ────────────────────────────────────────────────────────── */
.esh-ctx-menu{ position:fixed; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--elev-2); z-index:calc(var(--z-modal) + 2); min-width:160px; padding:var(--sp-4) 0; }
.esh-ctx-item{ padding:var(--sp-6) var(--sp-14); font-size:var(--fs-md); cursor:pointer; color:var(--txt); }
.esh-ctx-item:hover{ background:color-mix(in srgb,var(--accent) 10%,transparent); }
.esh-ctx-sep{ height:1px; background:var(--line); margin:var(--sp-2) 0; }

/* ── Dialog ──────────────────────────────────────────────────────────────────
   Les dialogues sont dessinés par la feuille partagée avec le Document depuis le 2026-10-23 (21a-studio-dialogues.css,
   importée juste avant celle-ci : .dlg-app, dont .esh-dialog et .esh-dlg-* sont les alias ; CDC_DOCUMENT_WORD W1). */

/* ── Color picker ────────────────────────────────────────────────────────── */
.esh-color-picker-pop{ position:fixed; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--elev-2); z-index:calc(var(--z-modal) + 1); padding:var(--sp-10); }
.esh-cp-swatches{ display:grid; grid-template-columns:repeat(8,20px); gap:var(--sp-2); }
.esh-cp-swatch{ width:20px; height:20px; border-radius:var(--radius-xs); cursor:pointer; border:1px solid transparent; }
.esh-cp-swatch:hover{ border-color:var(--txt); transform:scale(1.1); }
.esh-cp-custom{ margin-top:var(--sp-8); font-size:var(--fs-sm); }

/* ── CF icon ─────────────────────────────────────────────────────────────── */
.esh-cf-icon{ font-size:var(--fs-sm); margin-right:var(--sp-2); }
/* Le pinceau armé (CDC_TABLEUR X8) : le pointeur le dit sur la grille. */
.esh-pinceau .esh-grid-wrap{ cursor:copy; }

/* ── Charts overlay ──────────────────────────────────────────────────────── */
.esh-charts-overlay{ position:absolute; inset:0; pointer-events:none; z-index:6; }
.esh-chart-wrap{ position:absolute; pointer-events:all; cursor:grab; }
.esh-chart-wrap:hover{ box-shadow:var(--elev-1); border-radius:var(--radius-sm); }

/* ── CF Manager dialog ───────────────────────────────────────────────────── */
.esh-cf-dialog{ min-width:480px; }
.esh-cf-rule{ display:flex; align-items:center; gap:var(--sp-8); padding:var(--sp-6) var(--sp-10); border-bottom:1px solid var(--line); font-size:var(--fs-md); }
.esh-cf-rule-preview{ width:32px; height:20px; border:1px solid var(--line); border-radius:var(--radius-xs); display:flex; align-items:center; justify-content:center; font-size:var(--fs-xs); flex:none; }
.esh-cf-style-row{ background:color-mix(in srgb,var(--accent) 5%,transparent); border-radius:var(--radius-sm); padding:var(--sp-6); }

/* ── Backward compat stubs ──────────────────────────────────────────────── */
.esh{ display:flex; flex-direction:column; gap:var(--sp-10); }
.esh-bar{ display:flex; gap:var(--sp-8); flex-wrap:wrap; }
.esh-scroll{ overflow:auto; max-height:520px; border:1px solid var(--line); border-radius:var(--radius); }
.esh-tbl{ border-collapse:collapse; font-size:var(--fs-md); }
.esh-tbl th{ background:var(--card2); color:var(--mut); font-weight:var(--fw-strong); font-size:var(--fs-xs); padding:var(--sp-4) var(--sp-8); position:sticky; top:0; border:1px solid var(--line); text-align:center; z-index:1; }
.esh-corner-old{ position:sticky; left:0; z-index:3; }
.esh-tbl td{ border:1px solid var(--line); padding:0; }
.esh-tbl input{ width:120px; border:0; background:none; color:var(--txt); font:inherit; font-size:var(--fs-md); padding:var(--sp-4) var(--sp-8); }
.esh-tbl input:focus{ outline:2px solid var(--accent); outline-offset:-2px; background:var(--card); }

/* - Présentation - */
.esl{ display:grid; grid-template-columns:200px 1fr; gap:var(--sp-14); min-height:360px; }
.esl-rail{ display:flex; flex-direction:column; gap:var(--sp-8); }
.esl-thumbs{ display:flex; flex-direction:column; gap:var(--sp-6); overflow-y:auto; max-height:440px; }
.esl-thumb{ display:flex; align-items:center; gap:var(--sp-8); padding:var(--sp-8); border:1px solid var(--line); border-radius:var(--radius);
  background:linear-gradient(135deg,var(--bg),color-mix(in srgb,var(--bg) 70%,#000));
  color:var(--on-solid); font:inherit; cursor:pointer; text-align:left; transition:.12s; }
.esl-thumb.on{ outline:2px solid var(--ac,#22d3ee); }
.esl-thumb-n{ font-size:var(--fs-xs); opacity:.7; flex:none; }
.esl-thumb-t{ font-size:var(--fs-sm); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.esl-rail-acts{ display:flex; flex-direction:column; gap:var(--sp-6); }
.esl-edit{ display:flex; flex-direction:column; gap:var(--sp-12); }
.esl-stage{ border-radius:var(--radius); padding:var(--sp-36); min-height:230px; display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--ac,#22d3ee) 22%,var(--bg)),var(--bg)); color:var(--on-solid); }
.esl-prev{ text-align:center; max-width:680px; }
.esl-prev h2{ margin:0 0 var(--sp-8); font-size:var(--fs-2xl); }
.esl-prev h3{ margin:0 0 var(--sp-10); font-weight:var(--fw-medium); opacity:.85; font-size:var(--fs-base); }
.esl-body{ font-size:var(--fs-base); opacity:.92; text-align:left; }
.esl-fields{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-10); }
.esl-fields label{ display:flex; flex-direction:column; gap:var(--sp-4); font-size:var(--fs-sm); color:var(--mut); }
.esl-fields label.full{ grid-column:1/-1; }
.esl-fields input,.esl-fields textarea{ padding:var(--sp-8) var(--sp-10); border:1px solid var(--line); border-radius:var(--radius);
  background:var(--card); color:var(--txt); font:inherit; font-size:var(--fs-md); }
.esl-row{ grid-column:1/-1; display:flex; gap:var(--sp-8); }
.esl-present-ov{ position:fixed; inset:0; z-index:calc(var(--z-modal) + 3); display:flex; align-items:center; justify-content:center;
  background:radial-gradient(120% 120% at 30% 20%,color-mix(in srgb,var(--ac,#22d3ee) 22%,var(--bg)),var(--bg)); color:var(--on-solid); cursor:pointer; }
.esl-present-slide{ text-align:center; max-width:900px; padding:var(--sp-40); }
.esl-present-slide h1{ font-size:var(--fs-4xl); margin:0 0 var(--sp-16); }
.esl-present-slide h2{ font-size:var(--fs-xl); font-weight:var(--fw-medium); opacity:.85; }
.esl-present-nav{ position:fixed; bottom:18px; right:18px; display:flex; align-items:center; gap:var(--sp-14); font-size:var(--fs-md); opacity:.85; }
.esl-present-nav button{ background:rgba(255,255,255,.15); border:0; color:var(--on-solid); width:32px; height:32px; border-radius:50%; cursor:pointer; font-size:var(--fs-base); }

/* (L'éditeur d'Image = la Toile vectorielle, cf. assets/js/graph/. L'ancien retoucheur
   raster .eim-* a été retiré avec 55-edition-image.js.) */

/* - Audio - */
.eau{ display:flex; flex-direction:column; gap:var(--sp-12); }
.eau-bar{ display:flex; gap:var(--sp-8); align-items:center; flex-wrap:wrap; }
.eau-info{ color:var(--mut); font-size:var(--fs-sm); }
.eau-wave-wrap{ position:relative; border:1px solid var(--line); border-radius:var(--radius); background:var(--card); padding:var(--sp-8); }
.eau-wave-wrap canvas{ width:100%; height:120px; display:block; }
.eau-mk{ position:absolute; top:8px; bottom:8px; width:2px; background:var(--accent); pointer-events:none; }
.eau-mk.in{ box-shadow:-3px 0 0 color-mix(in srgb,var(--accent) 40%,transparent); }
.eau-mk.out{ box-shadow:3px 0 0 color-mix(in srgb,var(--accent) 40%,transparent); }
.eau-play-h{ position:absolute; top:8px; bottom:8px; width:1px; background:var(--txt); opacity:.6; pointer-events:none; left:0; }
.eau-marks{ display:flex; gap:var(--sp-8); flex-wrap:wrap; }
.eau-drop{ color:var(--mut); font-size:var(--fs-md); padding:var(--sp-24); }

/* ── Edition Hub (onglet Edition = hub d'outils) ─────────────────────────── */
.ed-hub{ padding:var(--sp-32); max-width:860px; margin:0 auto; }
.ed-hub-head{ margin-bottom:var(--sp-28); }
.ed-hub-head2{ margin-top:var(--sp-32); }
.ed-hub-title{ font-size:var(--fs-lg); font-weight:var(--fw-strong); color:var(--txt); margin-bottom:var(--sp-6); }
.ed-hub-sub{ font-size:var(--fs-md); color:var(--mut); }
.ed-hub-link{ background:none; border:none; color:var(--accent); cursor:pointer; padding:0; font-size:inherit; text-decoration:underline; }
.ed-hub-link:hover{ opacity:.8; }
.ed-hub-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:var(--sp-12); }
.ed-hub-card{ display:flex; flex-direction:column; align-items:flex-start; gap:var(--sp-6); padding:var(--sp-18) var(--sp-16);
  border:1.5px solid var(--border); border-radius:var(--rad,8px); background:var(--surface,var(--bg));
  cursor:pointer; text-align:left; transition:border-color .15s,box-shadow .15s; }
.ed-hub-card:hover{ border-color:var(--accent); box-shadow:var(--elev-1); }
.ed-hub-ic{ display:flex; align-items:center; color:var(--accent); width:24px; height:24px; }
.ed-hub-lbl{ font-size:var(--fs-base); font-weight:var(--fw-strong); color:var(--txt); }
.ed-hub-desc{ font-size:var(--fs-sm); color:var(--mut); line-height:1.4; }

/* ── Éditeur de code enrichi (55-edition-code.js) ─────────────────────── */
.eck-root{ height:100%; display:flex; flex-direction:column; overflow:hidden; }
.eck-bar{ display:flex; align-items:center; gap:var(--sp-8); padding:var(--sp-6) var(--sp-10);
  border-bottom:1px solid var(--line); background:var(--card2); flex-shrink:0; }
.eck-lang-sel{ font-size:var(--fs-xs); background:var(--card); border:1px solid var(--line);
  color:var(--txt); border-radius:var(--radius-sm); padding:var(--sp-2) var(--sp-6); cursor:pointer; }
.eck-stat{ color:var(--warn); font-weight:var(--fw-bold); font-size:var(--fs-base); line-height:var(--lh-flat); }
.eck-wrap{ flex:1; min-height:0; }
.eck-foot{ flex-shrink:0; }
.eck-lang-name{ }
.eck-pos{ }
/* stub textarea (désactivé dès que 55-edition-code.js est chargé) */
.ed-code-wrap{ height:100%; display:flex; flex-direction:column; }
.ed-code-ta{ flex:1; padding:var(--sp-16); font-family:var(--font-mono); font-size:var(--fs-md); line-height:var(--lh-loose);
  background:var(--surface-deep,var(--surface,var(--bg))); color:var(--txt);
  border:none; outline:none; resize:none; width:100%; box-sizing:border-box; }
.ed-placeholder{ color:var(--mut); font-size:var(--fs-md); padding:var(--sp-24); }

/* ══ CIDE - éditeur code VS Code-like (55-edition-code.js) ══════════════════ */
.cide{ display:flex; height:calc(100vh - 200px); min-height:480px; max-height:900px; overflow:hidden; background:var(--card); }

/* Sidebar */
.cide-sb{ display:flex; flex-direction:column; width:220px; min-width:140px; border-right:1px solid var(--line);
  background:var(--card); flex-shrink:0; overflow:hidden; transition:width .15s; }
.cide-sb.off{ width:0; min-width:0; border-right:none; }
.cide-sb-hd{ display:flex; align-items:center; padding:var(--sp-6) var(--sp-8); border-bottom:1px solid var(--line);
  background:var(--card2); gap:var(--sp-4); flex-shrink:0; }
.cide-sb-title{ flex:1; font-size:var(--fs-2xs); font-weight:var(--fw-bold); text-transform:uppercase;
  letter-spacing:var(--ls-wide); color:var(--mut); white-space:nowrap; }
.cide-sb-body{ flex:1; overflow:auto; min-width:140px; }

/* Sections de la sidebar */
.cide-sec-h{ display:flex; align-items:center; gap:var(--sp-4); padding:var(--sp-4) var(--sp-8) var(--sp-4);
  font-size:var(--fs-2xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:.06em;
  color:var(--mut2); cursor:pointer; user-select:none;
  position:sticky; top:0; background:var(--card); z-index:1; }
.cide-sec-h:hover{ color:var(--txt); }
.cide-sec-h-ico{ width:9px; height:9px; flex-shrink:0; transition:transform .12s; color:var(--mut); display:flex; }
.cide-sec-h-ico svg{ width:9px; height:9px; }
.cide-sec.open .cide-sec-h-ico{ transform:rotate(90deg); }
.cide-sec-body{ display:none; }
.cide-sec.open .cide-sec-body{ display:block; }

/* Items de l'arbre */
.cide-item{ display:flex; align-items:center; gap:var(--sp-4); cursor:pointer; font-size:var(--fs-xs);
  user-select:none; border-radius:var(--radius-xs); margin:0 var(--sp-2) var(--sp-1);
  padding:2px 5px 2px calc(var(--d,0) * 13px + 6px); white-space:nowrap; overflow:hidden; }
.cide-item:hover{ background:var(--line2); }
.cide-item.on{ background:color-mix(in srgb,var(--accent) 15%,transparent); }
.cide-item-ic{ width:13px; height:13px; flex-shrink:0; color:var(--mut2); display:flex; }
.cide-item-ic svg{ width:13px; height:13px; }
.cide-item.cide-folder > .cide-item-ic{ color:var(--accent); }
.cide-item-n{ overflow:hidden; text-overflow:ellipsis; flex:1;
  font-family:var(--font-mono); font-size:var(--fs-sm); }
.cide-item.cide-folder > .cide-item-n{ font-family:inherit; font-size:var(--fs-sm); font-weight:var(--fw-medium); }
.cide-loading{ padding:var(--sp-10) var(--sp-10); font-size:var(--fs-xs); color:var(--mut); font-style:italic; }

/* Zone éditeur */
.cide-ed{ flex:1; display:flex; flex-direction:column; overflow:hidden; min-width:0; }

/* Onglets */
.cide-tabs{ display:flex; align-items:stretch; border-bottom:1px solid var(--line);
  background:var(--card2); overflow-x:auto; overflow-y:hidden; flex-shrink:0; scrollbar-width:none; }
.cide-tabs::-webkit-scrollbar{ display:none; }
.cide-tab{ display:inline-flex; align-items:center; gap:var(--sp-4); padding:var(--sp-4) var(--sp-10);
  border-right:1px solid var(--line); cursor:pointer; font-size:var(--fs-xs); white-space:nowrap;
  flex-shrink:0; color:var(--mut); border-bottom:2px solid transparent;
  font-family:var(--font-mono); }
.cide-tab:hover{ color:var(--txt); background:var(--line2); }
.cide-tab.on{ color:var(--txt); border-bottom-color:var(--accent); background:var(--card); }
.cide-tab-n{ max-width:140px; overflow:hidden; text-overflow:ellipsis; }
.cide-tab-dot{ font-size:var(--fs-2xs); color:var(--warn); line-height:var(--lh-flat); }
.cide-tab-x{ display:flex; padding:var(--sp-2) var(--sp-2); border-radius:var(--radius-xs); color:var(--mut); }
.cide-tab-x:hover{ background:var(--line); color:var(--txt); }
.cide-tab-x svg{ width:12px; height:12px; }

/* Barre de l'éditeur */
.cide-bar{ display:flex; align-items:center; gap:var(--sp-8); padding:var(--sp-4) var(--sp-10);
  border-bottom:1px solid var(--line); background:var(--card2); flex-shrink:0; }

/* Workspace = gutter + code */
.cide-workspace{ flex:1; display:flex; overflow:hidden; }

/* Aperçu d'image (fichier image du projet ouvert dans l'éditeur) */
.cide-imgview{ flex:1; display:flex; align-items:center; justify-content:center; overflow:auto; padding:var(--sp-24);
  background:
    linear-gradient(45deg,var(--line2) 25%,transparent 25%,transparent 75%,var(--line2) 75%) 0 0/20px 20px,
    linear-gradient(45deg,var(--line2) 25%,transparent 25%,transparent 75%,var(--line2) 75%) 10px 10px/20px 20px,
    var(--card); }
.cide-imgbox{ display:flex; flex-direction:column; align-items:center; gap:var(--sp-12); max-width:100%; }
.cide-img{ max-width:100%; max-height:calc(100vh - 320px); object-fit:contain; border-radius:var(--radius);
  box-shadow:0 8px 30px rgba(0,0,0,.22), 0 0 0 1px var(--line); background:var(--paper); }
.cide-imgmeta{ display:flex; align-items:center; gap:var(--sp-10); font-size:var(--fs-sm); color:var(--mut);
  font-family:var(--font-mono); }
.cide-imgname{ color:var(--txt); font-weight:var(--fw-strong); }
.cide-imgbox.err::after{ content:'Aperçu indisponible'; color:var(--mut); font-size:var(--fs-md); }

/* Barre de statut */
.cide-foot{ display:flex; justify-content:space-between; padding:var(--sp-4) var(--sp-10);
  border-top:1px solid var(--line); background:var(--card2);
  font-size:var(--fs-xs); color:var(--mut); font-family:var(--font-mono); flex-shrink:0; gap:var(--sp-8); }
.cide-foot-path{ flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  text-align:right; opacity:.7; }

/* ── Arbre Projet dans le panneau Dossiers (39-edition.js) ────────────────── */
.ed-pt-sep{ height:1px; background:var(--line); margin:var(--sp-6) var(--sp-6) var(--sp-2); }
.ed-pt-sec-h{ display:flex; align-items:center; gap:var(--sp-4); padding:var(--sp-6) var(--sp-10) var(--sp-4);
  font-size:var(--fs-2xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:.05em;
  color:var(--mut2); cursor:pointer; user-select:none; }
.ed-pt-sec-h:hover{ color:var(--txt); }
.ed-pt-sec-h-ico{ width:9px; height:9px; transition:transform .12s; display:flex; }
.ed-pt-sec-h-ico svg{ width:9px; height:9px; }
.ed-pt-open .ed-pt-sec-h-ico{ transform:rotate(90deg); }
.ed-pt-body{ display:none; padding:var(--sp-2) 0; }
.ed-pt-open .ed-pt-body{ display:block; }
.ed-pt-item{ display:flex; align-items:center; gap:var(--sp-4);
  padding:2px 5px 2px calc(var(--d,0) * 12px + 10px); cursor:pointer;
  font-size:var(--fs-sm); font-family:var(--font-mono);
  border-radius:var(--radius-xs); margin:0 var(--sp-2) var(--sp-1); white-space:nowrap; overflow:hidden; user-select:none; }
.ed-pt-item:hover{ background:var(--line2); }
.ed-pt-item.on{ background:color-mix(in srgb,var(--accent) 16%,transparent); color:var(--txt); font-weight:var(--fw-strong); }
.ed-pt-item.folder > .ed-pt-ic{ color:var(--accent); }
/* Triangle d'expansion (clic = déplier sans naviguer ; clic ligne = naviguer au centre). */
.ed-pt-tw{ color:var(--mut2); transition:transform .12s; cursor:pointer; }
.ed-pt-tw.open{ transform:rotate(90deg); }
.ed-pt-tw:hover{ color:var(--txt); }
.ed-pt-sec-h.on{ color:var(--txt); font-weight:var(--fw-bold); }
.ed-pt-ic{ width:12px; height:12px; flex-shrink:0; color:var(--mut2); display:flex; }
.ed-pt-ic svg{ width:12px; height:12px; }
.ed-pt-n{ overflow:hidden; text-overflow:ellipsis; flex:1; }
.ed-pt-item.folder > .ed-pt-n{ font-family:inherit; font-weight:var(--fw-medium); }
.ed-pt-load{ padding:var(--sp-8) var(--sp-10); font-size:var(--fs-xs); color:var(--mut); font-style:italic; }

}

/* Les scripts du classeur (53h, CDC_TABLEUR X9) : la liste à gauche, le code, le journal de l'exécution. */
.esh-scripts{ width:min(960px, calc(100vw - 32px)); }
.esh-sc-corps{ display:grid; grid-template-columns:200px 1fr; gap:var(--sp-10); min-height:420px; }
.esh-sc-liste{ display:flex; flex-direction:column; gap:var(--sp-2); border-right:1px solid var(--line); padding-right:var(--sp-8); overflow:auto; }
.esh-sc-item{ padding:var(--sp-4) var(--sp-6); border-radius:var(--radius-sm); cursor:pointer; color:var(--txt); }
.esh-sc-item:hover{ background:var(--card2); }
.esh-sc-item.esh-active{ background:var(--card2); color:var(--accent-texte); }
.esh-sc-nouveau{ margin-top:var(--sp-6); text-align:left; }
.esh-sc-edition{ display:flex; flex-direction:column; gap:var(--sp-6); min-width:0; }
.esh-sc-barre{ display:flex; gap:var(--sp-6); align-items:center; flex-wrap:wrap; }
.esh-sc-nom{ flex:1; min-width:140px; }
.esh-sc-code{ flex:1; min-height:300px; font-family:var(--font-mono); font-size:var(--fs-sm); line-height:1.5; tab-size:2; white-space:pre; resize:vertical; background:var(--card2); color:var(--txt); border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-8); }
.esh-sc-journal{ max-height:140px; overflow:auto; font-family:var(--font-mono); font-size:var(--fs-xs); color:var(--mut); }
.esh-sc-ligne{ padding:var(--sp-2) 0; white-space:pre-wrap; }
.esh-sc-erreur{ color:var(--err); }
.esh-sc-ok{ color:var(--ok); }
.esh-sc-avertissement{ color:var(--warn); }
.esh-sc-apercu{ max-height:260px; overflow:auto; background:var(--card2); padding:var(--sp-8); border-radius:var(--radius-sm); font-size:var(--fs-xs); white-space:pre-wrap; }
@media (max-width:640px){ .esh-sc-corps{ grid-template-columns:1fr; } .esh-sc-liste{ border-right:0; border-bottom:1px solid var(--line); padding:0 0 var(--sp-8); } }

.esh-sc-titre{ margin-top:var(--sp-10); font-size:var(--fs-xs); color:var(--mut); text-transform:uppercase; letter-spacing:.04em; }
.esh-sc-vba{ font-style:italic; }
/* Un script dont le VBA a été modifié dans Excel (VAGUE_NOV_1_CDC_Tableur E3) : le VBA fait foi, le script se tait. */
.esh-sc-arevoir{ margin-left:var(--sp-4); padding:0 var(--sp-4); border-radius:var(--radius-sm); background:var(--card2); color:var(--warn); font-size:var(--fs-xs); }
/* Les questions d'un script (J2) : un champ par ligne, libellé au-dessus. */
.esh-sc-champs{ display:grid; gap:var(--sp-6); min-width:280px; }
.esh-sc-champs label{ font-size:var(--fs-xs); color:var(--mut); }
.esh-sc-plage{ display:flex; gap:var(--sp-6); }
.esh-sc-plage input{ flex:1; }
.esh-sc-faute{ color:var(--err); font-size:var(--fs-xs); margin:var(--sp-6) 0 0; }
.esh-vba-export .esh-vba-rapport{ margin:0; padding-left:var(--sp-16); display:grid; gap:var(--sp-6); }
.esh-sc-corresp{ width:100%; border-collapse:collapse; margin-top:var(--sp-6); }
.esh-sc-corresp th, .esh-sc-corresp td{ text-align:left; padding:var(--sp-2) var(--sp-6); border-bottom:1px solid var(--line); vertical-align:top; }

/* L'éditeur de graphiques (53e, CDC_TABLEUR X7) : la liste, le formulaire, l'aperçu. */
.esh-chart-editor{ width:min(980px, calc(100vw - 32px)); }
.esh-ce-corps{ display:grid; grid-template-columns:170px 1fr 270px; gap:var(--sp-12); min-height:380px; }
.esh-ce-list{ overflow-y:auto; border-right:1px solid var(--line); padding-right:var(--sp-6); display:flex; flex-direction:column; gap:var(--sp-2); }
.esh-ce-titre{ padding:var(--sp-6); font-weight:var(--fw-strong); }
.esh-ce-list-item{ display:flex; justify-content:space-between; align-items:center; padding:var(--sp-6) var(--sp-8); border-radius:var(--radius-sm); cursor:pointer; }
.esh-ce-list-item:hover, .esh-ce-list-active{ background:var(--card2); }
.esh-ce-serie{ flex-wrap:wrap; gap:var(--sp-4); }
.esh-ce-serie .esh-dlg-input{ width:110px; }
.esh-ce-vide{ color:var(--mut); }
.esh-chart-svg{ display:block; border-radius:var(--radius-sm); }
.esh-sparkline svg{ display:block; width:100%; height:100%; }
@media (max-width:760px){ .esh-ce-corps{ grid-template-columns:1fr; } .esh-ce-list{ border-right:0; border-bottom:1px solid var(--line); } }

/* Les gestes d'Excel (53b, CDC_TABLEUR X4) : l'éditeur sur plusieurs lignes (Alt+Entrée), la poignée de recopie et le
   bord d'une sélection qu'on tire. */
.esh-inline-editor{ resize:none; overflow:hidden; white-space:pre; line-height:1.4; padding-top:var(--sp-4); }
.esh-sur-poignee, .esh-sur-poignee .esh-data-cell{ cursor:crosshair; }
.esh-sur-bord, .esh-sur-bord .esh-data-cell{ cursor:move; }

/* Les outils de données (53j, CDC_TABLEUR X5) : la flèche du filtre sur l'en-tête, sa liste, les segments. */
.esh-filtre-fleche{ position:absolute; width:var(--sp-16); height:var(--sp-16); padding:0; border:1px solid var(--line); border-radius:var(--radius-xs); background:var(--card); color:var(--fg); font-size:var(--fs-2xs); line-height:1; cursor:pointer; }
.esh-filtre-fleche.esh-actif{ background:var(--esh-bleu-doux); border-color:var(--esh-bleu); color:var(--esh-bleu); }
.esh-filtre-menu{ transform:none; min-width:0; padding:var(--sp-8); display:flex; flex-direction:column; gap:var(--sp-6); }
.esh-filtre-actions{ display:flex; gap:var(--sp-4); }
.esh-filtre-actions button{ flex:1; }
.esh-filtre-valeurs{ max-height:220px; overflow:auto; border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-4); display:flex; flex-direction:column; }
.esh-filtre-valeurs label{ display:flex; align-items:center; gap:var(--sp-4); white-space:nowrap; }
.esh-filtre-n{ margin-left:auto; color:var(--mut); font-size:var(--fs-2xs); }
.esh-filtre-pastille{ width:var(--sp-20); height:var(--sp-20); border:1px solid var(--line); border-radius:var(--radius-xs); margin:var(--sp-2); cursor:pointer; }
.esh-segment{ width:160px; max-height:240px; overflow:auto; background:var(--card); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--elev-1); padding:var(--sp-6); display:flex; flex-direction:column; gap:var(--sp-4); }
.esh-segment-titre{ display:flex; justify-content:space-between; align-items:center; font-weight:var(--fw-strong); font-size:var(--fs-xs); }
.esh-segment-raz{ border:0; background:none; cursor:pointer; color:var(--mut); }
.esh-segment-v{ text-align:left; border:1px solid var(--line); border-radius:var(--radius-xs); background:var(--card); padding:var(--sp-2) var(--sp-6); font-size:var(--fs-xs); cursor:pointer; }
.esh-segment-v.esh-actif{ background:var(--esh-bleu-doux); border-color:var(--esh-bleu-filet); }
.esh-tri-cle{ display:flex; gap:var(--sp-4); align-items:center; }
.esh-dbl-cols{ display:flex; flex-direction:column; max-height:200px; overflow:auto; }

/* L'éditeur des scripts et son débogueur (VAGUE_NOV_1_CDC_Tableur J4, 53p) : la zone de texte reste la même, la coloration
   est dessinée dessous à l'identique (même police, même interligne, même marge), la gouttière porte les numéros de ligne et
   les points d'arrêt ; la ligne arrêtée est une bande sous le texte. Couleurs : jetons du thème (--t-*, --accent), N20. */
.esh-ed{ position:relative; display:flex; height:340px; min-height:200px; resize:vertical; overflow:hidden; background:var(--card2); border:1px solid var(--line); border-radius:var(--radius-sm); }
.esh-ed-gouttiere{ flex:0 0 46px; overflow:hidden; padding:var(--sp-8) 0; border-right:1px solid var(--line); font-family:var(--font-mono); font-size:var(--fs-sm); line-height:1.5; color:var(--mut2); text-align:right; user-select:none; cursor:pointer; }
.esh-ed-l{ position:relative; padding:0 var(--sp-6) 0 var(--sp-16); min-height:1.5em; }
.esh-ed-l:hover{ color:var(--txt); }
.esh-ed-point::before{ content:''; position:absolute; left:6px; top:50%; width:10px; height:10px; transform:translateY(-50%); border-radius:50%; background:var(--err); }
.esh-ed-inerte::before{ background:transparent; border:2px solid var(--err); width:6px; height:6px; }
.esh-ed-ici{ color:var(--txt); font-weight:var(--fw-strong); }
.esh-ed-ici::after{ content:''; position:absolute; left:2px; top:50%; transform:translateY(-50%); border:5px solid transparent; border-left:7px solid var(--warn); }
.esh-ed-zone{ position:relative; flex:1; min-width:0; }
.esh-ed-hl, .esh-ed .esh-sc-code{ position:absolute; inset:0; margin:0; padding:var(--sp-8); font-family:var(--font-mono); font-size:var(--fs-sm); line-height:1.5; tab-size:2; white-space:pre; letter-spacing:0; }
.esh-ed-hl{ overflow:hidden; pointer-events:none; color:var(--txt); background:transparent; }
.esh-ed .esh-sc-code{ min-height:0; width:100%; height:100%; border:0; border-radius:0; resize:none; outline:none; overflow:auto; background:transparent; color:transparent; caret-color:var(--txt); }
.esh-ed .esh-sc-code::selection{ background:color-mix(in srgb, var(--accent) 30%, transparent); color:transparent; }
.esh-ed-bande{ position:absolute; left:0; right:0; pointer-events:none; background:color-mix(in srgb, var(--warn) 22%, transparent); }
.esh-ed-auto{ position:absolute; z-index:5; min-width:240px; max-width:420px; max-height:220px; overflow:auto; background:var(--card); border:1px solid var(--line); border-radius:var(--radius-sm); box-shadow:var(--shadow-md, 0 6px 20px rgba(0,0,0,.18)); font-size:var(--fs-xs); }
.esh-ed-prop{ display:flex; gap:var(--sp-6); align-items:baseline; padding:var(--sp-2) var(--sp-8); cursor:pointer; }
.esh-ed-prop b{ font-family:var(--font-mono); font-weight:var(--fw-strong); color:var(--txt); }
.esh-ed-prop span{ font-family:var(--font-mono); color:var(--mut); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.esh-ed-prop small{ margin-left:auto; color:var(--mut2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:45%; }
.esh-ed-prop.esh-active{ background:var(--card2); }
.esh-sc-outils{ gap:var(--sp-4); }
.esh-sc-aide{ margin-left:auto; font-size:var(--fs-xs); color:var(--mut2); }
.esh-sc-bib::before{ content:'◆ '; color:var(--accent); font-size:.7em; vertical-align:middle; }
.esh-db{ border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-6); display:grid; gap:var(--sp-6); }
.esh-db[hidden], .esh-sc-annexe[hidden]{ display:none; }
.esh-db-barre{ display:flex; flex-wrap:wrap; gap:var(--sp-4); align-items:center; }
.esh-db-ou{ flex:1; min-width:180px; font-size:var(--fs-xs); color:var(--txt); font-weight:var(--fw-strong); }
.esh-db-corps{ display:grid; grid-template-columns:2fr 1fr; gap:var(--sp-8); max-height:160px; overflow:auto; }
.esh-db-variables{ width:100%; border-collapse:collapse; font-family:var(--font-mono); font-size:var(--fs-xs); }
.esh-db-variables td{ padding:var(--sp-2) var(--sp-6); border-bottom:1px solid var(--line); vertical-align:top; }
.esh-db-valeur{ color:var(--t-str); word-break:break-all; }
.esh-db-pile{ margin:0; padding-left:var(--sp-16); font-size:var(--fs-xs); }
.esh-db-sortie{ max-height:90px; overflow:auto; font-family:var(--font-mono); font-size:var(--fs-xs); }
.esh-db-execution{ width:100%; font-family:var(--font-mono); }
.esh-sc-annexe{ border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-6); max-height:260px; overflow:auto; display:grid; gap:var(--sp-6); }
.esh-sc-annexe .esh-sc-titre{ margin-top:0; display:flex; justify-content:space-between; align-items:center; }
.esh-sc-versions-liste{ width:100%; border-collapse:collapse; font-size:var(--fs-xs); }
.esh-sc-versions-liste td{ padding:var(--sp-2) var(--sp-6); border-bottom:1px solid var(--line); }
.esh-sc-test{ border-bottom:1px solid var(--line); padding-bottom:var(--sp-6); display:grid; gap:var(--sp-4); }
.esh-sc-t-cases{ display:grid; grid-template-columns:1fr 1fr; gap:var(--sp-6); }
.esh-sc-t-cases label{ display:grid; gap:var(--sp-2); font-size:var(--fs-xs); color:var(--mut); }
.esh-sc-t-cases textarea{ min-height:60px; font-family:var(--font-mono); font-size:var(--fs-xs); background:var(--card2); color:var(--txt); border:1px solid var(--line); border-radius:var(--radius-sm); padding:var(--sp-4); resize:vertical; }
@media (max-width:640px){ .esh-db-corps, .esh-sc-t-cases{ grid-template-columns:1fr; } .esh-sc-aide{ display:none; } }
.esh-sc-debogage .esh-ed{ height:200px; }
