@layer modules{
/* 21d-edition-document.css · Le Document du Studio (52*-doc-*.js, CDC_DOCUMENT_WORD, 2026-10-23).
   La rangée d'outils, le pied, la page et son fond viennent de la feuille partagée avec le Tableur (22c-studio-outils.css) ;
   les dialogues de celle des dialogues partagés (22c, .dlg-app) ; le bandeau de 22b. Restent ici la mise en place du
   Document (règle, vue, feuilles, corps) et la typographie de la page, entièrement en jetons de document (--st-*) : les
   styles de Word (Normal, Titre 1…) s'écrivent sur le corps (W2) et la page les suit. Les valeurs par défaut sont celles
   de Word en français : Calibri 11 pt, interligne 1,08, 8 pt après le paragraphe ; titres de 16, 13 et 12 pt. */

.edoc-host{ display:flex; flex-direction:column; height:100%; min-height:520px; overflow:hidden; background:var(--card); color:var(--txt); font-size:var(--fs-base); }
.edoc-host:fullscreen{ width:100vw; height:100vh; min-height:0; }
.edoc-attente{ margin:auto; color:var(--mut); font-size:var(--fs-sm); }
.edoc-outils{ flex:none; }
.edoc-outils .edoc-sel-style{ width:136px; }
.edoc-outils .edoc-sel-police{ width:128px; }
.edoc-outils .edoc-sel-taille{ width:60px; }
.edoc-listes{ gap:var(--sp-4); }

/* ── La règle ────────────────────────────────────────────────────────────── */
.edoc-regle{ position:relative; flex:none; height:22px; overflow:hidden; background:var(--card); border-bottom:1px solid var(--line2); }
.edoc-regle[hidden]{ display:none; }
.edoc-regle-page{ position:absolute; top:var(--sp-4); bottom:var(--sp-4); background:var(--page-papier); border-radius:var(--radius-xs); box-shadow:inset 0 0 0 1px var(--line); }
.edoc-regle-marge{ position:absolute; top:0; bottom:0; background:var(--outils-champ); }
.edoc-regle-cm{ position:absolute; top:50%; transform:translate(-50%, -50%); font-size:var(--fs-2xs); line-height:var(--lh-flat); color:var(--page-encre-douce); pointer-events:none; font-variant-numeric:tabular-nums; }
.edoc-regle-poignee{ position:absolute; top:0; bottom:0; width:9px; transform:translateX(-50%); cursor:ew-resize; }
.edoc-regle-poignee::after{ content:''; position:absolute; left:2px; right:2px; top:0; bottom:0; border-radius:var(--radius-xs); background:var(--outils-accent-filet); }
.edoc-regle-poignee:hover::after{ background:var(--outils-accent); }
.edoc-regle-retrait{ position:absolute; width:11px; height:7px; transform:translateX(-50%); cursor:ew-resize; background:var(--outils-accent); clip-path:polygon(0 0, 100% 0, 50% 100%); }
.edoc-regle-retrait[data-retrait="gauche"]{ bottom:0; clip-path:polygon(50% 0, 100% 100%, 0 100%); }
.edoc-regle-retrait[data-retrait="premiere"]{ top:0; }

/* ── La vue, les feuilles, le corps ──────────────────────────────────────── */
.edoc-milieu{ flex:1; display:flex; min-height:0; position:relative; }
.edoc-vue{ flex:1; min-width:0; overflow:auto; position:relative; padding:var(--sp-24) var(--sp-24) var(--sp-48); }
.edoc-vue[hidden]{ display:none; }
.edoc-echelle{ position:relative; margin:0 auto; }
.edoc-pages{ position:absolute; left:0; top:0; transform-origin:0 0; }
.edoc-feuilles{ position:absolute; inset:0; }
.edoc-feuille{ position:absolute; left:0; }
.edoc-entete, .edoc-piedpage{ position:absolute; z-index:2; display:flex; flex-direction:column; min-height:1em; color:var(--page-encre-douce); font-family:var(--st-p-police, Calibri, Carlito, "Segoe UI", sans-serif); font-size:var(--st-entete-taille, 9pt); line-height:var(--lh-tight); overflow:hidden; }
.edoc-piedpage{ justify-content:flex-end; }
.edoc-entete p, .edoc-piedpage p{ margin:0; }
.edoc-web .edoc-pages{ background:var(--page-papier); box-shadow:var(--page-ombre); }
.edoc-web .edoc-feuilles{ display:none; }

.edoc-corps{ position:absolute; z-index:1; outline:none; box-sizing:border-box; color:var(--page-encre); caret-color:var(--page-encre);
  font-family:var(--st-p-police, Calibri, Carlito, "Segoe UI", sans-serif); font-size:var(--st-p-taille, 11pt); line-height:var(--st-p-interligne, 1.08);
  overflow-wrap:break-word; tab-size:var(--edoc-tab, 48px); }
/* La page n'a pas l'anneau de focus des contrôles (02-base.css) : c'est une feuille, le curseur suffit. */
.edoc-corps:focus-visible{ box-shadow:none; border-radius:var(--radius-none); }
.edoc-corps::selection, .edoc-corps ::selection{ background:color-mix(in srgb, var(--outils-accent) 30%, transparent); }
/* L'invite d'un document vide : le texte vient du corps (--edoc-invite, posée par 52-edition-text.js dans la langue du poste). */
.edoc-corps:has(> p:only-child > br:only-child) > p:only-child::before{ content:var(--edoc-invite, ''); position:absolute; color:var(--page-encre-douce); pointer-events:none; }

/* La typographie de la page : chaque valeur est un jeton de style (W2), sa valeur par défaut est celle de Word. */
.edoc-corps p{ margin:var(--st-p-avant, 0) 0 var(--st-p-apres, 8pt); }
.edoc-corps blockquote, .edoc-corps pre{ line-height:var(--st-p-interligne, 1.08); }
.edoc-corps h1, .edoc-corps h2, .edoc-corps h3, .edoc-corps h4, .edoc-corps p.edoc-st-titre{ font-family:var(--st-titre-police, inherit); font-size:var(--st-titre-taille, 28pt); font-weight:var(--st-titre-graisse, var(--fw-regular)); font-style:var(--st-titre-style, normal); color:var(--st-titre-couleur, inherit); margin:var(--st-titre-avant, 0) 0 var(--st-titre-apres, 4pt); line-height:var(--st-titre-interligne, 1); letter-spacing:var(--ls-tight); }
.edoc-corps p.edoc-st-soustitre{ font-family:var(--st-soustitre-police, inherit); font-size:var(--st-soustitre-taille, 14pt); font-weight:var(--st-soustitre-graisse, var(--fw-regular)); font-style:var(--st-soustitre-style, normal); color:var(--st-soustitre-couleur, var(--page-encre-douce)); margin:var(--st-soustitre-avant, 0) 0 var(--st-soustitre-apres, 8pt); }
.edoc-corps p.edoc-st-legende{ font-family:var(--st-legende-police, inherit); font-size:var(--st-legende-taille, 9pt); font-weight:var(--st-legende-graisse, var(--fw-regular)); font-style:var(--st-legende-style, italic); color:var(--st-legende-couleur, var(--page-encre-douce)); margin:var(--st-legende-avant, 0) 0 var(--st-legende-apres, 10pt); }
.edoc-corps h5, .edoc-corps h6{ color:var(--st-titre-couleur, inherit); line-height:var(--st-titre-interligne, 1.15); }
.edoc-corps h1{ font-family:var(--st-h1-police, inherit); font-size:var(--st-h1-taille, 16pt); font-weight:var(--st-h1-graisse, var(--fw-bold)); font-style:var(--st-h1-style, normal); color:var(--st-h1-couleur, inherit); margin:var(--st-h1-avant, 12pt) 0 var(--st-h1-apres, 4pt); }
.edoc-corps h2{ font-family:var(--st-h2-police, inherit); font-size:var(--st-h2-taille, 13pt); font-weight:var(--st-h2-graisse, var(--fw-bold)); font-style:var(--st-h2-style, normal); color:var(--st-h2-couleur, inherit); margin:var(--st-h2-avant, 10pt) 0 var(--st-h2-apres, 4pt); }
.edoc-corps h3{ font-family:var(--st-h3-police, inherit); font-size:var(--st-h3-taille, 12pt); font-weight:var(--st-h3-graisse, var(--fw-bold)); font-style:var(--st-h3-style, normal); color:var(--st-h3-couleur, inherit); margin:var(--st-h3-avant, 8pt) 0 var(--st-h3-apres, 4pt); }
.edoc-corps h4{ font-family:var(--st-h4-police, inherit); font-size:var(--st-h4-taille, 11pt); font-weight:var(--st-h4-graisse, var(--fw-bold)); font-style:var(--st-h4-style, italic); color:var(--st-h4-couleur, inherit); margin:var(--st-h4-avant, 8pt) 0 var(--st-h4-apres, 4pt); }
.edoc-corps h5, .edoc-corps h6{ font-size:var(--st-p-taille, 11pt); margin:var(--st-h4-avant, 8pt) 0 var(--st-h4-apres, 4pt); }
.edoc-corps blockquote{ margin:var(--st-citation-avant, 8pt) var(--st-citation-retrait, 24pt) var(--st-citation-apres, 8pt); font-family:var(--st-citation-police, inherit); font-size:var(--st-citation-taille, inherit); padding:0 0 0 var(--sp-12); border-left:3px solid var(--st-citation-filet, color-mix(in srgb, var(--page-encre) 25%, transparent));
  font-style:var(--st-citation-style, italic); color:var(--st-citation-couleur, inherit); font-weight:var(--st-citation-graisse, inherit); }
.edoc-corps blockquote p{ margin:0; }
.edoc-corps pre{ margin:var(--st-p-avant, 0) 0 var(--st-p-apres, 8pt); padding:var(--sp-6) var(--sp-8); white-space:pre-wrap; font-family:var(--st-code-police, Consolas, "Courier New", ui-monospace, monospace); font-size:var(--st-code-taille, 10pt);
  background:color-mix(in srgb, var(--page-encre) 5%, var(--page-papier)); border-radius:var(--radius-xs); }
.edoc-corps code{ font-family:var(--st-code-police, Consolas, "Courier New", ui-monospace, monospace); font-size:var(--st-code-enligne, .92em); }
.edoc-corps ul, .edoc-corps ol{ margin:0 0 var(--st-p-apres, 8pt); padding-left:var(--st-liste-retrait, 36px); }
.edoc-corps li{ margin:0; }
.edoc-corps li > ul, .edoc-corps li > ol{ margin:0; }
.edoc-corps ul ul{ list-style-type:circle; }
.edoc-corps ul ul ul{ list-style-type:square; }
.edoc-corps ol ol{ list-style-type:lower-alpha; }
.edoc-corps ol ol ol{ list-style-type:lower-roman; }
.edoc-corps a{ color:var(--st-lien-couleur, color-mix(in srgb, var(--outils-accent) 60%, var(--page-encre))); text-decoration:underline; }
.edoc-corps img{ max-width:100%; height:auto; }
.edoc-corps hr{ border:0; border-top:1px solid color-mix(in srgb, var(--page-encre) 30%, transparent); margin:var(--st-p-apres, 8pt) 0; }
.edoc-corps table{ border-collapse:collapse; width:100%; margin:0 0 var(--st-p-apres, 8pt); table-layout:fixed; }
.edoc-corps td, .edoc-corps th{ border:1px solid color-mix(in srgb, var(--page-encre) 45%, transparent); padding:var(--sp-2) var(--sp-6); vertical-align:top; overflow-wrap:break-word; }
.edoc-corps td > p:last-child, .edoc-corps th > p:last-child{ margin-bottom:0; }
.edoc-corps th{ font-weight:var(--fw-bold); text-align:start; }
.edoc-corps .edoc-tab{ white-space:pre; }
.edoc-corps mark{ background:var(--outils-surligneur); color:inherit; }

/* ── La source HTML ──────────────────────────────────────────────────────── */
.edoc-source{ flex:1; min-width:0; border:0; resize:none; outline:none; padding:var(--sp-16) var(--sp-24); background:var(--card); color:var(--txt); font-family:var(--font-mono); font-size:var(--fs-sm); line-height:var(--lh-normal); }
.edoc-source[hidden]{ display:none; }

/* ── Le pied ─────────────────────────────────────────────────────────────── */
.edoc-pied{ gap:var(--sp-12); }

/* ── Les dialogues du Document ───────────────────────────────────────────── */
.edoc-dlg{ width:min(460px, 92vw); --edoc-lib-l:132px; }   /* la colonne des libellés d'un dialogue ; les cases s'alignent sur elle */
.edoc-dlg-vide{ flex:1; }
.edoc-ligne-dlg{ display:grid; grid-template-columns:var(--edoc-lib-l, 132px) minmax(0, 1fr); align-items:center; gap:var(--sp-8); font-size:var(--fs-sm); color:var(--mut); }
.edoc-ligne-dlg .studio-champ{ width:100%; padding:0 var(--sp-8); }
.edoc-ligne-dlg input[type="file"]{ font-size:var(--fs-sm); color:var(--txt); }
.edoc-dlg-retirer{ align-self:flex-start; border:0; background:none; padding:0; color:var(--err); font:inherit; font-size:var(--fs-sm); cursor:pointer; text-decoration:underline; }
.edoc-raccourcis{ max-height:min(60vh, 520px); overflow:auto; }
.edoc-raccourcis table{ width:100%; border-collapse:collapse; font-size:var(--fs-sm); }
.edoc-raccourcis td{ padding:var(--sp-4) var(--sp-6); border-bottom:1px solid var(--line2); }
.edoc-raccourcis td:last-child{ text-align:end; white-space:nowrap; }
.edoc-raccourcis kbd{ font-family:var(--font-sans); font-size:var(--fs-xs); padding:var(--sp-1) var(--sp-6); border-radius:var(--radius-xs); background:var(--outils-champ); }

/* ── Mise en forme (W2) ──────────────────────────────────────────────────── */
.edoc-pinceau .edoc-corps{ cursor:copy; }
.edoc-dlg-titre{ margin-top:var(--sp-4); font-size:var(--fs-sm); font-weight:var(--fw-strong); color:var(--txt); }
.edoc-coches{ display:flex; flex-wrap:wrap; gap:var(--sp-6) var(--sp-14); padding-left:calc(var(--edoc-lib-l, 132px) + var(--sp-8)); }
.edoc-coche{ display:inline-flex; align-items:center; gap:var(--sp-6); font-size:var(--fs-sm); color:var(--txt); cursor:pointer; }
.edoc-apercu-police{ font-size:var(--fs-xs); color:var(--mut); }
.edoc-dlg-action{ align-self:flex-start; border:0; background:var(--outils-champ); color:var(--txt); border-radius:var(--radius-sm); padding:var(--sp-4) var(--sp-10); font:inherit; font-size:var(--fs-sm); cursor:pointer; }
.edoc-dlg-action:hover{ background:var(--outils-survol); }
.edoc-dlg-styles{ width:min(640px, 94vw); }
.edoc-styles{ display:grid; grid-template-columns:176px minmax(0, 1fr); gap:var(--sp-14); min-height:340px; }
.edoc-styles-liste{ display:flex; flex-direction:column; gap:var(--sp-2); border-right:1px solid var(--line2); padding-right:var(--sp-10); }
.edoc-styles-liste > button{ text-align:start; border:0; background:none; color:var(--txt); font:inherit; font-size:var(--fs-sm); padding:var(--sp-6) var(--sp-8); border-radius:var(--radius-sm); cursor:pointer; }
.edoc-styles-liste > button:hover{ background:var(--outils-survol); }
.edoc-styles-liste > button[aria-selected="true"]{ background:var(--outils-accent-doux); font-weight:var(--fw-strong); }
.edoc-styles-reglages{ display:flex; flex-direction:column; gap:var(--sp-8); }

/* ── Mise en page (W3) ───────────────────────────────────────────────────── */
/* Le saut de page : invisible à l'impression (la page se coupe), un filet pointillé à l'écran, nommé quand les marques
   de mise en forme sont montrées. */
.edoc-corps .edoc-saut{ height:0; margin:0; border-top:1px dashed color-mix(in srgb, var(--page-encre) 25%, transparent); user-select:none; position:relative; }
.edoc-marques .edoc-corps .edoc-saut::after{ content:var(--edoc-saut-mot, ''); position:absolute; left:50%; top:0; transform:translate(-50%, -50%); padding:0 var(--sp-6);
  background:var(--page-papier); color:var(--page-encre-douce); font-family:var(--font-sans); font-size:var(--fs-2xs); }
.edoc-marques .edoc-corps p::after, .edoc-marques .edoc-corps h1::after, .edoc-marques .edoc-corps h2::after, .edoc-marques .edoc-corps h3::after,
.edoc-marques .edoc-corps h4::after, .edoc-marques .edoc-corps li::after{ content:'¶'; color:var(--outils-accent-filet); font-weight:var(--fw-regular); font-style:normal; }
.edoc-marques .edoc-corps .edoc-tab{ background:linear-gradient(to right, transparent 45%, var(--outils-accent-filet) 45%, var(--outils-accent-filet) 55%, transparent 55%) center / 100% 1px no-repeat; }
.edoc-entete:hover, .edoc-piedpage:hover{ cursor:text; }
.edoc-edite-zone .edoc-corps{ opacity:.45; }
.edoc-edite-zone .edoc-feuille .edoc-entete, .edoc-edite-zone .edoc-feuille .edoc-piedpage{ visibility:hidden; }
.edoc-zone-edition{ position:absolute; z-index:4; box-sizing:border-box; outline:1px dashed var(--outils-accent); outline-offset:2px; color:var(--page-encre);
  font-family:var(--st-p-police, Calibri, Carlito, "Segoe UI", sans-serif); font-size:var(--st-entete-taille, 9pt); line-height:var(--lh-tight); }
.edoc-zone-edition p{ margin:0; }
.edoc-zone-bande{ position:absolute; z-index:4; display:flex; align-items:center; gap:var(--sp-4); padding:var(--sp-2) var(--sp-6); border-radius:var(--radius-xs);
  background:var(--outils-accent); color:var(--on-solid); font-family:var(--font-sans); font-size:var(--fs-2xs); white-space:nowrap; }
.edoc-zone-bande button{ border:0; border-radius:var(--radius-xs); background:color-mix(in srgb, var(--on-solid) 20%, transparent); color:var(--on-solid); font:inherit; padding:var(--sp-1) var(--sp-6); cursor:pointer; }
.edoc-zone-bande button:hover{ background:color-mix(in srgb, var(--on-solid) 32%, transparent); }
.edoc-champ{ background:color-mix(in srgb, var(--page-encre) 8%, transparent); border-radius:var(--radius-xs); }
.edoc-feuille .edoc-champ{ background:none; }
.edoc-dlg-page{ width:min(500px, 94vw); }
.edoc-marges-perso{ display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:var(--sp-6); padding-left:calc(var(--edoc-lib-l, 132px) + var(--sp-8)); }
.edoc-marges-perso label{ display:flex; flex-direction:column; gap:var(--sp-2); font-size:var(--fs-xs); color:var(--mut); }
.edoc-marges-perso .studio-champ{ width:100%; padding:0 var(--sp-6); }
.edoc-dlg-page .studio-bascule{ min-width:0; }

/* ── Rechercher, remplacer, naviguer (W8) ────────────────────────────────── */
.edoc-recherche{ position:absolute; top:var(--sp-10); right:var(--sp-24); z-index:6; width:min(420px, calc(100% - 48px)); display:flex; flex-direction:column; gap:var(--sp-6); box-shadow:var(--elev-2); }
.edoc-recherche[hidden]{ display:none; }
.edoc-rech-ligne{ display:flex; align-items:center; gap:var(--sp-4); }
.edoc-rech-ligne[hidden]{ display:none; }
.edoc-rech-ligne .studio-champ{ flex:1; min-width:0; padding:0 var(--sp-8); }
.edoc-rech-erreur{ box-shadow:inset 0 0 0 1px var(--err); }
.edoc-rech-compte{ flex:none; min-width:64px; text-align:end; font-size:var(--fs-xs); color:var(--mut); font-variant-numeric:tabular-nums; }
.edoc-rech-options{ display:flex; flex-wrap:wrap; gap:var(--sp-4) var(--sp-12); }
.edoc-recherche .studio-bt-icone svg.ic{ width:16px; height:16px; }
.edoc-recherche .studio-bt-icone[aria-pressed="true"]{ background:var(--outils-accent-doux); }
::highlight(edoc-trouve){ background-color:color-mix(in srgb, var(--outils-surligneur) 55%, transparent); }
::highlight(edoc-courant){ background-color:color-mix(in srgb, var(--outils-accent) 45%, transparent); }
.edoc-volet{ flex:none; width:232px; margin:var(--sp-10) 0 var(--sp-10) var(--sp-10); display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.edoc-volet[hidden]{ display:none; }
.edoc-volet .studio-onglets{ margin-top:0; }
.edoc-volet-liste{ flex:1; min-height:0; overflow:auto; display:flex; flex-direction:column; gap:var(--sp-1); }
.edoc-volet-titre, .edoc-volet-page{ text-align:start; border:0; background:none; color:var(--txt); font:inherit; font-size:var(--fs-sm); padding:var(--sp-4) var(--sp-8); border-radius:var(--radius-sm); cursor:pointer;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.edoc-volet-titre:hover, .edoc-volet-page:hover{ background:var(--outils-survol); }
.edoc-volet-titre[data-niveau="0"], .edoc-volet-titre[data-niveau="1"]{ font-weight:var(--fw-strong); }
.edoc-volet-titre[data-niveau="2"]{ padding-left:var(--sp-20); }
.edoc-volet-titre[data-niveau="3"]{ padding-left:var(--sp-32); }
.edoc-volet-titre[data-niveau="4"]{ padding-left:var(--sp-44); }
.edoc-volet-page[aria-current="true"]{ background:var(--outils-accent-doux); }
.edoc-volet-vide{ margin:var(--sp-8); font-size:var(--fs-sm); color:var(--mut); }

/* ── Tableaux (W4) ───────────────────────────────────────────────────────── */
.edoc-corps table.edoc-bordures-exterieures td, .edoc-corps table.edoc-bordures-exterieures th{ border-color:transparent; }
/* Les bordures extérieures sont portées par les cellules du bord, pas par un contour du tableau : un contour traverserait
   l'intervalle entre deux pages quand le tableau coule de l'une à l'autre (2026-10-24). */
.edoc-corps table.edoc-bordures-exterieures tr > :first-child{ border-left-color:color-mix(in srgb, var(--page-encre) 45%, transparent); }
.edoc-corps table.edoc-bordures-exterieures tr > :last-child{ border-right-color:color-mix(in srgb, var(--page-encre) 45%, transparent); }
.edoc-corps table.edoc-bordures-exterieures > thead > tr:first-child > *, .edoc-corps table.edoc-bordures-exterieures:not(:has(> thead)) > tbody:first-of-type > tr:first-child > *,
.edoc-corps table.edoc-bordures-exterieures tr.edoc-entete-repetee > *{ border-top-color:color-mix(in srgb, var(--page-encre) 45%, transparent); }
.edoc-corps table.edoc-bordures-exterieures > tbody:last-of-type > tr:last-child > *, .edoc-corps table.edoc-bordures-exterieures tr:has(+ .edoc-espace-page) > *{ border-bottom-color:color-mix(in srgb, var(--page-encre) 45%, transparent); }
/* À l'écran, un tableau sans bordure garde un filet pointillé (le « quadrillage » de Word), qui ne s'imprime pas. */
.edoc-corps table.edoc-bordures-aucune td, .edoc-corps table.edoc-bordures-aucune th{ border-color:transparent; box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--outils-accent) 18%, transparent); }
.edoc-corps thead th{ background:color-mix(in srgb, var(--page-encre) 4%, transparent); }
.edoc-corps.edoc-col-resize{ cursor:col-resize; }
.edoc-grille{ position:fixed; z-index:calc(var(--z-modal) + 2); display:flex; flex-direction:column; gap:var(--sp-6); box-shadow:var(--elev-2); }
.edoc-grille-cases{ display:grid; grid-template-columns:repeat(10, 18px); gap:var(--sp-2); }
.edoc-grille-cases > span{ width:18px; height:18px; border-radius:var(--radius-xs); box-shadow:inset 0 0 0 1px var(--line); background:var(--card); cursor:pointer; }
.edoc-grille-cases > span.edoc-grille-on{ background:var(--outils-accent-doux); box-shadow:inset 0 0 0 1px var(--outils-accent-filet); }
.edoc-grille-taille{ font-size:var(--fs-xs); color:var(--mut); text-align:center; font-variant-numeric:tabular-nums; }

/* ── Images, liens, signets, symboles (W5) ───────────────────────────────── */
.edoc-corps img.edoc-choisi{ outline:2px solid var(--outils-accent); outline-offset:1px; }
.edoc-img-calque{ position:absolute; z-index:5; pointer-events:none; }
.edoc-img-calque[hidden]{ display:none; }
.edoc-poignee{ position:absolute; width:9px; height:9px; transform:translate(-50%, -50%); border-radius:var(--radius-pill); background:var(--page-papier); box-shadow:0 0 0 1.5px var(--outils-accent); pointer-events:auto; }
.edoc-poignee[data-p="nw"]{ left:0; top:0; cursor:nwse-resize; } .edoc-poignee[data-p="n"]{ left:50%; top:0; cursor:ns-resize; }
.edoc-poignee[data-p="ne"]{ left:100%; top:0; cursor:nesw-resize; } .edoc-poignee[data-p="e"]{ left:100%; top:50%; cursor:ew-resize; }
.edoc-poignee[data-p="se"]{ left:100%; top:100%; cursor:nwse-resize; } .edoc-poignee[data-p="s"]{ left:50%; top:100%; cursor:ns-resize; }
.edoc-poignee[data-p="sw"]{ left:0; top:100%; cursor:nesw-resize; } .edoc-poignee[data-p="w"]{ left:0; top:50%; cursor:ew-resize; }
.edoc-img-barre{ position:absolute; left:0; bottom:calc(100% + var(--sp-8)); display:flex; align-items:center; gap:var(--sp-2); padding:var(--sp-4); pointer-events:auto; box-shadow:var(--elev-2); white-space:nowrap; }
.edoc-img-barre .studio-bt-icone svg.ic{ width:16px; height:16px; }
.edoc-img-barre .studio-bt-icone[aria-pressed="true"]{ background:var(--outils-accent-doux); }
.edoc-img-sep{ width:1px; height:16px; background:var(--line); margin:0 var(--sp-4); }
.edoc-bulle{ position:absolute; z-index:5; display:flex; align-items:center; gap:var(--sp-6); padding:var(--sp-4) var(--sp-8); box-shadow:var(--elev-2); max-width:420px; }
.edoc-bulle[hidden]{ display:none; }
.edoc-bulle-adr{ min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:var(--fs-sm); color:var(--accent); }
.edoc-corps .edoc-signet{ display:inline-block; width:0; height:1em; vertical-align:text-bottom; }
.edoc-marques .edoc-corps .edoc-signet{ width:2px; background:var(--outils-accent); }
.edoc-signets{ display:flex; flex-direction:column; gap:var(--sp-4); max-height:200px; overflow:auto; }
.edoc-signet-ligne{ display:flex; align-items:center; gap:var(--sp-6); font-size:var(--fs-sm); }
.edoc-signet-ligne > span{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; }
.edoc-dlg-symboles{ width:min(520px, 94vw); }
.edoc-symboles{ display:grid; grid-template-columns:repeat(auto-fill, minmax(34px, 1fr)); gap:var(--sp-2); }
.edoc-symboles > button{ height:34px; border:0; border-radius:var(--radius-sm); background:var(--outils-champ); color:var(--txt); font-size:var(--fs-lg); cursor:pointer; }
.edoc-symboles > button:hover{ background:var(--outils-accent-doux); }
.edoc-speciaux{ display:flex; flex-wrap:wrap; gap:var(--sp-4); }
.edoc-dates{ display:flex; flex-direction:column; gap:var(--sp-6); }

/* ── Références (W6) ─────────────────────────────────────────────────────── */
.edoc-corps .edoc-tdm{ margin:0 0 var(--st-p-apres, 8pt); user-select:none; }
.edoc-corps .edoc-tdm p{ margin:0 0 var(--st-tdm-apres, 3pt); }
.edoc-corps .edoc-tdm .edoc-tdm-titre{ font-size:var(--st-h1-taille, 16pt); font-weight:var(--fw-bold); margin-bottom:var(--st-h1-apres, 4pt); color:var(--st-h1-couleur, inherit); }
.edoc-corps .edoc-tdm a{ display:flex; align-items:baseline; color:inherit; text-decoration:none; cursor:pointer; }
.edoc-corps .edoc-tdm a:hover .edoc-tdm-texte{ text-decoration:underline; }
.edoc-tdm-points{ flex:1; min-width:var(--sp-12); margin:0 var(--sp-4); border-bottom:1px dotted color-mix(in srgb, var(--page-encre) 55%, transparent); transform:translateY(-0.25em); }
.edoc-tdm-page{ font-variant-numeric:tabular-nums; }
.edoc-corps .edoc-tdm-h1{ font-weight:var(--fw-strong); }
.edoc-corps .edoc-tdm-h2{ padding-left:var(--st-tdm-retrait, 11pt); }
.edoc-corps .edoc-tdm-h3{ padding-left:calc(var(--st-tdm-retrait, 11pt) * 2); }
.edoc-corps .edoc-note{ font-size:var(--st-appel-taille, .7em); line-height:0; vertical-align:super; color:var(--st-lien-couleur, color-mix(in srgb, var(--outils-accent) 60%, var(--page-encre))); cursor:pointer; padding:0 var(--sp-1); }
.edoc-corps .edoc-renvoi{ text-decoration:none; border-bottom:1px dotted currentColor; }
.edoc-notes{ position:absolute; z-index:2; box-sizing:border-box; color:var(--page-encre); font-family:var(--st-p-police, Calibri, Carlito, "Segoe UI", sans-serif); font-size:var(--st-note-taille, 10pt); line-height:var(--lh-tight); }
.edoc-notes-filet{ width:33%; margin:var(--sp-6) 0 calc(var(--sp-8) - 1px); border-top:1px solid color-mix(in srgb, var(--page-encre) 55%, transparent); }
.edoc-note-ligne{ cursor:text; }
.edoc-note-ligne sup{ font-size:var(--st-appel-taille, .75em); }
.edoc-mesure-notes{ position:absolute; left:0; top:0; visibility:hidden; pointer-events:none; }

/* ── Révision (W7) ───────────────────────────────────────────────────────── */
.edoc-marge-com{ position:absolute; top:0; width:276px; }
.edoc-com-carte{ position:absolute; left:0; right:0; display:flex; flex-direction:column; gap:var(--sp-4); font-size:var(--fs-sm); box-shadow:var(--elev-1); cursor:pointer; }
.edoc-com-carte.edoc-com-actif{ box-shadow:0 0 0 1.5px var(--outils-accent), var(--elev-2); }
.edoc-com-carte.edoc-com-resolu{ opacity:.6; }
.edoc-com-tete{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--sp-6); }
.edoc-com-tete span{ font-size:var(--fs-xs); color:var(--mut); white-space:nowrap; }
.edoc-com-texte{ white-space:pre-wrap; overflow-wrap:anywhere; }
.edoc-com-rep{ border-left:2px solid var(--line); padding-left:var(--sp-8); display:flex; flex-direction:column; gap:var(--sp-2); }
.edoc-com-saisie{ width:100%; min-height:48px; height:auto; padding:var(--sp-6) var(--sp-8); resize:vertical; font:inherit; }
.edoc-com-gestes{ display:flex; flex-wrap:wrap; gap:var(--sp-4); }
.edoc-corps .edoc-com{ background:color-mix(in srgb, var(--outils-surligneur) 35%, transparent); border-bottom:1px solid color-mix(in srgb, var(--outils-surligneur) 90%, var(--page-encre)); }
.edoc-corps .edoc-com.edoc-com-ancre-actif{ background:color-mix(in srgb, var(--outils-surligneur) 65%, transparent); }
.edoc-corps .edoc-com.edoc-com-ancre-resolu{ background:none; border-bottom-color:transparent; }
.edoc-corps ins[data-auteur]{ text-decoration:underline; text-decoration-color:var(--st-suivi-couleur, var(--outils-accent)); color:var(--st-suivi-couleur, color-mix(in srgb, var(--outils-accent) 70%, var(--page-encre))); }
.edoc-corps del[data-auteur]{ text-decoration:line-through; color:var(--st-suivi-suppr, var(--err)); }
.edoc-sans-suivi .edoc-corps ins[data-auteur]{ text-decoration:none; color:inherit; }
.edoc-sans-suivi .edoc-corps del[data-auteur]{ display:none; }
.edoc-pied-clic{ cursor:pointer; border-radius:var(--radius-xs); }
.edoc-pied-clic:hover{ color:var(--txt); }
.edoc-dlg-stats{ width:min(380px, 92vw); }
.edoc-stats{ display:flex; flex-direction:column; }
.edoc-stat{ display:flex; justify-content:space-between; gap:var(--sp-12); padding:var(--sp-6) 0; border-bottom:1px solid var(--line2); font-size:var(--fs-sm); }
.edoc-stat b{ font-variant-numeric:tabular-nums; }

