/* ==========================================================================
   Rubrique RGPD du tableau de bord (/dashboard#rgpd), d'apres les maquettes
   sites/proadmin/rgpd_*.png. Se charge APRES app.css, dont elle reprend les
   variables, les cartes, les boutons et le bandeau.
   Toutes les classes de cette feuille commencent par rg-.
   ========================================================================== */

:root {
  --rg-bleu: #1a73e8;      --rg-bleu-fond: #e3f0ff;
  --rg-vert: #2f8a12;      --rg-vert-fond: #e3f6d3;
  --rg-violet: #7a3fd0;    --rg-violet-fond: #efe4fb;
  --rg-rose: #d81b60;      --rg-rose-fond: #fde3ec;
  --rg-orange: #d9660a;    --rg-orange-fond: #ffecd9;
  --rg-rouge: #d21f3c;     --rg-rouge-fond: #fde4e8;
  --rg-gris: #3b4a35;      --rg-gris-fond: #eef2ea;
  --rg-tete: #f5f8f2;
  --rg-ici: #e9f8dc;
}
:root[data-theme="sombre"] {
  --rg-bleu: #8fc0ff;      --rg-bleu-fond: #15304f;
  --rg-vert: #a6e67a;      --rg-vert-fond: #1d4a1f;
  --rg-violet: #c9a6f5;    --rg-violet-fond: #34224f;
  --rg-rose: #f78fb3;      --rg-rose-fond: #4a1c2e;
  --rg-orange: #ffb476;    --rg-orange-fond: #4a2c12;
  --rg-rouge: #ff8f9f;     --rg-rouge-fond: #4a1a22;
  --rg-gris: #c9d8c1;      --rg-gris-fond: #1a3322;
  --rg-tete: #152c1d;
  --rg-ici: #1b3d22;
}

.rg { font-size: 0.875rem; }
.rg h2, .rg h3 { margin: 0; }
.rg small { display: block; font-size: 0.8125rem; font-weight: 400; color: var(--doux); }
.rg b { font-weight: 600; }
.rg-ligne b, .rg-recent b, .rg-cat b, .rg-appcarte b, .rg-document b { font-weight: 500; }
.rg-doux { color: var(--doux); font-size: 0.875rem; }
.rg-intro { margin: -8px 0 14px; color: var(--doux); }
.rg .carte-tete { gap: 16px; }

/* --- Bandeau -------------------------------------------------------------- */

