﻿/* Studio exégétique (onglet Exégèse modernisé, lot 1).
   Architecture : docs/EXEGESE_BP_ARCHITECTURE_UI.md. Toutes les règles sont
   limitées à #exe_studio : la palette historique n'est pas touchée. */
@font-face { font-family: 'BP Gentium'; src: url('../tools/fonts/Gentium.woff2') format('woff2'); font-display: swap; }
@font-face { font-family: 'SBL Hebrew'; src: url('../SBLHebrew.woff') format('woff'); font-display: swap; }

#exe_studio {
    --exs-canvas: #faf7f1; --exs-surface: #fff; --exs-soft: #fffdf8; --exs-ink: #2a2622; --exs-ink-soft: #4a433c;
    --exs-muted: #6f675f; --exs-line: #e6dfd3; --exs-line-soft: #f0ebe2; --exs-accent: #7a4a21; --exs-accent-dark: #5a3416;
    --exs-gold: #ffbf40; --exs-gold-wash: #fff0c7; --exs-bar: #1e1c1a; --exs-bar-soft: #2b2724; --exs-bar-line: #3a3632;
    --exs-bar-ink: #c9c1b6; --exs-bar-dim: #a39a90;
    /* Gentium partout (interface comprise), SBL Hebrew pour l'hébreu. */
    --exs-serif: 'BP Gentium', 'Gentium Plus', 'Gentium', Georgia, serif;
    --exs-heb: 'SBL Hebrew', serif;
    --exs-ui: 'BP Gentium', 'Gentium Plus', 'Gentium', Georgia, serif;
    display: none; background: var(--exs-canvas); color: var(--exs-ink); font: 400 14px/1.4 var(--exs-ui);
    border-radius: 10px; overflow: hidden; cursor: default; white-space: normal; text-align: left;
    margin: -10px -10px 0;
}
#exe_studio.exs-on { display: block; }
#exe_studio button { font: inherit; color: inherit; cursor: pointer; }
#exe_studio .exs-serif { font-family: var(--exs-serif); }
#exe_studio .exs-grk { font-family: var(--exs-serif); }
#exe_studio .exs-heb { font-family: var(--exs-heb); }
#exe_studio .exs-muted { color: var(--exs-muted); }
#exe_studio .exs-small { font-size: 12.5px; }
#exe_studio .exs-kicker { font: 700 10.5px var(--exs-ui); letter-spacing: .12em; text-transform: uppercase; color: var(--exs-accent); }
#exe_studio .exs-h2 { font: 700 21px var(--exs-serif); margin: 0; color: var(--exs-ink); }
#exe_studio .exs-h3 { font: 700 16px var(--exs-serif); margin: 0; color: var(--exs-ink); }
#exe_studio .exs-code { font: 700 10.5px var(--exs-ui); letter-spacing: .05em; color: var(--exs-accent); background: rgba(122,74,33,.09); border-radius: 4px; padding: 2px 6px; white-space: nowrap; }
#exe_studio .exs-card { background: var(--exs-surface); border: 1px solid var(--exs-line); border-radius: 10px; }

/* En-tête sombre, comme Références, Commentaires et Dictionnaires */
#exe_studio .exs-head { background: var(--exs-bar); padding: 0 28px; }
#exe_studio .exs-head-top { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--exs-bar-line); flex-wrap: wrap; padding: 8px 0; }
#exe_studio .exs-titre { display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap; min-width: 0; }
#exe_studio .exs-title { font: 400 1.12rem/1.15 var(--exs-serif); letter-spacing: .01em; color: #f5efe5; margin-right: 2px; }
#exe_studio .exs-titre .exs-sub { margin-left: 10px; }
#exe_studio .exs-nav { border: 0; background: none; padding: 0 5px; font: 400 20px/1 var(--exs-serif); color: var(--exs-bar-dim); cursor: pointer; }
#exe_studio .exs-nav:hover { color: var(--exs-gold); }
#exe_studio .exs-sub { font-size: 12.5px; color: var(--exs-bar-dim); }
#exe_studio .exs-barbtn { height: 32px; padding: 0 12px; border-radius: 5px; border: 1px solid var(--exs-bar-line); background: var(--exs-bar-soft); color: var(--exs-bar-ink); font: 600 12.5px var(--exs-ui); display: inline-flex; align-items: center; gap: 7px; }
#exe_studio .exs-barbtn:hover { color: #fff; border-color: #5a534c; }
#exe_studio .exs-barbtn .n { color: var(--exs-gold); }
#exe_studio .exs-tabs { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; }
#exe_studio .exs-tab { display: inline-flex; align-items: center; gap: 8px; height: 46px; padding: 0 14px; background: none; border: 0; border-bottom: 2px solid transparent; color: var(--exs-bar-ink); font: 600 13px var(--exs-ui); white-space: nowrap; }
#exe_studio .exs-tab:hover { color: #fff; }
#exe_studio .exs-tab.on { color: var(--exs-gold); border-bottom-color: var(--exs-gold); }
#exe_studio .exs-tab .cnt { font-size: 11px; color: var(--exs-gold); }
#exe_studio .exs-tab svg { width: 16px; height: 16px; }

#exe_studio .exs-body { padding: 14px 28px 30px; display: flex; flex-direction: column; gap: 14px; }

/* Points d'examen */
#exe_studio .exs-hots { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
#exe_studio .exs-hot { display: flex; flex-direction: column; gap: 6px; text-align: left; padding: 11px 12px; border-radius: 9px; border: 1px solid var(--exs-line); background: var(--exs-surface); min-width: 0; }
#exe_studio .exs-hot:hover { border-color: #c9b79c; }
#exe_studio .exs-hot.on { border-color: var(--exs-gold); box-shadow: 0 0 0 3px var(--exs-gold-wash); }
#exe_studio .exs-fam { font: 700 9.5px var(--exs-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--exs-accent); }
#exe_studio .exs-note { font-size: 12.5px; color: var(--exs-muted); padding: 10px 12px; border: 1px dashed var(--exs-line); border-radius: 8px; background: var(--exs-soft); }

/* Statuts */
#exe_studio .exs-st { font: 700 9.5px var(--exs-ui); letter-spacing: .07em; text-transform: uppercase; border-radius: 9px; padding: 2px 7px; white-space: nowrap; border: 1px solid transparent; }
#exe_studio .exs-st-DONNEE { background: var(--exs-ink); color: #fff; }
#exe_studio .exs-st-CONSTAT { background: #dcefec; color: #0b5e57; }
#exe_studio .exs-st-ANALYSE { background: #e3ebf8; color: #1f4fa8; }
#exe_studio .exs-st-HYPOTHESE { background: #fdf0cf; color: #6e4a00; }
#exe_studio .exs-st-INDETERMINE, #exe_studio .exs-st-ETAT { background: #fff; color: #57504a; border: 1px dashed #a39a90; }

/* Grille principale : texte à gauche, espace de travail à droite */
#exe_studio .exs-main { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 18px; align-items: start; }
#exe_studio .exs-text { padding: 14px 18px 16px; position: sticky; top: 64px; min-width: 0; max-height: calc(100vh - 90px); overflow-y: auto; }
#exe_studio .exs-work { padding: 16px 22px 20px; min-height: 520px; min-width: 0; overflow: hidden; }
@media (max-width: 1100px) {
    #exe_studio .exs-main { grid-template-columns: minmax(0, 1fr); }
    #exe_studio .exs-text { position: static; max-height: none; }
}

/* Commandes du texte */
#exe_studio .exs-ctrls { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
#exe_studio .exs-mode { height: 28px; padding: 0 11px; border: 1px solid var(--exs-line); background: #fff; font: 600 12px var(--exs-ui); color: var(--exs-ink-soft); margin-left: -1px; }
#exe_studio .exs-mode:first-child { border-radius: 14px 0 0 14px; margin-left: 0; }
#exe_studio .exs-mode:last-child { border-radius: 0 14px 14px 0; }
#exe_studio .exs-mode.on { background: var(--exs-ink); border-color: var(--exs-ink); color: #fff; }
#exe_studio .exs-tog { height: 28px; padding: 0 10px; border-radius: 14px; border: 1px solid var(--exs-line); background: #fff; font: 600 12px var(--exs-ui); color: var(--exs-ink-soft); display: inline-flex; align-items: center; gap: 6px; }
#exe_studio .exs-tog .bx { width: 12px; height: 12px; border-radius: 3px; border: 1.5px solid #a39a90; }
#exe_studio .exs-tog.on .bx { background: var(--exs-accent); border-color: var(--exs-accent); }
#exe_studio .exs-volet-versions .exs-tog.on { background: var(--exs-ink); border-color: var(--exs-ink); color: #fff; }
#exe_studio .exs-volet-versions .exs-tog:focus-visible { outline: 2px solid var(--exs-accent); outline-offset: 2px; }

/* Texte en propositions */
#exe_studio .exs-cot { font: italic 400 14px var(--exs-serif); color: var(--exs-muted); padding: 10px 0 2px; }
#exe_studio .exs-line { padding: 8px 0 6px; border-bottom: 1px dashed #eee6d9; }
#exe_studio .exs-lab { font: 600 11px var(--exs-ui); color: var(--exs-muted); margin-bottom: 2px; }
#exe_studio .exs-lab .rule { font: 700 10px var(--exs-ui); color: #a39a90; letter-spacing: .04em; }
#exe_studio .exs-ind1 { margin-left: 30px; } #exe_studio .exs-ind2 { margin-left: 60px; } #exe_studio .exs-ind3 { margin-left: 90px; }
#exe_studio .exs-cons { display: inline-flex; flex-direction: column; gap: 2px; margin: 0 6px 4px 0; vertical-align: top; }
#exe_studio .exs-fl { font: 700 9.5px var(--exs-ui); letter-spacing: .07em; text-transform: uppercase; padding: 1px 6px; border-radius: 3px; align-self: flex-start; }
#exe_studio .exs-words { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0 2px; }
#exe_studio .exs-w { background: none; border: 0; border-radius: 7px; padding: 3px 5px 4px; display: inline-flex; flex-direction: column; align-items: center; gap: 1px; position: relative; }
#exe_studio .exs-w:hover { background: rgba(122,74,33,.07); }
#exe_studio .exs-w:focus-visible { outline: 2px solid var(--exs-accent); outline-offset: 1px; }
#exe_studio .exs-w.join { padding-left: 0; padding-right: 0; margin: 0 -1px; }
#exe_studio .exs-w .f { font: 400 27px/1.25 var(--exs-serif); }
#exe_studio .exs-w .fh { font: 400 30px/1.5 var(--exs-heb); }
#exe_studio .exs-w .it { font: italic 400 13px var(--exs-serif); color: var(--exs-accent); white-space: nowrap; }
#exe_studio .exs-w .tr { font: 400 11.5px var(--exs-ui); color: #8a8078; white-space: nowrap; }
#exe_studio .exs-w .mc { font: 600 9.5px var(--exs-ui); color: #8a8078; letter-spacing: .03em; white-space: nowrap; }
#exe_studio .exs-w .nt { font: 700 10px var(--exs-ui); color: #b45309; white-space: nowrap; }
#exe_studio .exs-w.sel { background: var(--exs-gold-wash); box-shadow: inset 0 -3px 0 var(--exs-gold); }
#exe_studio .exs-w.inspan { background: #fff7e3; }
#exe_studio .exs-pn { font: 400 27px var(--exs-serif); padding-top: 3px; margin-left: -4px; }
#exe_studio .exs-legend { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 10px; font-size: 11.5px; color: var(--exs-ink-soft); }
#exe_studio .exs-legend i { display: inline-block; width: 16px; height: 9px; border-radius: 3px; background: currentColor; margin-right: 6px; vertical-align: middle; }

/* Couleurs : code BP (Coloriser_TexteGrec), fonctions MACULA */
#exe_studio .c-verb { color: #b3261e; } #exe_studio .c-nom { color: #1f4fa8; } #exe_studio .c-acc { color: #7a4a21; }
#exe_studio .c-gen { color: #2f7d32; } #exe_studio .c-dat { color: #8e3fa0; } #exe_studio .c-voc { color: #c26a00; } #exe_studio .c-gris { color: #7a7168; }
#exe_studio .c-fS { color: #1f4fa8; } #exe_studio .c-fV { color: #b3261e; } #exe_studio .c-fO, #exe_studio .c-fO2 { color: #7a4a21; }
#exe_studio .c-fADV, #exe_studio .c-fPP { color: #2f7d32; } #exe_studio .c-fP { color: #8e3fa0; } #exe_studio .c-fVC { color: #c26a00; }
#exe_studio .c-fIO { color: #0f766e; } #exe_studio .c-fDET { color: #0f766e; } #exe_studio .c-f { color: var(--exs-ink); }
#exe_studio .b-fS { background: #e3ebf8; color: #1f4fa8; } #exe_studio .b-fV { background: #f7e2df; color: #8a2616; }
#exe_studio .b-fO, #exe_studio .b-fO2 { background: #f3e8dc; color: #5a3416; } #exe_studio .b-fADV, #exe_studio .b-fPP { background: #e2efe2; color: #245f27; }
#exe_studio .b-fP { background: #f0e4f4; color: #6b2c7a; } #exe_studio .b-fVC { background: #fbecd9; color: #8a4a00; }
#exe_studio .b-fIO, #exe_studio .b-fDET { background: #dcefec; color: #0b5e57; } #exe_studio .b-f { background: #eeebe6; color: #57504a; }

/* Traduction */
#exe_studio .exs-tr { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 10px; align-items: baseline; margin-top: 12px; padding-top: 12px; border-top: 1px solid #eee6d9; }
#exe_studio .exs-tr .txt { font: 400 16.5px var(--exs-serif); color: var(--exs-ink-soft); }
#exe_studio .exs-tr mark { background: var(--exs-gold-wash); box-shadow: inset 0 -2px 0 var(--exs-gold); color: inherit; border-radius: 3px; padding: 0 1px; }
#exe_studio .exs-tr textarea { width: 100%; box-sizing: border-box; min-height: 40px; border: 1px dashed #d8cfc1; border-radius: 7px; background: var(--exs-soft); padding: 8px 10px; font: 400 15px var(--exs-serif); color: var(--exs-ink); resize: vertical; }

/* Espace de travail : tiroir, fiche, vues */
#exe_studio .exs-crumb { display: flex; align-items: center; justify-content: space-between; padding-bottom: 10px; margin-bottom: 4px; border-bottom: 1px solid #eee6d9; }
#exe_studio .exs-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: 13px; border: 1px solid var(--exs-line); background: var(--exs-canvas); font: 600 12px var(--exs-ui); color: var(--exs-ink-soft); white-space: nowrap; }
#exe_studio button.exs-chip:hover { border-color: var(--exs-accent); color: var(--exs-accent); }
#exe_studio .exs-dsec { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 9px; padding: 9px 0; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-dsec .n { width: 20px; height: 20px; border-radius: 50%; background: #f3ede2; color: var(--exs-accent); font: 700 10.5px var(--exs-ui); display: flex; align-items: center; justify-content: center; }
#exe_studio .exs-dsec .t { font: 700 11px var(--exs-ui); letter-spacing: .06em; text-transform: uppercase; color: var(--exs-muted); margin-bottom: 4px; }
#exe_studio .exs-li { font: 400 13px/1.45 var(--exs-ui); color: var(--exs-ink); padding: 2px 0; }
#exe_studio .exs-btn { height: 34px; padding: 0 13px; border-radius: 6px; border: 1px solid var(--exs-accent); background: var(--exs-accent); color: #fff; font: 600 12.5px var(--exs-ui); display: inline-flex; align-items: center; gap: 7px; }
#exe_studio .exs-btn:hover { background: var(--exs-accent-dark); }
#exe_studio .exs-btn.ghost { background: #fff; color: var(--exs-accent); }
#exe_studio .exs-row { display: grid; gap: 12px; padding: 8px 0; border-top: 1px solid var(--exs-line-soft); align-items: baseline; }
#exe_studio .exs-arow { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 12px; align-items: baseline; width: 100%; text-align: left; padding: 8px 6px; border: 0; border-top: 1px solid var(--exs-line-soft); background: none; font: 400 13px var(--exs-ui); color: var(--exs-ink); }
#exe_studio .exs-arow:hover { background: #fbf6ec; }

