/* Feuille de style de la page codeur. Sobre, lisible, en français. */
:root {
  --encre: #1f2328; --encre-douce: #57606a; --fond: #ffffff; --fond-doux: #f6f8fa;
  --bord: #d0d7de; --accent: #0a5c8a; --accent-doux: #e6f1f8; --alerte: #9a3412; --alerte-fond: #fff4e5;
  --largeur-lecture: 72ch;
}
* { box-sizing: border-box; }
html { color-scheme: light; }
body { margin: 0; font: 16px/1.5 -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: var(--encre); background: var(--fond); }
.entete { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .6rem 1.25rem; border-bottom: 1px solid var(--bord); background: var(--fond-doux); position: sticky; top: 0; }
.entete-titre strong { font-size: 1.15rem; }
.sous-titre { color: var(--encre-douce); margin-left: .5rem; }
.entete-droite { display: flex; align-items: center; gap: .75rem; color: var(--encre-douce); }
.lien-entete { color: var(--accent); text-decoration: none; padding: .25rem .5rem; border-radius: 6px; }
.lien-entete:hover { background: var(--accent-doux); text-decoration: underline; }
main { padding: 1.5rem 1.25rem 3rem; }
.ecran { max-width: var(--largeur-lecture); margin: 0 auto; }
h1 { font-size: 1.5rem; margin: 0 0 .75rem; }
label { display: block; font-weight: 600; margin: .75rem 0 .25rem; }
input, select, textarea { width: 100%; max-width: 32rem; padding: .5rem .6rem; font: inherit; border: 1px solid var(--bord); border-radius: 6px; }
button { font: inherit; padding: .5rem .9rem; border-radius: 6px; border: 1px solid var(--accent); background: var(--accent); color: #fff; cursor: pointer; margin-top: .75rem; }
button.secondaire { background: var(--fond); color: var(--accent); }
button:disabled { opacity: .55; cursor: default; }
.message { padding: .75rem 1rem; border-radius: 6px; background: var(--accent-doux); border: 1px solid var(--accent); }
.message.alerte { background: var(--alerte-fond); border-color: var(--alerte); color: var(--alerte); }
.pied { padding: 1rem 1.25rem; color: var(--encre-douce); font-size: .85rem; border-top: 1px solid var(--bord); }
[hidden] { display: none !important; }

/* Mention d'information (markdown rendu) */
.mention h1 { font-size: 1.5rem; }
.mention h2 { font-size: 1.2rem; margin-top: 1.5rem; }
.mention h3 { font-size: 1.05rem; margin-top: 1.25rem; }
.mention ul { padding-left: 1.4rem; }
.mention hr { border: 0; border-top: 1px solid var(--bord); margin: 1.5rem 0; }
.case { display: flex; gap: .6rem; align-items: flex-start; font-weight: normal; margin: .6rem 0; }
.case input { width: auto; margin-top: .3rem; }
.discret { color: var(--encre-douce); font-size: .9rem; }

/* Liste des dossiers */
.ecran.large { max-width: 1100px; }
.recherche { display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end; margin-bottom: .75rem; }
.recherche > div { flex: 1 1 14rem; }
.recherche label { margin-top: 0; }
.recherche-boutons { display: flex; gap: .5rem; }
.recherche-boutons button { margin-top: 0; }
.tableau-conteneur { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .95rem; }
th, td { text-align: left; padding: .45rem .6rem; border-bottom: 1px solid var(--bord); vertical-align: top; }
th { background: var(--fond-doux); font-weight: 600; }
th.num, td.num { text-align: right; white-space: nowrap; }
td.ident { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .9rem; white-space: nowrap; }
tr:hover td { background: var(--accent-doux); }
.pagination { display: flex; align-items: center; gap: 1rem; margin-top: .75rem; }
.pagination button { margin-top: 0; }

/* Écran du dossier et surlignage */
.dossier-entete { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; flex-wrap: wrap; }
.dossier-entete h1 { font-size: 1.25rem; font-family: ui-monospace, Menlo, Consolas, monospace; }
.dossier-boutons { display: flex; gap: .5rem; }
.dossier-boutons button { margin-top: 0; }
.dossier-corps { display: grid; grid-template-columns: minmax(0, var(--largeur-lecture)) minmax(16rem, 22rem); gap: 1.5rem; align-items: start; margin-top: 1rem; }
@media (max-width: 900px) { .dossier-corps { grid-template-columns: 1fr; } .panneau { position: static; } }
.texte-dossier { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 1rem; line-height: 1.65; padding: 1rem 1.25rem; border: 1px solid var(--bord); border-radius: 8px; background: var(--fond); }
.texte-dossier:focus { outline: 2px solid var(--accent-doux); }
.panneau { position: sticky; top: 4rem; max-height: calc(100vh - 5rem); overflow-y: auto; padding: .75rem 1rem; border: 1px solid var(--bord); border-radius: 8px; background: var(--fond-doux); }
.panneau h2 { font-size: 1.05rem; margin: 0 0 .5rem; }
.liste-ensembles { list-style: none; padding: 0; margin: 0; }
.ensemble { border: 1px solid var(--bord); border-left-width: 6px; border-radius: 6px; background: var(--fond); margin: .5rem 0; padding: .4rem .6rem; cursor: pointer; }
.ensemble.actif { outline: 2px solid var(--accent); }
.ensemble-tete { display: flex; justify-content: space-between; align-items: center; gap: .5rem; font-weight: 600; }
.ensemble-tete button, .passage button { margin: 0; padding: .1rem .45rem; font-size: .8rem; }
.passage { display: flex; justify-content: space-between; gap: .5rem; align-items: flex-start; font-size: .9rem; margin: .3rem 0; }
.passage .cite { flex: 1; color: var(--encre-douce); }
.passage .cite q { color: var(--encre); }
mark.surl { background: var(--c, #fff3b0); color: inherit; border-radius: 2px; padding: .05em 0; cursor: pointer; }
mark.surl.chevauche { background: repeating-linear-gradient(45deg, var(--c, #fff3b0) 0 4px, #fff 4px 6px); }
mark.surl.actif { outline: 2px solid var(--accent); }
.barre-selection { position: absolute; z-index: 10; display: flex; gap: .4rem; padding: .35rem; background: var(--fond); border: 1px solid var(--bord); border-radius: 8px; box-shadow: 0 4px 14px rgba(0,0,0,.15); }
.barre-selection button { margin: 0; padding: .3rem .6rem; font-size: .9rem; }
kbd { font: .75rem ui-monospace, Menlo, monospace; border: 1px solid currentColor; border-radius: 3px; padding: 0 .25rem; margin-left: .3rem; opacity: .8; }
/* Couleurs des ensembles (numéro modulo 8) */
.c0 { --c: #ffe08a; } .c1 { --c: #b5e4c8; } .c2 { --c: #c8d9ff; } .c3 { --c: #f9c6d3; }
.c4 { --c: #d9c9f4; } .c5 { --c: #ffd4b0; } .c6 { --c: #c2ecf2; } .c7 { --c: #e0e4a8; }
.ensemble.c0 { border-left-color: #ffe08a; } .ensemble.c1 { border-left-color: #b5e4c8; } .ensemble.c2 { border-left-color: #c8d9ff; } .ensemble.c3 { border-left-color: #f9c6d3; }
.ensemble.c4 { border-left-color: #d9c9f4; } .ensemble.c5 { border-left-color: #ffd4b0; } .ensemble.c6 { border-left-color: #c2ecf2; } .ensemble.c7 { border-left-color: #e0e4a8; }

/* Mode « passages » (lot A1) : une seule couleur, passage actif encadré */
.passage-item { border: 1px solid var(--bord); border-left: 6px solid #ffe08a; border-radius: 6px; background: var(--fond); margin: .5rem 0; padding: .4rem .6rem; cursor: pointer; display: flex; gap: .5rem; align-items: flex-start; }
.passage-item.actif { outline: 2px solid var(--accent); }
.passage-item .cite { flex: 1; font-size: .9rem; }
.passage-item .cite q { color: var(--encre); }
.passage-item .pos { display: block; color: var(--encre-douce); font-size: .8rem; }
.passage-item button { margin: 0; padding: .1rem .45rem; font-size: .8rem; }

/* Mode simple (lot A1) : pas de panneau ; ligne discrète au-dessus du texte ; clic sur un passage pour le retirer */
.dossier-corps.sans-panneau { grid-template-columns: minmax(0, var(--largeur-lecture)); }
.colonne-texte { min-width: 0; }
.barre-texte { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .4rem; min-height: 2rem; }
.barre-texte-boutons { display: flex; gap: .5rem; }
.barre-texte-boutons button { margin-top: 0; padding: .25rem .6rem; font-size: .9rem; }
.texte-dossier.mode-simple mark.surl:hover { background: #ffb4a8; text-decoration: line-through; cursor: pointer; }
.texte-dossier.mode-simple mark.surl { background: #ffe08a; }

/* Codage proposé (affichage provisoire, remplacé à l'étape 6) */
.bloc-codage { margin-top: 1.25rem; padding: .75rem 1rem; border: 1px solid var(--bord); border-radius: 8px; background: var(--fond-doux); }
.bloc-codage h2 { font-size: 1.05rem; margin: 0 0 .4rem; }
.bloc-codage ul { padding-left: 1.2rem; margin: .3rem 0; }
.bloc-codage .etiquette { display: inline-block; font-size: .75rem; padding: 0 .4rem; border-radius: 4px; background: var(--accent); color: #fff; margin-left: .4rem; }
.bloc-codage .alerte-code { color: var(--alerte); }
.attente { display: inline-block; width: .9em; height: .9em; border: 2px solid var(--accent); border-right-color: transparent; border-radius: 50%; animation: tourne .8s linear infinite; vertical-align: middle; margin-right: .4rem; }
@keyframes tourne { to { transform: rotate(360deg); } }

/* Style « Neutre » (brief 7, étape 1) : la ligne d'informations encadrée au-dessus du texte ; sous le texte, le compte des
   passages puis les boutons côte à côte, petits ; Codage et Évaluation s'excluent, le bouton actif est coloré. */
.infos-texte { margin: 0 0 .5rem; padding: .5rem 1.25rem; border: 1px solid var(--bord); border-radius: 8px; background: var(--fond-doux); line-height: 1.5; white-space: pre-line; }
.sous-texte { margin-top: .5rem; }
.sous-texte > .discret { display: block; margin-bottom: .35rem; }
.boutons-ligne { display: flex; gap: .4rem; flex-wrap: wrap; align-items: center; }
.boutons-ligne button { margin-top: 0; padding: .25rem .6rem; font-size: .9rem; }
button.bascule { background: var(--fond); color: var(--accent); }
button.bascule.actif { background: var(--accent); color: #fff; }
.colonne-texte.vue-evaluation #bloc-codage { display: none !important; }
.bloc-evaluation { margin-top: 1.25rem; padding: .75rem 1rem; border: 1px solid var(--bord); border-radius: 8px; background: var(--fond-doux); }
.bloc-evaluation h2 { font-size: 1.05rem; margin: 0 0 .4rem; }
.codage-tete button.petit { margin: 0; padding: .15rem .5rem; font-size: .85rem; }

/* Écran de codage (étape 6) */
.codage-tete { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.bloc-codage .code { margin: .6rem 0 .9rem; border-radius: 8px; }
.bloc-codage .code.ressort { outline: 2px solid var(--accent); }
/* Un code : son texte (code – libellé) sur sa ligne, puis la ligne des fonctions, puis les passages ; ses commentaires
   dans la marge à droite du pavé (sous le code sur un écran étroit) */
.bloc-codage .code { position: relative; }
.bloc-codage .code .tete strong { display: block; font-size: 1.02rem; }
.bloc-codage .code .tete strong.a-choisir { color: var(--alerte); }
.bloc-codage .code .fonctions { display: flex; align-items: center; gap: .15rem; flex-wrap: wrap; margin: .15rem 0 .1rem; }
.bloc-codage .code .fonctions .ico { border: 0; background: none; color: var(--encre-douce); font-size: .9rem; padding: .05rem .35rem; border-radius: 4px; margin: 0; cursor: pointer; line-height: 1.3; }
.bloc-codage .code .fonctions .ico:hover { background: var(--accent-doux); color: var(--accent); }
.bloc-codage .code .fonctions .ico.ouvert { background: var(--accent-doux); color: var(--accent); }
.bloc-codage .code .fonctions .ico .n { font-size: .72rem; vertical-align: super; }
.bloc-codage .code .fonctions .ico.alerte { color: var(--alerte); } .bloc-codage .code .fonctions .ico.alerte:hover { background: var(--alerte-fond); color: var(--alerte); }
.bloc-codage .code .fonctions .etiquette.cat { margin-right: .3rem; }
.bloc-codage .code li.vide { list-style: none; margin-left: -1.3rem; color: var(--encre-douce); font-style: italic; }
.marge { position: absolute; left: 100%; top: 0; width: 20rem; margin-left: 2.5rem; font-size: .92rem; border-left: 2px solid var(--accent-doux); padding: .1rem 0 .1rem .8rem; background: var(--fond); }
.marge .titre { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: #8b949e; margin-bottom: .2rem; display: flex; justify-content: space-between; align-items: baseline; }
.marge .titre button { margin: 0; padding: 0 .4rem; font-size: .8rem; }
.marge .ligne { display: flex; gap: .5rem; align-items: baseline; padding: .15rem 0; }
.marge .auteur { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: #8b949e; min-width: 3.2rem; }
.marge .outil { color: var(--encre-douce); font-style: italic; }
@media (max-width: 1150px) { .marge { position: static; width: auto; margin: .3rem 0 .4rem 1rem; } }
.bloc-codage .code ul.preuves { margin: .2rem 0 0; padding-left: 1.3rem; min-height: .6rem; }
.bloc-codage .code li.preuve { cursor: grab; }
.bloc-codage .code li.preuve .outils { visibility: hidden; margin-left: .3rem; }
.bloc-codage .code li.preuve:hover .outils { visibility: visible; }
.bloc-codage .code.cible-depot { outline: 2px dashed var(--accent); }
.bloc-codage .actions-code { margin-left: auto; display: flex; gap: .3rem; }
.bloc-codage .actions-code button, .bloc-codage .outils button { font: inherit; font-size: .8rem; padding: .1rem .45rem; border: 1px solid var(--bord); border-radius: 4px; background: var(--fond); cursor: pointer; margin: 0; color: var(--encre); }
.bloc-codage .outils button.croix { color: var(--alerte); }
.etiquette { display: inline-block; font-size: .72rem; padding: 0 .4rem; border-radius: 4px; background: var(--accent); color: #fff; }
.etiquette.cat { cursor: pointer; } .etiquette.associe { background: var(--fond); color: var(--accent); border: 1px solid var(--accent); }
.etiquette.alerte { background: var(--alerte); } .etiquette.info { background: var(--encre-douce); } .etiquette.vide { background: #b45309; }
/* Trois affichages (brief 7, étape 2). A : pavé gris, liste simple. B et C : le format des cadres de la première maquette
   (web/essais/maquette_codage.html), chaque code dans un cadre de sa couleur sur fond blanc, sans le pavé gris. */
.bloc-codage.A .code { border: 1px solid var(--bord); padding: .4rem .75rem; }
.bloc-codage.B, .bloc-codage.C { background: none; border: 0; padding: 0; }
.bloc-codage.B .code, .bloc-codage.C .code { border: 2px solid var(--c); border-radius: 8px; padding: .5rem .75rem; margin: .6rem 0; background: color-mix(in srgb, var(--c) 12%, #fff); }
.bloc-codage.B .non-codes, .bloc-codage.C .non-codes { margin-top: 1rem; }
.texte-dossier mark.preuve { background: #ffe08a; }
/* B : le surlignage du texte reste jaune. C : chaque passage prend la couleur de son code ; un passage partagé par deux
   codes est en bandes des deux couleurs ; un surlignage pas encore codé reste jaune ; un passage non codé selon l'IA est gris. */
.texte-dossier.C mark.preuve { background: var(--c, #ffe08a); }
.texte-dossier.C mark.preuve.partage { background: repeating-linear-gradient(135deg, var(--c) 0 6px, var(--c2, var(--c)) 6px 12px); }
.texte-dossier mark.non-code { background: #ececec; color: inherit; padding: .05em 0; border-radius: 2px; }
/* Un passage partagé par plusieurs codes garde la couleur du premier code (infobulle : « Passage partagé par … »). */
.texte-dossier mark.preuve.ressort, .texte-dossier mark.surl.ressort { outline: 2px solid var(--accent); }
.texte-dossier.mode-simple mark.preuve:hover { background: var(--c, #ffe08a); text-decoration: none; cursor: pointer; }
.non-codes { margin-top: 1rem; padding: .5rem .75rem; border-left: 4px solid var(--bord); background: var(--fond-doux); font-size: .92rem; border-radius: 0 6px 6px 0; }
.non-codes ul { margin: .2rem 0 .5rem; padding-left: 1.2rem; }
.non-codes a { color: var(--accent); cursor: pointer; margin-left: .4rem; }
.barre-enregistrer { margin-top: .75rem; }
.menu-selection { position: absolute; z-index: 20; display: flex; flex-direction: column; gap: .15rem; padding: .35rem; background: var(--fond); border: 1px solid var(--bord); border-radius: 8px; box-shadow: 0 4px 14px rgba(0,0,0,.15); font-size: .92rem; max-height: 50vh; overflow-y: auto; min-width: 14rem; }
.menu-selection button { font: inherit; text-align: left; border: 0; background: none; padding: .25rem .6rem; cursor: pointer; border-radius: 4px; margin: 0; color: var(--encre); }
.menu-selection button:hover { background: var(--accent-doux); }
.menu-selection .titre { font-size: .8rem; color: var(--encre-douce); padding: .2rem .6rem 0; }
.recherche-code { margin: .4rem 0 .2rem; padding: .5rem .6rem; border: 1px solid var(--accent); border-radius: 6px; background: var(--fond); }
.recherche-code input { max-width: none; }
.recherche-code ol { list-style: none; padding: 0; margin: .4rem 0 0; max-height: 16rem; overflow-y: auto; }
.recherche-code li { padding: .25rem .4rem; border-radius: 4px; cursor: pointer; display: flex; gap: .5rem; align-items: baseline; }
.recherche-code li:hover { background: var(--accent-doux); }
.recherche-code li .rc-code { font-family: ui-monospace, Menlo, Consolas, monospace; min-width: 5.5rem; }
.recherche-code li .rc-form { color: var(--encre-douce); font-size: .85rem; margin-left: auto; }
.recherche-code .rc-titre { font-size: .8rem; color: var(--encre-douce); margin-top: .3rem; }
/* Palette C : huit teintes claires dérivées d'Okabe-Ito (distinguables en vision daltonienne, lisibles sous un texte noir) */
.cK0 { --c: #ffd9a3; } .cK1 { --c: #b9e0f7; } .cK2 { --c: #bfe8cf; } .cK3 { --c: #fff0a3; } .cK4 { --c: #c9d6ff; } .cK5 { --c: #ffc8bd; } .cK6 { --c: #f0cfe9; } .cK7 { --c: #dedede; }
/* Couleurs d'origine (variante B, selon le rang du code) */
.cC0 { --c: #ffd27a; } .cC1 { --c: #a8e0b8; } .cC2 { --c: #b9cdff; } .cC3 { --c: #f7b9c9; } .cC4 { --c: #d9c9f4; } .cC5 { --c: #ffd4b0; } .cC6 { --c: #a9e4ea; } .cC7 { --c: #dde3a0; } .cCX { --c: #d0d7de; }

.barre-bas { margin-top: 1rem; }

/* Mise en forme markdown sans retirer un caractère (web/markdown.js) : active seulement avec .mise-en-forme */
.texte-dossier.mise-en-forme .md-titre { font-weight: 600; font-size: 1.08em; }
.texte-dossier.mise-en-forme .md-gras { font-weight: 600; }
.texte-dossier.mise-en-forme .md-marque { color: #b8b8b8; font-weight: 400; }
.texte-dossier.mise-en-forme .md-trait { color: transparent; border-bottom: 1px solid var(--bord); line-height: .6; }

/* Notation de la qualité du compte rendu (brief 7, étape 4) : cinq lignes, cinq pastilles, le repère du niveau choisi sous la ligne */
.notation .dim { display: grid; grid-template-columns: minmax(9rem, 14rem) auto; gap: .25rem 1rem; align-items: baseline; padding: .45rem 0; border-top: 1px solid var(--bord); }
.notation .dim:last-of-type { border-bottom: 1px solid var(--bord); }
.notation .dim .nom { font-weight: 600; }
.notation .dim .nom small { display: block; font-weight: 400; color: var(--encre-douce); font-size: .85rem; }
.notation .choix { display: flex; gap: .3rem; }
.notation .choix button { width: 2.1rem; height: 2.1rem; padding: 0; margin: 0; border-radius: 50%; background: var(--fond); color: var(--encre-douce); border-color: var(--bord); }
.notation .choix button:hover { border-color: var(--accent); color: var(--accent); }
.notation .choix button.actif { background: var(--accent); color: #fff; border-color: var(--accent); }
.notation .repere { grid-column: 2; font-size: .9rem; color: var(--encre-douce); min-height: 1.2em; }
.bloc-evaluation textarea { max-width: none; margin-top: .25rem; }
.rappel-donnees { display: flex; justify-content: space-between; font-size: .8rem; margin: .2rem 0 0; }

/* Commentaires (brief 7, étape 3) */
.code-dossier { position: relative; margin-top: .75rem; font-size: .95rem; }
.code-dossier .ico { border: 0; background: none; color: var(--encre-douce); font-size: .9rem; padding: .05rem .35rem; border-radius: 4px; margin: 0; cursor: pointer; }
.code-dossier .ico:hover, .code-dossier .ico.ouvert { background: var(--accent-doux); color: var(--accent); }
.code-dossier .ico .n { font-size: .72rem; vertical-align: super; }
.marge .ligne .outils { margin-left: auto; white-space: nowrap; }
.marge .ligne .outils button { margin: 0; padding: 0 .3rem; font-size: .8rem; }
.marge .ligne .nouveau { color: var(--accent); font-size: .72rem; margin-left: .3rem; }
.marge .saisie { margin-top: .35rem; }
.marge .saisie textarea { width: 100%; max-width: none; font-size: .92rem; resize: vertical; min-height: 3.2rem; }
.marge .saisie .rappel { font-size: .78rem; color: #8b949e; margin: .15rem 0 0; display: flex; justify-content: space-between; align-items: center; }
.marge .saisie .rappel button { margin: 0; padding: .1rem .5rem; font-size: .8rem; }

/* Nature des preuves (codage_v2) : les preuves directes en gras, les indirectes ou sans nature en texte normal */
.bloc-codage .code li.preuve.directe { font-weight: 600; }

/* Bloc de la règle de hiérarchisation et du mode de prise en charge, en tête du pavé (brief 8) */
.bloc-regle { margin: .25rem 0 .5rem; }
.bloc-regle .code.mode-pec { background: var(--fond-doux); border: 1px solid var(--bord); border-radius: 8px; padding: .5rem .75rem; }
.bloc-codage.B .code.mode-pec, .bloc-codage.C .code.mode-pec { border-color: var(--bord); background: var(--fond-doux); }
.bloc-regle .code.mode-pec li.preuve.regle::before, .bloc-regle .code.mode-pec li.preuve.regle::after { content: ""; }
.bloc-regle .code.mode-pec li.preuve.regle { cursor: default; }
.bloc-regle .regle-ligne { margin: 0; }
.bloc-regle .regle-mode { color: var(--encre); }
.bloc-regle .regle-explication { margin: .25rem 0 0; }
.bloc-regle .message { margin: .4rem 0 0; }
.bloc-regle .regle-choix { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: .4rem; }
.bloc-regle .regle-choix label { font-weight: 400; margin: 0; font-size: .9rem; color: var(--encre-douce); }
.bloc-regle .regle-choix select { width: auto; max-width: 28rem; font-size: .9rem; padding: .2rem .4rem; margin-left: .3rem; }
.regle-recalcul { margin: 0 0 .75rem; }
.regle-recalcul textarea { max-width: none; font-size: .92rem; }
.regle-recalcul .boutons-ligne { margin-top: .3rem; align-items: baseline; gap: .75rem; }
