/* ==========================================================================
   Fil de Séance — écrans de dossier, connexion, réglages et pages d'information
   Toutes les valeurs viennent de charte.css.
   ========================================================================== */

[hidden] { display: none !important; }
.texte-base-titre { font-size: var(--fs-base); }
.titre-resultats { font-size: var(--fs-sm); font-weight: 650; letter-spacing: 0; color: var(--texte); }
@media print {
  body.impression-info .page-entete, body.impression-info .sous-nav,
  body.impression-info .contenu > section:not(#informations) { display: none !important; }
  body.impression-info .reglages { display: block; }
  .tableau-carte, .carte { box-shadow: none; }
}
.titre-etape { font-size: var(--fs-xl); }
.plein-large { width: 100%; }
.carte__icone--danger { background: var(--danger-doux); color: var(--danger); }
.carte__icone--alerte { background: var(--alerte-doux); color: var(--alerte); }
.carte__icone--bilan { background: var(--corail-doux); color: var(--corail-fort); }
.nav__actions { display: flex; flex-wrap: wrap; gap: var(--sp-1); }
.nav .btn--discret, .menu-mobile .btn--discret { color: var(--nav-texte); min-height: var(--h-controle); padding-inline: var(--sp-3); justify-content: flex-start; }
.nav .btn--discret:hover, .menu-mobile .btn--discret:hover { background: rgba(255, 255, 255, 0.1); color: var(--texte-inverse); }
.menu-mobile :focus-visible { outline-color: var(--focus-inverse); }
.menu-mobile .nav__lien { min-height: var(--h-controle); }
.menu-mobile .nav__compteur { margin-left: auto; }

/* ---------- Disposition générale à deux colonnes ---------- */
.mise-en-page { display: grid; grid-template-columns: minmax(0, 1fr) var(--col-lat, var(--col-lat-m)); gap: var(--sp-5); align-items: start; }
.mise-en-page--s { --col-lat: var(--col-lat-s); }
.mise-en-page--l { --col-lat: var(--col-lat-l); }
@media (max-width: 1100px) { .mise-en-page { grid-template-columns: minmax(0, 1fr); } }

.retour-mobile { display: none; }
@media (max-width: 720px) {
  .fil-ariane { display: none; }
  .retour-mobile { display: inline-flex; align-items: center; gap: var(--sp-1); min-height: var(--h-controle); font-size: var(--fs-sm); color: var(--texte-2); text-decoration: none; }
  .pied ul { flex-direction: column; }
}
.chargement { display: grid; place-items: center; min-height: 40vh; color: var(--texte-2); gap: var(--sp-3); }
.chargement::before { content: ""; width: var(--icone-l); height: var(--icone-l); border: var(--bw-2) solid var(--accent); border-right-color: transparent; border-radius: 50%; animation: tourne 700ms linear infinite; }

/* ---------- Patients (liste) ---------- */
.outils { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--sp-3) var(--sp-4); align-items: start; margin-block: var(--sp-5) var(--sp-4); }
.outils--actes { grid-template-columns: minmax(0, 1fr) 14rem; }
.outils .recherche .saisie { min-height: calc(var(--h-controle) + var(--sp-2)); }
.outils .segment { align-self: start; }
.outils .segment button { min-height: var(--h-controle); }
.nom-patient { display: flex; align-items: center; gap: var(--sp-3); }
.nom-patient strong { display: block; font-size: var(--fs-base); line-height: 1.3; }
.nom-patient small { display: block; color: var(--texte-2); font-size: var(--fs-xs); }
.tableau a.ligne { text-decoration: none; color: var(--texte); font-weight: 400; }
.liste-patients tbody tr { cursor: pointer; }
.compte-resultats { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-2) var(--sp-4); padding: var(--sp-3) var(--sp-4); border-bottom: var(--bw) solid var(--bordure); font-size: var(--fs-sm); color: var(--texte-2); }
.creer { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-4); padding: var(--sp-4); border-top: var(--bw) solid var(--bordure); background: var(--fond); }
.creer p { font-size: var(--fs-sm); color: var(--texte-2); }
.badge-exemple { font-weight: 650; }
@media (max-width: 720px) {
  .outils, .outils--actes { grid-template-columns: minmax(0, 1fr); }
  .liste-patients tr { padding-inline: 0; }
  .liste-patients td.sans-etiquette { padding-bottom: var(--sp-2); }
  .liste-patients td:last-child { display: none; }
}