/* ── Impression (W9) : l'aperçu ; la fenêtre est celle du Tableur (21c, .imp-app) ───── */
.edoc-imp-page{ position:relative; overflow:hidden; background:var(--page-papier); }
.edoc-imp-plan{ position:absolute; left:0; }
.edoc-imp-plan .edoc-feuille{ box-shadow:none; }
.edoc-imp-plan .edoc-corps .edoc-saut{ border:0; }
.edoc-imp-plan .edoc-corps .edoc-com{ background:none; border:0; }
.edoc-imp-plan .edoc-corps table.edoc-bordures-aucune td, .edoc-imp-plan .edoc-corps table.edoc-bordures-aucune th{ box-shadow:none; }

/* ── Les tableaux de page en page (2026-10-24) ───────────────────────────── */
/* L'espace de fin de page : une ligne sans bordure ni fond, que la pagination pose avant la ligne qui passe à la page
   suivante ; rien ne se dessine dans l'intervalle entre deux pages. */
/* Côtés « hidden » : dans un tableau à bordures fusionnées, ils l'emportent sur les filets des colonnes voisines ; le haut et
   le bas restent « none », pour que le bas de la dernière ligne et le haut de l'en-tête répété gardent leur filet. */
.edoc-corps tr.edoc-espace-page > td{ padding:0; border-style:none hidden; background:none; box-shadow:none; }
.edoc-corps tr.edoc-entete-repetee > *{ background:color-mix(in srgb, var(--page-encre) 4%, transparent); user-select:none; }
}