.rg-bandeau { min-height: 160px; gap: 40px; padding: 26px 250px 26px 50px; }
.rg-bandeau h1 { margin: 0 0 6px; font-size: clamp(1.75rem, 3vw, 2.5rem); }
.rg-bandeau p { margin: 0; font-size: 1.0625rem; color: #47583f; }
.rg-decor { position: absolute; right: 26px; bottom: -14px; width: 210px; height: auto; }
.rg-embleme { position: relative; flex: none; padding: 5px; border-radius: 22px; background: rgba(255, 255, 255, 0.85); box-shadow: 0 10px 26px rgba(20, 80, 20, 0.2); }
.rg-embleme i { display: grid; place-items: center; width: 96px; height: 96px; border-radius: 18px; color: #ffffff; background: linear-gradient(150deg, #6fd32a, #1f8a17); }
.rg-embleme--rose i { color: #d81b60; background: linear-gradient(150deg, #ffe3ec, #fbb9cf); }
.rg-bandeau-btn { position: relative; flex: none; margin-left: auto; padding: 12px 20px; border: 0; background: #ffffff; color: #14210f; font-weight: 600; box-shadow: 0 6px 18px rgba(20, 80, 20, 0.16); }

.rg-fil { display: flex; align-items: center; gap: 12px; margin: -4px 0 16px 4px; font-size: 0.875rem; color: var(--doux); }
.rg-fil a { display: inline-flex; color: var(--texte); text-decoration: none; }
.rg-fil a:hover { text-decoration: underline; }
.rg-fil span { color: var(--vert-fonce); font-weight: 500; }

/* --- Pictogrammes, etiquettes, statuts ----------------------------------- */

.rg-pic { display: grid; place-items: center; flex: none; width: 54px; height: 54px; border-radius: 12px; color: var(--rg-vert); background: var(--rg-vert-fond); }
.rg-pic--bleu { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.rg-pic--rose { color: var(--rg-rose); background: var(--rg-rose-fond); }
.rg-pic--violet { color: var(--rg-violet); background: var(--rg-violet-fond); }
.rg-pic--plein { color: #ffffff; background: linear-gradient(150deg, #4fbf22, #1f8a17); }

.rg-tag { display: inline-flex; align-items: center; padding: 4px 9px; border-radius: 7px; font-size: 0.75rem; font-weight: 500; line-height: 1.3; white-space: nowrap; color: var(--rg-gris); background: var(--rg-gris-fond); }
.rg-tag--grand { padding: 7px 14px; font-size: 0.8125rem; }
.rg-tag--bleu { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.rg-tag--vert, .rg-tag--vertclair { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rg-tag--violet { color: var(--rg-violet); background: var(--rg-violet-fond); }
.rg-tag--orange { color: var(--rg-orange); background: var(--rg-orange-fond); }
.rg-tags { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }

.rg-statut { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px 4px 8px; border-radius: 999px; font-size: 0.8125rem; font-weight: 500; white-space: nowrap; }
.rg-statut--ok { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rg-statut--non { color: var(--rg-gris); background: var(--rg-gris-fond); }

.rg-etat { display: inline-flex; align-items: center; gap: 7px; padding: 5px 12px; border-radius: 999px; font-size: 0.8125rem; font-weight: 500; white-space: nowrap; }
.rg-etat--terminee { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rg-etat--encours { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.rg-etat--refusee { color: var(--rg-gris); background: var(--rg-gris-fond); }

/* Logos des applications : un carre de couleur et un trait blanc. */
.rg-app { display: inline-grid; place-items: center; flex: none; width: 40px; height: 40px; border-radius: 9px; color: #ffffff; background: #4a6076; }
.rg-app--p { width: 22px; height: 22px; border-radius: 5px; }
.rg-app--g { width: 50px; height: 50px; border-radius: 11px; }
.rg-app--promail { background: #ee2b2f; }
.rg-app--timelime { background: #35a82a; }
.rg-app--vdom { background: #dc1f2b; }
.rg-app--vails { background: #8b4be0; }
.rg-app--odesa { background: #ffffff; color: #f47b20; box-shadow: inset 0 0 0 1px var(--bord); }
.rg-app--limeos { background: #6cc22a; }
.rg-app--analytics { background: #fde3ec; color: #e8457a; }
.rg-app--scribly { background: #f5b90c; }
.rg-app--x { background: #000000; }
.rg-plus { font-size: 0.75rem; color: var(--doux); }

/* --- Vue d'ensemble ------------------------------------------------------- */

.rg-tuiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.rg-tuile { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 18px; padding: 20px; color: inherit; text-decoration: none; transition: box-shadow 120ms ease, transform 120ms ease; }
.rg-tuile:hover { transform: translateY(-2px); box-shadow: 0 10px 28px rgba(20, 33, 15, 0.12); }
.rg-tuile h2 { margin: 6px 0 6px; font-size: 1.0625rem; font-weight: 600; }
.rg-tuile p { margin: 0; color: var(--doux); font-size: 0.8125rem; }
.rg-tuile-pied { grid-column: 1 / -1; display: flex; align-items: center; gap: 16px; margin-top: 8px; min-height: 34px; color: var(--texte); }
.rg-tuile-pied b { font-size: 1.875rem; font-weight: 700; line-height: 1; color: var(--vert-fonce); }
.rg-tuile-pied span { color: var(--doux); font-size: 0.875rem; }
.rg-tuile-pied svg { margin-left: auto; }

.rg-deux { display: grid; gap: 18px 20px; align-items: start; }
.rg-deux--ensemble { grid-template-columns: minmax(0, 1.42fr) minmax(0, 1fr); }
.rg-deux--donnees { grid-template-columns: 330px minmax(0, 1fr); }
.rg-deux--consent { grid-template-columns: minmax(0, 1fr) 400px; }
.rg-deux--droits { grid-template-columns: minmax(0, 1fr) 370px; }

.rg-lien { padding: 8px 14px; font-size: 0.8125rem; text-decoration: none; color: inherit; white-space: nowrap; }
.rg .carte-tete h2 { font-size: 1.0625rem; }

/* --- Tableaux en grille --------------------------------------------------- */

.rg-defile { overflow-x: auto; }
.rg-table--bord { border: 1px solid var(--bord); border-radius: 10px; overflow: hidden; }
.rg-ligne { display: grid; align-items: center; gap: 12px; padding: 11px 12px; border-top: 1px solid var(--bord); color: inherit; text-decoration: none; }
.rg-ligne--tete { border-top: 0; border-radius: 8px; padding-top: 10px; padding-bottom: 10px; background: var(--rg-tete); font-size: 0.8125rem; color: var(--doux); }
.rg-ligne--tete + .rg-ligne { border-top: 0; }
a.rg-ligne:hover, .rg-ligne[role="button"]:hover { background: var(--rg-tete); }
.rg-ligne[role="button"] { cursor: pointer; }
.rg-ligne--ici, .rg-ligne--ici:hover { background: var(--rg-ici) !important; box-shadow: inset 3px 0 0 var(--vert); }
.rg-nom { display: flex; align-items: center; gap: 14px; min-width: 0; }
.rg-nom > svg { color: var(--rg-bleu); }
.rg-ligne--demande .rg-nom > svg, .rg-ligne--demande3 .rg-nom > svg, .rg-ligne--donnee .rg-nom > svg { color: var(--texte); }
.rg-valeur { overflow-wrap: anywhere; }
.rg-vide { font-style: italic; color: var(--doux); }
.rg-apps { display: flex; align-items: center; gap: 6px; }
.rg-alerte { color: var(--rg-orange); font-size: 0.875rem; }

.rg-ligne--apercu { grid-template-columns: minmax(150px, 1.1fr) minmax(0, 1.9fr) 104px 138px 18px; }
.rg-ligne--demande3 { grid-template-columns: minmax(0, 1.6fr) 100px 120px; }
.rg-ligne--donnee { grid-template-columns: minmax(130px, 1fr) minmax(90px, 1fr) 104px minmax(150px, 1.6fr) minmax(96px, 0.9fr) 112px 36px; min-width: 810px; }
.rg-ligne--consent { grid-template-columns: minmax(160px, 1.1fr) minmax(150px, 1.3fr) minmax(130px, 1fr) 78px 88px 50px; min-width: 734px; padding-top: 14px; padding-bottom: 14px; }
.rg-ligne--demande { grid-template-columns: minmax(170px, 1.2fr) 82px minmax(150px, 1.5fr) 92px 86px 122px; min-width: 780px; padding-top: 14px; padding-bottom: 14px; }
.rg-ligne--demande .btn { padding: 7px 8px; gap: 4px; font-size: 0.78rem; white-space: nowrap; }

.rg-voir, .rg-lientexte { display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; color: var(--vert-fonce); font-size: 0.78rem; white-space: nowrap; }
.rg-voir:hover, .rg-lientexte:hover { text-decoration: underline; }
.rg-lientexte { color: var(--rg-bleu); margin-left: 18px; }
.rg-menu { display: grid; place-items: center; width: 36px; height: 36px; padding: 0; border: 1px solid var(--bord); border-radius: 8px; background: var(--carte); color: var(--texte); }

.rg-pied { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 4px 0; font-size: 0.8125rem; color: var(--doux); }
.rg-pages { display: flex; gap: 6px; }
.rg-pages button, .rg-pages b { display: grid; place-items: center; width: 34px; height: 34px; border: 1px solid var(--bord); border-radius: 7px; background: var(--carte); color: var(--texte); }
.rg-pages b { background: var(--neutre); }
.rg-pages button:disabled { color: var(--doux); opacity: 0.6; cursor: default; }

/* --- Consentements recents ------------------------------------------------ */

.rg-recents { display: grid; }
.rg-recent { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto 104px 18px; align-items: center; gap: 14px; padding: 9px 4px; border-top: 1px solid var(--bord); color: inherit; text-decoration: none; }
.rg-recent:first-child { border-top: 0; }
.rg-recent:hover { background: var(--rg-tete); }

/* --- Mes donnees ---------------------------------------------------------- */

.rg-titre { margin: 4px 0 16px !important; font-size: 1.0625rem; font-weight: 600; }
.rg-cats { display: grid; padding: 22px 14px; }
.rg-cats .rg-titre { padding-left: 8px; }
.rg-cat { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 13px 12px; border: 0; border-top: 1px solid var(--bord); background: none; text-align: left; }
.rg-cat:first-of-type { border-top: 0; }
.rg-cat > svg { color: var(--rg-bleu); }
.rg-cat i { display: grid; place-items: center; min-width: 30px; height: 30px; padding: 0 8px; border-radius: 999px; background: var(--neutre); font-style: normal; font-size: 0.8125rem; }
.rg-cat:hover { background: var(--rg-tete); }
.rg-cat--ici, .rg-cat--ici:hover { background: var(--rg-ici); border-radius: 8px; box-shadow: inset 3px 0 0 var(--vert); }
.rg-cat--ici > svg { color: var(--vert-fonce); }
.rg-cat--ici + .rg-cat { border-top-color: transparent; }

.rg-entete { display: flex; align-items: center; gap: 18px; margin-bottom: 18px; }
.rg-entete > div { min-width: 0; margin-right: auto; }
.rg-entete > svg { color: var(--vert-fonce); }
.rg-entete h2 { font-size: 1.25rem; font-weight: 600; }
.rg-entete--outils h2 { font-size: 1.0625rem; }
.rg-entete--outils { flex-wrap: wrap; }
.rg-entete--outils > div { flex: 1 1 260px; }
.rg-entete p { margin: 2px 0 0; color: var(--doux); font-size: 0.875rem; }
.rg-entete .btn { flex: none; white-space: nowrap; font-size: 0.8125rem; }

.rg-bloc { margin-top: 18px; padding: 18px; border-radius: 10px; background: var(--rg-tete); }
.rg-bloc-tete { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.rg-bloc h3, .rg-info h3 { font-size: 0.9375rem; font-weight: 600; }
.rg-bloc p { margin: 4px 0 0; color: var(--doux); font-size: 0.8125rem; }
.rg-bloc .btn { flex: none; font-size: 0.8125rem; }
.rg-appcartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; margin-top: 14px; }
.rg-appcarte { display: grid; grid-template-columns: 40px minmax(0, 1fr) 18px; align-items: center; gap: 10px 12px; padding: 12px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); text-align: left; }
.rg-appcarte:hover { border-color: var(--vert); }
.rg-appcarte-pied { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }

.rg-info { display: flex; align-items: center; gap: 16px; margin-top: 18px; padding: 16px 18px; border: 1px solid var(--bord); border-radius: 10px; background: var(--rg-tete); }
.rg-info > span { align-self: flex-start; color: var(--rg-bleu); }
.rg-info > div { min-width: 0; margin-right: auto; }
.rg-info p { margin: 6px 0 0; color: var(--doux); font-size: 0.8125rem; }
.rg-info .btn { flex: none; font-size: 0.8125rem; white-space: nowrap; }

/* --- Mes consentements ---------------------------------------------------- */

.rg-champ { position: relative; flex: 0 0 210px; }
.rg-champ svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--doux); }
.rg-champ input { width: 100%; padding: 8px 12px 8px 34px; border: 1px solid var(--champ-bord); border-radius: 8px; background: var(--champ); font-size: 0.8125rem; }

.rg-detail { display: grid; gap: 0; }
.rg-detail-tete { display: flex; align-items: center; gap: 16px; padding-bottom: 18px; border-bottom: 1px solid var(--bord); }
.rg-detail-tete > span:nth-child(2) { margin-right: auto; min-width: 0; }
.rg-detail-tete b { font-size: 1.125rem; }
.rg-sous { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 18px 0 12px; }
.rg-sous h3 { display: flex; align-items: center; gap: 12px; font-size: 0.9375rem; font-weight: 600; }
.rg-sous h3 svg { color: var(--vert-fonce); }
.rg-sous .btn { padding: 6px 12px; font-size: 0.8125rem; }
.rg-fiche { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 12px 10px; margin: 0; padding-bottom: 18px; border-bottom: 1px solid var(--bord); font-size: 0.875rem; }
.rg-fiche dt { color: var(--doux); font-size: 0.8125rem; }
.rg-fiche dd { margin: 0; }
.rg-detail > .rg-tags { padding-bottom: 18px; border-bottom: 1px solid var(--bord); }

.rg-histo { margin: 0 0 20px; padding: 0; list-style: none; }
.rg-pas { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 0 16px 40px; font-size: 0.875rem; }
.rg-pas::before { content: ""; position: absolute; left: 8px; top: 4px; width: 12px; height: 12px; border-radius: 50%; border: 3px solid var(--carte); background: var(--doux); box-shadow: 0 0 0 2px var(--doux); }
.rg-pas::after { content: ""; position: absolute; left: 13px; top: 22px; bottom: 0; width: 2px; background: var(--bord); }
.rg-pas:last-child { padding-bottom: 0; }
.rg-pas:last-child::after { display: none; }
.rg-pas--vert::before { background: var(--vert); box-shadow: 0 0 0 2px var(--vert); }
.rg-pas--bleu::before { background: #1a73e8; box-shadow: 0 0 0 2px #1a73e8; }
.rg-retirer { border: 0; color: var(--rg-rouge); background: var(--rg-rouge-fond); font-weight: 600; }
.rg-retirer:hover { background: var(--rg-rouge-fond); filter: brightness(0.96); }
.rg-preuve { margin-top: 10px; border: 1.500px solid var(--vert-fonce); color: var(--vert-fonce); font-weight: 600; }

/* --- Mes droits ----------------------------------------------------------- */

.rg-droits { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; margin-bottom: 18px; }
.rg-droit { display: flex; flex-direction: column; padding: 18px; --c: var(--rg-gris); --f: var(--rg-gris-fond); }
.rg-droit--bleu { --c: var(--rg-bleu); --f: var(--rg-bleu-fond); }
.rg-droit--vert { --c: var(--rg-vert); --f: var(--rg-vert-fond); }
.rg-droit--violet { --c: var(--rg-violet); --f: var(--rg-violet-fond); }
.rg-droit--rouge { --c: var(--rg-rouge); --f: var(--rg-rouge-fond); }
.rg-droit--orange { --c: var(--rg-orange); --f: var(--rg-orange-fond); }
.rg-droit .rg-pic { width: 48px; height: 48px; color: var(--c); background: var(--f); }
.rg-droit h2 { margin: 14px 0 8px; font-size: 0.9375rem; font-weight: 600; }
.rg-droit p { margin: 0 0 16px; color: var(--doux); font-size: 0.8125rem; }
.rg-droit button { display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; margin-top: auto; padding: 11px 14px; border: 0; border-radius: 8px; color: var(--c); background: var(--f); font-size: 0.8125rem; font-weight: 500; text-align: left; }
.rg-droit button:hover { filter: brightness(0.96); }

.rg-tete-info > svg { color: var(--rg-bleu); }
.rg-delais { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 14px; margin: 0; font-size: 0.8125rem; }
.rg-delais dt { display: flex; align-items: center; gap: 12px; font-weight: 500; }
.rg-delais dd { margin: 0; color: var(--doux); }
.rg-document { display: grid; grid-template-columns: 24px minmax(0, 1fr) 16px; align-items: center; gap: 14px; width: 100%; margin-top: 10px; padding: 12px 14px; border: 1px solid var(--bord); border-radius: 9px; background: var(--carte); text-align: left; }
.rg-document:hover { border-color: var(--vert); }

/* --- Ecrans etroits ------------------------------------------------------- */

@media (max-width: 1500px) {
  .rg-droits { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rg-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1280px) {
  .rg-deux--ensemble, .rg-deux--consent, .rg-deux--droits { grid-template-columns: minmax(0, 1fr); }
  .rg-deux--donnees { grid-template-columns: 280px minmax(0, 1fr); }
}

@media (max-width: 1080px) {
  .rg-deux--donnees { grid-template-columns: minmax(0, 1fr); }
  .rg-ligne--apercu { grid-template-columns: minmax(0, 1fr) auto 20px; }
  .rg-ligne--apercu > :nth-child(2), .rg-ligne--apercu > :nth-child(3) { display: none; }
  .rg-ligne--apercu.rg-ligne--tete > :nth-child(5) { display: block; }
}

@media (max-width: 900px) {
  .rg-bandeau { flex-direction: row; align-items: center; flex-wrap: wrap; gap: 18px; padding: 22px; min-height: 0; }
  .rg-decor { display: none; }
  .rg-embleme i { width: 68px; height: 68px; border-radius: 14px; }
  .rg-embleme i svg { width: 36px; height: 36px; }
  .rg-bandeau .bandeau-texte { flex: 1 1 200px; }
  .rg-bandeau h1 { font-size: 1.375rem; overflow-wrap: normal; }
  .rg-bandeau p { font-size: 0.9375rem; }
  .rg-bandeau-btn { margin-left: 0; }
  .rg-entete, .rg-bloc-tete, .rg-info { flex-wrap: wrap; }
  .rg-entete > div { flex: 1 1 200px; }
}

@media (max-width: 640px) {
  .rg-tuiles, .rg-droits { grid-template-columns: minmax(0, 1fr); }
  .rg-recent { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .rg-recent > .rg-doux, .rg-recent > svg { display: none; }
  .rg-ligne--demande3 { grid-template-columns: minmax(0, 1fr) auto; }
  .rg-ligne--demande3 > :nth-child(2) { display: none; }
  .rg .carte-tete { flex-wrap: wrap; gap: 12px; }
  .rg .carte-tete .outils { margin-left: 0; }
  .rg-delais { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .rg-delais dd { margin: 0 0 12px 30px; }
  .rg-pied { flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  .rg-tuile { transition: none; }
}

/* --- Étape 4a : écrans branchés sur le coffre et le registre ---------------- */

.rg-ligne--donnee4 { grid-template-columns: minmax(130px, 1fr) minmax(140px, 1.6fr) minmax(110px, 1fr) minmax(130px, 1fr); min-width: 560px; }

.rg-vide-etat { max-width: 760px; padding: 32px; text-align: center; }
.rg-vide-etat > svg { color: var(--rg-vert); }
.rg-vide-etat h2 { margin: 14px 0 10px; font-size: 1.125rem; }
.rg-vide-etat p { margin: 0 auto 12px; max-width: 60ch; color: var(--doux); line-height: 1.6; }
.rg-vide-etat .btn { margin-top: 8px; }

.rg-droit--off { opacity: 0.6; }
.rg-droit button[disabled] { cursor: not-allowed; filter: none; }
.rg-droit-lien { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding: 11px 14px;
  border-radius: 8px; color: var(--c); background: var(--f); font-size: 0.8125rem; font-weight: 500; text-decoration: none; }
.rg-droit-lien:hover { filter: brightness(0.96); }

.rg-danger { margin: 18px 0; border: 1px solid var(--rg-rouge); }
.rg-danger .carte-tete svg { color: var(--rg-rouge); }
.rg-consequences { margin: 0 0 18px; padding-left: 20px; line-height: 1.6; }
.rg-consequences li { margin-bottom: 6px; }
.rg-champ-mdp { display: block; max-width: 360px; margin-bottom: 12px; }
.rg-champ-mdp span { display: block; margin-bottom: 6px; font-weight: 600; }
.rg-champ-mdp input { width: 100%; padding: 10px 12px; border: 1px solid var(--bord); border-radius: 8px; font: inherit; background: transparent; color: inherit; }
.rg-coche { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.rg-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.rg-btn-danger { border: 0; color: #ffffff; background: var(--rg-rouge); font-weight: 600; }
.rg-btn-danger:hover { filter: brightness(0.95); }
.rg-btn-danger[disabled] { opacity: 0.6; cursor: progress; }

.rg-verif { margin-top: 16px; padding: 14px 16px; border-radius: 12px; }
.rg-verif--ok { background: var(--rg-vert-fond); }
.rg-verif--ko { background: var(--rg-rouge-fond); }
.rg-verif h3 { margin: 0 0 10px; font-size: 0.9375rem; }
.rg-verif ul { margin: 0 0 10px; padding: 0; list-style: none; }
.rg-verif li { display: flex; align-items: baseline; gap: 6px; margin-bottom: 6px; flex-wrap: wrap; }
.rg-verif li svg { flex: none; align-self: center; color: var(--rg-vert); }
.rg-verif--ko li svg { color: var(--rg-rouge); }
.rg-verif small { color: var(--doux); word-break: break-all; }
.rg-verif p { margin: 0; color: var(--doux); font-size: 0.8125rem; line-height: 1.5; }

/* --- Rubrique Sociétés (assets/js/societes.js) ---------------------------- */
.so-tete { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.so-tete h1 { margin: 0 0 6px; font-size: 1.5rem; }
.so-tete p { margin: 0 0 10px; color: var(--doux); }
.so-niveau { display: inline-block; padding: 5px 10px; border-radius: 999px; font-size: 0.8125rem; font-weight: 600; color: var(--rg-gris); background: var(--rg-gris-fond); }
.so-niveau--1 { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.so-niveau--2 { color: var(--rg-violet); background: var(--rg-violet-fond); }
.so-niveau--3 { color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.so-carte { display: flex; gap: 14px; padding: 18px; color: inherit; text-decoration: none; }
.so-carte h2 { margin: 0 0 4px; font-size: 1rem; }
.so-carte p { margin: 0 0 10px; color: var(--doux); font-size: 0.8125rem; }
.so-pays { flex: none; display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; font-weight: 800; color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-vide, .so-form, .so-suite { padding: 22px; margin-bottom: 18px; }
.so-vide p, .so-form > p, .so-suite p, .so-intro { color: var(--doux); line-height: 1.6; }
.so-champs { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin: 14px 0; }
.so-champs label span { display: block; margin-bottom: 6px; font-weight: 600; }
.so-champs select, .so-champs input { width: 100%; padding: 10px 12px; border: 1px solid var(--bord); border-radius: 8px; font: inherit; color: inherit; background: transparent; }
.so-qualite { display: flex; flex-wrap: wrap; gap: 18px; margin: 0 0 14px; padding: 0; border: 0; }
.so-qualite legend { margin-bottom: 8px; font-weight: 600; }
.so-qualite label { display: flex; align-items: center; gap: 8px; }
.so-message { margin: 0 0 14px; padding: 12px 14px; border-radius: 10px; color: var(--rg-rouge); background: var(--rg-rouge-fond); font-weight: 600; }
.so-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.so-deux { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(320px, 1.6fr); gap: 18px; margin-bottom: 18px; }
.so-deux > .carte { padding: 20px; }
.so-echelle { margin: 0; padding: 0; list-style: none; }
.so-echelle li { position: relative; padding: 0 0 16px 22px; color: var(--doux); }
.so-echelle li::before { content: ""; position: absolute; left: 0; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: var(--rg-gris-fond); box-shadow: 0 0 0 2px var(--rg-gris); }
.so-echelle li.so-fait { color: inherit; }
.so-echelle li.so-fait::before { background: var(--vert); box-shadow: 0 0 0 2px var(--vert); }
.so-echelle b { display: block; }
.so-echelle small { display: block; margin-top: 3px; line-height: 1.5; }
.so-verif { margin: 12px 0 0; padding: 12px 14px; border-radius: 10px; font-weight: 600; }
.so-verif--ok { color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-verif--ko { color: var(--rg-rouge); background: var(--rg-rouge-fond); }
.so-attente { color: var(--doux); }
@media (max-width: 900px) { .so-deux { grid-template-columns: 1fr; } }
.so-etat { margin: 0; padding: 12px 14px; border-radius: 10px; font-weight: 600; }
.so-etat--attente { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.so-champs input[type=file] { padding: 8px; }

/* --- Sociétés, d'après les maquettes (v2) ---------------------------------- */
.so-bandeau { position: relative; }
.so-bandeau-btn { position: relative; z-index: 2; margin-left: auto; align-self: center; white-space: nowrap; }
.so-outils { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 16px; }
.so-cherche { display: flex; align-items: center; gap: 8px; flex: 1 1 260px; padding: 9px 12px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); }
.so-cherche input { flex: 1; border: 0; outline: 0; font: inherit; color: inherit; background: transparent; }
.so-outils select { padding: 9px 12px; border: 1px solid var(--bord); border-radius: 10px; font: inherit; color: inherit; background: var(--carte); }
.so-vues { display: flex; gap: 4px; margin-left: auto; }
.so-vues button { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid var(--bord); border-radius: 9px; color: var(--doux); background: var(--carte); }
.so-vues button[aria-pressed="true"] { color: #fff; background: var(--vert); border-color: var(--vert); }
.so-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; margin-bottom: 18px; }
.so-grille--liste { grid-template-columns: 1fr; }
.so-carte2 { display: flex; flex-direction: column; gap: 14px; padding: 18px; }
.so-carte2-tete { display: flex; gap: 14px; align-items: flex-start; }
.so-carte2-tete > div { flex: 1; min-width: 0; }
.so-carte2 h2 { margin: 0 0 4px; font-size: 1rem; }
.so-carte2 p { margin: 0 0 3px; color: var(--doux); font-size: 0.8125rem; }
.so-logo { flex: none; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 12px; color: #fff; font-weight: 800; font-size: 1.05rem; letter-spacing: 0.5px; }
.so-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; font-size: 0.75rem; font-weight: 600; white-space: nowrap; }
.so-badge--ok { color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-badge--cours { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.so-badge--requise { color: var(--rg-orange); background: var(--rg-orange-fond); }
.so-badge--or { color: #8a5a00; background: #fff3d1; }
.so-role { display: flex; gap: 12px; align-items: center; padding: 12px 14px; border-radius: 12px; background: var(--rg-gris-fond); }
.so-role small { display: block; color: var(--doux); font-size: 0.75rem; }
.so-role small svg { vertical-align: -3px; color: var(--rg-vert); }
.so-role b { display: block; margin: 2px 0; }
.so-carte2-pied { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.so-carte2-pied .btn { justify-content: center; }
.so-ajout { display: flex; align-items: center; gap: 16px; padding: 18px 22px; }
.so-ajout > div { flex: 1; }
.so-ajout h2 { margin: 0 0 4px; font-size: 1rem; }
.so-ajout p { margin: 0; color: var(--doux); }
.so-ajout-plus { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; color: var(--rg-vert); background: var(--rg-vert-fond); }

.so-etapes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin: 0 0 18px; padding: 0; list-style: none; }
.so-etapes li { display: flex; gap: 10px; align-items: center; color: var(--doux); }
.so-etapes li > span { flex: none; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; font-weight: 700; background: var(--rg-gris-fond); }
.so-etapes li.ici > span, .so-etapes li.fait > span { color: #fff; background: var(--vert); }
.so-etapes li.ici, .so-etapes li.fait { color: inherit; }
.so-etapes b { display: block; }
.so-etapes small { display: block; font-size: 0.75rem; color: var(--doux); }

.so-deux2 { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(340px, 1.15fr); gap: 18px; margin-bottom: 18px; }
.so-deux2--large { grid-template-columns: minmax(340px, 1.5fr) minmax(300px, 1fr); }
.so-deux2 > .carte, .so-colonne > .carte, .so-trois-col > .carte, .so-panneau, .so-pourquoi { padding: 22px; }
.so-colonne { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.so h2 { display: flex; align-items: center; gap: 10px; }
.so-carte-form > p, .so-methodes > p, .so-panneau > p { color: var(--doux); line-height: 1.6; }
.so-champ { display: block; margin-bottom: 14px; }
.so-champ span { display: block; margin-bottom: 6px; font-weight: 600; }
.so-champ select, .so-champ input { width: 100%; padding: 11px 12px; border: 1px solid var(--bord); border-radius: 9px; font: inherit; color: inherit; background: transparent; }
.so-plein-large { width: 100%; justify-content: center; }
.so-note { display: flex; gap: 8px; align-items: flex-start; margin: 14px 0 0; color: var(--doux); font-size: 0.8125rem; line-height: 1.5; }
.so-note svg { flex: none; color: var(--rg-bleu); }
.so-vide-res { display: grid; place-items: center; align-content: center; gap: 10px; min-height: 280px; color: var(--doux); text-align: center; }
.so-res-tete { display: flex; gap: 12px; align-items: center; margin: -22px -22px 16px; padding: 16px 22px; background: var(--rg-vert-fond); border-radius: 14px 14px 0 0; }
.so-res-tete svg { color: var(--rg-vert); flex: none; }
.so-res-tete h2 { margin: 0; }
.so-res-tete p { margin: 2px 0 0; color: var(--doux); font-size: 0.8125rem; }
.so-ident { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.so-ident > div { flex: 1; }
.so-ident b { display: block; font-size: 1.05rem; }
.so-ident small { color: var(--doux); }
.so-dl { display: grid; grid-template-columns: minmax(130px, 0.8fr) 1.6fr; gap: 9px 14px; margin: 0 0 12px; font-size: 0.875rem; }
.so-dl dt { color: var(--doux); }
.so-dl dd { margin: 0; overflow-wrap: anywhere; }
.so-dl small { color: var(--doux); }
.so-dl--court { grid-template-columns: minmax(110px, 0.7fr) 1.3fr; }
.so-brut { margin: 8px 0 12px; border: 1px solid var(--bord); border-radius: 10px; }
.so-brut summary { display: flex; align-items: center; gap: 8px; padding: 10px 12px; cursor: pointer; font-weight: 600; }
.so-brut pre { max-height: 260px; margin: 0; padding: 12px; overflow: auto; font-size: 0.72rem; background: var(--rg-gris-fond); border-radius: 0 0 10px 10px; }
.so-source { margin: 0 0 14px; color: var(--doux); font-size: 0.75rem; line-height: 1.6; }
.so-res-pied { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.so-cest { padding: 13px 22px; }
.so-confirme { display: flex; gap: 10px; align-items: center; padding: 12px 14px; border-radius: 10px; color: var(--rg-vert); background: var(--rg-vert-fond); font-weight: 600; }
.so-doc { display: flex; align-items: center; gap: 10px; padding: 11px 12px; margin-bottom: 8px; border: 1px solid var(--bord); border-radius: 10px; color: inherit; text-decoration: none; font-size: 0.875rem; }
.so-doc span { flex: 1; }
.so-pied-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 0 18px; }
.so-retour, .so-suivant { display: flex; align-items: center; gap: 12px; padding: 12px 18px; text-align: left; }
.so-retour b, .so-suivant b { display: block; }
.so-retour small, .so-suivant small { display: block; font-size: 0.75rem; opacity: 0.8; }
.so-trois-col { display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(280px, 1fr); gap: 18px; margin-bottom: 18px; align-items: start; }
.so-methodes-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 14px; }
.so-methode { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 18px; border: 1px solid var(--bord); box-shadow: none; }
.so-methode--reco { border: 2px solid var(--vert); }
.so-methode--off { opacity: 0.72; }
.so-methode h3 { margin: 0; font-size: 1rem; }
.so-methode p { margin: 0; color: var(--doux); font-size: 0.8125rem; line-height: 1.55; flex: 1; }
.so-methode .btn { justify-content: center; }
.so-reco, .so-bientot { position: absolute; top: 14px; right: 14px; padding: 3px 9px; border-radius: 999px; font-size: 0.72rem; font-weight: 600; color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-bientot { color: var(--rg-gris); background: var(--rg-gris-fond); }
.so-bientot--inline { position: static; display: inline-block; }
.so-methode-ico { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 12px; color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-methode-ico--signature { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.so-methode-ico--invitation { color: var(--rg-violet); background: var(--rg-violet-fond); }
.so-points { margin: 0; padding: 10px 12px; list-style: none; border-radius: 10px; background: var(--rg-vert-fond); font-size: 0.8125rem; }
.so-points li { display: flex; gap: 7px; align-items: center; margin: 3px 0; }
.so-points svg { flex: none; color: var(--rg-vert); }
.so-points--signature { background: var(--rg-bleu-fond); }
.so-points--signature svg { color: var(--rg-bleu); }
.so-points--invitation { background: var(--rg-violet-fond); }
.so-points--invitation svg { color: var(--rg-violet); }
.so-aside h2 { font-size: 1rem; margin: 0; }
.so-panneau { margin-bottom: 18px; border: 2px solid var(--vert); }
.so-reps { display: flex; flex-direction: column; gap: 8px; margin: 0 0 14px; padding: 0; border: 0; }
.so-reps label { display: flex; gap: 8px; align-items: baseline; padding: 10px 12px; border: 1px solid var(--bord); border-radius: 10px; }
.so-reps small { color: var(--doux); }
.so-lien { margin: 0 0 12px; padding: 0; border: 0; color: var(--accent, var(--rg-vert)); background: none; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }
.so-pourquoi { display: flex; gap: 14px; align-items: flex-start; margin-bottom: 18px; color: var(--texte); background: var(--rg-bleu-fond); }
.so-pourquoi svg { flex: none; color: var(--rg-bleu); }
.so-pourquoi h3 { margin: 0 0 4px; }
.so-pourquoi p { margin: 0; color: var(--doux); line-height: 1.55; }
.so-fini { display: flex; gap: 18px; align-items: flex-start; padding: 22px; }
.so-fini > svg { flex: none; color: var(--rg-vert); }
.so-fini--cours > svg { color: var(--rg-bleu); }
.so-fini > div { flex: 1; min-width: 0; }
.so-fini h2 { margin: 0 0 8px; }
.so-fini p { color: var(--doux); line-height: 1.6; }
.so-actions2 { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.so-role-grand { display: flex; gap: 18px; align-items: flex-start; margin-top: 14px; padding: 18px; border: 1px solid var(--bord); border-radius: 14px; }
.so-role-grand h3 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 8px; }
.so-illu { flex: none; display: grid; place-items: center; width: 120px; height: 120px; border-radius: 18px; color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-suites, .so-preuve { padding: 22px; }
.so-suites-grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.so-suites-grille > div { display: flex; flex-direction: column; gap: 6px; padding: 14px; border: 1px solid var(--bord); border-radius: 12px; }
.so-suites-grille svg { color: var(--rg-bleu); }
.so-suites-grille h3 { margin: 0; font-size: 0.9375rem; }
.so-suites-grille p { margin: 0; color: var(--doux); font-size: 0.8125rem; flex: 1; }
@media (max-width: 1100px) { .so-deux2, .so-deux2--large, .so-trois-col { grid-template-columns: 1fr; } .so-etapes { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .so-carte2-pied { grid-template-columns: 1fr; } .so-etapes { grid-template-columns: 1fr; } .so-role-grand { flex-direction: column; } .so-bandeau-btn { margin-left: 0; } }
/* corrections v2.1 : barre d'outils sur une ligne, liens-boutons sans soulignement */
.so a.btn, .so .so-doc, .so-carte2-pied a { text-decoration: none; }
.so-outils .so-cherche { width: auto; }
.so-outils select { width: auto; flex: 0 0 auto; min-width: 160px; }
.so-outils > * { margin: 0; }
.so-role small { display: flex; align-items: center; gap: 5px; }
.so-carte2-tete .so-badge { align-self: flex-start; }

.so a.btn:not(.btn--plein) { color: var(--texte); }
.so .btn--plein small, .so-suivant small { color: rgba(255, 255, 255, 0.88); opacity: 1; }
.so-consent { margin: 14px 0; padding: 14px 16px; border: 1px solid var(--bord); border-radius: 12px; background: var(--rg-gris-fond); }
.so-consent label { display: flex; gap: 10px; align-items: flex-start; line-height: 1.5; cursor: pointer; }
.so-consent input { flex: none; width: 18px; height: 18px; margin-top: 3px; accent-color: var(--vert); }
.so-consent details { margin: 8px 0 0 28px; color: var(--doux); font-size: 0.8125rem; }
.so-consent summary { cursor: pointer; font-weight: 600; }
.so-consent ul { margin: 8px 0 0; padding-left: 18px; line-height: 1.55; }

/* Activité et preuves : la liste défile dans sa carte, la suite se charge au défilement. */
.rg-activite { max-height: calc(100vh - 330px); min-height: 240px; overflow-y: auto; padding-right: 6px; }
.rg-plus { display: flex; align-items: center; gap: 8px; margin: 4px auto 12px; }
.rg-fin { text-align: center; margin: 4px 0 12px; }

/* Fiche d'une structure : onglets au-dessus de la colonne de gauche. */
.so-onglets { flex: none; }

/* L'icône de la structure : une image, ou les initiales ; changer / retirer au survol. */
.so-logo--image { object-fit: cover; background: var(--carte); border: 1px solid var(--bord); }
.so-logo-boite { position: relative; flex: none; display: inline-block; }
.so-logo-act { position: absolute; right: -8px; bottom: -8px; display: grid; place-items: center; width: 26px; height: 26px;
  padding: 0; border: 2px solid var(--carte); border-radius: 50%; background: var(--vert-fonce); color: #fff; cursor: pointer;
  opacity: 0; transform: scale(.85); transition: opacity 140ms ease, transform 140ms ease; }
.so-logo-act--retirer { right: auto; left: -8px; background: #b0122f; }
.so-logo-boite:hover .so-logo-act, .so-logo-boite:focus-within .so-logo-act { opacity: 1; transform: none; }

/* « Informations sur la structure » rétractable : repliée, une bande étroite. */
.so-aside-tete { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; }
.so-aside-tete h2 { flex: 1; min-width: 0; }
.so-plier { flex: none; display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 1px solid var(--bord);
  border-radius: 9px; background: var(--carte); color: var(--doux); cursor: pointer; }
.so-plier:hover, .so-plier:focus-visible { color: var(--vert-fonce); border-color: var(--vert); }
.so-trois-col:has(> .so-aside--repliee) { grid-template-columns: minmax(0, 1fr) 58px; }
.so-aside--repliee { padding: 0 !important; align-self: stretch; }
.so-deplier { display: flex; flex-direction: column; align-items: center; gap: 12px; width: 100%; height: 100%; min-height: 200px;
  padding: 16px 0; border: 0; border-radius: inherit; background: none; color: var(--vert-fonce); cursor: pointer; }
.so-deplier:hover, .so-deplier:focus-visible { background: var(--pastille); }
.so-deplier-texte { writing-mode: vertical-rl; transform: rotate(180deg); font-weight: 700; color: var(--texte); letter-spacing: .02em; }
@media (max-width: 1100px) {
  .so-trois-col:has(> .so-aside--repliee) { grid-template-columns: 1fr; }
  .so-deplier { flex-direction: row; justify-content: center; min-height: 0; padding: 12px; }
  .so-deplier-texte { writing-mode: horizontal-tb; transform: none; }
}

/* --- Membres d'une structure (#societes/<id>/membres) ---------------------- */

.so-suites-grille > .so-suite-lien { display: flex; flex-direction: column; gap: 6px; padding: 14px; border: 1px solid var(--bord); border-radius: 12px; color: inherit; text-decoration: none; transition: border-color 120ms ease, box-shadow 120ms ease; }
.so-suite-lien:hover, .so-suite-lien:focus-visible { border-color: var(--vert); box-shadow: 0 6px 18px rgba(20, 80, 20, 0.12); }
.so-suite-lien .btn { align-self: flex-start; }

.so-compte { margin-left: 6px; padding: 0 7px; border-radius: 999px; background: var(--rg-gris-fond); color: var(--rg-gris); font-style: normal; font-size: 0.75rem; font-weight: 700; }
.onglets button[aria-selected="true"] .so-compte { background: rgba(255, 255, 255, 0.28); color: #ffffff; }

.so-membres .so-mb-carte { display: flex; flex-direction: column; padding: 0 !important; }
.so-mb-cherche { flex: none; position: sticky; top: 0; z-index: 2; margin: 0; padding: 14px 18px; border: 0; border-bottom: 1px solid var(--bord); border-radius: 0; background: var(--carte); }
.so-mb-liste { flex: none; padding: 4px 10px 10px; }
.so-mb-ligne { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto auto auto; align-items: center; gap: 12px; padding: 10px 8px; border-bottom: 1px solid var(--bord); }
.so-mb-ligne[hidden] { display: none; }
.so-mb-ligne--moi { border-radius: 10px; background: var(--rg-ici); }
.so-mb-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; color: #ffffff; font-size: 0.8125rem; font-weight: 700; }
.so-mb-qui { min-width: 0; }
.so-mb-qui b, .so-mb-qui small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.so-mb-vous { margin-left: 8px; padding: 1px 8px; border-radius: 999px; background: var(--vert); color: #ffffff; font-size: 0.6875rem; font-weight: 700; vertical-align: 1px; }
.rg .so-mb-depuis { white-space: nowrap; }
.so-role-pastille { display: inline-block; padding: 3px 11px; border-radius: 999px; font-size: 0.78rem; font-weight: 600; white-space: nowrap; }
.so-role-pastille--representant { color: var(--rg-orange); background: var(--rg-orange-fond); }
.so-role-pastille--admin { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.so-role-pastille--membre { color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-mb-attente { display: inline-flex; align-items: center; gap: 5px; color: var(--rg-orange); font-size: 0.8125rem; white-space: nowrap; }
.so-mb-act { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.so-mb-role { padding: 6px 8px; border: 1px solid var(--champ-bord); border-radius: 8px; background: var(--champ); color: var(--texte); font: inherit; }
.so-mb-icone { display: grid; place-items: center; flex: none; width: 34px; height: 34px; border: 1px solid var(--bord); border-radius: 8px; background: none; color: var(--doux); cursor: pointer; }
.so-mb-icone:hover, .so-mb-icone:focus-visible { color: var(--rg-rouge); border-color: var(--rg-rouge); }
.so-btn-danger { border-color: var(--rg-rouge); background: var(--rg-rouge); color: #ffffff; }
.so-mb-vide { margin: 0; padding: 30px 12px; text-align: center; color: var(--doux); }
.so-mb-vide[hidden] { display: none; }
.so-mb-proposer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin: 12px 18px 4px; padding: 14px; border: 1.5px dashed var(--vert); border-radius: 12px; background: var(--rg-ici); }
.so-mb-proposer > svg { color: var(--vert); }
.so-mb-proposer > div { flex: 1 1 200px; min-width: 0; overflow-wrap: anywhere; }

.so-mb-aside { padding: 22px; }
.so-mb-aside h2 { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; font-size: 1.0625rem; }
.so-mb-aside h3 { margin: 20px 0 8px; font-size: 0.9375rem; }
.so-mb-form { display: grid; gap: 12px; }
.so-mb-form label span { display: block; margin-bottom: 5px; font-size: 0.8125rem; font-weight: 600; }
.so-mb-form input, .so-mb-form select { width: 100%; padding: 10px 12px; border: 1px solid var(--champ-bord); border-radius: 10px; background: var(--champ); color: var(--texte); font: inherit; }
.so-mb-essai { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: var(--rg-orange-fond); font-size: 0.8125rem; overflow-wrap: anywhere; }
.so-mb-voit { margin: 0 0 8px; }

/* Les relations d'un contact (PLAN_CONTACTS.md) : une pastille par relation, une
   couleur par famille ; les filtres au-dessus de la liste. */
.so-nats { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.so-nat { display: inline-flex; align-items: center; gap: 3px; padding: 2px 9px; border-radius: 999px; font-size: 0.72rem; font-weight: 600; white-space: nowrap; color: var(--rg-gris); background: var(--rg-gris-fond); }
.so-nat--4, .so-nat--8, .so-nat--6 { color: var(--rg-vert); background: var(--rg-vert-fond); }
.so-nat--2 { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.so-nat--9, .so-nat--10 { color: var(--rg-violet); background: var(--rg-violet-fond); }
.so-nat--11, .so-nat--12 { color: var(--rg-rose); background: var(--rg-rose-fond); }
.so-nat--7 { color: var(--rg-orange); background: var(--rg-orange-fond); }
.so-nat-x { display: grid; place-items: center; width: 16px; height: 16px; margin-right: -4px; padding: 0; border: 0; border-radius: 50%; background: none; color: inherit; cursor: pointer; opacity: 0.7; }
.so-nat-x:hover, .so-nat-x:focus-visible { opacity: 1; background: rgba(0, 0, 0, 0.08); }
.so-nat-ajout { max-width: 190px; }
/* La fenêtre « Relations » : une ou plusieurs relations, cochées en pastilles. */
.so-rel { width: min(560px, 100%); }
.so-rel-corps { padding: 18px 22px; overflow-y: auto; }
.so-rel-corps > .so-note { margin: 0 0 14px; }
.so-rel-rep { margin: 0 0 14px; padding: 10px 12px; border-radius: 10px; background: var(--rg-vert-fond); font-size: 0.8125rem; line-height: 1.5; }
.so-rel-groupe { margin: 0 0 14px; padding: 12px 14px; border: 1px solid var(--bord); border-radius: 12px; }
.so-rel-groupe legend { padding: 0 6px; font-weight: 700; font-size: 0.875rem; }
.so-rel-groupe > small { display: block; margin: 0 0 10px; color: var(--doux); font-size: 0.75rem; }
.so-rel-cases { display: flex; flex-wrap: wrap; gap: 8px; }
.so-rel-case { position: relative; cursor: pointer; }
.so-rel-case input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.so-rel-case .so-nat { padding: 7px 14px; font-size: 0.875rem; border: 2px solid transparent; opacity: 0.55; transition: opacity 0.15s, border-color 0.15s; }
.so-rel-case input:checked + .so-nat { opacity: 1; border-color: currentColor; }
.so-rel-case input:checked + .so-nat::before { content: "\2713"; margin-right: 6px; font-weight: 800; }
.so-rel-case input:focus-visible + .so-nat { outline: 2px solid var(--vert); outline-offset: 2px; }
.so-rel-case input:disabled + .so-nat { cursor: default; }
.so-rel-msg { min-height: 1.3em; margin: 4px 0 0; font-size: 0.8125rem; }
.so-rel-msg--erreur { color: var(--rg-rouge); }
.so-rel-rond { display: inline-block; width: 14px; height: 14px; margin-right: 8px; border: 2px solid rgba(255, 255, 255, 0.45); border-top-color: #ffffff; border-radius: 50%; vertical-align: -2px; animation: so-rel-tourne 0.8s linear infinite; }
@keyframes so-rel-tourne { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .so-rel-rond { animation-duration: 2.4s; } }
.so-rel-btn { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.so-mb-ligne--occupee { opacity: 0.55; pointer-events: none; transition: opacity 0.15s; }
.so-filtres-nat { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 18px 4px; }
.so-filtre-nat { padding: 5px 12px; border: 1px solid var(--bord); border-radius: 999px; background: var(--carte); color: var(--texte); font: inherit; font-size: 0.8125rem; font-weight: 600; cursor: pointer; }
.so-filtre-nat[aria-pressed="true"] { border-color: var(--vert); background: var(--vert); color: #ffffff; }
.so-filtre-nat[aria-pressed="true"] .so-compte { background: rgba(255, 255, 255, 0.28); color: #ffffff; }
.so-filtre-note { margin: 6px 18px 0; }
.so-case { display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 4px 8px; }
.so-case[hidden], .so-mb-form label[hidden] { display: none; }
.so-case input { width: auto !important; margin-top: 3px; }
.so-case .so-mb-aide { grid-column: 1 / -1; }
.so-mb-form .so-mb-aide { display: block; margin-top: 4px; font-size: 0.75rem; color: var(--doux); }

@media (max-width: 700px) {
  .so-mb-ligne { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .rg .so-mb-depuis, .so-mb-attente { display: none; }
  .so-mb-act { grid-column: 2 / -1; justify-content: flex-start; }
}
@media (prefers-reduced-motion: reduce) { .so-suite-lien { transition: none; } }
.so-mb-aide { display: block; margin-top: 5px; color: var(--doux); font-size: 0.78rem; }
.so-mb-langue { margin-left: 4px; padding: 1px 7px; border-radius: 999px; background: var(--rg-gris-fond); color: var(--rg-gris); font-size: 0.72rem; }
.so-mb-proposer .so-mb-role { flex: none; }
.so-langue-choix { display: block; }
.so-langue-choix .pays-bouton { min-height: 42px; }
.so-langue-nom { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.so-langue-nom small, .so-langue-panel .cty-name small { display: inline; margin-left: 4px; color: var(--doux); font-size: 0.78rem; }
.so-langue-groupe { margin: 8px 10px 4px; color: var(--doux); font-size: 0.72rem; font-weight: 700; }
.so-langue-groupe[hidden] { display: none; }
.so-langue-repli { margin-left: auto; padding-left: 8px; color: var(--doux); font-size: 0.72rem; white-space: nowrap; }
.so-mb-langue .fi { width: 14px; height: 10.5px; border-radius: 2px; vertical-align: -1px; }
.so-mb-proposer .so-langue-choix { flex: 0 1 220px; min-width: 170px; }
.so-mb-proposer > .so-mb-role { flex: 0 0 auto; width: auto; }

/* --- Journal du registre : une pastille par type d'opération ---------------- */
.rg-pas-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
.rg-type { display: inline-flex; align-items: center; gap: 5px; flex: none; padding: 2px 10px 2px 7px; border-radius: 999px; font-size: 0.75rem; font-weight: 600; line-height: 1.5; white-space: nowrap; }
.rg-type svg { flex: none; }
.rg-type--vert { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rg-type--bleu { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.rg-type--violet { color: var(--rg-violet); background: var(--rg-violet-fond); }
.rg-type--rose { color: var(--rg-rose); background: var(--rg-rose-fond); }
.rg-type--orange { color: var(--rg-orange); background: var(--rg-orange-fond); }
.rg-type--rouge { color: var(--rg-rouge); background: var(--rg-rouge-fond); }
.rg-type--gris { color: var(--rg-gris); background: var(--rg-gris-fond); }
.rg-pas--violet::before { background: var(--rg-violet); box-shadow: 0 0 0 2px var(--rg-violet); }
.rg-pas--rose::before { background: var(--rg-rose); box-shadow: 0 0 0 2px var(--rg-rose); }
.rg-pas--orange::before { background: var(--rg-orange); box-shadow: 0 0 0 2px var(--rg-orange); }
.rg-pas--rouge::before { background: var(--rg-rouge); box-shadow: 0 0 0 2px var(--rg-rouge); }
.rg-pas--gris::before { background: var(--rg-gris); box-shadow: 0 0 0 2px var(--rg-gris); }
.rg-pas--bleu::before { background: var(--rg-bleu); box-shadow: 0 0 0 2px var(--rg-bleu); }

/* ==========================================================================
   Registre RGPD d'une société (#societes/<id>/rgpd, assets/js/registre.js)
   ========================================================================== */

.grille.rs { grid-template-columns: minmax(0, 1fr); }
.rs-colonne { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
@media (min-width: 1000px) and (min-height: 620px) {
  .zone--grille .rs-colonne { overflow: hidden !important; }
  .zone--grille .rs-colonne > * { flex: none; }
  .zone--grille .rs-colonne > .rs-panneau { flex: 1 1 0; min-height: 240px; overflow: auto; }
  /* Onglet avec tableau ou liste : titre, recherche, filtres et pied restent en place, seule la liste défile. */
  .zone--grille .rs-colonne > .rs-panneau:has(> .rs-table-boite, > .rs-au-liste) { display: flex; flex-direction: column; }
  .zone--grille .rs-panneau:has(> .rs-table-boite, > .rs-au-liste) > * { flex: none; }
  .zone--grille .rs-panneau > .rs-table-boite, .zone--grille .rs-panneau > .rs-au-liste { flex: 1 1 0; min-height: 84px; overflow: auto; scrollbar-gutter: stable; }
  .zone--grille .rs-panneau > .rs-au-liste { padding-top: 4px; }
  .zone--grille .rs-panneau > .rs-au-liste > .rg-histo { margin-bottom: 0; }
}
.rs .carte { padding: 20px 22px; }

.rs-tete-titre { display: flex; align-items: center; gap: 16px; margin-bottom: 16px; }
.rs-tete-titre h2 { font-size: 1.25rem; }
.rs-tete-titre p { margin: 2px 0 0; color: var(--doux); }
.rs-tete-titre .btn--plein { margin-left: auto; flex: none; }
.rs-tete-ic { display: grid; place-items: center; flex: none; width: 52px; height: 52px; border-radius: 14px; color: var(--rg-vert); background: var(--rg-vert-fond); }

.rs-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.rs-kpi { display: flex; align-items: flex-start; gap: 12px; padding: 14px; border: 1px solid var(--bord); border-radius: 12px; background: var(--carte); color: inherit; font: inherit; text-align: left; cursor: pointer; transition: box-shadow 120ms ease, border-color 120ms ease; }
.rs-kpi:hover, .rs-kpi:focus-visible { border-color: var(--vert); box-shadow: 0 6px 18px rgba(20, 80, 20, 0.1); }
.rs-kpi-ic { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 10px; }
.rs-kpi-texte { min-width: 0; }
.rs-kpi-texte b { display: block; font-size: 1.5rem; line-height: 1.15; font-weight: 700; }
.rs-kpi-texte span { display: block; font-weight: 600; }
.rs .rs-kpi-texte small { display: block; margin-top: 2px; font-size: 0.75rem; }
.rs-kpi--vert .rs-kpi-ic { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rs-kpi--vert b { color: var(--rg-vert); }
.rs-kpi--orange .rs-kpi-ic { color: var(--rg-orange); background: var(--rg-orange-fond); }
.rs-kpi--orange b { color: var(--rg-orange); }
.rs-kpi--bleu .rs-kpi-ic { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.rs-kpi--bleu b { color: var(--rg-bleu); }
.rs-kpi--violet .rs-kpi-ic { color: var(--rg-violet); background: var(--rg-violet-fond); }
.rs-kpi--violet b { color: var(--rg-violet); }
.rs-kpi--rose .rs-kpi-ic { color: var(--rg-rose); background: var(--rg-rose-fond); }
.rs-kpi--rose b { color: var(--rg-rose); }
.rs-kpi--gris .rs-kpi-ic { color: var(--rg-gris); background: var(--rg-gris-fond); }
.rs-kpi--gris b { color: var(--rg-gris); }

.rs-onglets { display: flex; gap: 4px; padding: 4px; border-radius: 11px; background: var(--carte); box-shadow: var(--ombre); overflow-x: auto; scrollbar-width: none; }
.rs-onglets button { display: inline-flex; align-items: center; gap: 7px; flex: none; padding: 9px 14px; border: 0; border-radius: 8px; background: none; color: var(--doux); font: inherit; font-weight: 600; white-space: nowrap; cursor: pointer; }
.rs-onglets button:hover { color: var(--texte); }
.rs-onglets button[aria-selected="true"] { color: #fff; background: linear-gradient(90deg, #3fa31d, #58c624); }

.rs-outils { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.rs-outils .rs-cherche { flex: 1 1 260px; }
.rs-outils select { padding: 9px 12px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); color: var(--texte); font: inherit; }
.rs-table-boite { overflow-x: auto; }
.rs-table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }
.rs-table th { position: sticky; top: 0; z-index: 1; padding: 10px 12px; background: var(--rg-tete); color: var(--doux); font-weight: 500; text-align: left; white-space: nowrap; }
.rs-table td { padding: 11px 12px; border-top: 1px solid var(--bord); vertical-align: middle; }
.rs-ligne { cursor: pointer; }
.rs-ligne:hover, .rs-ligne:focus-visible { background: var(--rg-tete); outline: none; }
.rs-ligne--archive { opacity: 0.62; }
.rs-nom { display: flex; align-items: center; gap: 10px; min-width: 180px; }
.rs-nom svg { flex: none; color: var(--rg-bleu); }
.rs-nom b { font-weight: 600; }
.rs-maj { white-space: nowrap; color: var(--doux); }
.rs-vide-ligne { padding: 30px 12px; text-align: center; color: var(--doux); }
.rs-pied { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; color: var(--doux); font-size: 0.8125rem; }
.rs-pages { display: inline-flex; align-items: center; gap: 8px; }

.rs-base, .rs-statut, .rs-sensible { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border-radius: 999px; font-size: 0.75rem; font-weight: 600; white-space: nowrap; }
.rs-base--rose { color: var(--rg-rouge); background: var(--rg-rouge-fond); }
.rs-base--violet { color: var(--rg-violet); background: var(--rg-violet-fond); }
.rs-base--vert { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rs-base--orange { color: var(--rg-orange); background: var(--rg-orange-fond); }
.rs-base--gris { color: var(--rg-gris); background: var(--rg-gris-fond); }
.rs-base--bleu { color: var(--rg-bleu); background: var(--rg-bleu-fond); }
.rs-statut--complet { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rs-statut--incomplet { color: var(--rg-orange); background: var(--rg-orange-fond); }
.rs-statut--archive { color: var(--rg-gris); background: var(--rg-gris-fond); }
.rs-sensible { margin-left: 8px; color: var(--rg-rouge); background: var(--rg-rouge-fond); }

.rs-vide { display: grid; justify-items: center; gap: 10px; padding: 48px 16px; text-align: center; }
.rs-vide > span { display: grid; place-items: center; width: 76px; height: 76px; border-radius: 20px; color: var(--rg-vert); background: var(--rg-vert-fond); }
.rs-vide p { max-width: 460px; margin: 0; color: var(--doux); }

.rs-ensemble { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.rs-bloc h3 { margin: 0 0 10px; font-size: 0.9375rem; }
.rs-barre { height: 8px; border-radius: 999px; background: var(--rg-gris-fond); overflow: hidden; }
.rs-barre i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #3fa31d, #58c624); }
.rs-liste { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.rs-liste li { display: flex; align-items: center; gap: 8px; }
.rs-lien { flex: 1; min-width: 0; padding: 8px 10px; border: 1px solid var(--bord); border-radius: 10px; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rs-lien:hover { border-color: var(--vert); }
.rs-lien b, .rs .rs-lien small { display: block; }
.rs-ok { display: flex; align-items: center; gap: 6px; color: var(--rg-vert); }
.rs-doux { color: var(--doux); }

.rs-cats-tete h3 { margin: 0 0 4px; font-size: 1rem; }
.rs-cats-tete p { margin: 0 0 14px; color: var(--doux); }
.rs-cats { display: grid; gap: 10px; }
.rs-cat { display: grid; grid-template-columns: minmax(180px, 280px) minmax(0, 1fr); gap: 12px; align-items: start; padding: 12px 14px; border: 1px solid var(--bord); border-radius: 12px; }
.rs-cat-tete b { font-weight: 600; }
.rs .rs-cat-tete small { display: block; margin-top: 2px; }
.rs-cat-liens { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rs .rs-cat-liens small { display: inline; margin-right: 4px; }
.rs-puce { padding: 3px 10px; border: 1px solid var(--bord); border-radius: 999px; background: var(--rg-tete); color: inherit; font: inherit; font-size: 0.8125rem; cursor: pointer; }
.rs-puce:hover { border-color: var(--vert); }

/* --- La fiche d'un traitement : un panneau latéral en étapes ----------------- */
.rs-voile { position: fixed; inset: 0; z-index: 12000; background: rgba(10, 30, 10, 0.38); }
.rs-fiche { position: fixed; top: 0; right: 0; bottom: 0; z-index: 12001; display: flex; flex-direction: column; width: min(980px, 100vw); background: var(--carte); box-shadow: -12px 0 40px rgba(0, 0, 0, 0.18); }
.rs-fiche-tete { display: flex; align-items: flex-start; gap: 12px; padding: 18px 22px; border-bottom: 1px solid var(--bord); }
.rs-fiche-tete > div { flex: 1; min-width: 0; }
.rs-fiche-tete h2 { margin: 0 0 8px; font-size: 1.2rem; overflow-wrap: anywhere; }
.rs-progression { display: flex; align-items: center; gap: 10px; max-width: 360px; }
.rs-progression .rs-barre { flex: 1; }
.rs-progression small { white-space: nowrap; color: var(--doux); }
.rs-icone { display: grid; place-items: center; flex: none; width: 38px; height: 38px; border: 1px solid var(--bord); border-radius: 10px; background: none; color: var(--doux); cursor: pointer; }
.rs-icone:hover { color: var(--texte); border-color: var(--texte); }
.rs-fiche-corps { flex: 1; min-height: 0; display: grid; grid-template-columns: 250px minmax(0, 1fr); }
.rs-etapes { display: flex; flex-direction: column; gap: 2px; padding: 14px 10px; border-right: 1px solid var(--bord); overflow-y: auto; }
.rs-etape { display: flex; align-items: center; gap: 10px; padding: 9px 10px; border: 0; border-radius: 9px; background: none; color: var(--doux); font: inherit; font-size: 0.875rem; text-align: left; cursor: pointer; }
.rs-etape i { display: grid; place-items: center; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--rg-gris-fond); color: var(--rg-gris); font-style: normal; font-size: 0.75rem; font-weight: 700; }
.rs-etape:hover { color: var(--texte); background: var(--rg-tete); }
.rs-etape.is-ici { color: var(--texte); font-weight: 600; background: var(--rg-ici); }
.rs-etape.is-ici i { background: var(--vert); color: #fff; }
.rs-etape.is-manque i { background: var(--rg-orange-fond); color: var(--rg-orange); }
.rs-fiche-etape { padding: 20px 24px; overflow-y: auto; }
.rs-fiche-etape h3 { margin: 0 0 14px; font-size: 1.05rem; }
.rs-form { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: 14px; }
.rs-champ { display: grid; gap: 5px; }
.rs-champ > span { font-weight: 600; font-size: 0.8125rem; }
.rs-fiche .rs-champ small { color: var(--doux); font-size: 0.75rem; }
.rs-fiche input[type="text"], .rs-fiche input[type="date"], .rs-fiche textarea, .rs-fiche select {
  width: 100%; padding: 9px 12px; border: 1px solid var(--champ-bord); border-radius: 10px; background: var(--champ); color: var(--texte); font: inherit; }
.rs-fiche textarea { resize: vertical; }
.rs-cases { margin: 0; padding: 0; border: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 6px 14px; }
.rs-cases legend { margin-bottom: 6px; padding: 0; font-weight: 600; font-size: 0.8125rem; }
.rs-cases label { display: flex; align-items: center; gap: 8px; font-size: 0.875rem; cursor: pointer; }
.rs-cases input { width: 17px; height: 17px; accent-color: var(--vert); }
.rs-cases--ligne { grid-template-columns: repeat(auto-fill, minmax(110px, 160px)); }
.rs-st { margin: 0; padding: 0; border: 0; display: grid; gap: 8px; }
.rs-st legend { margin-bottom: 6px; padding: 0; font-weight: 600; font-size: 0.8125rem; }
.rs-st-ligne { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 190px) auto; gap: 8px; }
.rs-st > .btn { justify-self: start; }
.rs-fiche-pied { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 22px; border-top: 1px solid var(--bord); }
.rs-espace { flex: 1; }
.rs-ro, .rs-note { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 14px; padding: 10px 12px; border-radius: 10px; font-size: 0.8125rem; }
.rs-ro { background: var(--rg-orange-fond); color: var(--rg-orange); }
.rs-note { background: var(--rg-bleu-fond); color: var(--rg-bleu); }
.rs-lien-texte { padding: 0; border: 0; background: none; color: inherit; font: inherit; font-weight: 700; text-decoration: underline; cursor: pointer; }
.rs-histo { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }
.rs-histo li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--bord); border-radius: 10px; }
.rs-histo li.is-lu { border-color: var(--rg-orange); }
.rs-histo li > div { flex: 1; min-width: 0; }
.rs-fiche .rs-histo small { display: block; color: var(--doux); }
.rs-histo code { font-size: 0.72rem; color: var(--doux); }

/* --- La bibliothèque de modèles ---------------------------------------------- */
.rs-modeles { position: fixed; z-index: 12001; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(1020px, calc(100vw - 24px)); max-height: calc(100vh - 40px); display: flex; flex-direction: column; border-radius: 16px; background: var(--carte); box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25); }
.rs-modeles .rs-fiche-tete p { margin: 0; color: var(--doux); }
.rs-modeles-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; padding: 18px 22px 22px; overflow-y: auto; }
.rs-modele { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 14px; border: 1px solid var(--bord); border-radius: 12px; background: var(--carte); color: inherit; font: inherit; text-align: left; cursor: pointer; }
.rs-modele svg { color: var(--rg-bleu); }
.rs-modele small { color: var(--doux); font-size: 0.8125rem; flex: 1; }
.rs-modele:hover, .rs-modele:focus-visible { border-color: var(--vert); box-shadow: 0 6px 18px rgba(20, 80, 20, 0.1); }
.rs-modele--vierge { border-style: dashed; }
.rs-modele--vierge svg { color: var(--vert); }
.so-mb-dpo { margin-left: 8px; padding: 1px 8px; border-radius: 999px; background: var(--rg-violet-fond); color: var(--rg-violet); font-size: 0.6875rem; font-weight: 700; vertical-align: 1px; }

@media (max-width: 1300px) {
  .rs-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rs-ensemble { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .rs-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rs-tete-titre { flex-wrap: wrap; }
  .rs-tete-titre .btn--plein { margin-left: 0; width: 100%; justify-content: center; }
  .rs-fiche-corps { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); }
  .rs-etapes { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--bord); }
  .rs-etape span { white-space: nowrap; }
  .rs-st-ligne { grid-template-columns: minmax(0, 1fr) auto; }
  .rs-cat { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .rs-kpi { transition: none; } }
.rs-outils select { width: auto; flex: 0 0 auto; min-width: 170px; }
.rs-outils .rs-cherche { width: auto; }

/* --- Registre RGPD, étape C : les raisons « à revoir », la revue -------------- */
.rs-raisons { margin: 0 0 14px; padding: 10px 12px; border-radius: 10px; list-style: none; display: grid; gap: 6px; background: var(--rg-orange-fond); color: var(--rg-orange); font-size: 0.8125rem; }
.rs-raisons li { display: flex; align-items: flex-start; gap: 8px; }
.rs-raisons svg { flex: none; margin-top: 1px; }
.rs-bloc-2 { margin-top: 18px !important; }
.rs-st-ligne { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 170px) auto auto; align-items: center; }
.rs-st-contrat { display: flex; align-items: center; gap: 6px; font-size: 0.8125rem; white-space: nowrap; cursor: pointer; }
.rs-st-contrat input { width: 17px; height: 17px; accent-color: var(--vert); }
.rs-lien small + small { margin-top: 2px; color: var(--rg-orange); }
@media (max-width: 760px) { .rs-st-ligne { grid-template-columns: minmax(0, 1fr) auto; } }

/* --- Activité et preuves : un seul défilement, celui de la liste ------------- */
@media (min-width: 1000px) and (min-height: 620px) {
  .zone--grille > .rg-activite-page > .rg-registre-carte { display: flex; flex-direction: column; overflow: hidden; }
  .zone--grille > .rg-activite-page > .rg-registre-carte > .rg-activite { flex: 1 1 0; min-height: 0; max-height: none; }
}
/* Colonnes empilées (écran moyen) : la vérification devient une bande compacte
   au-dessus de la liste ; la liste prend la hauteur restante. */
@media (min-width: 1000px) and (max-width: 1300px) and (min-height: 620px) {
  .zone--grille > .rg-activite-page { display: flex; flex-direction: column; gap: 14px; }
  .zone--grille > .rg-activite-page > .colonne { order: -1; flex: none; overflow: visible; max-height: none; }
  .zone--grille > .rg-activite-page > .rg-registre-carte { flex: 1 1 0; min-height: 0; }
  .rg-verif-carte { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; padding: 14px 20px !important; }
  .zone--grille > .rg-activite-page > .colonne > .rg-verif-carte { flex: none; min-height: 0; overflow: visible; }
  .rg-verif-carte .carte-tete { margin: 0; }
  .rg-verif-carte .carte-tete h2 { font-size: 1rem; }
  .rg-verif-carte > .rg-intro { flex: 1 1 320px; margin: 0; font-size: 0.8125rem; }
  .rg-verif-carte > .btn { width: auto; margin: 0; }
  .rg-verif-carte > :not(.carte-tete):not(.rg-intro):not(.btn) { flex: 1 0 100%; }
}

/* --- Registre RGPD, écran moyen : les six chiffres sur une ligne, icône et valeur */
@media (min-width: 761px) and (max-width: 1300px), (min-width: 761px) and (max-height: 920px) {
  .rs-kpis { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
  .rs-kpi { align-items: center; gap: 10px; padding: 9px 12px; }
  .rs-kpi-ic { width: 34px; height: 34px; border-radius: 9px; }
  .rs-kpi-ic svg { width: 19px; height: 19px; }
  .rs-kpi-texte span, .rs .rs-kpi-texte small { display: none; }
  .rs-kpi-texte b { font-size: 1.15rem; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .rs-tete-titre { margin-bottom: 12px; }
}

/* --- Registre RGPD, étape D : statuts, annuaire des sous-traitants, catégories */
.rs-statut--conforme { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rs-statut--a_revoir { color: var(--rg-orange); background: var(--rg-orange-fond); }
.rs-statut--retire { color: var(--rg-gris); background: var(--rg-gris-fond); }
.rs-outils > .btn--plein { flex: none; }
.rs-nom > span { display: grid; min-width: 0; }
.rs .rs-nom small { color: var(--doux); font-size: 0.75rem; }
.rs-pays { white-space: nowrap; }
.rs-pays .fi { margin-right: 4px; border-radius: 2px; }
.rs-puces { display: flex; flex-wrap: wrap; gap: 5px; }
.rs-puces .rs-puce { font-size: 0.75rem; padding: 2px 9px; }
.rs-cat-table td { vertical-align: top; }
.rs-cat-table .rs-nom { min-width: 150px; }
.rs-hors { margin-top: 16px; padding: 14px 16px; border: 1px dashed var(--rg-orange); border-radius: 12px; background: var(--rg-orange-fond); }
.rs-hors h4 { display: flex; align-items: center; gap: 6px; margin: 0 0 4px; color: var(--rg-orange); font-size: 0.875rem; }
.rs-hors p { margin: 0 0 10px; color: var(--doux); font-size: 0.8125rem; }
.rs-hors ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.rs-hors li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--carte); }
.rs-hors small { color: var(--doux); }
/* Un sous-traitant relié depuis la fiche d'un traitement */
.rs-st-ref { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; padding: 9px 12px; border: 1px solid var(--bord); border-radius: 10px; }
.rs-st-ref-ic { display: grid; place-items: center; flex: none; width: 32px; height: 32px; border-radius: 9px; color: var(--rg-violet); background: var(--rg-violet-fond); }
.rs-st-ref-txt { display: grid; flex: 1 1 160px; min-width: 0; }
.rs-st-ref-txt small { color: var(--doux); font-size: 0.75rem; }
.rs-st-hors { grid-column: 1 / -1; justify-self: start; padding: 1px 8px; border-radius: 999px; background: var(--rg-gris-fond); color: var(--rg-gris); font-size: 0.6875rem; font-weight: 700; }
.rs-st-choisir { max-width: 420px; }
/* La fiche d'un sous-traitant : un seul panneau, sans étapes */
.rs-fiche--st { width: min(760px, 100vw); }
.rs-fiche-simple { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 24px 24px; display: grid; gap: 18px; align-content: start; }
.rs-fiche-simple .rs-raisons, .rs-fiche-simple .rs-ro { margin: 0; }
.rs-sf { margin: 0; padding: 0; border: 0; display: grid; gap: 18px; min-width: 0; }
.rs-sf-bloc h3 { margin: 0 0 10px; font-size: 0.9375rem; }
.rs-sf-bloc > p.rs-doux { margin: -4px 0 10px; font-size: 0.8125rem; }
.rs-sf-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.rs-sf-grille--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 10px; }
.rs-sf-case { white-space: normal; }
.rs-fiche-simple .rs-cases--ligne { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.rs-fiche-simple .rs-cases--ligne label { display: flex; align-items: center; gap: 6px; font-size: 0.8125rem; cursor: pointer; }
.rs-fiche-simple .rs-cases--ligne + .rs-champ { margin-top: 10px; }
@media (max-width: 760px) {
  .rs-sf-grille, .rs-sf-grille--3 { grid-template-columns: minmax(0, 1fr); }
  .rs-fiche-simple { padding: 14px 16px 20px; }
}

/* Mobile : les chiffres du registre en icône et valeur, trois par ligne */
@media (max-width: 760px) {
  .rs-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .rs-kpi { align-items: center; gap: 8px; padding: 8px 10px; }
  .rs-kpi-ic { width: 30px; height: 30px; border-radius: 8px; }
  .rs-kpi-ic svg { width: 17px; height: 17px; }
  .rs-kpi-texte span, .rs .rs-kpi-texte small { display: none; }
  .rs-kpi-texte b { font-size: 1.05rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
}

/* --- Registre RGPD, étape E : l'export ---------------------------------------- */
.rs-tete-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-left: auto; flex: none; }
.rs-tete-titre .rs-tete-actions .btn--plein { margin-left: 0; }
.rs-export { width: min(860px, calc(100vw - 24px)); }
.rs-export-corps { overflow-y: auto; padding-bottom: 20px; }
.rs-export-grille { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); overflow: visible; padding-bottom: 8px; }
.rs-export .rs-modele svg { color: var(--rg-vert); }
.rs-export .rs-modele:disabled { cursor: progress; opacity: 0.6; }
.rs-export .rs-modele.is-actif { opacity: 1; border-color: var(--vert); }
.rs-export-erreur { margin: 0 22px 12px !important; }
.rs-export-fait { margin: 4px 22px 14px; padding: 14px 16px; border-radius: 12px; background: var(--rg-vert-fond); }
.rs-export-fait p { display: flex; align-items: center; gap: 6px; margin: 0 0 6px; color: var(--rg-vert); }
.rs-export-fait code { display: block; margin-bottom: 10px; font-size: 0.75rem; overflow-wrap: anywhere; color: var(--texte); }
.rs-export-fait small { display: block; margin-top: 8px; color: var(--doux); font-size: 0.75rem; }
.rs-export-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-export-hist { margin: 0 22px; }
.rs-export-hist h3 { margin: 6px 0 10px; font-size: 0.9375rem; }
.rs-export-hist li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 7px 10px; border: 1px solid var(--bord); border-radius: 10px; font-size: 0.8125rem; }
.rs-export-q { display: grid; min-width: 0; }
.rs-export-q small, .rs-export-hist li > small { color: var(--doux); font-size: 0.75rem; }
.rs-export-hist code { font-size: 0.75rem; color: var(--doux); }
.rs-export-f { padding: 2px 9px; border-radius: 999px; font-size: 0.6875rem; font-weight: 700; }
.rs-export-f--1 { color: var(--rg-gris); background: var(--rg-gris-fond); }
.rs-export-f--2 { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rs-export-f--3 { color: var(--rg-rouge); background: var(--rg-rouge-fond); }
@media (max-width: 760px) {
  .rs-tete-actions { width: 100%; margin-left: 0; }
  .rs-tete-actions .btn { flex: 1 1 auto; justify-content: center; }
  .rs-export-hist li { grid-template-columns: auto minmax(0, 1fr); }
  .rs-export-hist li > code, .rs-export-hist li > small { grid-column: 2; }
}

/* --- Registre RGPD, étape F : les demandes d'exercice des droits ------------- */
.rs-badge { display: inline-grid; place-items: center; min-width: 18px; height: 18px; margin-left: 2px; padding: 0 5px; border-radius: 999px; background: var(--rg-rouge); color: #fff; font-size: 0.6875rem; font-style: normal; font-weight: 700; }
.rs-onglets button[aria-selected="true"] .rs-badge { background: #fff; color: var(--rg-vert); }
.rs-dem-form { margin: 0 0 16px; padding: 14px 16px; border: 1px dashed var(--bord); border-radius: 12px; display: grid; gap: 10px; }
.rs-dem-form.is-actif { border-style: solid; border-color: var(--rg-vert-fond); background: color-mix(in srgb, var(--rg-vert-fond) 35%, transparent); }
.rs-dem-form-tete { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.rs-dem-form h4 { display: flex; align-items: center; gap: 6px; margin: 0; font-size: 0.9375rem; }
.rs-dem-form p { margin: 0; }
.rs-dem-form > .btn { justify-self: start; }
.rs-dem-code { width: 100%; box-sizing: border-box; padding: 8px 10px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); color: var(--texte); font: 0.75rem/1.4 ui-monospace, Consolas, monospace; resize: none; }
.rs-dem-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.rs-dem-lien code { font-size: 0.75rem; overflow-wrap: anywhere; }
.rs-dem-infos { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 6px 14px; margin: 0; font-size: 0.875rem; }
.rs-dem-infos dt { color: var(--doux); }
.rs-dem-infos dd { margin: 0; overflow-wrap: anywhere; }
.rs-dem-texte { margin: 0; padding: 12px 14px; border-radius: 10px; background: var(--rg-tete); white-space: pre-wrap; overflow-wrap: anywhere; font-size: 0.875rem; }
.rs-dem-reponse { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); color: var(--texte); font: inherit; resize: vertical; }
.rs-dem-rappel { margin: 8px 0 0; font-size: 0.75rem; }
/* Le suivi par la personne (rubrique RGPD, Mes droits). */
.rg-dem-soc { margin-top: 18px; }
.rg-dsoc-liste { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.rg-dsoc { display: grid; gap: 8px; align-content: start; padding: 14px; border: 1px solid var(--bord); border-radius: 12px; }
.rg-dsoc-tete { display: flex; align-items: center; gap: 10px; }
.rg-dsoc-tete > div { display: grid; flex: 1; min-width: 0; }
.rg-dsoc-tete small { color: var(--doux); }
.rg-dsoc p { margin: 0; }
.rg-dsoc-bloc { padding: 10px 12px; border-radius: 10px; background: var(--rg-tete); }
.rg-dsoc-bloc small { color: var(--doux); font-size: 0.75rem; }
.rg-dsoc-bloc p { margin: 2px 0 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: 0.875rem; }
.rg-dsoc-bloc--reponse { background: var(--rg-vert-fond); }
.rg-dsoc-recours { display: flex; gap: 6px; color: var(--rg-orange); font-size: 0.8125rem; }
.rs-dem-form.is-actif { grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 8px 16px; padding: 10px 14px; }
.rs-dem-form.is-actif .rs-dem-actions { justify-content: flex-end; }
.rs-dem-details { grid-column: 1 / -1; font-size: 0.8125rem; }
.rs-dem-details summary { cursor: pointer; color: var(--doux); }
.rs-dem-details[open] summary { margin-bottom: 6px; }
.rs-dem-details p { margin: 6px 0 0; }
@media (max-width: 760px) { .rs-dem-form.is-actif { grid-template-columns: minmax(0, 1fr); } .rs-dem-form.is-actif .rs-dem-actions { justify-content: flex-start; } }

/* --- Registre RGPD, étape G : les violations de données ---------------------- */
.rs-cats-tete--action { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rs-cats-tete--action > div { flex: 1 1 360px; }
.rs-cats-tete--action > .btn { flex: none; }
.rs-statut--rouge { color: var(--rg-rouge) !important; background: var(--rg-rouge-fond) !important; }
.rs-inc-urgents { display: grid; gap: 8px; margin: 0 0 14px; }
.rs-inc-urgent { display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 14px; border: 1px solid var(--rg-orange); border-radius: 12px; background: var(--rg-orange-fond); color: var(--rg-orange); font: inherit; font-weight: 600; font-size: 0.875rem; text-align: left; cursor: pointer; }
.rs-inc-urgent span { flex: 1; }
.rs-inc-urgent.is-retard { border-color: var(--rg-rouge); background: var(--rg-rouge-fond); color: var(--rg-rouge); }
.rs-inc-risques { margin: 10px 0 0; padding: 0; border: 0; display: grid; gap: 8px; }
.rs-inc-risques legend { margin-bottom: 6px; padding: 0; font-weight: 600; font-size: 0.8125rem; }
.rs-inc-risque { display: flex; align-items: flex-start; gap: 10px; padding: 9px 12px; border: 1px solid var(--bord); border-radius: 10px; cursor: pointer; }
.rs-inc-risque input { margin-top: 3px; accent-color: var(--vert); }
.rs-inc-risque span { display: grid; gap: 2px; }
.rs-inc-risque small { color: var(--doux); font-size: 0.75rem; }
.rs-inc-risque:has(input:checked) { border-color: var(--vert); box-shadow: 0 0 0 1px var(--vert); }
.rs-inc-notif { padding: 14px 16px; border-radius: 12px; background: var(--rg-tete); }
.rs-inc-notif h4 { margin: 0 0 6px; font-size: 0.875rem; }
.rs-inc-notif p { margin: 0 0 8px; font-size: 0.8125rem; }
.rs-inc-notif .rs-sf { margin-top: 10px; }
.rs-inc-compte { display: flex; align-items: center; gap: 6px; color: var(--rg-orange); font-weight: 600; }
.rs-inc-compte.is-retard { color: var(--rg-rouge); }
.rs-fiche input[type="datetime-local"] { width: 100%; box-sizing: border-box; padding: 9px 11px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); color: var(--texte); font: inherit; }

/* Sept onglets : plus serrés sur un écran moyen, pour qu'ils tiennent sur une ligne. */
@media (max-width: 1400px) {
  .rs-onglets { gap: 2px; }
  .rs-onglets button { gap: 5px; padding: 8px 10px; font-size: 0.8125rem; }
}
@media (max-width: 1150px) and (min-width: 761px) {
  .rs-onglets button svg { display: none; }
}

/* --- Registre RGPD, étape H : documents, audit, comparaison ------------------ */
.rs-o-court { display: none; }
@media (max-width: 1400px) { .rs-o-long { display: none; } .rs-o-court { display: inline; } }
.rs-do-cartes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0 0 16px; }
.rs-do-carte { display: grid; gap: 6px; align-content: start; padding: 12px 14px; border: 1px solid var(--bord); border-radius: 12px; }
.rs-do-carte b { font-size: 0.875rem; }
.rs-do-carte small { color: var(--doux); font-size: 0.75rem; line-height: 1.4; }
.rs-do-carte .btn { justify-self: start; margin-top: 4px; }
.rs-do-carte select { width: 100%; padding: 6px 8px; border: 1px solid var(--bord); border-radius: 8px; background: var(--carte); color: var(--texte); font: inherit; font-size: 0.8125rem; }
.rs-do-ic { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; color: var(--rg-violet); background: var(--rg-violet-fond); }
.rs-fiche--doc { width: min(900px, 100vw); }
.rs-do-ia { display: flex; gap: 8px; margin: 0; padding: 10px 12px; border-radius: 10px; background: var(--rg-violet-fond); color: var(--rg-violet); font-size: 0.8125rem; }
.rs-do-bascule { display: flex; gap: 6px; margin: 4px 0 8px; }
.rs-do-texte { width: 100%; box-sizing: border-box; padding: 12px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); color: var(--texte); font: 0.8125rem/1.55 ui-monospace, Consolas, monospace; resize: vertical; }
.md-apercu { padding: 16px 20px; border: 1px solid var(--bord); border-radius: 12px; background: var(--carte); font-size: 0.875rem; line-height: 1.6; overflow-wrap: anywhere; }
.md-apercu h2 { margin: 18px 0 8px; font-size: 1.05rem; }
.md-apercu h2:first-child, .md-apercu h3:first-child { margin-top: 0; }
.md-apercu h3 { margin: 14px 0 6px; font-size: 0.95rem; }
.md-apercu h4 { margin: 10px 0 4px; font-size: 0.875rem; }
.md-apercu p { margin: 0 0 8px; }
.md-apercu ul, .md-apercu ol { margin: 0 0 8px; padding-left: 20px; }
.md-table { overflow-x: auto; margin: 8px 0; }
.md-table table { width: 100%; border-collapse: collapse; font-size: 0.8125rem; }
.md-table th, .md-table td { padding: 6px 8px; border-bottom: 1px solid var(--bord); text-align: left; vertical-align: top; }
.md-place { padding: 0 3px; border-radius: 4px; background: var(--rg-orange-fond); color: var(--rg-orange); font-weight: 700; }
.rs-do-etapes { margin: 12px 0 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 0.875rem; }
.rs-do-etapes li { display: flex; align-items: center; gap: 8px; color: var(--doux); }
.rs-do-etapes li.is-fait { color: var(--rg-vert); }
.rs-do-etapes li.is-cours { color: var(--texte); font-weight: 600; }
.rs-do-etapes li.is-erreur { color: var(--rg-rouge); }
.rs-do-pub { display: grid; gap: 8px; justify-items: start; }
.rs-do-pub p { margin: 0; overflow-wrap: anywhere; }
.rs-au-filtres { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 14px; }
.rs-puce.is-choisie { border-color: var(--vert); background: var(--rg-vert-fond); color: var(--rg-vert); font-weight: 600; }
.rs-puce small { color: var(--doux); }
/* Filtres de l'audit : une pastille sur une ligne, le nombre dans un rond. */
.rs-au-filtres .rs-puce { display: inline-flex; align-items: center; gap: 7px; padding: 6px 8px 6px 13px; background: var(--carte); color: var(--texte); font-weight: 600; white-space: nowrap; transition: border-color 120ms ease, background 120ms ease; }
.rs-au-filtres .rs-puce small { display: inline-block; min-width: 22px; margin: 0; padding: 1px 7px; border-radius: 999px; background: var(--rg-gris-fond); color: var(--rg-gris); font-size: 0.72rem; font-weight: 700; line-height: 1.5; text-align: center; }
.rs-au-filtres .rs-puce.is-choisie { border-color: var(--vert); background: var(--vert); color: #ffffff; }
.rs-au-filtres .rs-puce.is-choisie small { background: rgba(255, 255, 255, 0.28); color: #ffffff; }
.rs-au-verif { display: flex; align-items: center; gap: 6px; margin: 0 0 12px; padding: 8px 12px; border-radius: 10px; font-size: 0.875rem; font-weight: 600; }
.rs-au-verif--ok { color: var(--rg-vert); background: var(--rg-vert-fond); }
.rs-au-verif--ko { color: var(--rg-rouge); background: var(--rg-rouge-fond); }
.rs-cmp { margin-top: 14px; padding: 12px; border: 1px solid var(--bord); border-radius: 12px; }
.rs-cmp-tete { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 8px; }
.rs-cmp-tete h4 { margin: 0; font-size: 0.875rem; }
.rs-cmp-table th { white-space: normal; }
.rs-cmp-avant { background: var(--rg-rouge-fond); }
.rs-cmp-apres { background: var(--rg-vert-fond); }
@media (max-width: 1100px) { .rs-do-cartes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .rs-do-cartes { grid-template-columns: minmax(0, 1fr); } }

/* --- La barre d'onglets du registre : jamais d'onglet hors d'atteinte -------- */
.rs-onglets-cadre { position: relative; min-width: 0; }
.rs-onglets { scroll-behavior: smooth; }
.rs-onglets--court .rs-o-long { display: none; }
.rs-onglets--court .rs-o-court { display: inline; }
.rs-onglets-fleche { position: absolute; top: 0; bottom: 0; z-index: 2; display: none; place-items: center; width: 36px; border: 0; background: linear-gradient(90deg, var(--carte) 55%, transparent); color: var(--texte); cursor: pointer; }
.rs-onglets-fleche--g { left: 0; border-radius: 11px 0 0 11px; }
.rs-onglets-fleche--d { right: 0; border-radius: 0 11px 11px 0; background: linear-gradient(270deg, var(--carte) 55%, transparent); }
.rs-onglets-cadre.a-gauche .rs-onglets-fleche--g, .rs-onglets-cadre.a-droite .rs-onglets-fleche--d { display: grid; }
.rs-onglets-fleche:hover { color: var(--vert); }


/* ---------------------------------------------------------------- applications (applications.js) */
.ap .ap-carte { display: flex; flex-direction: column; padding: 0 !important; }
.ap-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 16px 18px 6px; }
.ap-kpi { display: flex; align-items: baseline; gap: 8px; padding: 10px 14px; border-radius: 12px; background: var(--rg-gris-fond); }
.ap-kpi b { font-size: 1.375rem; }
.ap-kpi span { color: var(--doux); font-size: 0.8125rem; }
.ap-kpi--vert { background: var(--rg-vert-fond); } .ap-kpi--vert b { color: var(--rg-vert); }
.ap-kpi--orange { background: var(--rg-orange-fond); } .ap-kpi--orange b { color: var(--rg-orange); }
.ap-kpi--gris b { color: var(--rg-gris); }
.ap-barre { display: flex; align-items: center; gap: 12px; padding: 10px 18px 12px; border-bottom: 1px solid var(--bord); }
.ap-barre .ap-cherche { flex: 1 1 auto; position: static; padding: 0; border: 0; background: none; }
.ap-barre .btn { flex: none; }
.ap-liste { max-height: min(62vh, 640px); overflow-y: auto; padding: 4px 10px 10px; }
.ap-ligne { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto auto auto; align-items: center; gap: 12px; width: 100%; padding: 10px 8px; border: 0; border-bottom: 1px solid var(--bord); background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.ap-ligne[hidden] { display: none; }
.ap-ligne:hover, .ap-ligne:focus-visible { background: var(--rg-tete); }
.ap-ligne--sel { border-radius: 10px; background: var(--rg-ici); }
.ap-ligne--retiree { opacity: 0.62; }
.ap-icone { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--rg-violet-fond); color: var(--rg-violet); }
.ap-aside h2 .ap-icone { width: 34px; height: 34px; }
.ap-qui { min-width: 0; }
.ap-qui b, .ap-qui small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-qui small, .ap-date, .ap-type { color: var(--doux); font-size: 0.8125rem; }
.ap-type, .ap-date { white-space: nowrap; }
.ap-pastille { display: inline-block; padding: 3px 11px; border-radius: 999px; font-size: 0.78rem; font-weight: 600; white-space: nowrap; }
.ap-pastille--vert { color: var(--rg-vert); background: var(--rg-vert-fond); }
.ap-pastille--orange { color: var(--rg-orange); background: var(--rg-orange-fond); }
.ap-pastille--gris { color: var(--rg-gris); background: var(--rg-gris-fond); }
.ap-pastille--bleu { background: var(--rg-bleu-fond); color: var(--rg-bleu); }
.ap-aside { padding: 22px; }
.ap-aside h2 { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 1.0625rem; overflow-wrap: anywhere; }
.ap-aside h3 { margin: 20px 0 8px; font-size: 0.9375rem; }
.ap-entete { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; overflow-wrap: anywhere; }
.ap-form textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--champ-bord); border-radius: 10px; background: var(--champ); color: var(--texte); font: 0.8125rem/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; resize: vertical; }
.ap-lien { justify-self: start; display: inline-flex; align-items: center; gap: 6px; padding: 0; border: 0; background: none; color: var(--rg-bleu); font: inherit; font-size: 0.8125rem; cursor: pointer; }
.ap-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.ap-valeur { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 4px 8px; margin: 0 0 10px; }
.ap-valeur span { grid-column: 1 / -1; font-size: 0.8125rem; font-weight: 600; }
.ap-valeur code, .ap-retours code { display: block; min-width: 0; padding: 8px 10px; border-radius: 8px; background: var(--rg-tete); font-size: 0.8125rem; overflow-wrap: anywhere; }
.ap-retours { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.ap-alerte { margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: var(--rg-orange-fond); font-size: 0.875rem; }
.ap-secret { border: 2px solid var(--rg-orange); }
.ap-danger { color: var(--rg-rouge); border-color: var(--rg-rouge); }
@media (max-width: 700px) {
  .ap-ligne { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .ap-type, .ap-ligne > .ap-date { display: none; }
  .ap-barre { flex-wrap: wrap; }
  .ap-kpi { flex-direction: column; gap: 0; }
}
.ap-onglets { margin-bottom: 12px; }
/* L'onglet Groupes : les utilisateurs à gauche, les groupes du logiciel en cartes. */
.ap-u-cherche { margin: 12px 0 0; }
.ap-u-ligne[hidden], .ap-g-puce[hidden] { display: none; }
.ap-g { display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 14px; padding: 0 18px 18px; min-height: 0; }
.ap-g-util { display: flex; flex-direction: column; min-height: 0; padding: 12px; border: 1px solid var(--bord); border-radius: 12px; background: var(--carte); }
.ap-g-util h3 { margin: 0 0 8px; font-size: 0.875rem; }
.ap-g-cherche { flex: none; margin: 0 0 8px; padding: 7px 10px; }
.ap-u-cherche { flex: none; }
.ap-g-liste { flex: 1 1 auto; display: flex; flex-direction: column; gap: 6px; min-height: 0; max-height: 60vh; overflow-y: auto; }
.ap-g-puce { display: flex; align-items: center; gap: 10px; width: 100%; padding: 6px 8px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); color: var(--texte); font: inherit; text-align: left; cursor: grab; }
.ap-g-puce[hidden] { display: none; }
.ap-g-puce .so-mb-avatar { width: 30px; height: 30px; font-size: 0.6875rem; flex: none; }
.ap-g-puce .ap-qui { min-width: 0; }
.ap-g-puce .ap-qui b, .ap-g-puce .ap-qui small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-g-puce .ap-qui small { color: var(--doux); font-size: 0.75rem; }
.ap-g-puce:hover, .ap-g-puce:focus-visible { border-color: var(--vert); }
.ap-g-puce--sel { border-color: var(--vert); background: var(--rg-vert-fond); }
.ap-g-puce--glisse { opacity: 0.5; }
.ap-g-puce--absent { cursor: not-allowed; opacity: 0.6; }
.ap-g-cartes { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; align-content: start; max-height: 60vh; overflow-y: auto; }
.ap-g-carte { display: flex; flex-direction: column; gap: 8px; padding: 12px; border: 2px dashed var(--bord); border-radius: 12px; background: var(--carte); transition: border-color 0.15s, background 0.15s; }
.ap-g-carte header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.ap-g-carte header small { color: var(--doux); font-size: 0.75rem; white-space: nowrap; }
.ap-g-carte--cible { border-color: var(--vert); background: var(--rg-vert-fond); }
.ap-g-membres { display: flex; flex-wrap: wrap; gap: 6px; min-height: 30px; }
.ap-g-membre { display: inline-flex; align-items: center; gap: 4px; padding: 3px 6px 3px 10px; border-radius: 999px; background: var(--rg-bleu-fond); color: var(--rg-bleu); font-size: 0.8125rem; font-weight: 600; }
.ap-g-membre--attente { padding-right: 10px; opacity: 0.8; }
.ap-g-membre .ap-rond { width: 11px; height: 11px; margin-right: 4px; }
.ap-g-x { display: grid; place-items: center; width: 18px; height: 18px; padding: 0; border: 0; border-radius: 50%; background: none; color: inherit; cursor: pointer; }
.ap-g-x:hover, .ap-g-x:focus-visible { background: rgba(0, 0, 0, 0.1); }
.ap-g-carte--auto { border-style: solid; background: var(--rg-gris-fond); }
.ap-g-carte--auto .so-note { margin: 0; font-size: 0.75rem; }
.ap-g-membre--auto { padding-right: 10px; background: var(--carte); color: var(--texte); font-weight: 500; }
.ap-aside .so-aside-tete { margin-bottom: 10px; }
.ap-aside.so-aside--repliee .ap-icone { display: grid; }
.ap-g-vide { color: var(--doux); font-size: 0.8125rem; font-style: italic; }
.ap-g-ici { align-self: flex-start; display: inline-flex; align-items: center; gap: 6px; font-size: 0.8125rem; }
.ap-g-sel { margin: 6px 0 0; font-size: 0.8125rem; font-weight: 600; color: var(--vert-fonce, var(--vert)); }
@media (max-width: 760px) { .ap-g { grid-template-columns: 1fr; } .ap-g-liste, .ap-g-cartes { max-height: none; } }
/* Groupes v3 : sélection multiple, groupe choisi, détail. */
.ap-g-tete { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; margin: 0 0 8px; min-width: 0; }
.ap-g-tete .ap-pastille { display: inline-block; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-g-tete h3 { margin: 0; }
.ap-g-outils { display: flex; align-items: center; gap: 10px; min-height: 22px; margin: 0 0 6px; font-size: 0.8125rem; }
.ap-g-lien { padding: 0; border: 0; background: none; color: var(--vert-fonce, var(--vert)); font: inherit; font-weight: 600; cursor: pointer; }
.ap-g-lien:hover, .ap-g-lien:focus-visible { text-decoration: underline; }
.ap-g-compte { margin-left: auto; color: var(--doux); }
.ap-g-case { display: grid; place-items: center; flex: none; width: 18px; height: 18px; border: 1.5px solid var(--bord); border-radius: 5px; background: var(--carte); color: #fff; transition: background .15s, border-color .15s; }
.ap-g-case--oui { border-color: var(--vert); background: var(--vert); }
.ap-g-case--non { border-color: transparent; background: none; }
.ap-g-case .ap-rond { width: 14px; height: 14px; }
.ap-g-puce { transition: background .15s, border-color .15s, opacity .2s, transform .2s; }
.ap-g-envoyer { flex: none; margin-top: 10px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; animation: ap-g-entree .2s ease-out; }
.ap-g-fini { margin: 8px 4px; }
.ap-g-nom { display: inline-flex; align-items: center; gap: 4px; min-width: 0; padding: 2px 6px; margin: -2px -6px; border: 0; border-radius: 6px; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.ap-g-nom:hover, .ap-g-nom:focus-visible { background: var(--rg-vert-fond); }
.ap-g-carte--actif { border-style: solid; border-color: var(--vert); box-shadow: 0 0 0 3px var(--rg-vert-fond); }
.ap-g-carte--actif .ap-g-nom { color: var(--vert-fonce, var(--vert)); }
.ap-g-carte--recu { animation: ap-g-recu .6s ease-out; }
.ap-g-actions { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; font-size: 0.8125rem; }
.ap-g-plus { align-self: center; color: var(--doux); font-size: 0.75rem; font-weight: 600; }
.ap-g-membre--ajouter { animation: ap-g-entree .25s ease-out; }
.ap-g-membre--retirer { opacity: .55; text-decoration: line-through; }
.ap-g-detail { display: flex; flex-direction: column; min-height: 0; padding: 12px; border: 2px solid var(--vert); border-radius: 12px; background: var(--carte); animation: ap-g-entree .2s ease-out; transition: background .15s; }
.ap-g-detail.ap-g-carte--cible { background: var(--rg-vert-fond); }
.ap-g-dtete { display: flex; align-items: center; gap: 10px; margin: 0 0 10px; }
.ap-g-dtete h3 { flex: 1; min-width: 0; margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-g-dtete small { color: var(--doux); white-space: nowrap; }
.ap-g-retour { display: inline-flex; align-items: center; gap: 4px; padding: 6px 10px; font-size: 0.8125rem; }
.ap-g-dliste { flex: 1 1 auto; min-height: 0; max-height: 52vh; overflow-y: auto; border-top: 1px solid var(--bord); }
.ap-g-ligne { display: flex; align-items: center; gap: 10px; padding: 7px 4px; border-bottom: 1px solid var(--bord); transition: background .15s, opacity .2s; }
.ap-g-ligne[hidden] { display: none; }
.ap-g-ligne .so-mb-avatar { width: 30px; height: 30px; font-size: 0.6875rem; flex: none; }
.ap-g-ligne .ap-qui { flex: 1; min-width: 0; }
.ap-g-ligne .ap-qui b, .ap-g-ligne .ap-qui small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ap-g-ligne .ap-qui small { color: var(--doux); font-size: 0.75rem; }
.ap-g-ligne--sel { background: var(--rg-vert-fond); }
.ap-g-ligne--retirer { opacity: .55; }
.ap-g-ligne--ajouter { animation: ap-g-entree .25s ease-out; }
.ap-g-coche { display: grid; place-items: center; padding: 2px; border: 0; background: none; cursor: pointer; }
.ap-g-x--grand { width: 28px; height: 28px; color: var(--rg-rouge); }
.ap-g-fantome { position: fixed; top: -100px; left: -100px; padding: 6px 12px; border-radius: 999px; background: var(--vert); color: #fff; font-weight: 700; font-size: 0.8125rem; }
@keyframes ap-g-entree { from { opacity: 0; transform: translateY(-4px) scale(.96); } to { opacity: 1; transform: none; } }
@keyframes ap-g-recu { 0% { box-shadow: 0 0 0 0 rgba(76, 175, 80, .55); } 100% { box-shadow: 0 0 0 12px rgba(76, 175, 80, 0); } }
@media (prefers-reduced-motion: reduce) { .ap-g-envoyer, .ap-g-membre--ajouter, .ap-g-detail, .ap-g-ligne--ajouter, .ap-g-carte--recu { animation: none; } }
/* Une action en cours dans un bouton (donner, retirer, inviter) : un petit rond qui tourne. */
.ap-rond { display: inline-block; width: 14px; height: 14px; margin-right: 8px; border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; vertical-align: -2px; animation: ap-tourne 0.75s linear infinite; }
@keyframes ap-tourne { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .ap-rond { animation-duration: 2.2s; } }
.ap-u-act .btn[aria-busy="true"], .ap-u-inviter .btn[aria-busy="true"] { cursor: progress; opacity: 0.85; }
.ap-natures { display: flex; flex-wrap: wrap; gap: 6px 14px; margin: 0; padding: 10px 12px; border: 1px solid var(--bord); border-radius: 10px; }
.ap-natures legend { padding: 0 4px; font-size: 0.8125rem; font-weight: 600; }
.ap-nature { display: inline-flex; align-items: center; gap: 6px; font-size: 0.875rem; cursor: pointer; }
.ap-nature input { width: auto !important; margin: 0; }
.ap-natures .so-mb-aide { flex-basis: 100%; }
.ap-tete { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 12px; }
.ap-retour { display: inline-flex; align-items: center; gap: 6px; }
.ap-tete-nom { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; font-size: 1.25rem; min-width: 0; }
.ap-pad { padding: 16px 18px 6px; }
.ap-pad h3 { margin: 0 0 6px; font-size: 0.9375rem; }
.ap-u-inviter { display: flex; flex-wrap: wrap; gap: 10px; margin: 12px 0 4px; }
.ap-u-inviter input { flex: 1 1 220px; min-width: 0; padding: 10px 12px; border: 1px solid var(--champ-bord); border-radius: 10px; background: var(--champ); color: var(--texte); font: inherit; }
.ap-u-liste { border-top: 1px solid var(--bord); }
.ap-u-ligne { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; padding: 10px 8px; border-bottom: 1px solid var(--bord); }
.ap-u-ligne--inv { grid-template-columns: 40px minmax(0, 1fr) auto; }
.ap-u-groupes { color: var(--rg-violet) !important; }
.ap-u-act { display: flex; justify-content: flex-end; }
.ap-u-titre { margin: 16px 8px 4px; font-size: 0.875rem; color: var(--doux); }
.ap-table { width: 100%; border-collapse: collapse; font-size: 0.875rem; }
.ap-table th, .ap-table td { padding: 9px 10px; border-bottom: 1px solid var(--bord); text-align: left; }
.ap-table th { position: sticky; top: 0; background: var(--rg-tete); font-weight: 600; }
@media (max-width: 700px) {
  .ap-u-ligne { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .ap-u-act { grid-column: 2 / -1; justify-content: flex-start; }
}

/* Les groupes de travail (PLAN_ORGANISATIONS.md). */
.gt-logo { display: grid; place-items: center; flex: none; width: 56px; height: 56px; border-radius: 14px; background: var(--rg-bleu-fond); color: var(--rg-bleu); }
.gt-logo--petit { width: 38px; height: 38px; border-radius: 10px; }
.gt-badge { background: var(--rg-bleu-fond); color: var(--rg-bleu); }
.gt-ajout .so-ajout-plus { background: var(--rg-bleu-fond); color: var(--rg-bleu); }
.gt-liste-carte { padding: 6px 10px; }
.gt-ligne { display: flex; align-items: center; gap: 12px; padding: 12px 8px; border-bottom: 1px solid var(--bord); color: inherit; text-decoration: none; transition: background .15s; }
.gt-ligne:last-child { border-bottom: 0; }
.gt-ligne:hover, .gt-ligne:focus-visible { background: var(--rg-vert-fond); }
.gt-ligne-nom { flex: 1; min-width: 0; }
.gt-ligne-nom b, .gt-ligne-nom small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-ligne-nom small { color: var(--doux); font-size: 0.8125rem; }
.gt-barre { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 6px; }
.gt-cherche { flex: 1 1 240px; }
.gt-membres { max-height: min(60vh, 620px); overflow-y: auto; padding: 0 10px 10px; }
.gt-membre, .gt-logiciel { display: flex; align-items: center; gap: 10px; padding: 9px 6px; border-bottom: 1px solid var(--bord); transition: background .15s, opacity .2s; }
.gt-membre[hidden] { display: none; }
.gt-membre .so-mb-avatar { width: 34px; height: 34px; font-size: 0.75rem; flex: none; }
.gt-membre .ap-qui, .gt-logiciel .ap-qui { flex: 1; min-width: 0; }
.gt-membre .ap-qui b, .gt-membre .ap-qui small, .gt-logiciel .ap-qui b, .gt-logiciel .ap-qui small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-membre .ap-qui small, .gt-logiciel .ap-qui small { color: var(--doux); font-size: 0.75rem; }
.gt-membre--sel { background: var(--rg-vert-fond); }
.gt-membre--agit { opacity: .6; }
.gt-membre--nouveau { animation: ap-g-entree .3s ease-out, gt-eclat 1.2s ease-out; }
.gt-membre-act { display: flex; align-items: center; gap: 6px; }
.gt-btn-petit { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; font-size: 0.8125rem; }
.gt-fiche h2 { display: flex; align-items: center; gap: 8px; }
.gt-fiche-org { display: flex; align-items: center; gap: 6px; margin: 0 0 8px; }
.gt-fiche-role { margin: 0 0 14px; }
.gt-champ { display: flex; flex-direction: column; gap: 6px; margin: 0 0 10px; }
.gt-champ span { font-weight: 600; font-size: 0.875rem; }
.gt-champ input, .gt-champ select { padding: 9px 12px; border: 1px solid var(--bord); border-radius: 10px; background: var(--carte); color: var(--texte); font: inherit; }
.gt-champ small { color: var(--doux); font-size: 0.75rem; }
.gt-rgpd { display: flex; gap: 8px; align-items: flex-start; margin: 16px 0; }
.gt-rgpd svg { flex: none; margin-top: 2px; color: var(--vert-fonce, var(--vert)); }
.gt-danger { padding-top: 12px; border-top: 1px solid var(--bord); }
.gt-aj { width: min(620px, 100%); }
.gt-aj-liste { max-height: 46vh; overflow-y: auto; margin: 10px 0 0; border-top: 1px solid var(--bord); }
.gt-aj-ligne { display: flex; align-items: center; gap: 10px; padding: 8px 4px; border-bottom: 1px solid var(--bord); cursor: pointer; }
.gt-aj-ligne[hidden] { display: none; }
.gt-aj-ligne:hover { background: var(--rg-vert-fond); }
.gt-aj-ligne input { width: 18px; height: 18px; accent-color: var(--vert); }
.gt-aj-ligne .so-mb-avatar { width: 30px; height: 30px; font-size: 0.6875rem; flex: none; }
.gt-aj-ligne .ap-qui { min-width: 0; }
.gt-aj-ligne .ap-qui b, .gt-aj-ligne .ap-qui small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gt-aj-ligne .ap-qui small { color: var(--doux); font-size: 0.75rem; }
.gt-aj-fond .so-cherche, .gt-cr-fond .so-cherche { flex: none; }
@keyframes gt-eclat { 0% { background: var(--rg-vert-fond); } 100% { background: transparent; } }
@media (prefers-reduced-motion: reduce) { .gt-membre--nouveau { animation: none; } }
@media (max-width: 700px) { .gt-membre-act .gt-btn-petit { display: none; } }

/* Groupes de travail, étape D : les invitations en attente dans un groupe. */
.gt-inv-titre { display: flex; align-items: center; gap: 6px; margin: 18px 0 6px; padding: 0 4px; font-size: 0.9rem; font-weight: 700; color: var(--doux); }
.gt-inv .ap-qui small { color: var(--doux); }
.gt-inv-modale .so-rel-corps { display: flex; flex-direction: column; gap: 4px; }
.ap-bloc { margin: 0 0 8px; padding: 10px 12px; border-radius: 8px; background: var(--rg-tete); font-size: 0.78rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.ap-admission { margin-top: 4px; }

/* Retirer une société de son compte (Mes organisations) ; cartes de hauteur régulière */
.so-carte2 { position: relative; transition: opacity 0.25s, transform 0.25s; }
.so-carte2--part { opacity: 0; transform: scale(0.96); }
.so-carte2-tete { align-items: flex-start; }
.so-carte2-id { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; flex: 1; min-width: 0; padding-right: 30px; }
.so-carte2-id h2 { margin: 0; line-height: 1.3; min-height: 2.6em; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow-wrap: anywhere; }
.so-carte2-id .so-badge { align-self: flex-start; }
.so-carte2 .so-carte2-meta { margin: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.so-carte2-pied { margin-top: auto; }
.so-carte-suppr { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--doux); cursor: pointer; transition: background 0.15s, color 0.15s, border-color 0.15s; }
.so-carte-suppr:hover, .so-carte-suppr:focus-visible { background: #fef2f2; border-color: #fecaca; color: #dc2626; outline: none; }
.so-rx { width: min(540px, 100%); }
.so-rx-alerte { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; padding: 10px 12px; border-radius: 10px; background: #fef2f2; color: #991b1b; font-size: 0.8125rem; line-height: 1.5; }
.so-rx-alerte svg { flex: none; margin-top: 1px; }
.so-rx-sous { margin: 0 0 6px; font-size: 0.8125rem; font-weight: 600; }
.so-rx-note { margin: 0 0 14px; color: var(--doux); font-size: 0.78rem; line-height: 1.5; }
.so-rx-liste { margin: 0 0 8px; padding-left: 18px; color: var(--doux); font-size: 0.8125rem; line-height: 1.55; }
.so-rx-bloquants { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.so-rx-bloquant { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid #fde68a; border-radius: 12px; background: #fffbeb; color: #78350f; }
.so-rx-bloquant svg { flex: none; margin-top: 2px; color: #d97706; }
.so-rx-bloquant div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.so-rx-bloquant b { font-size: 0.875rem; }
.so-rx-bloquant span { font-size: 0.8125rem; line-height: 1.5; overflow-wrap: anywhere; }
.so-rx-lien { align-self: flex-start; display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 0.8125rem; font-weight: 600; color: var(--vert, #15803d); text-decoration: none; }
.so-rx-lien:hover { text-decoration: underline; }
.so-rx-champ { display: flex; flex-direction: column; gap: 5px; margin: 0 0 12px; font-size: 0.8125rem; font-weight: 600; }
.so-rx-champ input { padding: 9px 12px; border: 1px solid var(--bord); border-radius: 10px; font: inherit; font-weight: 400; background: var(--carte); color: inherit; }
.so-rx-champ input:focus { outline: none; border-color: #dc2626; box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.15); }
.so-rx-btn { background: #dc2626; border-color: #dc2626; color: #fff; }
.so-rx-btn:hover:not(:disabled) { background: #b91c1c; border-color: #b91c1c; }
.so-rx-btn:disabled { opacity: 0.45; cursor: not-allowed; }
@media (prefers-reduced-motion: reduce) { .so-carte2, .so-carte-suppr { transition: none; } }