/* ---------- Nouveau patient ---------- */
.formulaire { display: flex; flex-direction: column; gap: var(--sp-5); }
.bloc-form { display: flex; flex-direction: column; gap: var(--sp-4); }
.bloc-form > h2 { display: flex; align-items: center; gap: var(--sp-3); font-size: var(--fs-lg); }
.num-bloc { width: var(--icone-l); height: var(--icone-l); border-radius: 50%; display: grid; place-items: center; background: var(--texte); color: var(--texte-inverse); font-size: var(--fs-xs); font-variant-numeric: tabular-nums; }
.barre-actions { position: sticky; bottom: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-4); padding: var(--sp-4) var(--sp-5); background: var(--surface-elevee); border: var(--bw) solid var(--bordure); border-radius: var(--rayon-l); box-shadow: var(--ombre-2); }
.barre-actions p { font-size: var(--fs-sm); color: var(--texte-2); }
.rappels li { display: flex; gap: var(--sp-3); align-items: flex-start; font-size: var(--fs-sm); }
.rappels .ico { color: var(--accent); margin-top: 1px; }
.doublon__fiche { display: flex; align-items: center; gap: var(--sp-3); padding: var(--sp-3); background: var(--surface-elevee); border-radius: var(--rayon-m); }
.doublon__fiche small { display: block; color: var(--texte-2); font-size: var(--fs-xs); }
@media (max-width: 720px) { .barre-actions { position: static; } .barre-actions .groupe-boutons, .barre-actions .btn { width: 100%; } }
fieldset.champ { border: 0; padding: 0; margin: 0; }
fieldset.champ > legend { padding: 0; }

/* ---------- Fiche patient ---------- */
.carte.identite { flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--sp-4) var(--sp-5); padding: var(--sp-5); margin-bottom: var(--sp-5); }
.identite__texte { display: flex; flex-direction: column; gap: var(--sp-1); flex: 1 1 18rem; min-width: 0; }
.identite__texte h1 { font-size: var(--fs-xl); }
.traitement { height: 100%; }
.traitement h3 { font-size: var(--fs-lg); letter-spacing: var(--interlettrage-titre); }
.traitement .progression { margin-top: var(--sp-1); }
.traitement__chiffres { display: flex; align-items: baseline; justify-content: space-between; gap: var(--sp-3); font-size: var(--fs-sm); }
.traitement__prochain { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); color: var(--texte-2); }
.traitement--fini { background: var(--fond); box-shadow: none; }
.def--admin { grid-template-columns: minmax(5.5rem, max-content) minmax(0, 1fr); }
.def--admin dd { overflow-wrap: anywhere; }
.def--admin dd.courriel { overflow-wrap: normal; word-break: normal; }
.zone-danger { border-top: var(--bw) solid var(--bordure); padding-top: var(--sp-4); }
@media (max-width: 720px) {
  .carte.identite { padding: var(--sp-4); }
  .identite .page-entete__actions, .identite .page-entete__actions .btn { width: 100%; }
}