/* Transitions de droite à gauche */
@keyframes exs-rtl { from { opacity: 0; transform: translateX(56px); } to { opacity: 1; transform: none; } }
#exe_studio .exs-view { animation: exs-rtl .34s cubic-bezier(.2,.75,.25,1) both; }
@media (prefers-reduced-motion: reduce) { #exe_studio .exs-view { animation: none; } }

/* Retour au studio depuis la palette historique */
#exe_studio_retour { display: none; margin: 0 0 10px; height: 32px; padding: 0 12px; border-radius: 5px; border: 1px solid #7a6344; background: #332b21; color: #ead4af; font: 600 13px 'BP Gentium', 'Gentium Plus', Georgia, serif; cursor: pointer; }

/* Quand le studio est affiché, la palette historique est masquée par une classe,
   sans toucher aux show()/hide() que afficheExegese applique à chaque icône. */
#div_exegese.exs-mode > img.exe, #div_exegese.exs-mode > br, #div_exegese.exs-mode > #app_ex,
#div_exegese.exs-mode > #LoadingImageExe { display: none !important; }
#div_exegese.exs-palette > #exe_studio_retour { display: inline-flex; align-items: center; gap: 7px; }

/* AT : un mot graphique (préfixes et suffixes compris) forme un seul bloc, comme l'unité ATI */
#exe_studio .exs-gw { display: inline-flex; flex-direction: column; align-items: center; gap: 1px; padding: 3px 5px 4px; border-radius: 7px; }
#exe_studio .exs-gw.sel { background: var(--exs-gold-wash); box-shadow: inset 0 -3px 0 var(--exs-gold); }
#exe_studio .exs-gw.inspan { background: #fff7e3; }
#exe_studio .exs-gw-f { display: inline-flex; }
#exe_studio .exs-m { background: none; border: 0; padding: 0; border-radius: 4px; }
#exe_studio .exs-m:hover { background: rgba(122,74,33,.10); }
#exe_studio .exs-m.on { box-shadow: inset 0 -2px 0 var(--exs-accent); }
#exe_studio .exs-m:focus-visible { outline: 2px solid var(--exs-accent); }
#exe_studio .exs-m .fh { font: 400 30px/1.5 var(--exs-heb); }
#exe_studio .exs-gw .it { font: italic 400 13px var(--exs-serif); color: var(--exs-accent); white-space: nowrap; }
#exe_studio .exs-gw .tr { font: 400 11.5px var(--exs-ui); color: #8a8078; white-space: nowrap; }
#exe_studio .exs-gw .mc { font: 600 9.5px var(--exs-ui); color: #8a8078; letter-spacing: .03em; white-space: nowrap; direction: ltr; }

/* Étape 3 : marques de l'apparat sur le texte, témoins, unités cliquables */
#exe_studio .exs-mk { font: 400 21px var(--exs-serif); color: #b45309; padding-top: 5px; }
#exe_studio .exs-w.var .f { text-decoration: underline dotted #b45309; text-decoration-thickness: 2px; text-underline-offset: 7px; }
#exe_studio .exs-w.hx .fh, #exe_studio .exs-m.hx .fh { text-decoration: underline dotted #b45309; text-decoration-thickness: 2px; text-underline-offset: 9px; }
#exe_studio .exs-wit { display: inline-flex; align-items: center; height: 23px; padding: 0 7px; border-radius: 5px; background: var(--exs-canvas); border: 1px solid var(--exs-line); font: 600 12.5px var(--exs-serif); color: var(--exs-ink); white-space: nowrap; }
#exe_studio .exs-unit { display: block; width: 100%; text-align: left; background: none; border: 0; padding: 2px 0 6px; border-radius: 6px; }
#exe_studio .exs-unit:hover { background: #fbf6ec; }

/* ---------- Immersion : même intégration que Références et Commentaires ----------
   L'onglet occupe toute la largeur, sans marge ni cadre, et le fond historique
   (papyrus) disparaît. La classe du conteneur de défilement est posée ET retirée
   par un MutationObserver qui suit l'affichage réel de #div_exegese (voir
   surveillerImmersion dans exegese-studio.js), jamais par un clic : c'est la
   leçon tirée de pr-reference-mode (passage-resources.css). Classe distincte,
   pour que l'observateur de Références et Commentaires ne la retire pas. */
#main_section.exs-studio-mode {
    background: #faf7f1 !important;
    background-image: none !important;
}
#div_exegese.exs-mode {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 100%;
    padding: 0 !important;
    cursor: default !important;
    background: #faf7f1;
    box-shadow: 0 40px 0 #faf7f1;
    box-sizing: border-box;
}
#div_exegese.exs-mode > #exe_studio_retour { display: none !important; }
#exe_studio { margin: 0; border-radius: 0; overflow: visible; min-height: 100%; }
/* Bandeau collant : aucun ancêtre ne doit porter overflow:hidden ni transform. */
#exe_studio .exs-head {
    position: sticky;
    top: 0;
    z-index: 20;
    padding: 0 clamp(16px, 4vw, 54px);
    box-shadow: 0 1px 0 var(--exs-bar-line), 0 6px 18px rgba(30, 28, 26, .13);
}
#exe_studio .exs-body { padding: 16px clamp(16px, 4vw, 54px) 36px; }
#exe_studio .exs-text { top: 124px; max-height: calc(100vh - 240px); }
@media (max-width: 1100px) { #exe_studio .exs-text { max-height: none; } }

/* Étape 4 : constructions figées, typologie des propositions. */
#exe_studio .exs-w.idi, #exe_studio .exs-m.idi { box-shadow: inset 0 -2px 0 rgba(15, 107, 99, .6); }
#exe_studio .exs-legend i.c-idi { background: none; height: 0; border-radius: 0; border-bottom: 2px solid #0f6b63; }
#exe_studio .exs-unit .exs-li { display: block; }
#exe_studio .exs-phrs { display: flex; flex-wrap: wrap; gap: 6px; margin: 2px 0 4px; }
#exe_studio .exs-phr { display: inline-flex; flex-direction: column; align-items: center; gap: 1px; padding: 4px 10px; border: 1px solid var(--exs-line-soft); border-radius: 7px; background: #fff; cursor: pointer; font: inherit; color: var(--exs-ink); }
#exe_studio .exs-phr:hover { background: #fbf6ec; }

/* Étape 5 : situer, introductions, parallèles. */
#exe_studio .exs-st-SECONDAIRE { background: #efe7da; color: #6b5a44; }
#exe_studio .exs-sit { display: flex; flex-direction: column; gap: 4px; }
#exe_studio .exs-sit-l { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 8px; align-items: baseline; font: 400 14px/1.4 var(--exs-serif); }
#exe_studio .exs-position { display: grid; gap: 3px; padding: 2px 0 7px; }
#exe_studio .exs-position-l { position: relative; display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 7px; align-items: start; margin-left: calc(var(--niveau, 0) * 10px); font: 400 13.5px/1.35 var(--exs-serif); }
#exe_studio .exs-position-l.livre { grid-template-columns: 65px minmax(0, 1fr); margin: 0 0 3px; align-items: baseline; }
#exe_studio .exs-position-l.livre .exs-serif { font-size: 17px; font-weight: 600; }
#exe_studio .exs-position-trait { width: 12px; height: 12px; margin-top: 3px; border-left: 1px solid var(--exs-line); border-bottom: 1px solid var(--exs-line); }
#exe_studio .exs-position-l small { display: block; margin-top: 1px; color: var(--exs-muted); font: 400 11.5px var(--exs-ui); }
#exe_studio .exs-position-courante { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 8px; align-items: baseline; padding-top: 6px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-pericopes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 7px; }
#exe_studio .exs-pericope { position: relative; min-width: 0; padding: 8px 9px; border: 1px solid var(--exs-line-soft); border-radius: 8px; background: #fff; color: var(--exs-ink); text-align: left; cursor: pointer; }
#exe_studio .exs-pericope > span { display: block; margin-bottom: 3px; color: var(--exs-muted); font: 700 9.5px var(--exs-ui); letter-spacing: .08em; text-transform: uppercase; }
#exe_studio .exs-pericope b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 12.5px var(--exs-serif); }
#exe_studio .exs-pericope small { color: var(--exs-muted); font: 400 10.5px var(--exs-ui); }
#exe_studio .exs-pericope:not(.current):hover, #exe_studio .exs-pericope:not(.current):focus-visible { border-color: var(--exs-accent); background: #fbf6ec; outline: none; }
#exe_studio .exs-pericope.current { border-color: #c9ab7b; background: var(--exs-gold-wash); cursor: default; }
#exe_studio .exs-contexte { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
#exe_studio .exs-contexte-l { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 7px; padding: 6px 0; border-top: 1px solid var(--exs-line-soft); align-items: baseline; }
#exe_studio .exs-contexte-l:nth-child(-n+2) { border-top: 0; }
#exe_studio .exs-contexte-l span { color: var(--exs-accent); font: 700 9.5px var(--exs-ui); letter-spacing: .07em; text-transform: uppercase; }
#exe_studio .exs-contexte-l b { font: 500 13px/1.4 var(--exs-serif); }
#exe_studio .exs-themes { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0 6px; }
#exe_studio .exs-themes span { padding: 3px 8px; border-radius: 99px; background: #f2ebe0; color: #5f4c37; font: 600 10.5px var(--exs-ui); }
#exe_studio .exs-contexte-volume { margin-bottom: 3px; }
#exe_studio .exs-visuels-apercu { display: grid; grid-template-columns: repeat(6, minmax(72px, 1fr)); gap: 7px; margin: 2px 0 7px; }
#exe_studio .exs-visuel-apercu { min-width: 0; margin: 0; padding: 0; overflow: hidden; border: 1px solid var(--exs-line); border-radius: 7px; background: #fff; color: var(--exs-ink); text-align: left; }
#exe_studio .exs-visuel-apercu img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #eee6da; }
#exe_studio .exs-visuel-apercu figcaption { display: block; padding: 5px 6px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 500 10.5px var(--exs-ui); }
#exe_studio .exs-intro { border-top: 1px solid var(--exs-line-soft); padding: 5px 0; }
#exe_studio .exs-intro summary { cursor: pointer; font: 600 13.5px var(--exs-ui); color: var(--exs-ink); }
#exe_studio .exs-intro-t { white-space: pre-line; font: 400 14px/1.55 var(--exs-serif); color: var(--exs-ink-soft); padding: 6px 0 4px; }
#exe_studio .exs-wit.cur { background: var(--exs-ink); color: #fff; }
@media (max-width: 760px) {
    #exe_studio .exs-pericopes { grid-template-columns: 1fr; }
    #exe_studio .exs-contexte { grid-template-columns: 1fr; }
    #exe_studio .exs-contexte-l:nth-child(2) { border-top: 1px solid var(--exs-line-soft); }
    #exe_studio .exs-visuels-apercu { grid-template-columns: repeat(3, minmax(72px, 1fr)); }
}

/* Relier : constellation canonique, frise de la réception, monde du texte, bibliographie. */
#exe_studio .exs-arcs, #exe_studio .exs-frise { display: block; width: 100%; height: auto; margin: 4px 0 2px; }
#exe_studio .exs-arc-lab { font: 600 11px var(--exs-ui); fill: #7a6e60; }
#exe_studio .exs-arc-me { font: 700 13px var(--exs-ui); fill: #1d1a16; }
#exe_studio .exs-arcs path:hover { stroke-opacity: 1; stroke-width: 3; }
#exe_studio .exs-bulle { cursor: pointer; }
#exe_studio .exs-bulle:hover circle { fill-opacity: .9; }
#exe_studio .exs-rl { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 10px; padding: 6px 0; border-top: 1px solid var(--exs-line-soft); align-items: baseline; }
#exe_studio .exs-rl > div { display: flex; flex-wrap: wrap; gap: 5px; }
#exe_studio a.exs-wit { text-decoration: none; }
#exe_studio a.exs-wit.extra { background: #f3ecf7; border-color: #d8c6e4; }
#exe_studio .exs-ents { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; margin-top: 6px; }
#exe_studio .exs-ent { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; text-align: left; padding: 9px 10px; border: 1px solid var(--exs-line-soft); border-radius: 9px; background: #fff; font: 400 13px/1.4 var(--exs-ui); color: var(--exs-ink); cursor: pointer; }
#exe_studio .exs-ent:hover { background: #fbf6ec; }
#exe_studio .exs-ent-i { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #efe7da; color: #6b5a44; }
#exe_studio .exs-ent-i svg { width: 17px; height: 17px; }
#exe_studio .exs-ent-personne .exs-ent-i { background: #e3ebf8; color: #1f4fa8; }
#exe_studio .exs-ent-faune .exs-ent-i, #exe_studio .exs-ent-flore .exs-ent-i { background: #dcefec; color: #0b5e57; }
#exe_studio .exs-ent-t { display: block; margin-top: 3px; color: var(--exs-ink-soft); font: 400 12.5px/1.45 var(--exs-serif); }
#exe_studio .exs-bib { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 10px; align-items: baseline; padding: 6px 0; border-top: 1px solid var(--exs-line-soft); font: 400 13.5px/1.4 var(--exs-serif); }
#exe_studio .exs-bib-loc { font: 600 12px var(--exs-ui); color: var(--exs-accent); text-align: right; }
@media (max-width: 720px) { #exe_studio .exs-rl { grid-template-columns: 1fr; } #exe_studio .exs-bib { grid-template-columns: 1fr; } }
#exe_studio .exs-frise-lab { font: 600 14px var(--exs-ui); fill: #7a6e60; }
#exe_studio .exs-frise-nom { font: 600 14.5px var(--exs-ui); fill: #3d342a; }
#exe_studio .exs-frise-nom.cur { fill: #000; font-weight: 800; }
#exe_studio .exs-siecles { display: grid; gap: 0; margin: 6px 0 4px; border-top: 2px solid #d6cab7; }
#exe_studio .exs-siecle { padding: 6px 6px 4px; border-left: 1px dashed #e0d6c6; min-width: 0; }
#exe_studio .exs-siecle:first-child { border-left: 0; }
#exe_studio .exs-siecle-t { font: 700 11px var(--exs-ui); letter-spacing: .06em; color: var(--exs-accent); margin-bottom: 4px; }
#exe_studio .exs-pere { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 5px; align-items: center; width: 100%; padding: 3px 4px; border: 0; border-radius: 6px; background: none; text-align: left; font: 600 12px/1.25 var(--exs-ui); color: var(--exs-ink); cursor: pointer; }
#exe_studio .exs-pere:hover { background: #f5eee2; }
#exe_studio .exs-pere .pt { justify-self: center; border-radius: 50%; background: #8a6d3b; opacity: .7; }
#exe_studio .exs-pere .nm { overflow-wrap: anywhere; hyphens: auto; }
#exe_studio .exs-pere .nb { font: 700 11px var(--exs-ui); color: var(--exs-muted); }
#exe_studio .exs-pere.on { background: #1d1a16; color: #fff; }
#exe_studio .exs-pere.on .pt { background: #e9c98f; opacity: 1; }
@media (max-width: 720px) { #exe_studio .exs-siecles { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }

/* Versions anciennes. */
#exe_studio .exs-anc { font-size: 16px; line-height: 1.6; }
#exe_studio .exs-heb.exs-anc { font-size: 23px; line-height: 1.75; text-align: right; }
#exe_studio .exs-syr { font-family: 'Noto Sans Syriac', 'Estrangelo Edessa', 'Serto Jerusalem', serif; font-size: 19px; text-align: right; }
#exe_studio .exs-cop { font-family: 'Antinoou', 'Noto Sans Coptic', 'Segoe UI Historic', serif; }
#exe_studio mark.exs-diff { background: #fde9c4; color: inherit; border-radius: 3px; padding: 0 2px; }

/* Étape 6 : points d'examen de la famille, en tête de sa vue. */
#exe_studio .exs-pfam { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 2px 0 12px; margin-bottom: 10px; border-bottom: 1px solid var(--exs-line-soft); }
#exe_studio .exs-pfam .exs-chip { white-space: normal; text-align: left; height: auto; padding: 4px 10px; }

/* Division massorétique. */
#exe_studio .exs-acc { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; width: 100%; padding: 4px 6px; border: 0; border-top: 1px solid var(--exs-line-soft); background: none; cursor: pointer; direction: rtl; text-align: right; }
#exe_studio .exs-acc:hover { background: #fbf6ec; }
#exe_studio .exs-acc .exs-heb { font-size: 19px; }
#exe_studio .exs-acc-l { direction: ltr; font: 600 11.5px var(--exs-ui); color: var(--exs-accent); white-space: nowrap; }

/* Dossier d'enquête. */
#exe_studio .exs-saisie { display: block; width: 100%; box-sizing: border-box; min-height: 44px; margin: 6px 0; border: 1px solid var(--exs-line); border-radius: 7px; background: var(--exs-soft); padding: 8px 10px; font: 400 14.5px/1.45 var(--exs-serif); color: var(--exs-ink); resize: vertical; }
#exe_studio .exs-saisie:focus, #exe_studio .exs-sel:focus { outline: 2px solid rgba(122,74,33,.35); outline-offset: 1px; border-color: var(--exs-accent); }
#exe_studio .exs-sel { height: 28px; padding: 0 6px; border: 1px solid var(--exs-line); border-radius: 6px; background: #fff; font: 600 12px var(--exs-ui); color: var(--exs-ink-soft); }
#exe_studio .exs-dq { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--exs-line); border-radius: 9px; background: #fff; }
#exe_studio .exs-dq-pied { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; }
#exe_studio .exs-dgr { margin-top: 16px; }
#exe_studio .exs-dn { margin-top: 8px; padding: 10px 12px; border: 1px solid var(--exs-line-soft); border-radius: 9px; background: #fff; }
#exe_studio .exs-dn-t { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
#exe_studio .exs-dn-c { display: flex; gap: 6px; align-items: center; }
#exe_studio .exs-dn-titre { font-size: 16px; line-height: 1.4; margin-top: 4px; }
#exe_studio .exs-dn-d { margin-top: 4px; }
#exe_studio .exs-dn-d summary { cursor: pointer; font: 600 12px var(--exs-ui); color: var(--exs-ink-soft); }
#exe_studio .exs-dn-d .exs-kicker { display: block; margin-top: 6px; }
#exe_studio .exs-dn-p { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
#exe_studio .exs-dexp { margin-top: 16px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
#exe_studio .exs-chip-alerte { border-color: #b3471f; color: #8a2616; background: #fdf1ec; }

/* Méthode et bibliographie. */
#exe_studio .exs-barbtn[aria-pressed="true"] { color: #fff; border-color: var(--exs-gold); }
#exe_studio .exs-meth { margin-top: 18px; padding: 10px 12px; border-top: 1px solid var(--exs-line); background: var(--exs-soft); border-radius: 0 0 8px 8px; }
#exe_studio .exs-ref { border: 0; padding: 0; background: none; font: inherit; color: var(--exs-accent); cursor: pointer; text-decoration: underline dotted; text-underline-offset: 2px; }
#exe_studio .exs-ref:hover { color: var(--exs-accent-dark); text-decoration-style: solid; }
#exe_studio .exs-mgr { margin-top: 18px; }
#exe_studio .exs-mp { padding: 8px 0; border-top: 1px solid var(--exs-line-soft); display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
#exe_studio .exs-ms { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 10px; padding: 5px 0; border-top: 1px solid var(--exs-line-soft); align-items: baseline; }
#exe_studio .exs-mrub { margin-top: 12px; }
#exe_studio .exs-mref { display: block; padding: 6px 4px; border-top: 1px solid var(--exs-line-soft); align-items: baseline; border-radius: 5px; }
#exe_studio .exs-mref.on { background: #fdf0cf; }
#exe_studio .exs-mnot { font: 400 14px/1.45 var(--exs-serif); color: var(--exs-ink); }
#exe_studio .exs-cercle { display: inline-block; width: 9px; height: 9px; border-radius: 50%; border: 1.5px solid var(--exs-accent); }
#exe_studio .exs-cercle.lu { background: var(--exs-accent); }
#exe_studio .exs-cercle.debat { border-style: dashed; border-color: var(--exs-muted); }
#exe_studio .exs-cercle.ref { background: linear-gradient(90deg, var(--exs-accent) 50%, transparent 50%); }
@media (max-width: 720px) { #exe_studio .exs-ms { grid-template-columns: 1fr; gap: 2px; } }

/* Finitions, passe 1 : deux colonnes.
   Gauche : le texte sur toute la hauteur ; en-tête fixe (commandes, LSG), propositions qui défilent.
   Droite : l'espace de travail (tiroir, fiches, vues), puis les points d'examen repliables en bas. */
#exe_studio .exs-main { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); }
#exe_studio .exs-text { display: flex; flex-direction: column; padding: 0; overflow: hidden; top: 116px; height: calc(100vh - 56px - 116px - 16px); max-height: none; }
#exe_studio .exs-text-tete { padding: 14px 18px 10px; border-bottom: 1px solid var(--exs-line-soft); flex: 0 0 auto; }
#exe_studio .exs-text-tete .exs-tr { margin-top: 10px; padding-top: 10px; }
#exe_studio .exs-text-corps { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 8px 18px 16px; scrollbar-width: thin; scrollbar-color: #9a7a56 transparent; }
#exe_studio .exs-text-corps::-webkit-scrollbar { width: 6px; }
#exe_studio .exs-text-corps::-webkit-scrollbar-thumb { background: #9a7a56; border-radius: 3px; }
#exe_studio .exs-text-corps::-webkit-scrollbar-track { background: transparent; }
#exe_studio .exs-text-corps::-webkit-scrollbar-button { display: none; width: 0; height: 0; }
#exe_studio .exs-droite { display: flex; flex-direction: column; gap: 10px; min-width: 0; position: sticky; top: 116px; height: calc(100vh - 56px - 116px - 16px); max-height: none; overflow: hidden; }

#exe_studio .exs-work { flex: 1 1 auto; min-height: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #9a7a56 transparent; padding: 16px 22px 20px; }
#exe_studio .exs-work::-webkit-scrollbar { width: 6px; }
#exe_studio .exs-work::-webkit-scrollbar-thumb { background: #9a7a56; border-radius: 3px; }
#exe_studio .exs-work::-webkit-scrollbar-track { background: transparent; }
#exe_studio .exs-work::-webkit-scrollbar-button { display: none; width: 0; height: 0; }

#exe_studio .exs-hotzone { flex: 0 0 auto; display: flex; flex-direction: column; gap: 6px; padding-top: 2px; }
#exe_studio .exs-hot-t { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
#exe_studio .exs-hots-ligne { display: grid; grid-template-columns: 30px minmax(0, 1fr) 30px; gap: 6px; align-items: stretch; min-width: 0; }
#exe_studio .exs-hots { display: block; min-width: 0; max-height: none; overflow: hidden; scroll-behavior: auto; scrollbar-width: none; }
#exe_studio .exs-hots::-webkit-scrollbar { display: none; width: 0; height: 0; }
#exe_studio .exs-hots-piste { display: flex; gap: 8px; min-width: 0; }
#exe_studio .exs-hot { flex: 0 0 calc((100% - 16px) / 3); height: 92px; min-height: 92px; max-height: 92px; display: grid; grid-template-columns: minmax(0, 1fr); align-content: start; gap: 2px; padding: 7px 12px; overflow: hidden; }
#exe_studio .exs-hot-l { display: flex; justify-content: space-between; gap: 6px; align-items: center; }
#exe_studio .exs-hot-titre { font: 700 14px/1.25 var(--exs-serif); color: var(--exs-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#exe_studio .exs-hot-raison { font-size: 11.5px; line-height: 1.35; color: var(--exs-ink-soft); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
#exe_studio .exs-chevron { align-self: stretch; display: inline-flex; align-items: center; justify-content: center; width: 30px; min-height: 92px; border: 1px solid var(--exs-line); border-radius: 9px; background: var(--exs-surface); padding: 0; color: var(--exs-accent); cursor: pointer; transition: border-color .16s, background-color .16s; }
#exe_studio .exs-chevron svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .24s ease; }
#exe_studio .exs-chevron.retour svg { transform: rotate(180deg); }
#exe_studio .exs-chevron:hover { color: var(--exs-accent-dark); border-color: #c9b79c; background: var(--exs-soft); }
@media (prefers-reduced-motion: reduce) { #exe_studio .exs-chevron svg { transition: none; } }

/* Pas de glissade quand la vue de droite ne change pas (bascules, choix dans un bloc). */
#exe_studio.exs-fixe .exs-view { animation: none; }
/* Bloc d'arrivée d'une action du tiroir. */
@keyframes exs-cible { from { box-shadow: 0 0 0 3px var(--exs-gold-wash), 0 0 0 1px var(--exs-gold); } to { box-shadow: none; } }
#exe_studio .exs-cible { animation: exs-cible 1.6s ease-out .3s both; }

/* Liens : marron et soulignés, comme ailleurs dans BP. */
#exe_studio a:not(.exs-wit) { color: var(--exs-accent); text-decoration: underline; text-underline-offset: 2px; }
#exe_studio a:not(.exs-wit):hover { color: var(--exs-accent-dark); }

/* « Où le verset est discuté » : le titre garde sa largeur, les renvois passent dessous s'ils sont longs. */
#exe_studio .exs-bib { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; }
#exe_studio .exs-bib > span:first-child { flex: 1 1 260px; min-width: 0; }
#exe_studio .exs-bib-loc { flex: 0 1 auto; max-width: 100%; text-align: left; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
    #exe_studio .exs-main { grid-template-columns: minmax(0, 1fr); }
    #exe_studio .exs-text { position: static; height: auto; }
    #exe_studio .exs-text-corps { overflow: visible; }
    #exe_studio .exs-droite { position: static; height: auto; overflow: visible; }
    #exe_studio .exs-work { overflow: visible; min-height: 420px; }
    #exe_studio .exs-hot { flex-basis: calc((100% - 8px) / 2); }
}
/* Verset très long : la LSG ne mange pas la colonne ; le segment surligné est ramené en vue. */
#exe_studio .exs-text-tete .exs-tr .txt { max-height: 24vh; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #9a7a56 transparent; padding-right: 4px; }
#exe_studio .exs-text-tete .exs-tr .txt::-webkit-scrollbar { width: 5px; }
#exe_studio .exs-text-tete .exs-tr .txt::-webkit-scrollbar-thumb { background: #9a7a56; border-radius: 3px; }
@media (max-width: 1100px) { #exe_studio .exs-text-tete .exs-tr .txt { max-height: none; } }
/* Téléphone : les lignes à étiquette s'empilent (versions anciennes : le texte était écrasé à 0 px),
   les boutons peuvent aller à la ligne. */
@media (max-width: 720px) {
    #exe_studio .exs-row { grid-template-columns: minmax(0, 1fr) !important; gap: 2px; }
    #exe_studio .exs-chip { white-space: normal; height: auto; min-height: 26px; padding: 3px 10px; }
    #exe_studio .exs-hot { flex-basis: 100%; }
}

/* Finitions, passe 2 : bouton « i » et vue « Le studio exégétique ». */
#exe_studio .exs-info { width: 26px; height: 26px; border-radius: 50%; border: 1.5px solid var(--exs-bar-dim); background: none; color: var(--exs-bar-dim); font: italic 700 14px/1 var(--exs-serif); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
#exe_studio .exs-info:hover, #exe_studio .exs-info.on { color: var(--exs-gold); border-color: var(--exs-gold); }
#exe_studio .exs-mtoc { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
#exe_studio .exs-mbref { font: 400 15px/1.55 var(--exs-serif); color: var(--exs-ink); margin: 6px 0 0; }
#exe_studio .exs-mgr { scroll-margin-top: 130px; }

/* Finitions, passe 5 : panneau latéral (outils amples), qui glisse depuis la droite. */
#exe_studio .exs-volet-fond { position: fixed; inset: 56px 0 0 0; background: rgba(30, 28, 26, .18); z-index: 2400; }
#exe_studio .exs-volet { position: fixed; top: 56px; right: 0; bottom: 0; width: min(820px, 94vw); z-index: 2500; background: var(--exs-canvas); border-left: 1px solid var(--exs-line); box-shadow: -14px 0 34px rgba(30, 28, 26, .18); display: flex; flex-direction: column; }
/* Passe 10 : le volet glisse vraiment de droite à gauche, et repart vers la droite ; le fond se fond. */
@keyframes exs-volet-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes exs-volet-out { from { transform: translateX(0); } to { transform: translateX(100%); } }
@keyframes exs-fond-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes exs-fond-out { from { opacity: 1; } to { opacity: 0; } }
@keyframes exs-relu { from { opacity: 0; transform: translateX(14px); } to { opacity: 1; transform: none; } }
#exe_studio .exs-volet.entre { animation: exs-volet-in .46s cubic-bezier(.16,.84,.3,1) both; }
#exe_studio .exs-volet.sort { animation: exs-volet-out .27s cubic-bezier(.55,0,.8,.2) both; pointer-events: none; }
#exe_studio .exs-volet-fond { animation: exs-fond-in .35s ease both; }
#exe_studio .exs-volet-fond.sort { animation: exs-fond-out .27s ease both; pointer-events: none; }
#exe_studio .exs-volet-corps.relu { animation: exs-relu .28s ease both; }
@media (prefers-reduced-motion: reduce) {
    #exe_studio .exs-volet.entre { animation-duration: .22s; }
    #exe_studio .exs-volet.sort { animation-duration: .16s; }
}
#exe_studio .exs-volet-tete { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 14px 20px 8px; background: var(--exs-surface); }
#exe_studio .exs-volet-actions { display: flex; gap: 8px; align-items: center; }
#exe_studio .exs-legacy { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--exs-line); background: #fff; color: var(--exs-muted); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
#exe_studio .exs-legacy:hover { color: var(--exs-accent); border-color: var(--exs-accent); }
#exe_studio .exs-volet-x { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--exs-line); background: #fff; font: 400 20px/1 var(--exs-ui); color: var(--exs-ink-soft); cursor: pointer; }
#exe_studio .exs-volet-x:hover { color: var(--exs-accent); border-color: var(--exs-accent); }
#exe_studio .exs-volet-onglets { display: flex; gap: 2px; flex-wrap: wrap; padding: 0 16px; background: var(--exs-surface); border-bottom: 1px solid var(--exs-line); }
#exe_studio .exs-volet-onglets .exs-tab { color: var(--exs-ink-soft); }
#exe_studio .exs-volet-onglets .exs-tab.on { color: var(--exs-accent); }
#exe_studio .exs-volet-outils { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; padding: 10px 20px; border-bottom: 1px solid var(--exs-line-soft); }
#exe_studio .exs-filtre { flex: 1 1 180px; min-width: 0; height: 30px; padding: 0 10px; border: 1px solid var(--exs-line); border-radius: 6px; background: #fff; font: 400 13px var(--exs-ui); color: var(--exs-ink); }
#exe_studio .exs-volet-boutons { display: flex; gap: 6px; flex-wrap: wrap; }
#exe_studio .exs-chip-ia { border-color: #d9b56a; background: #fdf6e3; }
#exe_studio .exs-volet-corps { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 12px 20px 30px; scrollbar-width: thin; scrollbar-color: #9a7a56 transparent; }
#exe_studio .exs-volet-corps::-webkit-scrollbar { width: 6px; }
#exe_studio .exs-volet-corps::-webkit-scrollbar-thumb { background: #9a7a56; border-radius: 3px; }
#exe_studio .exs-vgr { padding: 10px 0; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-vgr-texte { font-size: 16px; line-height: 1.5; color: var(--exs-ink); }
#exe_studio .exs-vgr-v { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 6px; }
#exe_studio .exs-vcode { display: inline-flex; align-items: center; gap: 5px; padding: 2px 8px 2px 3px; border: 1px solid var(--exs-line); border-radius: 12px; background: #fff; font: 600 11.5px var(--exs-ui); color: var(--exs-ink-soft); }
#exe_studio .exs-vcode img { width: 14px; height: 20px; object-fit: cover; border-radius: 2px; }
#exe_studio .exs-vligne { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 8px 0; border-top: 1px solid var(--exs-line-soft); align-items: start; }
#exe_studio .exs-vligne img { width: 34px; height: 48px; object-fit: cover; border-radius: 3px; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
#exe_studio .exs-vnom { font: 700 12px var(--exs-ui); color: var(--exs-accent); }
#exe_studio .exs-vtexte { font-size: 17px; line-height: 1.55; }
#exe_studio .exs-ia { margin-bottom: 12px; padding: 10px 12px; border: 1px solid #e7d3a4; border-radius: 9px; background: #fffaf0; }
#exe_studio .exs-ia-t { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
#exe_studio .exs-ia-texte { font: 400 14.5px/1.55 var(--exs-serif); color: var(--exs-ink); }
#exe_studio .exs-carte-action { display: flex; justify-content: flex-end; margin: -2px 0 6px; }
@media (max-width: 720px) {
    #exe_studio .exs-volet { width: 100vw; }
    #exe_studio .exs-volet-tete, #exe_studio .exs-volet-outils, #exe_studio .exs-volet-corps { padding-left: 14px; padding-right: 14px; }
}

/* Panneau : introductions (liste des sources, lecture) et citations (textes en regard). */
#exe_studio .exs-volet-intros { width: min(1000px, 96vw); }
#exe_studio .exs-intros { flex: 1 1 auto; min-height: 0; display: grid; grid-template-columns: 250px minmax(0, 1fr); border-top: 1px solid var(--exs-line); }
#exe_studio .exs-intros-liste { overflow-y: auto; padding: 10px 8px; border-right: 1px solid var(--exs-line-soft); background: var(--exs-soft); scrollbar-width: thin; scrollbar-color: #9a7a56 transparent; }
#exe_studio .exs-intros-src { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; align-items: center; width: 100%; text-align: left; padding: 6px 8px; border: 0; border-radius: 7px; background: none; font: 600 12.5px/1.3 var(--exs-ui); color: var(--exs-ink-soft); cursor: pointer; }
#exe_studio .exs-intros-src img { width: 28px; height: 40px; object-fit: cover; border-radius: 2px; box-shadow: 0 1px 2px rgba(0,0,0,.15); }
#exe_studio .exs-intros-src:hover { background: #fff; }
#exe_studio .exs-intros-src.on { background: #fff; color: var(--exs-accent); box-shadow: inset 3px 0 0 var(--exs-gold); }
#exe_studio .exs-intros-bp { width: 28px; height: 40px; border-radius: 3px; background: var(--exs-accent); color: #fff; font: 700 11px/40px var(--exs-ui); text-align: center; }
#exe_studio .exs-intros-texte { overflow-y: auto; padding: 16px 26px 40px; scrollbar-width: thin; scrollbar-color: #9a7a56 transparent; }
#exe_studio .exs-intros-t { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; margin-bottom: 10px; }
#exe_studio .exs-lecture { font: 400 15.5px/1.65 var(--exs-serif); color: var(--exs-ink); max-width: 44em; }
#exe_studio .exs-lecture p { margin: 0 0 .8em; }
#exe_studio .exs-lecture h4 { font: 700 16px var(--exs-serif); margin: 1.2em 0 .4em; color: var(--exs-accent-dark); }
#exe_studio .exs-lecture h5 { font: 700 14.5px var(--exs-serif); margin: 1em 0 .3em; }
#exe_studio .exs-lecture ul, #exe_studio .exs-lecture ol { padding-left: 1.4em; }
#exe_studio .exs-lecture table { border-collapse: collapse; font-size: 14px; }
#exe_studio .exs-lecture td, #exe_studio .exs-lecture th { border: 1px solid var(--exs-line); padding: 3px 6px; }
#exe_studio .exs-cit { padding: 12px 0; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-cit-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; margin-top: 8px; }
#exe_studio .exs-cit-col { padding: 8px 10px; border: 1px solid var(--exs-line-soft); border-radius: 8px; background: #fff; }
#exe_studio .exs-cit-txt { font-size: 17px; line-height: 1.55; margin-top: 4px; }
#exe_studio mark.exs-commun { background: #e3ebf8; color: #1f4fa8; border-radius: 3px; padding: 0 1px; }
#exe_studio .exs-cit-trad { margin-top: 8px; }
@media (max-width: 720px) {
    #exe_studio .exs-intros { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
    #exe_studio .exs-intros-liste { max-height: 30vh; border-right: 0; border-bottom: 1px solid var(--exs-line-soft); }
}
@media (max-width: 720px) { #exe_studio .exs-volet.exs-volet-intros { width: 100vw; } }

/* Passe 6 : deux zones à défilement indépendant sur grand écran. La page ne défile plus : sous la
   grille, des éléments de l'application l'allongeaient, et en fin de course la colonne collante
   de gauche était entraînée vers le haut. */
@media (min-width: 1101px) {
    #main_section.exs-studio-mode { overflow-y: hidden !important; }
    #exe_studio .exs-body { padding-bottom: 14px; }
    /* La rangée est bornée à la hauteur de la grille : sans cela elle s'étire sur le contenu et rien ne défile. */
    #exe_studio .exs-main { height: calc(100vh - 56px - 116px - 30px); grid-template-rows: minmax(0, 1fr); align-items: stretch; }
    #exe_studio .exs-text { position: relative; top: auto; height: auto; min-height: 0; }
    /* Deux zones jointives : le tiroir occupe l'espace restant et la galerie des points
       prend seulement sa hauteur naturelle, sans rangée fantôme entre les deux. */
    #exe_studio .exs-droite { display: grid; grid-template-rows: minmax(0, 1fr) max-content; position: relative; top: auto; height: auto; min-height: 0; overflow: hidden; padding-right: 0; }
    #exe_studio .exs-work { height: auto; max-height: none; min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
    #exe_studio .exs-hotzone { align-self: stretch; width: 100%; min-height: 0; max-height: none; overflow: visible; }
    #exe_studio .exs-hots { min-height: 0; max-height: none; overflow: hidden; }
}
#exe_studio .exs-text-corps { overscroll-behavior: contain; }

/* Mots : ni sélection du texte au clic, ni contour à la souris (le clavier garde le sien). */
#exe_studio .exs-w, #exe_studio .exs-m, #exe_studio .exs-acc { -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }
#exe_studio button:focus:not(:focus-visible) { outline: none; }

/* Accents de cantillation en rouge, comme dans le module historique. */
#exe_studio .exs-accent { color: #c0271d; }

/* Sens UBS : renvoi à un autre lemme. */
#exe_studio .exs-ubs-l { font-style: italic; }
#exe_studio .exs-ubs-l.exs-heb, #exe_studio .exs-ubs-l.exs-grk { font-style: normal; font-size: 1.08em; }

/* Pastille de retour au studio, dans la section des outils (même allure que celle de la Recherche intelligente). */
#exegese-retour { position: fixed; right: 18px; bottom: 18px; z-index: 12000; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px;
    border: 1px solid rgba(255, 191, 64, .48); border-radius: 999px; background: rgba(16, 25, 31, .94); color: #ffbf40; font: 600 13px/1.2 "Open Sans", Helvetica, Arial, sans-serif;
    box-shadow: 0 5px 22px rgba(0, 0, 0, .42); cursor: pointer; transition: transform .16s ease, background-color .16s ease; }
#exegese-retour:hover, #exegese-retour:focus-visible { transform: translateY(-2px); background: rgba(39, 43, 38, .98); outline: none; }

/* Passe 7 : Septante et TM selon Tov. */
#exe_studio .exs-tov { padding: 8px 0; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-tov-mots { display: flex; flex-wrap: wrap; gap: 10px; align-items: baseline; }
#exe_studio .exs-tov-mots .exs-heb { font-size: 20px; color: #8a2616; }
#exe_studio .exs-tov-mots .exs-grk { font-size: 17px; color: #8a2616; }
#exe_studio .exs-tov-table { width: 100%; border-collapse: collapse; }
#exe_studio .exs-tov-table th { text-align: left; font: 700 10.5px var(--exs-ui); letter-spacing: .08em; text-transform: uppercase; color: var(--exs-accent); padding: 4px 8px; border-bottom: 1px solid var(--exs-line); }
#exe_studio .exs-tov-table td { padding: 5px 8px; border-bottom: 1px solid var(--exs-line-soft); vertical-align: top; }
#exe_studio .exs-tov-table td.exs-heb { font-size: 19px; text-align: right; }
#exe_studio .exs-tov-table td.exs-grk { font-size: 16px; }
#exe_studio .exs-tov-table tr.ecart td { background: #fdf1ec; }
#exe_studio .exs-tov-table tr.ecart td.exs-heb, #exe_studio .exs-tov-table tr.ecart td.exs-grk { color: #8a2616; }
#exe_studio .exs-ac { margin-bottom: 12px; padding: 10px 12px; border: 1px solid var(--exs-line); border-radius: 9px; background: #fff; }
#exe_studio .exs-ac-cl { padding-left: 14px; }
#exe_studio .exs-ac-item { margin-top: 8px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-ac-item > summary { padding: 9px 2px 7px; cursor: pointer; color: var(--exs-ink); }
#exe_studio .exs-ac-item > summary::marker { color: var(--exs-accent); }
#exe_studio .exs-ac-notice { margin: 7px 0 5px 14px; padding: 9px 11px; border-left: 2px solid var(--exs-accent); background: var(--exs-soft); font: 14px/1.55 var(--exs-ui); }
#exe_studio .exs-ac-notice p { margin: 0 0 7px; }
#exe_studio .exs-ac-notice p:last-child { margin-bottom: 0; }

/* Passe 8 : apparats critiques, notices du monde du texte, pastille de retour depuis Références. */
#exe_studio .exs-app { padding: 10px 0 14px; border-top: 1px solid var(--exs-line-soft); scroll-margin-top: 8px; }
#exe_studio .exs-app-texte { font-size: 15px; line-height: 1.7; max-width: none; }
#exe_studio .exs-app-texte sup { font-size: .7em; }
#exe_studio .exs-fiche-champs { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 4px 12px; margin: 0 0 10px; font: 400 13.5px/1.45 var(--exs-ui); }
#exe_studio .exs-fiche-champs dt { color: var(--exs-accent); font-weight: 700; }
#exe_studio .exs-fiche-champs dd { margin: 0; color: var(--exs-ink); }
#exe_studio button.exs-ent { cursor: pointer; }
#exegese-retour-ref { position: fixed; right: 18px; bottom: 18px; z-index: 12000; display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px;
    border: 1px solid rgba(255, 191, 64, .48); border-radius: 999px; background: rgba(16, 25, 31, .94); color: #ffbf40; font: 600 13px/1.2 "Open Sans", Helvetica, Arial, sans-serif;
    box-shadow: 0 5px 22px rgba(0, 0, 0, .42); cursor: pointer; transition: transform .16s ease, background-color .16s ease; }
#exegese-retour-ref:hover, #exegese-retour-ref:focus-visible { transform: translateY(-2px); background: rgba(39, 43, 38, .98); outline: none; }
@media (max-width: 720px) { #exe_studio .exs-fiche-champs { grid-template-columns: 1fr; } }
#exe_studio .exs-carte-action { gap: 6px; flex-wrap: wrap; }

/* Les deux rangées de droite peuvent se contracter dans la grille sans déborder horizontalement. */
#exe_studio .exs-droite > * { min-width: 0; }

/* Apparats critiques, réécrits : sections, unités, leçons, éditions, témoins. */
#exe_studio .exs-app { padding: 14px 0 6px; border-top: 1px solid var(--exs-line); }
#exe_studio .exs-app-carte { border-top: 0; padding-top: 0; }
#exe_studio .exs-app-t { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
#exe_studio .exs-app-u { padding: 8px 12px; margin-top: 8px; border: 1px solid var(--exs-line-soft); border-radius: 9px; background: #fff; }
#exe_studio .exs-app-l { display: flex; flex-wrap: wrap; align-items: baseline; gap: 5px 8px; padding: 5px 0; border-top: 1px dashed var(--exs-line-soft); }
#exe_studio .exs-app-u > .exs-app-l:first-child, #exe_studio .exs-app-u > div:first-child + .exs-app-l { border-top: 0; }
#exe_studio .exs-app-l.retenu .exs-app-lecon { color: var(--exs-accent-dark); }
#exe_studio .exs-app-lecon { font-size: 18px; line-height: 1.4; }
#exe_studio .exs-app-lecon.exs-heb { font-size: 20px; }
#exe_studio .exs-ed { display: inline-flex; align-items: center; height: 20px; padding: 0 6px; border-radius: 4px; background: var(--exs-canvas); border: 1px solid var(--exs-line); font: 700 10.5px var(--exs-ui); color: var(--exs-ink-soft); }
#exe_studio .exs-app-fam { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 4px; align-items: baseline; padding-left: 12px; }
#exe_studio .exs-app-fam .exs-kicker { min-width: 110px; }
#exe_studio .exs-app-tem { flex-basis: 100%; padding-left: 12px; }
#exe_studio .exs-app-w { flex-direction: column; gap: 2px; }
#exe_studio .exs-app-com { font-size: 14px; line-height: 1.6; margin-top: 4px; max-width: none; }

/* BHS : note mixte latine/hébraïque, repères et aide des sigles. */
#exe_studio .exs-bhs-card { padding: 12px 16px; margin-top: 12px; background: var(--exs-soft); }
#exe_studio .exs-bhs-heading { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin-bottom: 3px; }
#exe_studio .exs-bhs-intro { margin: 10px 0 6px; line-height: 1.5; }
#exe_studio .exs-bhs-lemma { display: flex; align-items: baseline; flex-wrap: wrap; gap: 10px; padding: 3px 0 7px; text-align: left; }
#exe_studio .exs-bhs-lemma .exs-heb { font-size: 21px; line-height: 1.65; }
#exe_studio .exs-bhs-marker { font: 700 14px var(--exs-serif); color: var(--exs-accent); background: var(--exs-gold-wash); border-radius: 5px; padding: 2px 7px; min-width: 23px; text-align: center; }
#exe_studio .exs-bhs-text { border-top: 1px solid var(--exs-line-soft); padding: 8px 0 4px; font: 400 16px/1.85 var(--exs-serif); overflow-wrap: anywhere; }
#exe_studio .exs-bhs-text .bhs-heb { font: 400 20px/1.85 var(--exs-heb); }
#exe_studio .exs-bhs-text .bhs-grk { font-family: var(--exs-serif); }
#exe_studio .bhs-siglum { font-family: var(--exs-serif), 'Cambria Math', 'Segoe UI Symbol', serif; }
#exe_studio .exs-bhs-text abbr[title] { text-decoration: underline dotted var(--exs-muted); text-underline-offset: 4px; cursor: help; }
#exe_studio .exs-bhs-ref { border: 0; background: none; padding: 0; font: inherit; display: inline; }
#exe_studio .exs-bhs-ref:focus-visible, #exe_studio .exs-bhs-help summary:focus-visible { outline: 2px solid var(--exs-accent); outline-offset: 3px; border-radius: 2px; }
#exe_studio .exs-bhs-help { margin-top: 12px; border-top: 1px solid var(--exs-line); padding-top: 9px; }
#exe_studio .exs-bhs-help summary { cursor: pointer; color: var(--exs-accent); font-size: 13px; }
#exe_studio .exs-bhs-help dl { margin: 8px 0 0; }
#exe_studio .exs-bhs-help dl > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 10px; padding: 6px 0; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-bhs-help dt { font-weight: 700; overflow-wrap: anywhere; }
#exe_studio .exs-bhs-help dd { margin: 0; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
#exe_studio .exs-bhs-erreur { color: #8a2616; }
@media (max-width: 540px) {
    #exe_studio .exs-bhs-card { padding: 12px; }
    #exe_studio .exs-bhs-note { padding: 8px 10px; }
    #exe_studio .exs-bhs-help dl > div { grid-template-columns: 44px minmax(0, 1fr); gap: 8px; }
}
#exe_studio .exs-app-na27 p { margin: 0 0 6px; font-size: 16px; line-height: 1.6; }
#exe_studio .exs-app-na27 sup, #exe_studio .exs-wit sup { font-size: .7em; }

/* Passe 10 : illustrations des manuels (vignettes, visionneuse) et renvois bibliques. */
#exe_studio .exs-galerie { margin: 4px 0 14px; padding: 10px 0 12px; border-top: 1px solid var(--exs-line); border-bottom: 1px solid var(--exs-line); }
#exe_studio .exs-galerie-t { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }
#exe_studio .exs-galerie-l { display: flex; flex-wrap: wrap; gap: 10px; }
#exe_studio .exs-vignette { width: 96px; height: 72px; padding: 0; border: 1px solid var(--exs-line); border-radius: 6px; overflow: hidden; background: #efe8dc; cursor: zoom-in; box-shadow: 0 1px 3px rgba(30, 28, 26, .12); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
#exe_studio .exs-vignette img { width: 100%; height: 100%; object-fit: cover; display: block; }
#exe_studio button.exs-vignette:hover, #exe_studio button.exs-vignette:focus-visible { transform: translateY(-2px); border-color: var(--exs-accent); box-shadow: 0 5px 14px rgba(30, 28, 26, .2); outline: none; }
#exe_studio .exs-vignette.attente { display: inline-block; cursor: default; background: linear-gradient(90deg, #efe8dc 0%, #f7f2ea 50%, #efe8dc 100%); background-size: 200% 100%; animation: exs-attente 1.2s linear infinite; }
#exe_studio .exs-visuels-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
#exe_studio .exs-visuel-tuile { position: relative; min-width: 0; padding: 0; overflow: hidden; border: 1px solid var(--exs-line); border-radius: 9px; background: #fff; color: var(--exs-ink); text-align: left; cursor: zoom-in; box-shadow: 0 1px 3px rgba(30, 28, 26, .1); }
#exe_studio .exs-visuel-tuile img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: #eee6da; }
#exe_studio .exs-visuel-tuile span { display: block; padding: 7px 8px 8px; font: 500 12px/1.3 var(--exs-ui); }
#exe_studio .exs-visuel-tuile small { position: absolute; top: 7px; right: 7px; padding: 2px 6px; border-radius: 99px; background: rgba(30, 28, 26, .84); color: #fff; font: 700 9px var(--exs-ui); letter-spacing: .05em; text-transform: uppercase; }
#exe_studio .exs-visuel-tuile:hover, #exe_studio .exs-visuel-tuile:focus-visible { border-color: var(--exs-accent); transform: translateY(-1px); box-shadow: 0 5px 14px rgba(30, 28, 26, .16); outline: none; }
#exe_studio .exs-visuels-note { margin-top: 12px; }
@keyframes exs-attente { from { background-position: 100% 0; } to { background-position: -100% 0; } }
#exe_studio .exs-visionneuse { position: fixed; inset: 0; z-index: 2700; display: flex; align-items: center; justify-content: center; animation: exs-fond-in .2s ease both; }
#exe_studio .exs-vis-fond { position: absolute; inset: 0; background: rgba(24, 22, 20, .9); }
#exe_studio .exs-visionneuse figure { position: relative; margin: 0; max-width: min(1000px, 86vw); display: flex; flex-direction: column; align-items: center; gap: 10px; }
#exe_studio .exs-visionneuse img { max-width: 100%; max-height: 78vh; border-radius: 4px; box-shadow: 0 14px 44px rgba(0, 0, 0, .5); background: #111; }
#exe_studio .exs-visionneuse figcaption { display: flex; gap: 10px; align-items: baseline; color: #eee6da; font: 400 14px var(--exs-ui); }
#exe_studio .exs-visionneuse figcaption .lg::first-letter { text-transform: uppercase; }
#exe_studio .exs-visionneuse figcaption .nb { color: #a39a90; font-size: 12px; }
#exe_studio .exs-vis-pas, #exe_studio .exs-vis-x { position: relative; z-index: 1; width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .35); background: rgba(20, 18, 16, .55); color: #fff; font: 400 30px/1 var(--exs-ui); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
#exe_studio .exs-vis-pas { margin: 0 22px; }
#exe_studio .exs-vis-pas[hidden] { display: none; }
#exe_studio .exs-vis-x { position: absolute; top: 70px; right: 22px; font-size: 26px; }
#exe_studio .exs-vis-pas:hover, #exe_studio .exs-vis-x:hover, #exe_studio .exs-vis-pas:focus-visible, #exe_studio .exs-vis-x:focus-visible { background: rgba(122, 74, 33, .85); border-color: #ffbf40; outline: none; }
@media (max-width: 720px) { #exe_studio .exs-vis-pas { margin: 0 4px; width: 38px; height: 38px; } #exe_studio .exs-visionneuse figure { max-width: 72vw; } }
#exe_studio .exs-bref { color: var(--exs-accent); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; white-space: nowrap; }
#exe_studio .exs-bref:hover, #exe_studio .exs-bref:focus-visible { color: var(--exs-accent-dark); outline: none; background: rgba(122, 74, 33, .07); border-radius: 3px; }
/* La fenêtre des versets (PopupDataRef, tingle) passe au-dessus du volet quand il est ouvert. */
body.exs-volet-ouvert .tingle-modal { z-index: 2800; }
/* Les Pères lisent le verset (ECF, Schaff). */
#exe_studio .exs-peres-auteurs { max-height: 132px; overflow-y: auto; }
#exe_studio .exs-pere-x { padding: 12px 0 10px; border-bottom: 1px solid var(--exs-line-soft); }
#exe_studio .exs-pere-t { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
#exe_studio .exs-pere-t .exs-chip { margin-left: auto; }
#exe_studio .exs-pere-texte { font: 400 15.5px/1.62 var(--exs-serif); color: var(--exs-ink); margin: 6px 0 0; }
#exe_studio .exs-lecture-pere p { font-size: 15.5px; line-height: 1.65; }
#exe_studio .exs-gram { margin-top: 12px; padding: 14px 16px; }
#exe_studio .exs-gram:first-child { margin-top: 0; }
#exe_studio .exs-gram-t { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding-bottom: 9px; margin-bottom: 10px; border-bottom: 1px solid var(--exs-line-soft); }
#exe_studio .exs-gram-t .exs-st { flex: 0 0 auto; }
#exe_studio .exs-gram-texte { max-width: 50em; }
#exe_studio .exs-gram-texte .exs-heb { font-size: 1.1em; }
#exe_studio .exs-gram-note { margin-top: 12px; padding-top: 9px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-bref.vise { background: var(--exs-gold-wash); box-shadow: 0 0 0 2px var(--exs-gold-wash); border-radius: 3px; font-weight: 700; color: var(--exs-accent-dark); }
#exe_studio button.exs-wit { cursor: pointer; font: inherit; }
/* Littérature du Second Temple : en gras ce qui s'ouvre, en maigre ce qui n'est qu'un repère */
#exe_studio .exs-wit.exs-sdt { font: 400 12.5px var(--exs-serif); }
#exe_studio button.exs-wit.exs-sdt { font: 700 12.5px var(--exs-serif); cursor: pointer; }
#exe_studio .exs-chip.on { background: var(--exs-accent); border-color: var(--exs-accent); color: #fff; }
#exe_studio button.exs-chip.on:hover, #exe_studio button.exs-chip.on:focus-visible { background: var(--exs-accent-dark); border-color: var(--exs-accent-dark); color: #fff; }
/* Cantillation, passe 10 : verset coupé par ses disjonctifs, puis coupures une à une ; l'accent visé en rouge. */
#exe_studio .exs-accent-bas { color: #c9beb0; }
#exe_studio .exs-accent.vise { color: #c0271d; }
#exe_studio .exs-cant-verset { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 4px; font-size: 25px; line-height: 1.9; padding: 6px 10px; margin-bottom: 8px; border-radius: 8px; background: #fff; border: 1px solid var(--exs-line-soft); }
#exe_studio .exs-cant-u { border: 0; background: none; padding: 0 3px; font: inherit; color: var(--exs-ink); border-radius: 5px; cursor: pointer; }
#exe_studio .exs-cant-u:hover, #exe_studio .exs-cant-u:focus-visible { background: #fbf2e1; outline: none; }
#exe_studio .exs-cant-trait { font-family: var(--exs-ui); font-weight: 700; padding: 0 3px; }
#exe_studio .exs-cant-trait.n1, #exe_studio .exs-cant-nom b.n1 { color: #8a2616; font-size: 1.15em; }
#exe_studio .exs-cant-trait.n2, #exe_studio .exs-cant-nom b.n2 { color: #b45309; }
#exe_studio .exs-cant-trait.n3, #exe_studio .exs-cant-nom b.n3 { color: #a08a6c; font-size: .9em; }
#exe_studio .exs-cant-trait.n4, #exe_studio .exs-cant-nom b.n4 { color: #c2b6a6; font-size: .85em; }
#exe_studio .exs-cant-liste { display: flex; flex-direction: column; }
#exe_studio .exs-cant-l { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 5px 6px; border: 0; border-top: 1px solid var(--exs-line-soft); background: none; cursor: pointer; text-align: start; width: auto; }
#exe_studio .exs-cant-l:hover { background: #fbf6ec; }
#exe_studio .exs-cant-nom { font: 600 12px var(--exs-ui); color: var(--exs-accent); white-space: nowrap; }
#exe_studio .exs-cant-nom b { font-size: 16px; }
#exe_studio .exs-cant-t { font-size: 19px; line-height: 1.7; text-align: right; }
#exe_studio .exs-cant-u, #exe_studio .exs-cant-l { -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }
@media (max-width: 720px) { #exe_studio .exs-cant-l { flex-direction: column; align-items: stretch; } }
/* Texte du SBLGNT là où NA28 imprime autre chose : double trait sous le mot. */
#exe_studio .exs-w.sbl .f, #exe_studio .exs-w.sbl .fh { text-decoration: underline double #7a3e9d; text-underline-offset: 5px; }
#exe_studio .exs-legend i.c-sbl { background: none; height: 0; border-radius: 0; border-bottom: 3px double #7a3e9d; }
#exe_studio .exs-ecart { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 4px 14px; padding: 7px 0; border-top: 1px solid var(--exs-line-soft); width: 100%; border-left: 0; border-right: 0; border-bottom: 0; background: none; cursor: pointer; text-align: left; font: inherit; }
#exe_studio .exs-ecart:hover { background: #fbf6ec; }
#exe_studio .exs-ecart .exs-grk { font-size: 18px; }
/* Le volet est une colonne flexible : seul son corps rétrécit ; en-tête, onglets et barres d'outils gardent leur hauteur. */
#exe_studio .exs-volet > .exs-volet-tete, #exe_studio .exs-volet > .exs-volet-onglets, #exe_studio .exs-volet > .exs-volet-outils { flex-shrink: 0; }
#exe_studio .exs-peres-auteurs { max-height: none; }

/* Consultation classique : icône seule, ronde, dans la barre des familles. */
#exe_studio .exs-barbtn.exs-barico { width: 34px; height: 34px; padding: 0; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 15px; }

/* Ma synthèse (28/09/2026) : la fiche du verset d'abord, puis l'Atelier IA, puis les éléments numérotés. */
#exe_studio .exs-syn-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
#exe_studio .exs-syn-vide { margin-top: 12px; padding: 14px 16px; border: 1px dashed var(--exs-line); border-radius: 10px; background: var(--exs-soft); font: 400 14.5px/1.55 var(--exs-serif); }
#exe_studio .exs-syn-vide p { margin: 0 0 6px; }
#exe_studio .exs-syn-fiche { margin-top: 12px; padding: 14px 18px 10px; border: 1px solid var(--exs-line); border-top: 3px solid var(--exs-gold); border-radius: 10px; background: #fff; }
#exe_studio .exs-syn-fiche-t { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 4px; }
#exe_studio .exs-syn-s { padding: 8px 0 4px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-syn-s:first-of-type { border-top: 0; }
#exe_studio .exs-syn-s ul { margin: 4px 0 0; padding-left: 0; list-style: none; }
#exe_studio .exs-syn-s li { font: 400 14.5px/1.5 var(--exs-serif); padding: 3px 0; }
#exe_studio .exs-syn-f { font-size: 1.05em; }
#exe_studio .exs-syn-n { display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 18px; padding: 0 5px; margin: 0 1px; border: 1px solid #e3c98b; border-radius: 9px; background: var(--exs-gold-wash); font: 700 10.5px var(--exs-ui); color: var(--exs-accent-dark); vertical-align: 1px; cursor: pointer; }
#exe_studio button.exs-syn-n:hover { border-color: var(--exs-accent); }
#exe_studio .exs-syn-n.statique { cursor: default; }
#exe_studio .exs-ia { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--exs-line); border-radius: 10px; background: var(--exs-soft); }
#exe_studio .exs-ia-t { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
#exe_studio .exs-ia-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
#exe_studio .exs-ia-mode { display: flex; flex-direction: column; gap: 2px; text-align: left; padding: 8px 10px; border: 1px solid var(--exs-line); border-radius: 9px; background: #fff; min-width: 0; }
#exe_studio .exs-ia-mode b { font: 700 13.5px var(--exs-ui); }
#exe_studio .exs-ia-mode small { font-size: 12px; color: var(--exs-muted); }
#exe_studio .exs-ia-mode.on { border-color: var(--exs-gold); box-shadow: 0 0 0 3px var(--exs-gold-wash); }
#exe_studio .exs-ia-lancer { display: flex; justify-content: flex-end; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 8px; }
#exe_studio .exs-ia-lancer label { display: inline-flex; align-items: center; gap: 6px; }
#exe_studio .exs-ia-etat { margin-top: 6px; font-size: 13px; color: var(--exs-ink-soft); }
#exe_studio .exs-ia-res { margin-top: 10px; padding: 12px 14px; border: 1px solid var(--exs-line); border-radius: 9px; background: #fff; }
#exe_studio .exs-ia-res-t { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 6px; }
#exe_studio .exs-ia-texte { max-width: none; }
#exe_studio .exs-ia-texte h3 { font: 700 15.5px var(--exs-serif); margin: 12px 0 4px; color: var(--exs-accent-dark); }
#exe_studio .exs-ia-hist { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 8px; }
#exe_studio .exs-ia-hist { padding-top: 8px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-ia-hist .exs-chip { font-size: 12px; }
#exe_studio .exs-ia-hist .exs-chip.on { border-color: var(--exs-gold); background: var(--exs-gold-wash); color: var(--exs-ink); font-weight: 700; }
#exe_studio .exs-syn-el { margin-top: 18px; }
#exe_studio .exs-dn-g { display: inline-flex; align-items: center; gap: 7px; }
#exe_studio .exs-dn-in { display: inline-flex; align-items: center; gap: 4px; font: 600 11.5px var(--exs-ui); color: var(--exs-ink-soft); cursor: pointer; }
#exe_studio .exs-dn.hors { opacity: .6; background: var(--exs-canvas); }
#exe_studio .exs-dn.eclair { animation: exs-eclair 1.4s ease-out; }
@keyframes exs-eclair { from { box-shadow: 0 0 0 4px var(--exs-gold); } to { box-shadow: 0 0 0 0 transparent; } }
@media (max-width: 640px) { #exe_studio .exs-ia-modes { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { #exe_studio .exs-dn.eclair { animation: none; } }

/* Relier : articles du Code de Hammourabi rapprochés du verset */
#exe_studio .exs-hmb { padding: 8px 0; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-hmb:first-child { border-top: 0; padding-top: 0; }
#exe_studio .exs-hmb-t { margin: 4px 0 6px; font: 400 14.5px/1.55 var(--exs-serif); color: var(--exs-ink-soft); }

/* Établir : ressources savantes en ligne */
#exe_studio .exs-res-g { margin-top: 10px; }
#exe_studio .exs-res { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1px; padding: 5px 0; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-res-l { font-size: 13px; }
#exe_studio .exs-res-l a { color: var(--exs-accent-dark); text-decoration: underline; text-underline-offset: 2px; }

/* Cantillation : coupure faible (disjonctif proche seul de son rang, Price) */
#exe_studio .exs-cant-l.faible { border-style: dashed; opacity: .85; }
#exe_studio .exs-cant-l.faible .exs-cant-nom::after { content: " · coupure faible"; font-weight: 400; color: var(--exs-muted); font-size: 11.5px; }

/* Cantillation : choix de la lecture et arbre de la division */
#exe_studio .exs-cant-modeles { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 8px; }
#exe_studio .exs-cant-modeles .exs-chip.on { background: var(--exs-ink); border-color: var(--exs-ink); color: #fff; }
#exe_studio .exs-cant-arbre { display: grid; column-gap: 0; row-gap: 2px; margin-top: 12px; overflow-x: auto; align-items: stretch; }
#exe_studio .exs-cant-noeud { display: flex; align-items: center; padding: 2px 14px 2px 8px; margin-right: 10px; font: 600 12.5px/1.3 var(--exs-ui); color: var(--exs-ink-soft);
    background: none; border: 0; border-right: 1.5px solid var(--exs-line); border-radius: 0 10px 10px 0; cursor: pointer; text-align: start; white-space: nowrap; }
#exe_studio .exs-cant-noeud.feuille { border-right: 0; border-bottom: 1px dotted var(--exs-line); border-radius: 0; font-weight: 500; }
#exe_studio .exs-cant-noeud.faible { border-right-style: dashed; }
#exe_studio .exs-cant-noeud:hover, #exe_studio .exs-cant-seg:hover { color: var(--exs-accent-dark); }
#exe_studio .exs-cant-fil { align-self: center; border-bottom: 1px dotted var(--exs-line); height: 0; margin-right: 10px; }
#exe_studio .exs-cant-seg { background: none; border: 0; border-bottom: 1px dotted var(--exs-line); padding: 1px 4px; font-size: 19px; line-height: 1.5; text-align: right; cursor: pointer; }
#exe_studio .exs-cant-trait.faible { opacity: .55; }
/* Le judaïsme ancien lit le verset (Philon, Josèphe, Talmud de Babylone). */
#exe_studio .exs-jud-groupe { margin: 14px 0 4px; }
#exe_studio .exs-jud-groupe:first-child { margin-top: 0; }
#exe_studio .exs-jud-items { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
#exe_studio .exs-jud-items .exs-chip { white-space: normal; height: auto; text-align: left; padding: 4px 10px; }
#exe_studio .exs-jud-bloc { padding: 9px 12px 8px; margin-bottom: 4px; border-left: 3px solid transparent; border-radius: 4px; }
#exe_studio .exs-jud-bloc.cible { background: var(--exs-gold-wash); border-left-color: var(--exs-accent); }
#exe_studio .exs-jud-n { display: block; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--exs-muted, #6b5d4b); margin-bottom: 2px; }
#exe_studio .exs-jud-bloc p { margin: 4px 0 0; }
#exe_studio .exs-jud-grc { font-size: 17px; line-height: 1.7; }
#exe_studio .exs-jud-he { font-size: 20px; line-height: 1.8; text-align: right; }
#exe_studio .exs-jud-fr, #exe_studio .exs-jud-en { font: 400 15px/1.6 var(--exs-serif); color: var(--exs-ink); }
#exe_studio .exs-jud-grc + .exs-jud-fr, #exe_studio .exs-jud-grc + .exs-jud-en, #exe_studio .exs-jud-he + .exs-jud-en { color: #4a4036; }
#exe_studio .exs-jud-plus { display: flex; justify-content: center; margin: 8px 0; }
/* Ouverture d'un panneau dont le contenu est en cours de lecture : curseur d'attente, sans changer la page */
body.exs-attente, body.exs-attente * { cursor: progress !important; }
/* Versions : écart à la version de référence */
#exe_studio .exs-volet-ecarts { gap: 14px; }
#exe_studio .exs-volet-ecarts label { display: inline-flex; align-items: center; gap: 6px; }
#exe_studio .exs-pct { display: inline-block; margin-left: 6px; padding: 0 7px; border-radius: 9px; font: 700 10.5px/17px var(--exs-ui); background: #efe9e1; color: var(--exs-ink-soft); vertical-align: 1px; }
#exe_studio .exs-pct.ref { background: var(--exs-accent); color: #fff; }
#exe_studio .exs-pct.n0 { background: #e3eee3; color: #35603a; }
#exe_studio .exs-pct.n1 { background: #eef0dc; color: #5b5d1f; }
#exe_studio .exs-pct.n2 { background: #f6e8cf; color: #7a5513; }
#exe_studio .exs-pct.n3 { background: #f3dcd3; color: #8a2f1b; }
#exe_studio .exs-vband { display: flex; justify-content: space-between; align-items: center; margin: 14px 0 2px; padding: 6px 10px; background: var(--exs-surface); border-left: 3px solid var(--exs-accent); font: 700 12px var(--exs-ui); color: var(--exs-accent); }
#exe_studio .exs-vband .cnt { font-weight: 600; color: var(--exs-ink-soft); }
/* Versions : ma sélection */
#exe_studio .exs-sel-grille { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; margin-top: 10px; }
#exe_studio .exs-sel-grille.cols { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
#exe_studio .exs-sel-v { padding: 9px 12px 11px; border: 1px solid var(--exs-line); border-radius: 8px; background: #fff; }
#exe_studio .exs-sel-t { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
#exe_studio .exs-sel-t img { width: 22px; height: 31px; object-fit: cover; border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,.15); }
#exe_studio .exs-sel-t .exs-pct { margin-left: 0; }
#exe_studio .exs-x { margin-left: auto; width: 24px; height: 24px; border-radius: 50%; border: 1px solid var(--exs-line); background: #fff; color: var(--exs-ink-soft); font: 400 16px/1 var(--exs-ui); cursor: pointer; }
#exe_studio .exs-x:hover { color: var(--exs-accent); border-color: var(--exs-accent); }
#exe_studio .exs-presets { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 4px; }
#exe_studio .exs-pick { margin: 6px 0 10px; }
#exe_studio .exs-pick-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 4px 8px; padding: 6px 0 2px; }
#exe_studio .exs-pick-v { display: flex; align-items: center; gap: 8px; padding: 3px 8px 3px 4px; border: 1px solid var(--exs-line); border-radius: 6px; background: #fff; text-align: left; font: 600 12px var(--exs-ui); color: var(--exs-ink-soft); cursor: pointer; }
#exe_studio .exs-pick-v img, #exe_studio .exs-pick-v .ph { width: 18px; height: 26px; flex: none; object-fit: cover; border-radius: 2px; }
#exe_studio .exs-pick-v:hover { border-color: var(--exs-accent); }
#exe_studio .exs-pick-v.on { background: #f6eddf; border-color: var(--exs-accent); color: var(--exs-accent-dark); }
#exe_studio .exs-pick-v.on::after { content: "✓"; margin-left: auto; font-weight: 700; }
/* Ma sélection : deux étapes */
#exe_studio .exs-sel-modes { display: flex; align-items: center; gap: 8px; padding: 10px 20px; background: var(--exs-surface); border-bottom: 1px solid var(--exs-line); }
#exe_studio .exs-sel-mode { display: inline-flex; align-items: center; gap: 7px; height: 34px; padding: 0 14px; border: 1px solid var(--exs-line); border-radius: 17px; background: #fff; font: 700 13px var(--exs-ui); color: var(--exs-ink-soft); }
#exe_studio .exs-sel-mode b { display: inline-grid; place-items: center; width: 20px; height: 20px; border-radius: 50%; background: #efe9e1; font-size: 11.5px; }
#exe_studio .exs-sel-mode .cnt { font-weight: 600; color: var(--exs-accent); }
#exe_studio .exs-sel-mode.on { background: var(--exs-accent); border-color: var(--exs-accent); color: #fff; }
#exe_studio .exs-sel-mode.on b { background: rgba(255,255,255,.25); color: #fff; }
#exe_studio .exs-sel-mode.on .cnt { color: #fff; }
#exe_studio .exs-sel-mode:disabled { opacity: .5; cursor: default; }
#exe_studio .exs-sel-fleche { color: var(--exs-ink-soft); }
#exe_studio .exs-sel-puces { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 10px; }
#exe_studio .exs-sel-puce { display: inline-flex; align-items: center; gap: 4px; padding: 2px 4px 2px 10px; border-radius: 13px; background: #f6eddf; border: 1px solid #e0cdb0; font: 600 12px var(--exs-ui); color: var(--exs-accent-dark); }
#exe_studio .exs-sel-puce button { width: 18px; height: 18px; border: 0; border-radius: 50%; background: transparent; color: var(--exs-accent-dark); font: 400 14px/1 var(--exs-ui); cursor: pointer; }
#exe_studio .exs-sel-puce button:hover { background: rgba(0,0,0,.08); }
#exe_studio .exs-btn:disabled { background: #e7e1d8; border-color: #e7e1d8; color: #8a8178; cursor: default; }
/* Graphique des sens UBS (discret, déclenché par une petite icône) */
#exe_studio .exs-ico { width: 22px; height: 22px; margin-left: 6px; padding: 0; border: 1px solid transparent; border-radius: 5px; background: transparent; color: #a39a90; font-size: 12px; vertical-align: 1px; cursor: pointer; }
#exe_studio .exs-ico:hover, #exe_studio .exs-ico:focus-visible { color: var(--exs-accent); border-color: var(--exs-line); background: #fff; }
#exe_studio .exs-ico.on { color: var(--exs-accent); border-color: var(--exs-accent); background: #fff; }
#exe_studio .exs-gs { margin: 8px 0 12px; padding: 10px 12px 8px; border: 1px solid var(--exs-line-soft); border-radius: 8px; background: #fff; }
#exe_studio .exs-gs-t { font: 600 13px var(--exs-ui); color: var(--exs-ink); margin-bottom: 8px; }
#exe_studio .exs-gs-r { padding: 5px 0 6px; }
#exe_studio .exs-gs-r .h { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; font: 400 13.5px/1.35 var(--exs-ui); color: var(--exs-ink-soft); }
#exe_studio .exs-gs-r .v { flex: none; font: 700 13px var(--exs-ui); font-variant-numeric: tabular-nums; color: var(--exs-ink); }
#exe_studio .exs-gs-r .v .exs-muted { font-weight: 400; }
#exe_studio .exs-gs-r .b { height: 12px; margin-top: 3px; border-radius: 6px; background: #f1ebe3; overflow: hidden; }
#exe_studio .exs-gs-r .b i { display: block; height: 100%; border-radius: 6px; background: #cdb89a; transition: width .35s ease; }
#exe_studio .exs-gs-r.ici .h { color: var(--exs-ink); font-weight: 700; }
#exe_studio .exs-gs-r.ici .b i { background: var(--exs-accent); }
#exe_studio .exs-gs-r .ici-m { margin-left: 4px; padding: 1px 7px; border-radius: 9px; background: var(--exs-accent); color: #fff; font: 700 10.5px var(--exs-ui); white-space: nowrap; }
#exe_studio .exs-gs-r.reste { padding-top: 8px; }
/* Carte des versions */
#exe_studio .exs-carte-cmd { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 2px 0 6px; font: 400 12.5px var(--exs-ui); color: var(--exs-ink-soft); }
#exe_studio .exs-carte-cmd b { color: var(--exs-ink); }
#exe_studio .exs-carte-cmd #exs-carte-val { font-weight: 700; color: var(--exs-accent); }
#exe_studio .exs-carte-cmd input[type=range] { flex: 1 1 160px; accent-color: var(--exs-accent); min-width: 140px; }
#exe_studio .exs-carte-svg { width: 100%; height: auto; max-height: 52vh; display: block; margin: 6px 0; background: #fffdf9; border: 1px solid var(--exs-line-soft); border-radius: 10px; }
#exe_studio .exs-carte-amas { fill-opacity: .13; stroke-opacity: .13; stroke-width: 34; stroke-linejoin: round; transition: fill .3s, stroke .3s; }
#exe_studio .exs-carte-noeud { cursor: pointer; outline: none; }
#exe_studio .exs-carte-noeud circle { stroke: #fff; stroke-width: 2; transition: fill .3s, r .3s; }
#exe_studio .exs-carte-noeud:hover circle, #exe_studio .exs-carte-noeud:focus-visible circle { stroke: var(--exs-ink); }
#exe_studio .exs-carte-noeud.sel circle { stroke: var(--exs-ink); stroke-width: 3; }
#exe_studio .exs-carte-noeud.maj circle { stroke-dasharray: 3 2; stroke: var(--exs-ink); }
#exe_studio .exs-carte-noeud text { text-anchor: middle; pointer-events: none; font-family: var(--exs-ui); }
#exe_studio .exs-carte-noeud text.n { fill: #fff; font-weight: 700; font-size: 12px; }
#exe_studio .exs-carte-noeud text.c { fill: var(--exs-ink-soft); font-size: 9px; }
#exe_studio .exs-carte-det { margin: 6px 0 10px; padding: 9px 12px 10px; border: 1px solid var(--exs-line); border-radius: 8px; background: #fff; }
#exe_studio .exs-carte-det-t { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 6px; }
#exe_studio .exs-carte-leg { display: flex; flex-direction: column; gap: 4px; }
#exe_studio .exs-carte-g { display: flex; align-items: flex-start; gap: 9px; padding: 5px 8px; border: 1px solid var(--exs-line-soft); border-radius: 6px; background: #fff; text-align: left; font: 400 12.5px var(--exs-ui); color: var(--exs-ink-soft); cursor: pointer; }
#exe_studio .exs-carte-g:hover { border-color: var(--exs-accent); }
#exe_studio .exs-carte-g .pt { flex: none; width: 11px; height: 11px; margin-top: 4px; border-radius: 50%; transition: background .3s; }
#exe_studio .exs-carte-g .t b { color: var(--exs-ink); margin-right: 4px; }
/* Ajout à la comparaison, depuis chaque version */
#exe_studio .exs-add { margin-left: 8px; min-width: 24px; height: 22px; padding: 0 6px; border-radius: 11px; border: 1px solid var(--exs-line); background: #fff; color: var(--exs-ink-soft); font: 700 12px var(--exs-ui); cursor: pointer; vertical-align: 1px; }
#exe_studio .exs-add:hover { border-color: var(--exs-accent); color: var(--exs-accent); }
#exe_studio .exs-add.on { background: var(--exs-accent); border-color: var(--exs-accent); color: #fff; }
#exe_studio .exs-sel-barre { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 8px 20px; background: #f6eddf; border-bottom: 1px solid #e0cdb0; font: 400 12.5px var(--exs-ui); color: var(--exs-accent-dark); }
/* Carte : groupes lisibles */
#exe_studio .exs-bande { display: flex; gap: 2px; height: 26px; margin: 8px 0 12px; }
#exe_studio .exs-bande-s { min-width: 6px; border: 0; border-radius: 4px; color: #fff; font: 700 12px var(--exs-ui); cursor: pointer; opacity: .92; transition: flex .35s ease, background .3s; }
#exe_studio .exs-bande-s:hover { opacity: 1; outline: 2px solid var(--exs-ink); }
#exe_studio .exs-cg { margin: 0 0 10px; padding: 10px 14px 12px; border: 1px solid var(--exs-line-soft); border-left: 5px solid #7a4a21; border-radius: 8px; background: #fff; }
#exe_studio .exs-cg-t { display: flex; align-items: center; gap: 4px; font: 400 13px var(--exs-ui); }
#exe_studio .exs-cg-t b { font-size: 14px; }
#exe_studio .exs-cg-part { flex: 1; max-width: 140px; height: 6px; margin-left: auto; border-radius: 3px; background: #f1ebe3; overflow: hidden; }
#exe_studio .exs-cg-part i { display: block; height: 100%; }
#exe_studio .exs-cg-tete { margin: 6px 0 6px; font-size: 16px; line-height: 1.5; }
#exe_studio .exs-cg-v { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; }
#exe_studio .exs-cg-autres { margin-top: 10px; padding-top: 6px; border-top: 1px dashed var(--exs-line); }
#exe_studio .exs-cg-f { margin: 8px 0; }
#exe_studio .exs-cg-f .exs-vtexte { font-size: 15.5px; line-height: 1.5; margin-bottom: 3px; }
#exe_studio .exs-cg-autres summary { cursor: pointer; font: 600 12px var(--exs-ui); color: var(--exs-accent); margin-top: 6px; }
#exe_studio .exs-carte-prox { margin-top: 12px; border-top: 1px solid var(--exs-line-soft); padding-top: 8px; }
#exe_studio .exs-carte-prox summary { cursor: pointer; font: 600 12px var(--exs-ui); color: var(--exs-ink-soft); }
/* Panneau des versions : verset précédent et suivant */
#exe_studio .exs-h2-nav, .exs-volet .exs-h2-nav { display: flex; align-items: center; gap: 4px; }
.exs-volet .exs-h2-nav .exs-nav { width: 30px; height: 30px; border: 1px solid var(--exs-line); border-radius: 50%; background: #fff; padding: 0; font: 400 20px/1 var(--exs-serif); color: var(--exs-ink-soft); cursor: pointer; }
.exs-volet .exs-h2-nav .exs-nav:hover, .exs-volet .exs-h2-nav .exs-nav:focus-visible { color: var(--exs-accent); border-color: var(--exs-accent); }
/* Ajout à la comparaison : colonne discrète à droite de chaque ligne */
#exe_studio .exs-vligne { grid-template-columns: 34px minmax(0, 1fr) 28px; }
#exe_studio .exs-row-anc { display: grid; grid-template-columns: 150px minmax(0, 1fr) 28px; gap: 10px; padding: 8px 0; border-top: 1px solid var(--exs-line-soft); align-items: start; }
#exe_studio .exs-vadd { display: flex; justify-content: flex-end; align-items: flex-start; padding-top: 2px; }
#exe_studio .exs-vadd .exs-add { margin: 0; min-width: 22px; width: 22px; height: 22px; padding: 0; border-radius: 50%; font: 600 13px/1 var(--exs-ui); opacity: .35; transition: opacity .15s; }
#exe_studio .exs-vligne:hover .exs-add, #exe_studio .exs-row-anc:hover .exs-add, #exe_studio .exs-add:focus-visible, #exe_studio .exs-add.on { opacity: 1; }
#exe_studio .exs-heb.exs-vtexte { font-size: 23px; line-height: 1.75; text-align: right; }
@media (hover: none) { #exe_studio .exs-vadd .exs-add { opacity: .7; } }
/* Tailles des écritures dans les versions : l'hébreu un peu moins grand, le reste un peu plus */
#exe_studio .exs-anc { font-size: 18px; }
#exe_studio .exs-grk.exs-anc, #exe_studio .exs-grk.exs-vtexte { font-size: 19px; line-height: 1.6; }
#exe_studio .exs-syr.exs-anc, #exe_studio .exs-syr.exs-vtexte { font-size: 24px; line-height: 1.7; text-align: right; }
#exe_studio .exs-cop.exs-anc, #exe_studio .exs-cop.exs-vtexte { font-size: 19px; line-height: 1.6; }

/* Le « + » de chaque zone : cerclé = hors de la synthèse, marron plein = dans la synthèse */
#exe_studio .exs-pl-h:not(.exs-text) { position: relative; }
#exe_studio .exs-plus { position: absolute; top: -9px; left: -9px; z-index: 5; display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; padding: 0; border: 1.5px solid var(--exs-accent); border-radius: 50%; background: #fff; color: var(--exs-accent); font: 700 16px/1 var(--exs-ui); cursor: pointer; opacity: .8; transition: background .15s, color .15s, opacity .15s, box-shadow .15s, transform .15s; }
#exe_studio .exs-plus::before { content: "+"; transform: translateY(-1px); }
#exe_studio .exs-plus:hover, #exe_studio .exs-plus:focus-visible { opacity: 1; box-shadow: 0 0 0 3px rgba(122, 74, 33, .2); outline: none; transform: scale(1.08); }
#exe_studio .exs-plus.on { background: var(--exs-accent); color: #fff; opacity: 1; }
#exe_studio .exs-plus.on:hover { background: var(--exs-accent-dark); }
#exe_studio .exs-plus.arme { background: #8a2616; border-color: #8a2616; color: #fff; opacity: 1; }
#exe_studio .exs-plus.arme::before { content: "×"; }
/* le texte défile dans une boîte qui rogne : pastille à l'intérieur du coin */
#exe_studio .exs-text > .exs-plus { top: 8px; left: 8px; width: 20px; height: 20px; font-size: 15px; }
/* Pastilles du studio : une gouttière intérieure réserve leur place, y compris dans les panneaux qui rognent. */
#exe_studio [data-plus-h]:not(.exs-text):not(.exs-view) { padding-left: 42px !important; }
#exe_studio [data-plus-h]:not(.exs-text):not(.exs-view) > .exs-plus { top: 8px; left: 8px; }
/* La gouttière appartient à la fiche entière : le padding embarqué du titre ne peut pas l'annuler. */
#exe_studio .exs-view[data-plus] { position: relative; padding-left: 32px; }
#exe_studio .exs-view[data-plus] > .exs-plus { top: 6px; left: 0; width: 20px; height: 20px; font-size: 15px; }
#exe_studio .exs-text-tete { padding-left: 36px; }
/* questions posées sur un élément de la synthèse */
#exe_studio .exs-dq-lien { margin-top: 6px; }
#exe_studio .exs-dq-sur { margin-top: 8px; padding: 8px 10px; border: 1px solid var(--exs-line); border-radius: 9px; background: var(--exs-surface); }
#exe_studio .exs-dq-sur .exs-saisie { width: 100%; }
#exe_studio .exs-dn.exs-dn-sur { margin-left: 22px; border-left: 3px solid var(--exs-accent); }
#exe_studio .exs-dn-lien { font: 600 11.5px var(--exs-ui); color: var(--exs-accent-dark); }

/* Notifications du studio (notifier) : hors de #exe_studio, donc leurs propres jetons */
.exs-toasts { --t-ink: #2a2622; --t-soft: #6f675f; --t-line: #e6dfd3; --t-accent: #7a4a21; --t-accent-dark: #5a3416; --t-wash: #f1e6d4;
    position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 6000; display: flex; flex-direction: column; gap: 10px; width: min(440px, calc(100vw - 24px)); pointer-events: none;
    font: 400 14px/1.35 'BP Gentium', 'Gentium Plus', 'Gentium', Georgia, serif; }
.exs-toast { position: relative; display: flex; align-items: flex-start; gap: 12px; padding: 12px 10px 15px 12px; border: 1px solid var(--t-line); border-radius: 14px; background: #fffaf1; color: var(--t-ink); overflow: hidden; pointer-events: auto;
    box-shadow: 0 12px 32px rgba(60, 40, 20, .24), 0 2px 6px rgba(60, 40, 20, .12); animation: exs-toast-in .34s cubic-bezier(.16, .84, .3, 1) both; }
.exs-toast.sort { animation: exs-toast-out .24s ease both; }
@keyframes exs-toast-in { from { opacity: 0; transform: translateY(16px) scale(.97); } to { opacity: 1; transform: none; } }
@keyframes exs-toast-out { to { opacity: 0; transform: translateY(10px) scale(.97); } }
.exs-toast::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--t-accent); }
.exs-toast-i { flex: none; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--t-wash); color: var(--t-accent); }
.exs-toast-i svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.exs-toast-ajout .exs-toast-i { background: var(--t-accent); color: #fff; }
.exs-toast-alerte::before { background: #b0432c; }
.exs-toast-alerte .exs-toast-i { background: #f6dcd4; color: #8a2616; }
.exs-toast-c { flex: 1 1 auto; min-width: 0; padding-top: 1px; }
.exs-toast-t { font-weight: 700; font-size: 14.5px; }
.exs-toast-d { margin-top: 1px; font-size: 12.5px; color: var(--t-soft); overflow-wrap: anywhere; }
.exs-toasts .exs-toast-a { flex: none; align-self: center; height: 30px; padding: 0 12px; border: 1px solid var(--t-accent); border-radius: 15px; background: transparent; color: var(--t-accent); font: 700 12.5px 'BP Gentium', 'Gentium Plus', Georgia, serif; cursor: pointer; transition: background .15s, color .15s; }
.exs-toasts .exs-toast-a:hover { background: var(--t-accent); color: #fff; }
.exs-toasts .exs-toast-x { flex: none; align-self: flex-start; width: 24px; height: 24px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--t-soft); font: 400 18px/1 Georgia, serif; cursor: pointer; }
.exs-toasts .exs-toast-x:hover { background: var(--t-wash); color: var(--t-accent-dark); }
.exs-toast-f { position: absolute; left: 4px; right: 0; bottom: 0; height: 3px; background: var(--t-accent); opacity: .55; transform-origin: left; animation: exs-toast-fil var(--d, 3400ms) linear both; }
.exs-toast-alerte .exs-toast-f { background: #b0432c; }
.exs-toast.pause .exs-toast-f { animation-play-state: paused; }
@keyframes exs-toast-fil { from { transform: scaleX(1); } to { transform: scaleX(0); } }
@media (prefers-reduced-motion: reduce) { .exs-toast, .exs-toast.sort { animation: none; } .exs-toast-f { animation: none; display: none; } }
@media (max-width: 720px) { .exs-toasts { bottom: 14px; } }

/* Atelier IA : attente animée, boutons du résultat */
#exe_studio .exs-ia-att { display: flex; align-items: center; gap: 16px; margin-top: 12px; padding: 14px 18px; border: 1px solid #e0cdb0; border-radius: 12px; background: linear-gradient(100deg, #fbf4e8, #f6eddf 55%, #fbf4e8); background-size: 220% 100%; animation: exs-ia-lueur 3.2s ease-in-out infinite; }
@keyframes exs-ia-lueur { 0%, 100% { background-position: 0 0; } 50% { background-position: 100% 0; } }
#exe_studio .exs-orbe { position: relative; flex: none; width: 38px; height: 38px; }
#exe_studio .exs-orbe i { position: absolute; border-radius: 50%; border: 2.5px solid transparent; }
#exe_studio .exs-orbe i:nth-child(1) { inset: 0; border-top-color: var(--exs-accent); border-right-color: var(--exs-accent); animation: exs-ia-tour 1.15s linear infinite; }
#exe_studio .exs-orbe i:nth-child(2) { inset: 7px; border-bottom-color: #c9a15a; border-left-color: #c9a15a; animation: exs-ia-tour 1.7s linear infinite reverse; }
#exe_studio .exs-orbe i:nth-child(3) { inset: 15px; background: var(--exs-accent); border: 0; animation: exs-ia-pouls 1.4s ease-in-out infinite; }
@keyframes exs-ia-tour { to { transform: rotate(360deg); } }
@keyframes exs-ia-pouls { 0%, 100% { transform: scale(.55); opacity: .55; } 50% { transform: scale(1); opacity: 1; } }
#exe_studio .exs-ia-att-c { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
#exe_studio .exs-ia-att-c b { font: 700 14.5px var(--exs-ui); color: var(--exs-ink); }
#exe_studio .exs-ia-res-b { display: flex; align-items: center; gap: 6px; flex: none; }
@media (prefers-reduced-motion: reduce) { #exe_studio .exs-ia-att, #exe_studio .exs-orbe i { animation-duration: 6s; } }

/* Atelier IA : titre des réponses ; petite croix de retrait sur la fiche du verset */
#exe_studio .exs-ia-titre { font: 700 16px var(--exs-serif); color: var(--exs-accent-dark); }
#exe_studio .exs-syn-fiche li { position: relative; }
#exe_studio .exs-lx { margin-left: 6px; width: 18px; height: 18px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--exs-muted); font: 400 15px/1 Georgia, serif; vertical-align: middle; cursor: pointer; opacity: .28; transition: opacity .15s, background .15s, color .15s; }
#exe_studio .exs-syn-fiche li:hover .exs-lx, #exe_studio .exs-lx:focus-visible { opacity: .85; }
#exe_studio .exs-lx:hover { opacity: 1; background: #f3dcd5; color: #8a2616; }

/* Introductions de Godet : sommaire et titres hiérarchisés */
#exe_studio .exs-godet-toc { margin: 8px 0 14px; }
#exe_studio .exs-godet-t { display: block; width: 100%; text-align: left; padding: 3px 8px; border: 0; background: none; font: 500 13px/1.35 var(--exs-ui); color: var(--exs-ink-soft); cursor: pointer; border-radius: 5px; }
#exe_studio .exs-godet-t:hover { background: var(--exs-soft); color: var(--exs-accent); }
#exe_studio .exs-godet-t.n2 { padding-left: 22px; }
#exe_studio .exs-godet-t.n3 { padding-left: 38px; font-size: 12.5px; }
#exe_studio .exs-godet-s.n1 > h4 { font-size: 19px; margin-top: 1.8em; padding-top: .6em; border-top: 1px solid var(--exs-line); }
#exe_studio .exs-godet-s.n2 > h4 { font-size: 16.5px; margin-top: 1.5em; }
#exe_studio .exs-godet-s.n3 > h4 { font-size: 14.5px; font-style: italic; color: var(--exs-ink); }
#exe_studio .exs-godet-s ol { font-size: 14px; }

/* Tischendorf : styles limités à la notice du panneau Tous les apparats. */
#exe_studio .exs-tisch-erreur { color: #8a2616; }
#exe_studio .exs-tisch { min-width: 0; overflow-wrap: anywhere; font: 400 15px/1.65 var(--exs-ui); color: var(--exs-ink); }
#exe_studio .exs-tisch .tisch-hdr { padding: 8px 12px; margin-bottom: 10px; border-left: 3px solid var(--exs-accent); background: var(--exs-soft); }
#exe_studio .exs-tisch .tisch-ref { font-weight: 600; margin-right: 10px; }
#exe_studio .exs-tisch .tisch-text { font: 400 19px/1.65 var(--exs-serif); }
#exe_studio .exs-tisch .tisch-app { padding: 4px 6px; }
#exe_studio .exs-tisch p { margin: 6px 0; }
#exe_studio .exs-tisch .tisch-sub-app { margin-top: 8px; padding-top: 6px; border-top: 1px dashed var(--exs-line); }
#exe_studio .exs-tisch .tisch-grk { font-family: var(--exs-serif); font-size: 1.1em; color: #8b0000; }
#exe_studio .exs-tisch .tisch-heb { font-family: var(--exs-heb); font-size: 1.15em; color: #0b4f6c; }
#exe_studio .exs-tisch .tisch-uncial, #exe_studio .exs-tisch .uncial { font-family: var(--exs-serif); font-weight: 600; }
#exe_studio .exs-tisch .tisch-siglum { cursor: help; border-bottom: 1px dotted; color: #004d40; }
#exe_studio .exs-tisch .tisch-siglum:hover { background: #e0f2f1; }
#exe_studio .exs-tisch .minuscule { color: #4a148c; }
#exe_studio .exs-tisch .ver { color: #00695c; font-style: italic; }
#exe_studio .exs-tisch .edt { color: #d84315; }
#exe_studio .exs-tisch .cfa { color: #4e342e; }
@media (max-width: 600px) {
    #exe_studio .exs-tisch { font-size: 14px; }
    #exe_studio .exs-tisch .tisch-hdr { padding: 6px 8px; }
}

/* Accès aux fiches des relevés linguistiques depuis Analyser. */
#exe_studio .exs-releve { margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-releve-ouvrir { display: block; max-width: 100%; border: 0; padding: 0; margin-bottom: 4px; background: transparent; color: var(--exs-accent); text-align: left; text-decoration: underline; text-underline-offset: 3px; font-weight: 700; overflow-wrap: anywhere; }
#exe_studio .exs-releve-ouvrir:hover, #exe_studio .exs-releve-ouvrir:focus-visible { color: var(--exs-accent-dark); }

/* Pagination du ruban : pas de points cachés entre le début et la fin. */
#exe_studio .exs-hots-ligne.sans-nav { grid-template-columns: minmax(0, 1fr); }
#exe_studio .exs-hots-piste > .exs-hot { flex-basis: calc((100% - (var(--exs-hots-nb, 3) - 1) * 8px) / var(--exs-hots-nb, 3)); }
#exe_studio .exs-chevron:disabled { opacity: .35; cursor: default; background: var(--exs-surface); border-color: var(--exs-line); color: var(--exs-accent); }

/* Apparat grec Rahlfs–Hanhart : repères LXX et consultation par édition. */
#exe_studio .exs-lxxrh-source { color:var(--exs-muted); font-size:12px; margin-bottom:5px; }
#exe_studio .exs-lxxrh .exs-bhs-lemma .exs-grk { font-size:21px; }
#exe_studio .exs-lxxrh-browser { border-top:1px solid var(--exs-line); margin-top:14px; padding-top:10px; }
#exe_studio .exs-lxxrh-browser summary { cursor:pointer; font-weight:600; margin-bottom:8px; }
#exe_studio .exs-lxxrh-fields { display:flex; flex-wrap:wrap; align-items:flex-end; gap:8px; margin:12px 0; }
#exe_studio .exs-lxxrh-fields label { display:flex; flex-direction:column; gap:4px; font-size:12px; min-width:0; }
#exe_studio .exs-lxxrh-fields label:first-child { flex:1 1 180px; }
#exe_studio .exs-lxxrh-fields select, #exe_studio .exs-lxxrh-fields input { box-sizing:border-box; border:1px solid var(--exs-line); border-radius:6px; background:var(--exs-surface); color:var(--exs-ink); padding:7px 8px; min-width:0; max-width:100%; font:inherit; }
#exe_studio .exs-lxxrh-fields input { width:70px; }
#exe_studio .exs-lxxrh-fields button { margin-bottom:1px; }
#exe_studio .exs-lxxrh-result { border-top:1px solid var(--exs-line); padding-top:10px; margin-top:10px; }
/* Structure du passage (AT) : hiérarchie des propositions, BHSA */
#exe_studio .exs-dt { margin-top: 8px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-dt-l { display: grid; grid-template-columns: 210px minmax(0, 1fr); gap: 10px; align-items: baseline; width: 100%; box-sizing: border-box; padding: 3px 8px; margin: 0; border: 0; border-left: 3px solid var(--dt-c); border-radius: 0; background: rgba(79, 127, 168, calc(var(--q, 0) * .045)); text-align: left; font: inherit; color: inherit; }
#exe_studio .exs-dt-l.d-N { --dt-c: #c4b096; }
#exe_studio .exs-dt-l.d-Q { --dt-c: #4f7fa8; }
#exe_studio .exs-dt-l.d-D { --dt-c: #6f9a5a; }
#exe_studio .exs-dt-l.para { margin-top: 9px; }
#exe_studio .exs-dt-l.ici { box-shadow: inset 0 0 0 999px rgba(232, 196, 110, .18); }
#exe_studio button.exs-dt-l { cursor: pointer; }
#exe_studio button.exs-dt-l:hover { box-shadow: inset 0 0 0 999px rgba(232, 196, 110, .32); }
#exe_studio .exs-dt-m { font: 400 12px/1.35 var(--exs-ui); color: var(--exs-muted); }
#exe_studio .exs-dt-v { display: inline-block; min-width: 22px; font-weight: 700; color: var(--exs-ink-soft); }
#exe_studio .exs-dt-h { font-size: 19px; line-height: 1.5; text-align: right; }
#exe_studio .exs-dt-meta { display: block; margin-top: 2px; font: 400 12px/1.4 var(--exs-ui); color: var(--exs-muted); }
#exe_studio .exs-dt-tag { display: inline-block; padding: 0 6px; border-radius: 8px; font: 400 11.5px/1.6 var(--exs-ui); border-left: 3px solid #c4b096; background: #f4efe7; color: var(--exs-ink-soft); }
#exe_studio .exs-dt-tag.d-Q { border-left-color: #4f7fa8; background: #eaf0f6; }
#exe_studio .exs-dt-tag.d-D { border-left-color: #6f9a5a; background: #edf3e8; }
@media (max-width: 640px) { #exe_studio .exs-dt-l { grid-template-columns: 1fr; gap: 0; } }
/* Indices de structure de l'information (AT) */
#exe_studio .exs-inds { display: flex; flex-wrap: wrap; gap: 5px; margin: 2px 4px 6px; }
#exe_studio .exs-ind { display: inline-flex; align-items: baseline; gap: 6px; padding: 1px 9px; border: 1px solid var(--g-b, #d8cfc2); border-radius: 12px; background: var(--g-f, #f6f1ea); font: 400 12.5px/1.6 var(--exs-ui); color: var(--exs-ink-soft); cursor: pointer; }
#exe_studio .exs-ind .exs-heb { font-size: 15px; }
#exe_studio .exs-ind:hover { filter: brightness(.96); }
#exe_studio .exs-ind-c { display: inline-block; padding: 0 6px; margin-left: 2px; border-radius: 8px; background: var(--g-f, #f6f1ea); border: 1px solid var(--g-b, #d8cfc2); font: 400 11px/1.5 var(--exs-ui); color: var(--exs-ink-soft); white-space: nowrap; }
#exe_studio .g-cadre { --g-f: #e9f3f1; --g-b: #9cc7bf; }
#exe_studio .g-pdd { --g-f: #e8eff7; --g-b: #93b2d3; }
#exe_studio .g-focus { --g-f: #fbefdc; --g-b: #e0b36b; }
#exe_studio .g-dislocation { --g-f: #f1e9f5; --g-b: #b99acb; }
#exe_studio .g-rupture { --g-f: #f3ebe2; --g-b: #b99777; }
#exe_studio .g-macro { --g-f: #eef0e4; --g-b: #a9b37f; }
#exe_studio .g-pronom { --g-f: #e8eff7; --g-b: #93b2d3; }
#exe_studio .g-introduction, #exe_studio .g-reintro, #exe_studio .g-surcodage { --g-f: #ecf4e8; --g-b: #9cc08c; }
/* Discours : faits notables (AT et NT) */
#exe_studio .exs-fait { padding: 8px 0 6px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-fait-t { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; padding: 0 4px 4px; }
#exe_studio .exs-fait-t .exs-heb, #exe_studio .exs-fait-t .exs-grk { font-size: 18px; }
#exe_studio .exs-fait-l { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 3px 10px; margin: 2px 4px 4px; font: 400 14px/1.5 var(--exs-ui); }
#exe_studio .exs-fait-l dt { color: var(--exs-muted); font-size: 12.5px; padding-top: 1px; }
#exe_studio .exs-fait-l dd { margin: 0; color: var(--exs-ink); }
#exe_studio .exs-fait-l .exs-heb, #exe_studio .exs-fait-l .exs-grk { font-size: 16px; }
#exe_studio .exs-fait-s { margin: 2px 4px; font: 400 12.5px/1.5 var(--exs-ui); color: var(--exs-muted); }
#exe_studio .exs-fait-s summary { cursor: pointer; width: max-content; }
#exe_studio .exs-fait-autres > summary { cursor: pointer; margin: 6px 4px; font: 400 13px var(--exs-ui); color: var(--exs-accent); }
#exe_studio .exs-fait-ia { margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--exs-line-soft); }
#exe_studio .exs-fait-ia-t { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 4px; }
@media (max-width: 640px) { #exe_studio .exs-fait-l { grid-template-columns: 1fr; } #exe_studio .exs-fait-l dt { padding-top: 4px; } }

/* Rahlfs–Swete : présentation compacte, sans titres HTML. */
#exe_studio .exs-swete { font-size:13px; }
#exe_studio .exs-swete-title { margin:14px 0 6px; font-size:13px; font-weight:600; line-height:1.4; }
#exe_studio .exs-swete-title:first-child { margin-top:0; }
#exe_studio .exs-swete-raw { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.5; margin:6px 0; }
#exe_studio .exs-swete .exs-grk { font-size:14px; }
#exe_studio .exs-swete-note { margin:8px 0; }
#exe_studio .exs-swete-note summary { cursor:pointer; font-size:12px; }
#exe_studio .exs-swete .exs-app-u { padding:7px 10px; margin-top:6px; }
#exe_studio .exs-swete .exs-app-l { flex-wrap:wrap; padding:3px 0; }
#exe_studio .exs-swete .exs-app-lecon { overflow-wrap:anywhere; min-width:0; }
#exe_studio .exs-swete-help { display:inline-block; margin-top:8px; }
@media (max-width:600px) {
  #exe_studio .exs-swete-browser .exs-lxxrh-fields label:first-child { flex-basis:100%; }
}
/* Sélecteur de verset (livre › chapitre › verset), repris de la Recherche avancée */
#exe_studio .exs-title-pick { border: 0; background: none; padding: 0 2px; cursor: pointer; display: inline-flex; align-items: baseline; gap: 7px; border-radius: 6px; }
#exe_studio .exs-title-pick i { font-size: .62em; color: var(--exs-bar-dim); transform: translateY(-1px); }
#exe_studio .exs-title-pick:hover i, #exe_studio .exs-title-pick.pick-actif i { color: var(--exs-gold); }
#exe_studio .exs-title-pick:focus-visible { outline: 2px solid var(--exs-gold); outline-offset: 2px; }
.exs-pick { position: fixed; z-index: 3000; background: var(--exs-surface, #fff); border: 1px solid var(--exs-line, #e6dfd3); border-radius: 12px; overflow: hidden;
    box-shadow: 0 12px 34px rgba(30, 28, 26, .22); font-family: var(--exs-ui, 'BP Gentium', 'Gentium Plus', Georgia, serif); color: var(--exs-ink, #2a2622); }
.exs-pick button { font-family: inherit; cursor: pointer; }
.exs-pick-tete { display: flex; align-items: center; gap: 8px; padding: 7px 10px; min-height: 42px; background: var(--exs-soft, #fffdf8); border-bottom: 1px solid var(--exs-line-soft, #f0ebe2); }
.exs-pick-retour { width: 28px; height: 28px; flex: none; border: 1px solid var(--exs-line, #e6dfd3); border-radius: 50%; background: var(--exs-surface, #fff); color: var(--exs-accent, #7a4a21); padding: 0; }
.exs-pick-retour:hover { border-color: var(--exs-accent, #7a4a21); background: var(--exs-gold-wash, #fff0c7); }
.exs-pick .cache { display: none; }
.exs-pick-fil { flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px; white-space: nowrap; overflow: hidden; }
.exs-pick-titre { font-weight: 700; overflow: hidden; text-overflow: ellipsis; }
.exs-pick-miette { border: 0; background: none; padding: 0; color: var(--exs-accent, #7a4a21); text-decoration: underline; text-decoration-color: var(--exs-line, #e6dfd3); text-underline-offset: 3px; }
.exs-pick-miette:hover { text-decoration-color: var(--exs-accent, #7a4a21); }
.exs-pick-sep { font-size: 9px; color: var(--exs-muted, #6f675f); flex: none; }
.exs-pick-bascule { display: inline-flex; border: 1px solid var(--exs-line, #e6dfd3); border-radius: 8px; overflow: hidden; flex: none; }
.exs-pick-bascule button { border: 0; background: var(--exs-surface, #fff); padding: 3px 11px; font-size: 13px; font-weight: 700; color: var(--exs-ink-soft, #4a433c); }
.exs-pick-bascule button[aria-pressed="true"] { background: var(--exs-accent, #7a4a21); color: #fff; }
.exs-pick-fenetre { overflow: hidden; height: min(310px, 52vh); }
.exs-pick-piste { display: flex; width: 300%; height: 100%; transition: transform .28s cubic-bezier(.4, 0, .2, 1); will-change: transform; }
.exs-pick-piste.sans-glissement { transition: none; }
.exs-pick-panneau { width: 33.3334%; flex: none; height: 100%; overflow-y: auto; padding: 6px 10px 10px; box-sizing: border-box; }
.exs-pick-partie { font-weight: 700; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--exs-accent, #7a4a21); margin: 8px 2px 4px; }
.exs-pick-grille { display: grid; grid-template-columns: repeat(6, 1fr); gap: 4px; }
.exs-pick-grille.nombres { grid-template-columns: repeat(7, 1fr); }
.exs-pick-case { border: 1px solid var(--exs-line, #e6dfd3); border-radius: 7px; background: var(--exs-surface, #fff); padding: 5px 0; text-align: center; color: var(--exs-ink, #2a2622); font-size: 14px; }
.exs-pick-case:hover { border-color: var(--exs-accent, #7a4a21); background: var(--exs-gold-wash, #fff0c7); }
.exs-pick-case.actuel { background: var(--exs-accent, #7a4a21); border-color: var(--exs-accent, #7a4a21); color: #fff; font-weight: 700; }
.exs-pick-note { margin: 8px 2px 0; font-size: 12.5px; color: var(--exs-muted, #6f675f); }
@media (prefers-reduced-motion: reduce) { .exs-pick-piste { transition: none; } }

/* Mode intégré (nouvelle interface, 26/10/2026 ; html.bp-v2 posé par css_js/bp-hote.js).
   La nouvelle interface porte la référence et sa navigation : la ligne « ‹ verset › » disparaît, l'entête sombre
   devient la barre des sous-onglets, sur ivoire, et le résumé passe à droite. Sans bp-v2, rien ne change. */
#exe_studio .exs-sub-v2 { display: none; }
html.bp-v2 #exe_studio .exs-head { background: var(--exs-canvas); box-shadow: 0 1px 0 var(--exs-line); padding: 0 28px; }
html.bp-v2 #exe_studio .exs-head-top { display: none; }
html.bp-v2 #exe_studio .exs-tabs { flex-wrap: nowrap; gap: 16px; }
html.bp-v2 #exe_studio .exs-tab { height: 42px; color: var(--exs-ink-soft); }
html.bp-v2 #exe_studio .exs-tab:hover { color: var(--exs-accent); }
html.bp-v2 #exe_studio .exs-tab.on { color: var(--exs-ink); border-bottom-color: var(--exs-accent); }
html.bp-v2 #exe_studio .exs-tab .cnt { color: var(--exs-accent); }
html.bp-v2 #exe_studio .exs-sub-v2 { display: block; min-width: 0; max-width: 46vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12.5px; color: var(--exs-muted); }
html.bp-v2 #exe_studio .exs-barbtn { background: var(--exs-surface); border-color: var(--exs-line); color: var(--exs-ink-soft); flex: none; }
html.bp-v2 #exe_studio .exs-barbtn:hover { color: var(--exs-accent); border-color: var(--exs-accent); }
html.bp-v2 #exe_studio .exs-info { border-color: var(--exs-muted); color: var(--exs-muted); flex: none; }
html.bp-v2 #exe_studio .exs-info:hover, html.bp-v2 #exe_studio .exs-info.on { color: var(--exs-accent); border-color: var(--exs-accent); }
/* Hauteurs : ni barre historique (56 px), ni ligne « ‹ verset › » (52 px) au-dessus du texte et de l'espace de travail. */
html.bp-v2 #exe_studio .exs-text, html.bp-v2 #exe_studio .exs-droite { top: 64px; height: calc(100vh - 64px - 16px); }
@media (min-width: 1101px) {
    html.bp-v2 #exe_studio .exs-main { height: calc(100vh - 64px - 30px); }
    html.bp-v2 #exe_studio .exs-text, html.bp-v2 #exe_studio .exs-droite { top: auto; height: auto; }
}