/* ---------- Assistant ---------- */
.progres { padding: var(--sp-5); margin-bottom: var(--sp-5); }
.etape-corps { padding: 0; gap: 0; overflow: hidden; }
.etape-corps__entete { display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-5); border-bottom: var(--bw) solid var(--bordure); }
.etape-corps__form { padding: var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-5); }
.etape-corps__pied { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3) var(--sp-4); padding: var(--sp-4) var(--sp-5); border-top: var(--bw) solid var(--bordure); background: var(--fond); }
.etape-corps__raison { display: flex; align-items: flex-start; gap: var(--sp-2); flex: 1 1 16rem; min-width: 0; font-size: var(--fs-sm); font-weight: 600; color: var(--danger); }
.etape-corps__raison .ico { margin-top: 1px; }
.etape-corps__boutons { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-left: auto; }
.prescripteur-choisi { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-3) var(--sp-4); padding: var(--sp-3) var(--sp-4); border: var(--bw) solid var(--bordure); border-radius: var(--rayon-m); background: var(--surface); }
.prescripteur-choisi__texte { flex: 1 1 14rem; min-width: 0; display: flex; flex-direction: column; line-height: 1.35; }
.prescripteur-choisi__texte span { font-size: var(--fs-sm); color: var(--texte-2); }
.recap { position: sticky; top: var(--sp-5); }
.recap h3 { font-size: var(--fs-sm); }
.recap ol { display: flex; flex-direction: column; gap: var(--sp-3); }
.recap li { display: grid; grid-template-columns: var(--icone-l) minmax(0, 1fr); gap: var(--sp-3); font-size: var(--fs-sm); }
.recap li > i { width: var(--icone-l); height: var(--icone-l); border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: var(--fs-xs); font-weight: 700; background: var(--fond-creux); color: var(--texte-2); }
.recap li.fait > i { background: var(--accent); color: var(--texte-inverse); }
.recap li.fait > i .ico { width: var(--icone-s); height: var(--icone-s); stroke-width: 2.5; }
.recap li.en-cours > i { background: var(--texte); color: var(--texte-inverse); }
.recap li strong { display: block; }
.recap li span { color: var(--texte-2); }
.choix-liste { display: flex; flex-direction: column; gap: var(--sp-2); max-height: 22rem; overflow-y: auto; padding: var(--sp-1); }
.choix-ligne { display: flex; align-items: center; gap: var(--sp-3); width: 100%; min-height: var(--h-controle); padding: var(--sp-2) var(--sp-3); text-align: left; background: var(--surface); border: var(--bw) solid var(--bordure); border-radius: var(--rayon-m); cursor: pointer; transition: border-color var(--duree-rapide) var(--courbe), background-color var(--duree-rapide) var(--courbe); }
.choix-ligne:hover { border-color: var(--bordure-forte); background: var(--fond); }
.choix-ligne[aria-pressed="true"] { border-color: var(--accent); box-shadow: 0 0 0 var(--bw) var(--accent); background: var(--accent-doux); }
.choix-ligne small { display: block; color: var(--texte-2); font-size: var(--fs-xs); }
.choix-ligne > span:nth-child(2) { flex: 1; min-width: 0; }
@media (max-width: 1100px) { .recap { position: static; } }
@media (max-width: 720px) {
  .progres, .etape-corps__entete, .etape-corps__form { padding: var(--sp-4); }
  .etape-corps__pied { padding: var(--sp-4); }
  .etape-corps__boutons, .etape-corps__boutons .btn { width: 100%; margin-left: 0; }
}

/* ---------- Traitement ---------- */
.tableau-de-bord { margin-block: var(--sp-5); }
.bloc-tdb { height: 100%; }
.bloc__date { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-xs); font-weight: 650; color: var(--texte-2); }
.bloc__texte { font-size: var(--fs-sm); line-height: var(--lh); }
.bloc--revoir { background: var(--corail-doux); border-color: transparent; box-shadow: none; }
.bloc--revoir .bloc__date { color: var(--corail-fort); }
.bloc-titre { font-size: var(--fs-sm); font-weight: 650; letter-spacing: 0; color: var(--texte-2); }
.bloc--revoir .bloc-titre { color: var(--corail-fort); }
.compteur { display: flex; flex-direction: column; gap: var(--sp-3); }
.compteur__chiffres { display: block; }
.compteur__chiffres > .stat { margin-inline-end: .18em; }
.compteur__restantes { display: flex; justify-content: space-between; gap: var(--sp-3); font-size: var(--fs-sm); color: var(--texte-2); }
.tableau .jour-j td { background: var(--accent-doux); }
.tableau .jour-j:hover td { background: var(--accent-doux); }
.tableau td .sous { display: block; font-size: var(--fs-xs); color: var(--texte-2); }
.tableau td.actions { text-align: right; white-space: nowrap; }
.tableau .num-seance { font-weight: 700; }
.filtre-notes { display: grid; grid-template-columns: minmax(0, 14rem) minmax(0, 10rem) minmax(0, 10rem); gap: var(--sp-3); align-items: end; margin-bottom: var(--sp-4); }
.notes { position: relative; display: flex; flex-direction: column; gap: var(--sp-4); }
.note { display: grid; grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--sp-4); }
.note__date { font-size: var(--fs-sm); font-weight: 700; line-height: 1.3; font-variant-numeric: tabular-nums; }
.note__date span { display: block; font-size: var(--fs-xs); font-weight: 400; color: var(--texte-2); }
.note__carte { display: flex; flex-direction: column; gap: var(--sp-2); padding: var(--sp-4); background: var(--surface); border: var(--bw) solid var(--bordure); border-radius: var(--rayon-m); box-shadow: var(--ombre-1); font-size: var(--fs-sm); }
.note__carte b { font-weight: 700; }
.note__pied { display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4); align-items: center; font-size: var(--fs-xs); color: var(--texte-2); }
.bilan-ligne { display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-3) var(--sp-4); border: var(--bw) solid var(--bordure); border-radius: var(--rayon-m); background: var(--surface-elevee); }
.bilan-ligne .rangee--entre { align-items: baseline; }
.echelle-douleur { display: grid; grid-template-columns: repeat(11, minmax(0, 1fr)); gap: var(--bw); }
.echelle-douleur i { height: var(--sp-2); border-radius: var(--bw-2); background: var(--fond-creux); }
.echelle-douleur i.on { background: var(--corail); }
.liste-actes li { display: flex; justify-content: space-between; gap: var(--sp-3); font-size: var(--fs-sm); }
@media (max-width: 900px) { .tableau-de-bord.g3 { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 720px) {
  .filtre-notes { grid-template-columns: minmax(0, 1fr); }
  .note { grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); }
  .tableau--empile td[data-label="Date"] { flex-wrap: wrap; }
  .tableau--empile td .sous { flex-basis: 100%; text-align: right; }
  .tableau--empile td.actions { text-align: left; }
  .tableau--empile td.actions .btn { width: 100%; }
  .tableau--empile td.actions .btn--icone { width: var(--h-controle); }
  .page-entete__actions, .page-entete__actions .btn { width: 100%; }
}

/* ---------- Séance et cotation ---------- */
.carte.resume-seance { flex-direction: row; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-5); padding: var(--sp-4) var(--sp-5); margin-bottom: var(--sp-5); }
.resume-seance .meta { flex: 1 1 18rem; }
.zone-note { display: flex; flex-direction: column; gap: var(--sp-2); }
.zone-note .saisie { min-height: calc(var(--h-controle) * 3); }
.zone-note__titre { display: flex; align-items: center; gap: var(--sp-2); }
.zone-note__num { width: var(--icone-l); height: var(--icone-l); flex: none; border-radius: 50%; display: grid; place-items: center; font-size: var(--fs-xs); font-weight: 700; background: var(--accent-doux); color: var(--accent-fort); font-variant-numeric: tabular-nums; }
.zone-note--reprise .zone-note__num { background: var(--corail-doux); color: var(--corail-fort); }
.etat-enregistre { display: inline-flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); font-weight: 600; color: var(--succes); }
.etat-enregistre--attente { color: var(--texte-2); }
.barre-note { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-4); padding-top: var(--sp-4); border-top: var(--bw) solid var(--bordure); }
.tableau-cotation td.droite, .tableau-cotation th.droite { text-align: right; }
.tableau-cotation .total { font-size: var(--fs-lg); font-family: var(--police-titre); letter-spacing: var(--interlettrage-titre); }
.tableau-cotation td .sous { display: block; font-size: var(--fs-xs); color: var(--texte-2); }
.tableau-cotation tr.ligne-interdite td { background: var(--danger-doux); }
.tableau-cotation tr.ligne-interdite:hover td { background: var(--danger-doux); }
.tableau-cotation .barre-montant { text-decoration: line-through; text-decoration-thickness: var(--bw-2); color: var(--texte-2); }
.tableau-cotation tfoot .total { font-size: var(--fs-xl); line-height: 1; }
.tableau-cotation tfoot .total--suspendu { color: var(--alerte); }
.tableau-cotation tfoot small { display: block; font-size: var(--fs-xs); font-weight: 600; color: var(--alerte); }
.version { display: flex; flex-direction: column; gap: var(--sp-1); padding: var(--sp-3) var(--sp-4); border-radius: var(--rayon-m); border: var(--bw) solid var(--bordure); background: var(--fond); }
.version--ancienne .montant { text-decoration: line-through; text-decoration-thickness: var(--bw-2); color: var(--texte-2); }
.frise { display: flex; flex-direction: column; gap: var(--sp-3); }
.source-ouverte { padding: var(--sp-3) var(--sp-4); border-radius: var(--rayon-m); background: var(--accent-doux); }
.source-ouverte summary { font-size: var(--fs-sm); font-weight: 650; cursor: pointer; min-height: var(--h-controle); display: flex; align-items: center; gap: var(--sp-2); }
.source-ouverte dl { margin-top: var(--sp-2); }
.choix { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-4); }
.choix .span-2 { grid-column: 1 / -1; }
.liste-problemes { display: flex; flex-direction: column; gap: var(--sp-3); }
.barre-validation { position: sticky; bottom: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-5); padding: var(--sp-4) var(--sp-5); background: var(--surface-elevee); border: var(--bw) solid var(--bordure); border-radius: var(--rayon-l); box-shadow: var(--ombre-2); margin-top: var(--sp-5); }
.barre-validation p { font-size: var(--fs-sm); color: var(--texte-2); max-width: 52ch; }
@media (max-width: 720px) {
  .carte.resume-seance { padding: var(--sp-4); }
  .barre-note .groupe-boutons, .barre-note .groupe-boutons .btn { width: 100%; }
  .choix { grid-template-columns: minmax(0, 1fr); }
  .barre-validation { position: static; padding: var(--sp-4); }
  .barre-validation .groupe-boutons, .barre-validation .groupe-boutons .btn { width: 100%; }
  .tableau-cotation.tableau--empile td[data-label="Élément"] { display: block; text-align: left; font-weight: 650; padding-top: var(--sp-2); }
  .tableau-cotation.tableau--empile td[data-label="Élément"]::before { content: none; }
  .tableau--empile .sous { text-align: left; }
}

/* ---------- Actes ---------- */
.source { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--sp-4); align-items: center; padding: var(--sp-4) var(--sp-5); margin-block: var(--sp-5); }
.carte.source { flex-direction: row; }
.source__texte { display: flex; flex-direction: column; gap: var(--sp-1); font-size: var(--fs-sm); }
.source__texte span { color: var(--texte-2); }
.tableau td.libelle { max-width: 38rem; }
.lettre { display: inline-block; min-width: 3.25rem; padding: calc(var(--sp-1) / 2) var(--sp-2); border-radius: var(--rayon-s); background: var(--accent-doux); color: var(--accent-fort); font-weight: 700; text-align: center; letter-spacing: 0.02em; }
.suggestions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); padding: var(--sp-4); border-top: var(--bw) solid var(--bordure); background: var(--fond); font-size: var(--fs-sm); color: var(--texte-2); }
.suggestions button { display: inline-flex; align-items: center; min-height: var(--h-controle); padding: 0 var(--sp-4); border-radius: var(--rayon-rond); background: var(--surface-elevee); border: var(--bw) solid var(--bordure-forte); color: var(--texte); font-weight: 600; cursor: pointer; transition: background-color var(--duree-rapide) var(--courbe), border-color var(--duree-rapide) var(--courbe); }
.suggestions button:hover { background: var(--accent-doux); border-color: var(--accent); color: var(--accent-actif); }
.omissions summary { list-style: none; display: flex; align-items: center; gap: var(--sp-3); min-height: var(--h-controle); cursor: pointer; font-family: var(--police-titre); font-size: var(--fs-lg); font-weight: 750; letter-spacing: var(--interlettrage-titre); }
.omissions summary::-webkit-details-marker { display: none; }
.omissions summary .ico:last-child { margin-left: auto; transition: transform var(--duree) var(--courbe); }
.omissions[open] summary .ico:last-child { transform: rotate(180deg); }
.points-index { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2); margin-block: var(--sp-3); font-size: var(--fs-sm); color: var(--texte-2); }
.points-index button { display: inline-flex; align-items: center; min-height: var(--h-controle); padding: 0 var(--sp-4); border-radius: var(--rayon-rond); background: var(--surface-elevee); border: var(--bw) solid var(--bordure-forte); color: var(--texte); font-size: var(--fs-xs); font-weight: 600; font-variant-numeric: tabular-nums; cursor: pointer; transition: background-color var(--duree-rapide) var(--courbe), border-color var(--duree-rapide) var(--courbe); }
.points-index button:hover { background: var(--accent-doux); border-color: var(--accent); color: var(--accent-actif); }
.point:focus-visible { outline-offset: calc(-1 * var(--bw-2)); }
.point { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr) auto; gap: var(--sp-3) var(--sp-4); align-items: start; padding: var(--sp-4) 0; border-top: var(--bw) solid var(--bordure); }
.point:first-child { border-top: 0; }
.point p { font-size: var(--fs-sm); }
.point .ref { order: 3; font-size: var(--fs-xs); color: var(--texte-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.point .badge { order: 1; justify-self: start; }
.point p { order: 2; }
.encadre--rappel { animation: rappel var(--duree) var(--courbe) 2; }
@keyframes rappel { from { box-shadow: 0 0 0 var(--sp-1) var(--accent-doux); } to { box-shadow: 0 0 0 0 transparent; } }
@media (max-width: 900px) { .source, .carte.source { grid-template-columns: auto minmax(0, 1fr); } .source .btn { grid-column: 1 / -1; } }
@media (max-width: 720px) {
  .source { padding: var(--sp-4); }
  .point { grid-template-columns: minmax(0, 1fr); gap: var(--sp-2); }
  .tableau--empile td.libelle { max-width: none; }
  .tableau--empile td[data-label="Libellé"] { display: block; text-align: left; }
  .tableau--empile td[data-label="Libellé"]::before { content: none; }
  .tableau--empile td[data-label="Libellé"] .sous { text-align: left; }
}

/* ---------- Référentiel ---------- */
.editions { display: flex; flex-direction: column; gap: var(--sp-3); }
.edition { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--sp-1) var(--sp-4); align-items: center; width: 100%; padding: var(--sp-4) var(--sp-5); text-align: left; background: var(--surface); border: var(--bw) solid var(--bordure); border-radius: var(--rayon-m); box-shadow: var(--ombre-1); color: var(--texte); cursor: pointer; transition: box-shadow var(--duree) var(--courbe), border-color var(--duree) var(--courbe); }
.edition:hover { box-shadow: var(--ombre-2); border-color: var(--bordure-forte); color: var(--texte); }
.edition[aria-current="true"] { border-color: var(--accent); box-shadow: 0 0 0 var(--bw-2) var(--accent), var(--ombre-2); background: var(--surface-elevee); }
.edition__date { display: flex; flex-direction: column; align-items: center; min-width: 3.5rem; padding: var(--sp-2) var(--sp-3); border-radius: var(--rayon-m); background: var(--accent-doux); color: var(--accent-fort); font-variant-numeric: tabular-nums; line-height: 1.15; }
.edition__date b { font-family: var(--police-titre); font-size: var(--fs-lg); letter-spacing: var(--interlettrage-titre); }
.edition__date span { font-size: var(--fs-xs); font-weight: 650; }
.edition--ancienne .edition__date { background: var(--neutre-doux); color: var(--texte-2); }
.edition__corps { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.edition__corps span { font-size: var(--fs-sm); color: var(--texte-2); }
.edition__etat { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--sp-2); }
.detail-titre { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-4); }
.bloc-tarif { display: flex; flex-direction: column; gap: var(--sp-3); }
.bloc-tarif h3 { font-size: var(--fs-base); }
.tableau td .sous-t { display: block; font-size: var(--fs-xs); color: var(--texte-2); }
.regle { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--sp-3); align-items: start; font-size: var(--fs-sm); }
.regle code { font-family: inherit; font-weight: 700; font-size: var(--fs-xs); padding: calc(var(--sp-1) / 2) var(--sp-2); border-radius: var(--rayon-s); background: var(--neutre-doux); color: var(--texte); font-variant-numeric: tabular-nums; }
.verifier li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--sp-3); font-size: var(--fs-sm); align-items: start; }
.verifier .ico { color: var(--alerte-vif); margin-top: 1px; }
.verifier strong { display: block; }
.verifier span { color: var(--texte-2); }
.lateral { position: sticky; top: var(--sp-5); }
.saisie-montant { max-width: 9rem; text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 1100px) { .lateral { position: static; } }
@media (max-width: 720px) {
  .edition { grid-template-columns: auto minmax(0, 1fr); padding: var(--sp-4); }
  .edition__etat { grid-column: 1 / -1; justify-content: flex-start; }
  .page-entete__actions, .page-entete__actions .btn { width: 100%; }
  .tableau--empile .saisie-montant { max-width: 7rem; }
}

/* ---------- Réglages ---------- */
html { scroll-behavior: smooth; }
.reglages { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: var(--sp-6); align-items: start; }
.sous-nav { position: sticky; top: var(--sp-5); display: flex; flex-direction: column; gap: var(--sp-1); }
.sous-nav a { display: flex; align-items: center; gap: var(--sp-3); min-height: var(--h-controle); padding: 0 var(--sp-3); border-radius: var(--rayon-m); color: var(--texte-2); font-size: var(--fs-sm); font-weight: 650; text-decoration: none; transition: background-color var(--duree-rapide) var(--courbe), color var(--duree-rapide) var(--courbe); }
.sous-nav a:hover { background: var(--fond-creux); color: var(--texte); }
.sous-nav a[aria-current="true"] { background: var(--accent-doux); color: var(--accent-fort); }
.contenu { display: flex; flex-direction: column; gap: var(--sp-6); min-width: 0; max-width: 52rem; }
.contenu > section { scroll-margin-top: var(--sp-5); }
.carte__tete { display: flex; align-items: flex-start; gap: var(--sp-4); }
.carte__tete p { color: var(--texte-2); font-size: var(--fs-sm); }
.carte__tete h2 { font-size: var(--fs-lg); }
.carte__actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); justify-content: flex-end; padding-top: var(--sp-4); border-top: var(--bw) solid var(--bordure); }
.regles-mdp { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-2) var(--sp-4); font-size: var(--fs-xs); color: var(--texte-2); }
.regles-mdp li { display: flex; align-items: center; gap: var(--sp-2); }
.regles-mdp .ico { width: var(--icone-s); height: var(--icone-s); }
.regles-mdp .ok { color: var(--succes); font-weight: 650; }
.filtres { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--sp-3) var(--sp-4); }
.tableau .id-pro { font-variant-numeric: tabular-nums; color: var(--texte-2); }
.pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--sp-3) var(--sp-4); padding: var(--sp-3) var(--sp-4); border-top: var(--bw) solid var(--bordure); font-size: var(--fs-sm); color: var(--texte-2); }
.info-patient { display: flex; flex-direction: column; gap: var(--sp-4); padding: var(--sp-5); border-radius: var(--rayon-m); background: var(--surface-elevee); border: var(--bw) solid var(--bordure); }
.info-patient h3 { font-size: var(--fs-base); }
.info-patient ul { display: flex; flex-direction: column; gap: var(--sp-2); font-size: var(--fs-sm); list-style: none; }
.info-patient li { display: flex; gap: var(--sp-3); align-items: flex-start; }
.info-patient li .ico { color: var(--accent); margin-top: 1px; }
.etapes-aide { display: flex; flex-direction: column; gap: var(--sp-3); }
.etapes-aide li { display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: var(--sp-3); align-items: start; font-size: var(--fs-sm); }
.etapes-aide li .badge { justify-self: start; }
.actions-ligne { text-align: right; white-space: nowrap; }
@media (max-width: 900px) {
  .reglages { grid-template-columns: minmax(0, 1fr); gap: var(--sp-4); }
  .sous-nav { position: static; flex-direction: row; overflow-x: auto; scrollbar-width: none; padding-bottom: var(--sp-1); border-bottom: var(--bw) solid var(--bordure); gap: var(--sp-1); -webkit-mask-image: linear-gradient(to right, #000 88%, transparent); mask-image: linear-gradient(to right, #000 88%, transparent); }
  .sous-nav::-webkit-scrollbar { display: none; }
  .sous-nav a { white-space: nowrap; }
  .sous-nav .ico { display: none; }
}
@media (max-width: 720px) {
  .filtres, .regles-mdp { grid-template-columns: minmax(0, 1fr); }
  .tableau--empile td.actions-ligne { text-align: left; }
  .tableau--empile td.actions-ligne .btn { width: 100%; }
  .carte__actions .btn { width: 100%; }
  .info-patient { padding: var(--sp-4); }
  .etapes-aide li { grid-template-columns: minmax(0, 1fr); gap: var(--sp-1); }
}

/* ---------- Connexion et reprise de session ---------- */
.connexion { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100vh; }
.connexion__marque { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-start; gap: var(--sp-6); padding: var(--sp-7); }
.connexion__marque .marque { color: var(--texte-inverse); }
.connexion__texte { display: flex; flex-direction: column; gap: var(--sp-5); position: relative; z-index: 1; margin-top: var(--sp-6); }
.connexion__texte h1 { font-size: var(--fs-2xl); max-width: 14ch; color: var(--texte-inverse); }
.connexion__texte > p { color: var(--nav-texte); max-width: 40ch; font-size: var(--fs-lg); line-height: 1.4; }
.garanties { display: flex; flex-direction: column; gap: var(--sp-4); position: relative; z-index: 1; }
.garanties li { display: flex; gap: var(--sp-3); align-items: flex-start; font-size: var(--fs-sm); color: var(--nav-texte); }
.garanties .ico { color: var(--corail); margin-top: 2px; }
.garanties strong { display: block; color: var(--texte-inverse); }
.fil-deco { margin-top: auto; width: 100%; height: auto; opacity: 0.9; pointer-events: none; }
.fil-deco path { fill: none; stroke: var(--accent); stroke-width: 3; stroke-linecap: round; }
.fil-deco circle { fill: var(--corail); }
.connexion__form { display: flex; flex-direction: column; justify-content: center; align-items: center; padding: var(--sp-7) var(--sp-5) var(--sp-5); gap: var(--sp-6); }
.connexion__form .formulaire-seul { display: flex; flex-direction: column; gap: var(--sp-5); }
.connexion__form h2 { font-size: var(--fs-xl); }
.connexion__form .pied { border: 0; padding: 0; justify-content: center; }
.note-securite { display: flex; align-items: center; gap: var(--sp-2); font-size: var(--fs-sm); color: var(--texte-2); }
@media (max-width: 900px) {
  .connexion { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .connexion__marque { padding: var(--sp-5) var(--sp-4) var(--sp-6); gap: var(--sp-5); }
  .connexion__texte { margin-top: 0; }
  .connexion__texte h1 { font-size: var(--fs-xl); max-width: none; }
  .connexion__texte > p { font-size: var(--fs-base); }
  .garanties, .fil-deco { display: none; }
  .connexion__form { padding: var(--sp-6) var(--sp-4) var(--sp-5); }
}
