/* =============================================================================
   OrthoAssist — css/03-outil.css
   Outil v2 (refonte « premium » du 24/09/2026) : surcharge 01-base.css.
   ⚠️ Le document du bilan (#bilan-content) et du courrier (#courrier-doc) garde
   ses couleurs d'origine : c'est lui qui part en PDF chez les médecins.

   Les fichiers css/ sont chargés dans l'ordre 01 → 04 : chacun surcharge les
   précédents. Ne pas changer cet ordre dans index.html.
   ============================================================================= */
/* =====================================================================
   OUTIL v2 — refonte du 23/09/2026. Même langage visuel que la landing.
   ⚠️ Le document du bilan (#bilan-content) et le courrier (#courrier-doc)
   gardent EXACTEMENT leurs couleurs d'origine : c'est ce qui sort en PDF.
   Contrastes vérifiés (WCAG AA) : encre #13201B, texte #45534D 8:1,
   texte tertiaire #637069 5,2:1 (l'ancien #999 ne faisait que 2,8:1).
   ===================================================================== */
:root {
  --text-primary: #13201B;
  --text-secondary: #45534D;
  --text-tertiary: #637069;
  --border: #E6E9E3;
  --bg-secondary: #F5F6F3;
  --ox-line-2: #D6DDD6;
  --ox-mint: #EAF5F0;
  --ox-ombre: 0 1px 2px rgba(19, 32, 27, .04), 0 18px 40px -24px rgba(19, 32, 27, .22);
}
/* Le PDF garde ses couleurs d'origine, sauf le gris tertiaire (30/10/2026) :
   #999 ne faisait que 2,8:1, illisible une fois imprimé ; #6B6B6B fait 5,3:1. */
#bilan-content, #courrier-doc {
  --text-primary: #1a1a1a; --text-secondary: #555; --text-tertiary: #6B6B6B;
  --border: #e5e5e5; --bg-secondary: #f8f8f6;
  /* La couleur du texte s'hérite du body, calculée AVANT d'entrer ici avec
     la nouvelle encre : on la redéfinit, sinon le PDF passerait de
     #1a1a1a à #13201B (vérifié par comparaison des flux PDF). */
  color: var(--text-primary);
}

/* ---------- Conteneur et barre d'étapes ---------- */
.container { max-width: 960px; padding: 32px 24px 96px; }
.steps-nav { background: transparent; border: 0; box-shadow: none; padding: 2px; margin-bottom: 26px; }
.step-item { gap: 10px; padding: 5px 12px 5px 5px; border-radius: 99px; transition: background .15s; }
.step-item:hover { background: rgba(19, 32, 27, .05); }
.step-dot { width: 28px; height: 28px; font-size: 13.5px; font-weight: 600; background: #fff; color: var(--text-tertiary); border: 1.5px solid var(--ox-line-2); transition: background .2s, border-color .2s, box-shadow .2s; }
.step-dot.active { background: #137F5E; border-color: #137F5E; color: #fff; box-shadow: 0 0 0 4px rgba(19, 127, 94, .15); }
.step-dot.done { background-color: var(--ox-mint); border-color: #BFE0CF; color: transparent; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B5B42' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: center; background-size: 13px 13px; }
.step-label { font-size: 14px; font-weight: 500; color: var(--text-tertiary); }
.step-label.active { color: var(--text-primary); font-weight: 600; }
.step-label.done { color: #0B5B42; }
.step-arrow { flex: 1 1 18px; min-width: 10px; height: 2px; margin: 0 4px; border-radius: 2px; background: #DFE4DD; font-size: 0; line-height: 0; color: transparent; overflow: hidden; }
.step-item:has(.step-dot.done) + .step-arrow { background: #A9D8C4; }

/* ---------- Cartes ---------- */
.card { border: 1px solid var(--border); border-radius: 20px; padding: 40px 44px 32px; box-shadow: var(--ox-ombre); }
.card-title { font-size: 28px; line-height: 1.15; letter-spacing: -.015em; color: var(--text-primary); margin-bottom: 28px; }

/* ---------- Champs ---------- */
.form-grid { gap: 22px 24px; }
.field { gap: 8px; }
label:where(:not(.oa *)) { font-size: 13.5px; font-weight: 600; color: #2B3832; letter-spacing: -.003em; }
/* Même spécificité que la règle d'origine (élément seul, le :where ne compte
   pas) : les réglages plus précis (tableau des tests, dictée…) restent
   prioritaires. Le :where exclut la landing (.oa), qui a ses propres champs. */
input:where(:not(.oa *)), select:where(:not(.oa *)), textarea:where(:not(.oa *)) { border: 1px solid var(--ox-line-2); border-radius: 12px; padding: 12px 14px; font-size: 15px; line-height: 1.4; color: var(--text-primary); background-color: #fff; box-shadow: 0 1px 2px rgba(19, 32, 27, .04); transition: border-color .15s, box-shadow .15s; }
input:where(:not(.oa *)):hover, select:where(:not(.oa *)):hover, textarea:where(:not(.oa *)):hover { border-color: #B9C4BC; }
input:where(:not(.oa *)):focus, select:where(:not(.oa *)):focus, textarea:where(:not(.oa *)):focus { border-color: #137F5E; box-shadow: 0 0 0 4px rgba(19, 127, 94, .13); outline: none; }
input[type="checkbox"], input[type="radio"] { box-shadow: none; }
textarea { line-height: 1.6; min-height: 104px; resize: vertical; }
select { -webkit-appearance: none; appearance: none; padding-right: 42px; cursor: pointer; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23637069' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 16px 16px; }
input::placeholder, textarea::placeholder { color: #6E7973; }

/* ---------- Boutons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-size: 14.5px; font-weight: 600; line-height: 1.2; padding: 12px 20px; border-radius: 12px; border: 1px solid var(--ox-line-2); background: #fff; color: var(--text-primary); box-shadow: 0 1px 2px rgba(19, 32, 27, .05); }
.btn:hover { background: #fff; border-color: #B9C4BC; }
.btn svg { width: 17px; height: 17px; flex-shrink: 0; }
.btn-primary { background: #137F5E; border-color: #137F5E; color: #fff; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 1px 2px rgba(11, 91, 66, .22), 0 8px 20px -8px rgba(11, 91, 66, .5); }
.btn-primary:hover { background: #0F7052; border-color: #0F7052; }
.btn-sm { padding: 9px 14px; font-size: 13.5px; border-radius: 10px; }
.btn-row { margin-top: 36px; padding-top: 24px; border-top: 1px solid #EEF0EC; }
.btn-lien { background: none; border: 0; padding: 0; color: #0B5B42; font: 600 14px/1.4 'Plus Jakarta Sans', sans-serif; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.btn-lien:hover { color: #137F5E; }
.btn-row .note-pied { font-size: 14px; color: var(--text-tertiary); }

/* ---------- Étape Patient : dictée et confidentialité ---------- */
.dictee-cta { width: 100%; align-items: center; gap: 16px; padding: 18px 20px; margin-bottom: 18px; border: 0; border-radius: 16px; text-align: left; cursor: pointer; color: #fff; background: linear-gradient(135deg, #114534 0%, #0C3326 100%); box-shadow: 0 14px 30px -16px rgba(12, 51, 38, .7); position: relative; overflow: hidden; font-family: 'Plus Jakarta Sans', sans-serif; transition: transform .2s, box-shadow .2s; }
.dictee-cta::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: radial-gradient(60% 140% at 100% 0%, rgba(91, 211, 166, .22), transparent 60%); }
.dictee-cta:hover { transform: translateY(-1px); box-shadow: 0 18px 36px -16px rgba(12, 51, 38, .75); }
.dictee-cta:focus-visible { outline: 2px solid #137F5E; outline-offset: 3px; }
.dictee-cta-ico { width: 46px; height: 46px; flex-shrink: 0; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .14); color: #A7DCC7; }
.dictee-cta-ico svg { width: 22px; height: 22px; }
.dictee-cta-txt { flex: 1; min-width: 0; }
.dictee-cta-txt strong { display: block; font-size: 16.5px; font-weight: 600; letter-spacing: -.01em; color: #fff; }
.dictee-cta-txt span { display: block; margin-top: 3px; font-size: 13.5px; line-height: 1.5; color: #C9DDD5; }
.dictee-cta-tag { flex-shrink: 0; padding: 5px 9px; border-radius: 99px; background: #A7DCC7; color: #0C3326; font-size: 12.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.dictee-cta > svg { width: 20px; height: 20px; flex-shrink: 0; color: #A7DCC7; transition: transform .2s; position: relative; z-index: 1; }
.dictee-cta:hover > svg { transform: translateX(3px); }
.ou-sep { display: flex; align-items: center; gap: 14px; margin: 2px 0 22px; font-size: 13.5px; color: var(--text-tertiary); }
/* « À partir de vos notes » (01/10/2026, js/22-notes.js) */
.notes-cta { width: 100%; display: flex; align-items: center; gap: 16px; padding: 16px 20px; margin: -6px 0 18px; border: 1px solid #CFE3D8; border-radius: 16px; background: #fff; text-align: left; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; transition: border-color .15s, box-shadow .15s; }
.notes-cta:hover { border-color: #9CCBB5; box-shadow: 0 10px 24px -16px rgba(12, 51, 38, .4); }
.notes-cta:focus-visible { outline: 2px solid #137F5E; outline-offset: 3px; }
.notes-cta-ico { width: 46px; height: 46px; flex-shrink: 0; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: #EAF5F0; color: #137F5E; }
.notes-cta-ico svg { width: 22px; height: 22px; }
.notes-cta-txt { flex: 1; min-width: 0; }
.notes-cta-txt strong { display: block; font-size: 15.5px; font-weight: 600; color: #13201B; }
.notes-cta-txt span { display: block; margin-top: 3px; font-size: 14px; line-height: 1.5; color: #637069; }
.notes-cta > svg { width: 20px; height: 20px; flex-shrink: 0; color: #137F5E; }
.notes-card { max-width: 680px; max-height: 92vh; overflow-y: auto; }
.notes-corps { padding: 18px 24px; }
.notes-confid { display: flex; gap: 10px; margin: 0 0 16px; padding: 11px 13px; border-radius: 10px; background: #F7F8F5; border: 1px solid var(--border); font-size: 13.5px; line-height: 1.55; color: var(--text-secondary); }
.notes-confid svg { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; color: #137F5E; }
.notes-label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; color: #2B3832; }
#notes-modal .notes-case { display: block; width: 100%; min-height: 84px; margin-bottom: 14px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; font: 14px/1.6 'Plus Jakarta Sans', sans-serif; resize: vertical; }
#notes-modal .notes-case:focus { outline: none; border-color: #137F5E; box-shadow: 0 0 0 3px rgba(19, 127, 94, .12); }
.notes-case-titre { display: block; margin: 0 0 5px; font-size: 13.5px; font-weight: 600; color: #13201B; }
.notes-coord { margin-top: 8px; grid-template-columns: 1fr 1fr; }
.notes-coord input:last-child { grid-column: span 2; }
.notes-sexe { margin-top: 10px; max-width: 320px; }
.notes-etat { min-height: 20px; margin: 10px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--text-secondary); }
.notes-etat.erreur { color: #B42318; }
.notes-card .sigpad-foot { display: flex; align-items: center; gap: 8px; justify-content: flex-end; position: sticky; bottom: 0; background: var(--bg); }
.notes-card .sigpad-foot > :first-child { margin-right: auto; }   /* « Enregistrer et fermer » à gauche, les deux actions à droite */
.notes-card .sigpad-foot > :first-child { margin-right: auto; }
.notes-card .sigpad-btn:disabled { opacity: .55; cursor: default; }
.notes-card .sigpad-btn.ghost#notes-organiser { border: 1px solid var(--border); color: var(--text-primary); }
@media (max-width: 560px) {
  .notes-cta { padding: 14px; gap: 12px; }
  .notes-corps { padding: 16px; }
  .notes-card .sigpad-foot { padding: 12px 16px; }
  .notes-card .sigpad-foot .sigpad-btn { flex: 1 1 auto; }
  .notes-coche { margin-left: 0; }
}
.ou-sep::before, .ou-sep::after { content: ""; flex: 1; height: 1px; background: var(--border); }
.note-confid { display: flex; align-items: flex-start; gap: 10px; margin: 0 0 26px; padding: 12px 14px; border-radius: 12px; background: #F7F8F5; border: 1px solid var(--border); font-size: 14px; line-height: 1.55; color: var(--text-secondary); }
.note-confid svg { width: 17px; height: 17px; flex-shrink: 0; margin-top: 1px; color: #137F5E; }
.note-confid strong { color: var(--text-primary); font-weight: 600; }

/* ---------- Étape Tests ---------- */
.seg { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 20px; background: #F1F3EF; border: 1px solid var(--border); border-radius: 12px; }
.seg .btn { border: 0; background: transparent; box-shadow: none; color: var(--text-secondary); padding: 8px 14px; }
.seg .btn:hover { transform: none; color: var(--text-primary); }
.seg .btn.btn-primary { background: #fff; color: var(--text-primary); box-shadow: 0 1px 2px rgba(19, 32, 27, .1), 0 1px 1px rgba(19, 32, 27, .04); }
.tests-table { border: 1px solid var(--border); border-radius: 14px; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.tests-table th { padding: 12px; background: #F7F8F5; border-bottom: 1px solid var(--border); font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary); }
.tests-table td { padding: 10px 12px; border-bottom: 1px solid #EEF0EC; }
.tests-table input { padding: 9px 11px; font-size: 14px; border-radius: 9px; box-shadow: none; }
.tests-suppr { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--text-tertiary, #637069); cursor: pointer; transition: background .15s, color .15s; }
.tests-suppr:hover { background: #FEF3F2; color: #B42318; }
.tests-suppr svg { width: 17px; height: 17px; }

/* ---------- Écran de génération ---------- */
#screen-loading .loading-screen.gen { max-width: 520px; margin: 12px auto 0; padding: 48px 40px 40px; background: #fff; border: 1px solid var(--border); border-radius: 20px; box-shadow: var(--ox-ombre); text-align: center; }
.gen-doc { width: 156px; margin: 0 auto 30px; padding: 18px 16px 12px; background: #fff; border: 1px solid var(--border); border-radius: 10px; box-shadow: 0 14px 28px -16px rgba(19, 32, 27, .4); }
.gen-doc i { display: block; height: 7px; margin-bottom: 8px; border-radius: 4px; background: linear-gradient(90deg, #EEF1ED 0%, #D3EBE0 45%, #EEF1ED 90%); background-size: 220% 100%; animation: gen-reflet 1.6s linear infinite; }
.gen-doc i:nth-child(1) { width: 48%; background: #137F5E; opacity: .85; animation: none; margin-bottom: 12px; }
.gen-doc i:nth-child(2) { width: 100%; } .gen-doc i:nth-child(3) { width: 88%; } .gen-doc i:nth-child(4) { width: 94%; } .gen-doc i:nth-child(5) { width: 64%; }
@keyframes gen-reflet { from { background-position: 110% 0; } to { background-position: -110% 0; } }
#screen-loading .loading-title { font-family: 'Plus Jakarta Sans', sans-serif; font-weight: 700; letter-spacing: -.02em; font-size: 27px; line-height: 1.15; letter-spacing: -.015em; color: var(--text-primary); }
#screen-loading .loading-sub { margin-top: 8px; font-size: 14.5px; line-height: 1.55; color: var(--text-secondary); }
.gen-etapes { list-style: none; display: grid; gap: 13px; max-width: 290px; margin: 28px auto 0; padding: 22px 0 0; border-top: 1px solid #EEF0EC; text-align: left; }
.gen-etapes li { display: flex; align-items: center; gap: 12px; font-size: 14.5px; color: var(--text-tertiary); }
.gen-etapes i { position: relative; width: 20px; height: 20px; flex-shrink: 0; border-radius: 50%; border: 1.5px solid var(--ox-line-2); background-repeat: no-repeat; background-position: center; background-size: 12px 12px; }
/* 1 anonymisation, 2 rédaction, 3 relecture clinique, 4 mise en forme :
   chaque étape avance quand la réponse correspondante arrive — aucune ne
   prétend finir avant l'heure. */
/* Étapes pilotées par js/08-generation.js (etapeGeneration) : .fait / .actif */
.gen-etapes li.fait { color: var(--text-secondary); }
.gen-etapes li.fait i { animation: gen-fait .25s forwards; }
.gen-etapes li.actif { color: var(--text-primary); font-weight: 600; }
.gen-etapes li.actif i { animation: gen-actif .01s forwards, gen-tourne .9s linear infinite; }
@keyframes gen-fait { to { background-color: #137F5E; border-color: #137F5E; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); } }
@keyframes gen-actif { to { border-color: #137F5E; border-top-color: transparent; } }
@keyframes gen-tourne { to { transform: rotate(360deg); } }
@keyframes gen-texte-fait { to { color: var(--text-secondary); } }
@keyframes gen-texte-actif { to { color: var(--text-primary); font-weight: 600; } }

/* ---------- Écran du bilan : barre d'actions et feuille ---------- */
.bl-barre { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 18px; }
.bl-retour { display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px 9px 8px; border: 0; border-radius: 10px; background: transparent; color: var(--text-secondary); font: 500 14px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; transition: background .15s, color .15s; }
.bl-retour:hover { background: rgba(19, 32, 27, .05); color: var(--text-primary); }
.bl-retour svg { width: 17px; height: 17px; }
.output-actions { align-items: center; justify-content: flex-end; gap: 8px; margin-left: auto; }   /* à droite : « Exporter en PDF » reste en bout de ligne si la barre passe sur deux lignes (29/10/2026) */
.bl-sep { width: 1px; height: 24px; margin: 0 4px; background: var(--border); }
@media screen {
  #screen-6 .bilan-output { padding: 56px 60px; border: 1px solid #E6E9E3; border-radius: 8px; box-shadow: 0 1px 3px rgba(19, 32, 27, .06), 0 32px 64px -32px rgba(19, 32, 27, .3); }
}
.edit-hint { display: flex; align-items: center; gap: 8px; font-style: normal; font-size: 13.5px; line-height: 1.5; color: #45534D; background: #F4F8F6; border: 1px solid #DCEBE3; border-radius: 10px; padding: 10px 12px; }
.edit-hint svg { width: 16px; height: 16px; flex-shrink: 0; color: #137F5E; }
.edit-hint strong { color: #0B5B42; }
.bs-adjust { display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px 5px 9px; font-size: 13.5px; font-weight: 600; color: #0B5B42; background: #fff; border: 1px solid #CFE6DA; border-radius: 99px; }
.bs-adjust:hover { background: #EAF5F0; }
.bs-adjust svg { width: 14px; height: 14px; }

/* ---------- Fenêtres ---------- */
.sigpad-overlay { background: rgba(12, 26, 21, .5); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.sigpad-card { border: 1px solid var(--border); border-radius: 20px; box-shadow: 0 2px 8px rgba(19, 32, 27, .06), 0 40px 80px -24px rgba(12, 51, 38, .45); }
.sigpad-head { padding: 22px 26px 18px; border-bottom-color: #EEF0EC; }
.sigpad-title { display: flex; align-items: center; gap: 10px; font-size: 22px; letter-spacing: -.01em; }
.sigpad-title svg { width: 22px; height: 22px; flex-shrink: 0; color: #137F5E; }
.sigpad-sub { margin-top: 6px; font-size: 13.5px; line-height: 1.55; color: var(--text-secondary); }
.sigpad-foot { padding: 14px 22px; border-top-color: #EEF0EC; background: #FAFAF8; }
.sigpad-btn { padding: 11px 18px; border-radius: 11px; font-size: 14px; }
.sigpad-btn.primary { box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 6px 16px -8px rgba(11, 91, 66, .55); }
.sigpad-btn.ghost:hover { text-decoration: none; background: rgba(19, 32, 27, .05); color: var(--text-primary); }
.voice-ident-titre { display: flex; align-items: center; gap: 7px; }
.voice-ident-titre svg, .note-mini svg { width: 15px; height: 15px; flex-shrink: 0; color: #137F5E; }
.note-mini { display: flex; align-items: flex-start; gap: 7px; }
.voice-mic svg { width: 38px; height: 38px; }
.hist-suppr { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 1px solid transparent; border-radius: 9px; background: transparent; color: var(--text-tertiary, #637069); cursor: pointer; }
.hist-suppr:hover { background: #FEF3F2; color: #B42318; }
.hist-suppr svg { width: 17px; height: 17px; }
.voice-ident-titre span::before { content: "— "; }
.voice-rec-dot { width: 10px; height: 10px; flex-shrink: 0; border-radius: 50%; background: #D92D20; animation: rec-pouls 1.6s ease-out infinite; }
#voice-rec-controls.en-pause .voice-rec-dot { background: #98A29C; animation: none; }
@keyframes rec-pouls { 0% { box-shadow: 0 0 0 0 rgba(217, 45, 32, .45); } 70%, 100% { box-shadow: 0 0 0 8px rgba(217, 45, 32, 0); } }
.demo-bandeau { align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px 20px; margin-bottom: 18px; padding: 16px 18px; background: #F4F8F6; border: 1px solid #DCEBE3; border-radius: 14px; }
.demo-bandeau-txt { display: flex; align-items: flex-start; gap: 12px; flex: 1 1 380px; min-width: 0; }
.demo-bandeau-ic { width: 36px; height: 36px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; background: #fff; border: 1px solid #DCEBE3; color: #137F5E; }
.demo-bandeau-ic svg { width: 18px; height: 18px; }
.demo-bandeau strong { display: block; font-size: 14.5px; font-weight: 600; color: var(--text-primary); margin-bottom: 2px; }
.demo-bandeau-txt span:not(.demo-bandeau-ic) { display: block; font-size: 14px; line-height: 1.55; color: var(--text-secondary); }
.courrier-opt { position: relative; padding: 15px 44px 15px 17px; border-radius: 14px; background: #fff; transition: border-color .15s, background .15s, box-shadow .15s; }
.courrier-opt::after { content: ""; position: absolute; right: 16px; top: 50%; width: 18px; height: 18px; margin-top: -9px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23637069' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .15s; }
.courrier-opt:hover:not(:disabled) { border-color: #137F5E; background: #F4F8F6; box-shadow: 0 6px 18px -12px rgba(11, 91, 66, .5); }
.courrier-opt:hover:not(:disabled)::after { transform: translateX(3px); }
.courrier-opt-titre { font-size: 14.5px; font-weight: 600; margin-bottom: 3px; }

/* ---------- Préférences, messages, bandeau de brouillon ---------- */
.pref-label { font-size: 15px; font-weight: 600; }
.pref-options label { padding: 13px 15px; border-radius: 12px; border-color: var(--border); background: #fff; font-weight: 500; color: var(--text-secondary); }
.pref-options label:hover { background: #FAFBF9; border-color: #C9D3CC; }
.pref-options label:has(input:checked) { background: #F2F9F5; border-color: #137F5E; color: #0B5B42; box-shadow: inset 0 0 0 1px #137F5E; }
.error-msg { padding: 12px 16px; border: 1px solid #FECDCA; border-radius: 12px; background: #FEF3F2; color: #B42318; font-size: 14px; line-height: 1.5; }
.brouillon { align-items: center; justify-content: space-between; gap: 12px 20px; flex-wrap: wrap; padding: 12px 28px; background: #F7F8F5; border-bottom: 1px solid var(--border); font-family: 'Plus Jakarta Sans', sans-serif; font-size: 14px; color: var(--text-secondary); }
.brouillon strong { color: var(--text-primary); font-weight: 600; }
.brouillon-txt { display: flex; align-items: center; gap: 10px; }
.brouillon-txt svg { width: 18px; height: 18px; color: #137F5E; flex-shrink: 0; }
.brouillon-actions { display: flex; gap: 8px; }

/* ---------- Formulaire : compléments du 24/09/2026 ----------
   Deuxième carte de l'étape 5 (conclusion de la praticienne), bloc
   « Évolution » du bilan de renouvellement, choix rapides (.choix : un seul
   choix, re-cliquer désélectionne) et puces multiples (.puces). */
.card + .card { margin-top: 20px; }
.card-intro { margin: -12px 0 24px; font-size: 14px; line-height: 1.55; color: var(--text-secondary); }
.field > .label { font-size: 13.5px; font-weight: 600; color: #2B3832; letter-spacing: -.003em; }
.form-sous-titre { display: flex; align-items: baseline; gap: 10px; margin: 0 0 16px; padding-bottom: 10px; border-bottom: 1px solid var(--border); font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #0B5B42; }
.form-sous-titre span { font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--text-tertiary); font-size: 13.5px; }
.bloc-renouv { margin-bottom: 28px; }
.bloc-renouv .form-grid { margin-bottom: 30px; }
.choix { display: flex; gap: 4px; padding: 4px; background: #F1F3EF; border: 1px solid var(--border); border-radius: 12px; }
.choix button { flex: 1; min-height: 38px; padding: 8px 12px; border: 0; border-radius: 9px; background: transparent; color: var(--text-secondary); font: 500 14px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; transition: background .15s, color .15s, box-shadow .15s; }
.choix button:hover { color: var(--text-primary); }
.choix button[aria-pressed="true"] { background: #fff; color: #0B5B42; font-weight: 600; box-shadow: 0 1px 2px rgba(19, 32, 27, .1), 0 1px 1px rgba(19, 32, 27, .04); }
.choix button:focus-visible, .puces button:focus-visible { outline: 2px solid #137F5E; outline-offset: 2px; }
.puces { display: flex; flex-wrap: wrap; gap: 8px; }
.puces button { display: inline-flex; align-items: center; gap: 6px; padding: 8px 13px; border: 1px solid var(--ox-line-2); border-radius: 99px; background: #fff; color: var(--text-secondary); font: 500 13.5px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; transition: background .15s, border-color .15s, color .15s; }
.puces button:hover { border-color: #B9C4BC; color: var(--text-primary); }
.puces button[aria-pressed="true"] { background: #EAF5F0; border-color: #9FD2BC; color: #0B5B42; font-weight: 600; }
.puces button[aria-pressed="true"]::before { content: ""; width: 12px; height: 12px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B5B42' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat; }
.puces-precisions { margin-top: 12px; }
.field-aide { margin-top: 2px; font-size: 13.5px; line-height: 1.45; color: #9A5B0B; }
input[aria-invalid="true"] { border-color: #E0A43A; }
.label-mini { display: block; margin-bottom: 7px; font-size: 13.5px; font-weight: 500; color: var(--text-secondary); }
.plan-soins { display: grid; grid-template-columns: 1.1fr 1.3fr 1fr; gap: 14px; padding: 16px; background: #FAFBF9; border: 1px solid var(--border); border-radius: 14px; }
.plan-soins .choix { background: #fff; }
.plan-soins .choix button[aria-pressed="true"] { background: #EAF5F0; box-shadow: none; }
.plan-soins input { width: 100%; }

/* ---------- Encart « À vérifier avant envoi » (écran uniquement) ---------- */
.bilan-verifs { margin: 0 0 16px; padding: 16px 18px; background: #FFFAEB; border: 1px solid #F5D98B; border-radius: 14px; font-size: 14px; line-height: 1.55; color: #5C4A12; }
.bilan-verifs-titre { display: flex; align-items: center; gap: 10px; font-weight: 600; color: #3F330C; margin-bottom: 6px; }
.bilan-verifs-titre svg { width: 18px; height: 18px; flex-shrink: 0; color: #B7791F; }
.bilan-verifs ul { margin: 6px 0 0; padding: 0; list-style: none; }
.bilan-verifs li { display: flex; align-items: flex-start; gap: 12px; padding: 8px 0; border-top: 1px solid rgba(183, 121, 31, .18); }
.bilan-verifs li > span:first-child { flex: 1; }
.bilan-verifs li.verifie > span:first-child { color: #8A7A4A; }
.bilan-verifs-ok { flex-shrink: 0; padding: 5px 11px; border: 1px solid #E3C77A; border-radius: 8px; background: #fff; color: #5C4A12; font: 600 13.5px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.bilan-verifs-ok:hover { background: #FFF4D6; }
.bilan-verifs-fait { flex-shrink: 0; padding: 5px 2px; font-size: 13.5px; font-weight: 600; color: #3F7A63; }
.bilan-verifs-source { margin: 12px 0 0; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8A6D1F; }
.bilan-verifs-revoir { font-style: normal; font-weight: 600; color: #B7791F; }
.bilan-verifs-note { margin: 10px 0 0; font-size: 13.5px; color: #7A6A3A; }
@media (max-width: 480px) { .bilan-verifs li { flex-direction: column; gap: 6px; } }
.bilan-verifs-fermer { margin-left: auto; padding: 4px 10px; border: 0; border-radius: 8px; background: transparent; color: #5C4A12; font: 500 14px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.bilan-verifs-fermer:hover { background: rgba(92, 74, 18, .08); }
@media print { .bilan-verifs { display: none !important; } }
/* Coût IA réel (comptes administrateurs) */
.bilan-cout { margin: 0 0 16px; padding: 14px 18px; background: #F4F6F3; border: 1px dashed #C9D3CC; border-radius: 14px; font-size: 14px; color: var(--text-secondary); }
.bilan-cout-titre { font-weight: 600; color: var(--text-primary); margin-bottom: 8px; }
.bilan-cout-titre span { margin-left: 8px; font-weight: 400; font-size: 13px; color: var(--text-tertiary); }
.bilan-cout table { width: 100%; border-collapse: collapse; }
.bilan-cout td { padding: 5px 0; border-top: 1px solid #E3E8E1; vertical-align: top; }
.bilan-cout td:first-child { width: 30%; color: var(--text-primary); }
.bilan-cout td:last-child { width: 14%; text-align: right; font-variant-numeric: tabular-nums; color: var(--text-primary); }
.bilan-cout-total td { font-weight: 700; color: var(--text-primary); }
.bilan-cout-note { margin-top: 8px; font-size: 12.5px; line-height: 1.5; color: var(--text-tertiary); }
@media print { .bilan-cout { display: none !important; } }

/* ---------- Renouvellement relié à un bilan précédent, recherche (27/09/2026) ---------- */
.renouv-source { margin: 0 0 22px; flex-wrap: wrap; }
.renouv-source span { flex: 1 1 260px; }
.renouv-action { flex-shrink: 0; padding: 7px 12px; border: 1px solid #CFE3D8; border-radius: 9px; background: #fff; color: #0B5B42; font: 600 13.5px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.renouv-action:hover { background: #EAF5F0; }
.hist-aucun { margin: 18px 0; text-align: center; font-size: 14px; color: var(--text-secondary); }
textarea.champ-court { min-height: 64px; }
@media (max-width: 480px) {
  textarea.champ-court { min-height: 88px; }
}

/* ---------- Application installée et installation (27/09/2026) ---------- */
.app-mode .hors-application, .app-mode #auth-close { display: none !important; }
.hd-item[hidden] { display: none; }
.oa-hors-ligne { position: fixed; top: 76px; left: 50%; transform: translateX(-50%); z-index: 10090; width: max-content; max-width: calc(100vw - 32px); padding: 10px 16px; border-radius: 12px; background: #FFFAEB; border: 1px solid #F5D98B; color: #5C4A12; font: 500 13.5px/1.45 'Plus Jakarta Sans', sans-serif; box-shadow: 0 8px 24px rgba(19, 32, 27, .12); }
@media print { .oa-hors-ligne { display: none !important; } }
.oa-installation.oa-confirmation .sigpad-card { max-width: 480px; }
.oa-installation .sigpad-foot { display: flex; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.oa-install-etapes { margin: 16px 26px 4px 26px; padding: 0 0 0 22px; font-size: 14.5px; line-height: 1.6; color: var(--text-primary); }
.oa-install-etapes li + li { margin-top: 8px; }
.oa-install-etapes strong { font-weight: 600; }
.oa-install-note { margin: 14px 26px 18px; padding: 10px 12px; border-radius: 10px; background: #F4F8F6; border: 1px solid #DCEBE3; font-size: 14px; line-height: 1.5; color: #45534D; }

/* ---------- Application installée : barre latérale et accueil (28/09/2026) ----------
   Dès que l'outil est ouvert par une utilisatrice connectée (html.espace-outil,
   posée par js/16 ; toujours présente dans l'application installée) : même
   interface dans le navigateur et dans l'application depuis le 29/09/2026.
   La page d'accueil du site et la démo ne changent pas.
   Écran large : barre latérale fixe à la place de l'en-tête ; en dessous de
   760 px, l’en-tête habituel reste (30/10/2026 : 900 → 760 px, pour qu’un zoom à 150 % garde la barre). */
.app-barre { display: none; }
@media (min-width: 760px) {
  .espace-outil .app-barre { position: fixed; top: 0; bottom: 0; left: 0; z-index: 90; width: 248px; display: flex; flex-direction: column; padding: 18px 14px 14px; background: #fff; border-right: 1px solid #E6E9E3; overflow-y: auto; }
  .espace-outil #app { padding-left: 248px; }
  .espace-outil #app > .header { display: none; }
  .espace-outil .container { padding-top: 36px; }
}
.ab-marque { display: flex; align-items: center; gap: 9px; padding: 4px 8px 16px; font: 22px/1 'DM Serif Display', serif; color: #13201B; }
.ab-marque span span { color: #137F5E; }
.ab-nouveau { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 0 14px; padding: 11px 14px; border: 0; border-radius: 12px; background: #137F5E; color: #fff; font: 600 14.5px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; box-shadow: 0 1px 2px rgba(19, 127, 94, .25), 0 6px 16px -6px rgba(19, 127, 94, .45); }
.ab-nouveau:hover { background: #0F7052; }
.ab-nouveau svg { width: 18px; height: 18px; }
.ab-nav, .ab-bas { display: flex; flex-direction: column; gap: 2px; }
.ab-item { display: flex; align-items: center; gap: 11px; width: 100%; padding: 9px 10px; border: 0; border-radius: 10px; background: transparent; color: #45534D; font: 500 14px/1.25 'Plus Jakarta Sans', sans-serif; text-align: left; cursor: pointer; }
.ab-item[hidden] { display: none; }
.ab-item svg { width: 18px; height: 18px; flex-shrink: 0; color: #637069; }
.ab-item:hover { background: #F3F5F1; color: #13201B; }
.ab-item.actif { background: #EAF5F0; color: #0B5B42; font-weight: 600; }
.ab-item.actif svg { color: #137F5E; }
.ab-lib { min-width: 0; }
.ab-item em { display: block; margin-top: 1px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-style: normal; font-weight: 500; font-size: 13px; color: var(--text-tertiary, #637069); }
.ab-item em:empty { display: none; }
.ab-item.actif em { color: #3F7A63; }
.ab-bas { margin-top: auto; padding-top: 12px; border-top: 1px solid #EEF0EC; }
.ab-compte { display: flex; align-items: center; gap: 10px; margin-top: 8px; padding: 10px 6px 2px 8px; }
.ab-avatar { width: 34px; height: 34px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: #EAF5F0; color: #0B5B42; font: 600 14px/1 'Plus Jakarta Sans', sans-serif; }
.ab-compte-txt { flex: 1; min-width: 0; }
.ab-compte-txt p { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 1.35; font-weight: 600; color: #13201B; }
.ab-compte-txt p + p { font-size: 13px; font-weight: 400; color: #637069; }
.ab-sortie { width: 32px; height: 32px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border: 0; border-radius: 8px; background: transparent; color: var(--text-tertiary, #637069); cursor: pointer; }
.ab-sortie:hover { background: #FEF3F2; color: #B42318; }
.ab-sortie svg { width: 17px; height: 17px; }

.container:has(#screen-accueil.active) .steps-nav, .container:has(#screen-fiches.active) .steps-nav { display: none; }
.espace-outil #draft-banner { display: none !important; }
.acc-tete { margin: 2px 0 24px; }
.acc-date { margin: 0 0 4px; font-size: 13.5px; color: #637069; }
.acc-bonjour { margin: 0; font: 700 33px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; letter-spacing: -.01em; color: #13201B; }
.acc-alerte, .acc-brouillon { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 16px; margin: 0 0 16px; padding: 14px 16px; border-radius: 14px; }
.acc-alerte[hidden], .acc-brouillon[hidden], .acc-carte[hidden], .acc-vide[hidden] { display: none; }
.acc-alerte { background: #FFFAEB; border: 1px solid #F5D98B; color: #5C4A12; font-size: 14px; line-height: 1.45; }
.acc-brouillon { background: #fff; border: 1px solid #CFE3D8; box-shadow: 0 1px 2px rgba(19, 32, 27, .04); }
.acc-brouillon-txt strong { display: block; font-size: 12.5px; letter-spacing: .07em; text-transform: uppercase; color: #137F5E; }
.acc-brouillon-txt span { display: block; margin-top: 3px; font-size: 15px; font-weight: 600; color: #13201B; }
.acc-brouillon-actions { display: flex; gap: 8px; }
.acc-actions { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 6px 0 30px; }
.acc-carte { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 20px 18px 18px; border: 1px solid #E6E9E3; border-radius: 16px; background: #fff; text-align: left; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; transition: border-color .15s, box-shadow .15s, transform .15s; }
.acc-carte:hover { border-color: #B8D9C9; box-shadow: 0 10px 24px -14px rgba(12, 51, 38, .35); transform: translateY(-1px); }
.acc-carte svg { width: 26px; height: 26px; margin-bottom: 6px; color: #137F5E; }
.acc-carte strong { font-size: 16px; color: #13201B; }
.acc-carte span { font-size: 14px; line-height: 1.45; color: #637069; }
.acc-principale { background: #137F5E; border-color: #137F5E; }
.acc-principale svg, .acc-principale strong { color: #fff; }
.acc-principale span { color: rgba(255, 255, 255, .85); }
.acc-principale:hover { background: #0F7052; border-color: #0F7052; }
.acc-recents { padding: 18px 20px 8px; border: 1px solid #E6E9E3; border-radius: 16px; background: #fff; }
.acc-recents-tete { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 4px; }
.acc-recents h2 { margin: 0; font: 600 15px/1.3 'Plus Jakarta Sans', sans-serif; color: #13201B; }
.acc-lien { padding: 4px; border: 0; background: none; color: #137F5E; font: 600 13.5px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.acc-bilan { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; padding: 12px 0; border-top: 1px solid #EEF0EC; }
.acc-bilan:first-child { border-top: 0; }
.acc-bilan-info strong { display: block; font-size: 14.5px; color: #13201B; }
.acc-bilan-info span { display: block; margin-top: 2px; font-size: 13.5px; color: #637069; }
.acc-bilan-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.acc-vide { margin: 8px 0 14px; font-size: 14px; color: #637069; }
@media (max-width: 720px) {
  .acc-actions { grid-template-columns: 1fr; gap: 10px; margin-bottom: 24px; }
  .acc-bonjour { font-size: 30px; }
  .acc-carte { display: grid; grid-template-columns: 30px 1fr; align-items: center; column-gap: 14px; row-gap: 2px; padding: 15px 16px; }
  .acc-carte svg { grid-row: span 2; margin: 0; }
}

/* ---------- Messages intégrés et confirmations (remplacent alert/confirm) ---------- */
#oa-messages { position: fixed; left: 50%; bottom: 24px; z-index: 10100; display: flex; flex-direction: column; align-items: center; gap: 8px; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 32px); pointer-events: none; }
.oa-message { display: flex; align-items: center; gap: 14px; padding: 12px 16px 12px 18px; border-radius: 12px; background: #13201B; color: #F4F7F5; font: 500 14px/1.45 'Plus Jakarta Sans', sans-serif; box-shadow: 0 12px 32px -12px rgba(12, 26, 21, .55); pointer-events: auto; animation: oa-message-entre .22s ease-out; }
.oa-message-erreur { background: #7A1F17; }
.oa-message button { flex-shrink: 0; padding: 6px 10px; border: 0; border-radius: 8px; background: rgba(255, 255, 255, .14); color: #fff; font: 600 14px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.oa-message button:hover { background: rgba(255, 255, 255, .24); }
.oa-message-sort { opacity: 0; transform: translateY(6px); transition: opacity .25s, transform .25s; }
@keyframes oa-message-entre { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.oa-confirmation { z-index: 10050; }
.oa-confirmation .sigpad-card { max-width: 440px; }
.sigpad-btn.primary.danger { background: #B42318; border-color: #B42318; box-shadow: none; }
.sigpad-btn.primary.danger:hover { background: #912018; }
.sigpad-btn:focus-visible { outline: 2px solid #137F5E; outline-offset: 2px; }
.sigpad-btn.danger:focus-visible { outline-color: #B42318; }
@media print { #oa-messages, .oa-confirmation { display: none !important; } }

/* ---------- Mobile ---------- */
@media (max-width: 768px) {
  .card + .card { margin-top: 14px; }
  .card-intro { margin: -8px 0 20px; }
  .puces button { font-size: 14px; padding: 8px 11px; }
  .plan-soins { grid-template-columns: 1fr; padding: 14px; }
  .container { padding: 18px 14px 72px; }
  .card { padding: 26px 20px 22px; border-radius: 18px; }
  .card-title { font-size: 23px; margin-bottom: 20px; }
  .step-item { padding: 0; }
  .step-item:has(.step-dot.active) { padding: 4px 10px 4px 4px; }
  .step-label.active { display: inline; }
  .step-arrow { min-width: 6px; margin: 0 2px; }
  .voice-ident-titre { flex-wrap: wrap; row-gap: 2px; }
  .voice-ident-titre span { flex-basis: 100%; padding-left: 22px; }
  .voice-ident-titre span::before { content: none; }
  .btn-row { margin-top: 28px; padding-top: 20px; }
  .dictee-cta { padding: 16px; gap: 12px; }
  .dictee-cta-tag { display: none; }
  .output-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; margin-left: 0; }
  .output-actions .btn { width: 100%; }
  .bl-sep { display: none; }
  #screen-6 .bilan-output { padding: 24px 18px; }
  .brouillon { padding: 12px 14px; }
  #screen-loading .loading-screen.gen { padding: 36px 22px 30px; }
}
@media (max-width: 640px) {
  .tests-table, .tests-table tbody { display: block; border: 0; border-radius: 0; overflow: visible; }
  .tests-table thead { display: none; }
  .tests-table tr { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; padding: 14px; background: #fff; border: 1px solid var(--border); border-radius: 14px; }
  .tests-table td { display: block; padding: 0; border: 0; }
  .tests-table td:first-child { grid-column: span 2; padding-right: 42px; }
  .tests-table td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 5px; font-size: 12.5px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--text-tertiary); }
  .tests-table td input { width: 100% !important; }
  .tests-table td:last-child { position: absolute; top: 10px; right: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .gen-doc i, .gen-etapes li.actif i { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .voice-rec-dot { animation: none; }
}

/* ---------- Inviter une consœur (04/10/2026, js/03-parrainage.js) ---------- */
.ref-card { max-width: 580px; max-height: 92vh; overflow-y: auto; }
.ref-tete { display: flex; gap: 14px; align-items: flex-start; padding: 22px 24px 16px; border-bottom: 1px solid var(--border); }
.ref-ico { width: 44px; height: 44px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 14px; background: #EAF5F0; color: #137F5E; }
.ref-ico svg { width: 22px; height: 22px; }
.ref-titre { margin: 2px 0 4px; font: 700 21px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #13201B; }
.ref-sous { margin: 0; font-size: 13.5px; line-height: 1.5; color: var(--text-secondary); }
.ref-corps { padding: 18px 24px 16px; }
.ref-label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; color: #2B3832; }
.ref-label span { margin-left: 6px; font-weight: 400; color: var(--text-tertiary); }
#ref-message { width: 100%; padding: 12px 14px; border: 1px solid var(--border); border-radius: 12px; background: #FBFCFA; font: 14px/1.6 'Plus Jakarta Sans', sans-serif; color: var(--text-primary); resize: vertical; }
#ref-message:focus { outline: none; border-color: #137F5E; background: #fff; box-shadow: 0 0 0 3px rgba(19, 127, 94, .12); }
.ref-aide { margin: 6px 0 0; font-size: 13px; color: var(--text-tertiary); }
.ref-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.ref-btn { display: inline-flex; align-items: center; gap: 6px; padding: 9px 11px; border: 1px solid var(--border); border-radius: 10px; background: #fff; color: #13201B; font: 600 13.5px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; transition: border-color .15s, background .15s; }
.ref-btn svg { width: 17px; height: 17px; color: #137F5E; }
.ref-btn:hover { border-color: #9CCBB5; background: #F4F8F6; }
.ref-btn[hidden] { display: none; }
.ref-principal { background: #137F5E; border-color: #137F5E; color: #fff; }
.ref-principal svg { color: #fff; }
.ref-principal:hover { background: #0F7052; border-color: #0F7052; }
.ref-lien { display: flex; align-items: center; gap: 8px; margin: 14px 0 0; font-size: 13px; color: var(--text-tertiary); }
.ref-lien input { flex: 1; min-width: 0; padding: 6px 8px; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-secondary); font: 12.5px ui-monospace, 'SF Mono', Menlo, monospace; color: var(--text-secondary); }
.ref-pied { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; padding: 12px 24px; border-top: 1px solid var(--border); font-size: 13px; color: var(--text-tertiary); }
@media (max-width: 560px) {
  .ref-tete, .ref-corps { padding-left: 16px; padding-right: 16px; }
  .ref-pied { padding: 10px 16px; }
  .ref-btn { flex: 1 1 calc(50% - 4px); justify-content: center; }
  .ref-principal { flex-basis: 100%; }
  .ref-lien { flex-wrap: wrap; }
}

/* ---------- Bibliothèque de fiches (11/10/2026, js/23-fiches.js, js/24-fiches-admin.js) ---------- */
#screen-fiches { padding-bottom: 40px; }
.fi-tete { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin: 2px 0 16px; }
.fi-titre { margin: 0; font: 700 31px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #13201B; }
.fi-sous { margin: 4px 0 0; font-size: 14px; color: #637069; }
.fi-onglets { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.fi-onglet { padding: 7px 13px; border: 1px solid #E3E7E1; border-radius: 99px; background: #fff; color: #2B3832; font: 600 13.5px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.fi-onglet span { margin-left: 4px; color: var(--text-tertiary, #637069); font-weight: 500; }
.fi-onglet.actif { background: #137F5E; border-color: #137F5E; color: #fff; }
.fi-onglet.actif span { color: #DDEFE6; }
.fi-mois { width: auto; padding: 7px 10px; border: 1px solid #E3E7E1; border-radius: 99px; font: 500 13.5px 'Plus Jakarta Sans', sans-serif; background: #fff; }
.fi-categories { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.fi-cat { padding: 6px 11px; border: 1px solid #DCE5DF; border-radius: 8px; background: #F7FAF8; color: #2B3832; font: 500 14px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.fi-cat span { color: var(--text-tertiary, #637069); margin-left: 2px; }
.fi-cat.actif { background: #EAF5F0; border-color: #137F5E; color: #0B5B42; font-weight: 600; }
.fi-filtres { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.fi-filtres input[type="search"] { flex: 1 1 260px; }
.fi-filtres input, .fi-filtres select { padding: 9px 12px; border: 1px solid var(--border); border-radius: 10px; font: 14px 'Plus Jakarta Sans', sans-serif; background: #fff; }
.fi-filtres select { width: auto; max-width: 260px; }
.fi-nb { margin: 4px 0 12px; font-size: 13.5px; color: #637069; }
.fi-grille { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.fi-carte { display: flex; flex-direction: column; background: #fff; border: 1px solid #E6E9E3; border-radius: 16px; overflow: hidden; }
.fi-apercu { display: block; aspect-ratio: 210 / 297; max-height: 240px; width: 100%; border: 0; border-bottom: 1px solid #EEF0EC; background: #F4F6F3; cursor: pointer; padding: 0; overflow: hidden; }
.fi-apercu img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.fi-attente { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, #F1F3EF, #F7F8F5, #F1F3EF); }
.fi-format { display: flex; height: 100%; align-items: center; justify-content: center; font-weight: 700; color: #637069; }
.fi-corps { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px 14px; flex: 1; }
.fi-corps h3 { margin: 0; font-size: 15px; line-height: 1.35; color: #13201B; }
.fi-corps .btn { align-self: flex-start; margin-top: auto; }
.fi-ligne { display: flex; justify-content: space-between; align-items: center; min-height: 24px; }
.fi-nouveau { padding: 2px 9px; border-radius: 99px; background: #137F5E; color: #fff; font-size: 12.5px; font-weight: 700; letter-spacing: .03em; }
.fi-date { font-size: 13px; color: var(--text-tertiary, #637069); }
.fi-fav { border: 0; background: none; font-size: 20px; line-height: 1; color: #B7791F; cursor: pointer; padding: 2px 4px; }
.fi-desc { margin: 0; font-size: 14px; color: #45534D; line-height: 1.45; }
.fi-meta { margin: 0; font-size: 13.5px; color: #637069; }
.fi-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 6px 0 0; }
.fi-tags span { font-size: 12.5px; padding: 1px 7px; border-radius: 6px; background: #EAF5F0; color: #0B5B42; }
.fi-plus { display: flex; justify-content: center; margin-top: 18px; }
.fi-etat { padding: 22px; text-align: center; color: #637069; background: #fff; border: 1px dashed #DDE2DB; border-radius: 14px; font-size: 14px; }
.fi-erreur { color: #B42318; border-color: #F3C5BF; background: #FEF3F2; }
.fi-presentation { background: #fff; border: 1px solid #E6E9E3; border-radius: 18px; padding: 26px; max-width: 640px; }
.fi-presentation h2 { margin: 0 0 8px; font: 700 22px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; }
.fi-presentation p { color: #45534D; }
.fi-lecteur { max-width: 980px; width: 100%; max-height: 94vh; display: flex; flex-direction: column; }
.fi-lecteur-tete { display: flex; justify-content: space-between; gap: 12px; padding: 18px 22px 12px; border-bottom: 1px solid var(--border); }
.fi-lecteur-tete h2 { margin: 0 0 4px; font-size: 19px; }
.fi-lecteur-corps { padding: 14px 22px; overflow-y: auto; flex: 1; }
.fi-cadre { height: 62vh; border: 1px solid #E6E9E3; border-radius: 10px; overflow: hidden; background: #F4F6F3; }
.fi-cadre iframe { width: 100%; height: 100%; border: 0; }
.fi-aide { font-size: 13.5px; color: var(--text-tertiary, #637069); }
.fi-annexes { padding-left: 18px; }
.lien-btn { border: 0; background: none; padding: 0; color: #137F5E; text-decoration: underline; cursor: pointer; font: inherit; }
.fi-format-mini { font-size: 13px; color: var(--text-tertiary, #637069); }
.fa-carte { max-width: 1200px; width: 100%; max-height: 94vh; display: flex; flex-direction: column; }
.fa-carte .fi-onglets { padding: 12px 22px 0; }
.fa-corps { padding: 6px 22px 22px; overflow-y: auto; }
.fa-lot { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 10px; align-items: end; margin: 10px 0 14px; padding: 12px; background: #F7F8F5; border-radius: 12px; }
.fa-lot label, .fa-modif label, .fa-depot { display: flex; flex-direction: column; gap: 4px; font-size: 13.5px; font-weight: 600; color: #45534D; }
.fa-lot input, .fa-modif input, .fa-modif textarea { padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; font: 14px 'Plus Jakarta Sans', sans-serif; }
.fa-fichiers { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 12px; }
.fa-depot { padding: 12px; border: 1px dashed #C9D3CC; border-radius: 12px; background: #fff; }
.fa-tableau { overflow-x: auto; border: 1px solid #E6E9E3; border-radius: 12px; }
.fa-tableau table { width: 100%; border-collapse: collapse; font-size: 14px; }
.fa-tableau th { text-align: left; padding: 8px; background: #F7F8F5; font-size: 12.5px; text-transform: uppercase; letter-spacing: .04em; color: var(--text-tertiary, #637069); }
.fa-tableau td { padding: 6px 8px; border-top: 1px solid #EEF0EC; vertical-align: top; }
.fa-tableau td input:not([type]), .fa-tableau td input[type="text"] { width: 100%; min-width: 110px; padding: 6px 8px; border: 1px solid var(--border); border-radius: 7px; font: 14px 'Plus Jakarta Sans', sans-serif; }
.fa-nom { min-width: 170px; }
.fa-nom img { display: block; width: 46px; border: 1px solid #E6E9E3; border-radius: 4px; margin-bottom: 4px; }
.fa-doublon td, .fa-doublon_lot td, .fa-invalide td { background: #FFFBEF; }
.fa-erreur td { background: #FEF3F2; }
.fa-importe td { background: #F2FAF6; }
.fa-statut { font-weight: 600; }
.fa-tableau td:last-child { min-width: 140px; }
.fa-alerte { display: block; margin-top: 3px; font-size: 12.5px; color: #8A6116; }
.fa-actions { display: flex; justify-content: flex-end; align-items: center; gap: 10px; margin-top: 12px; }
.fa-rapport, .fa-modif { display: flex; flex-direction: column; gap: 10px; max-width: 640px; }
.fa-choix { flex-direction: row !important; align-items: center; gap: 8px; font-weight: 500 !important; }
.fa-choix input { width: auto; }
@media (max-width: 640px) {
  .fi-titre { font-size: 28px; }
  .fi-grille { grid-template-columns: 1fr 1fr; gap: 10px; }
  .fi-corps { padding: 10px; }
  .fi-corps h3 { font-size: 14px; }
  .fi-filtres select { flex: 1 1 45%; max-width: none; }
  .fi-cadre { height: 55vh; }
  .fa-fichiers { grid-template-columns: 1fr; }
}
@media print { #fi-fenetre, #fa-fenetre { display: none !important; } }

/* ---------- Premier essai, champs indispensables, retour (18/10/2026) ---------- */
.cas-fictif-bandeau { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 14px; margin: 0 0 18px; padding: 12px 16px; border-radius: 12px; background: #FFFAEB; border: 1px solid #F5D98B; color: #5C4A12; font-size: 14px; line-height: 1.45; }
.cas-fictif-bandeau[hidden] { display: none; }
.cas-fictif-bandeau span { flex: 1 1 320px; }
.champs-requis { margin: 4px 0 16px; padding: 10px 14px; border-left: 3px solid #137F5E; background: #F6FBF8; border-radius: 0 10px 10px 0; font-size: 13.5px; line-height: 1.5; color: #2B3832; }
.champ-note { font-weight: 400; color: #637069; font-size: 13.5px; }
.retour-carte { max-width: 560px; width: 100%; }
.retour-corps { padding: 24px 26px 8px; }
.retour-corps h2 { margin: 0 0 6px; font: 700 24px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #13201B; }
.retour-intro { margin: 0 0 14px; font-size: 14px; color: #45534D; line-height: 1.5; }
.retour-corps fieldset { border: 0; padding: 0; margin: 0 0 14px; }
.retour-corps legend { font-weight: 600; font-size: 14.5px; margin-bottom: 8px; color: #13201B; }
.retour-liste { display: flex; flex-wrap: wrap; gap: 8px; }
.retour-choix { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border: 1px solid #D6DDD6; border-radius: 99px; font-size: 13.5px; cursor: pointer; background: #fff; }
.retour-choix input { width: auto; margin: 0; accent-color: #137F5E; }
.retour-choix:has(input:checked) { background: #EAF5F0; border-color: #137F5E; color: #0B5B42; }
.retour-libre { display: block; font-weight: 600; font-size: 14.5px; margin-bottom: 6px; }
.retour-corps textarea { width: 100%; box-sizing: border-box; }
.retour-note { margin: 6px 0 0; font-size: 13.5px; color: #637069; }
.retour-etat { min-height: 18px; margin: 8px 0 0; font-size: 14px; color: #5C4A12; }

/* ---------- Panneau « Vos données » (18/10/2026) ---------- */
.vos-donnees { position: fixed; top: 0; right: 0; bottom: 0; z-index: 300; width: min(420px, 100vw); display: flex; flex-direction: column; background: #FFFFFF; border-left: 1px solid #E3E7E1; box-shadow: -18px 0 40px -24px rgba(19,32,27,.35); padding: 18px 20px 0; box-sizing: border-box; }
.vos-donnees[hidden] { display: none; }
.vd-tete { display: flex; align-items: center; justify-content: space-between; }
.vd-tete h2 { margin: 0; font: 700 22px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #13201B; }
.vd-fermer { border: 0; background: #F1F4F1; width: 34px; height: 34px; border-radius: 99px; cursor: pointer; font-size: 15px; color: #45534D; }
.vd-aide { margin: 6px 0 12px; font-size: 13.5px; line-height: 1.5; color: #637069; }
#vd-recherche { width: 100%; box-sizing: border-box; padding: 10px 12px; border: 1px solid #D6DDD6; border-radius: 10px; font: 14px 'Plus Jakarta Sans', sans-serif; }
.vd-etat { min-height: 18px; margin: 8px 0 4px; font-size: 14px; color: #0B5B42; }
.vd-corps { flex: 1; overflow-y: auto; padding-bottom: 24px; }
.vd-bloc { padding: 12px 0; border-top: 1px solid #EEF0EC; }
.vd-bloc h3 { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #137F5E; }
.vd-bloc p { margin: 0; font-size: 14.5px; line-height: 1.6; color: #2B3832; white-space: normal; }
.vd-bloc mark { background: #FBE6B8; border-radius: 3px; padding: 0 1px; color: inherit; }
.vd-sans { opacity: .55; }
.vd-vide { padding: 10px 12px; border-radius: 10px; background: #FFFAEB; border: 1px solid #F5D98B; font-size: 13.5px; color: #5C4A12; line-height: 1.5; }
/* Grand écran : le bilan se décale pour rester lisible à côté du panneau. */
@media (min-width: 1180px) { body.vd-ouvert .container:has(#screen-6.active) { margin-right: 440px; max-width: none; } }
.container:not(:has(#screen-6.active)) ~ .vos-donnees, body:not(:has(#screen-6.active)) .vos-donnees { display: none; }
@media print { .vos-donnees { display: none !important; } }
/* Italique (noms d’épreuves) : l’inclinaison mordait sur l’espace suivante, « Alouette-Rmet » (18/10/2026). */
#bilan-content em, .courrier-doc em { padding-right: .12em; }

/* ---------- Accueil de l'outil (refonte du 18/10/2026) ---------- */
#screen-accueil { max-width: 980px; margin: 0 auto; }
.acc-tete { margin: 6px 0 26px; }
.acc-date { font-size: 14px; letter-spacing: .02em; color: var(--text-tertiary, #637069); }
.acc-bonjour { font-size: clamp(32px, 2.6vw + 18px, 44px); line-height: 1.08; }
.acc-sous { margin: 10px 0 0; max-width: 640px; font-size: 16px; line-height: 1.55; color: #45534D; }
.acc-titre-section { margin: 0 0 12px; font: 700 13.5px/1.2 'Plus Jakarta Sans', sans-serif; letter-spacing: .09em; text-transform: uppercase; color: #637069; }

/* Premiers pas */
.acc-depart { margin: 0 0 30px; padding: 20px 22px 8px; border-radius: 18px; background: linear-gradient(180deg, #F2FAF6 0%, #FFFFFF 100%); border: 1px solid #CFE6DA; box-shadow: 0 1px 2px rgba(19,32,27,.04), 0 18px 40px -30px rgba(12,51,38,.35); }
.acc-depart[hidden] { display: none; }
.acc-depart-tete { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.acc-depart-tete h2 { margin: 0; font: 700 22px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.acc-depart-tete p { margin: 3px 0 0; font-size: 14px; color: #3F6B58; }
.acc-depart-masquer { color: #637069 !important; font-weight: 500 !important; }
.acc-jauge { height: 6px; margin: 14px 0 6px; border-radius: 99px; background: #DCEDE4; overflow: hidden; }
.acc-jauge span { display: block; height: 100%; width: 0; border-radius: 99px; background: linear-gradient(90deg, #1E9B72, #137F5E); transition: width .5s cubic-bezier(.2,.7,.2,1); }
.acc-pas-liste { list-style: none; margin: 0; padding: 0; }
.acc-pas { display: flex; align-items: center; gap: 14px; padding: 14px 0; border-top: 1px solid #E3EEE8; }
.acc-pas:first-child { border-top: 0; }
.acc-pas-etat { flex-shrink: 0; width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; border-radius: 50%; border: 2px solid #B9D9C9; background: #fff; color: transparent; }
.acc-pas-etat svg { width: 15px; height: 15px; }
.acc-pas-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.acc-pas-txt strong { font-size: 15px; color: #13201B; }
.acc-pas-txt strong em { font-style: normal; font-weight: 500; color: var(--text-tertiary, #637069); }
.acc-pas-txt span { font-size: 13.5px; line-height: 1.5; color: #55635C; }
.acc-pas .btn { flex-shrink: 0; }
.acc-pas .btn[hidden] { display: none; }
.acc-pas.fait .acc-pas-etat { background: #137F5E; border-color: #137F5E; color: #fff; }
.acc-pas.fait .acc-pas-txt strong { color: #55635C; text-decoration: line-through; text-decoration-color: rgba(85,99,92,.45); }
.acc-pas.fait .btn { display: none; }
#acc-essai.fait .acc-pas-txt span, #acc-cabinet.fait .acc-pas-txt span, #acc-prefs.fait .acc-pas-txt span { display: none; }
.acc-pas:not(.fait) ~ .acc-pas:not(.fait) .btn:not(:hover) { background: #fff; }

/* Nouveau bilan */
.acc-nouveau { margin: 0 0 30px; }
.acc-actions { grid-template-columns: repeat(3, 1fr); gap: 14px; margin: 0 0 12px; }
.acc-carte { position: relative; gap: 4px; padding: 20px 20px 20px; border-radius: 16px; min-height: 172px; transition: border-color .2s, box-shadow .2s, transform .2s; }
.acc-carte svg { width: 22px; height: 22px; margin: 0; }
.acc-carte-ico { display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-bottom: 10px; border-radius: 12px; background: #EAF5F0; color: #137F5E; }
.acc-carte strong { font-size: 17px; }
.acc-carte > span:last-child { font-size: 13.5px; line-height: 1.5; }
.acc-carte-tag { position: absolute; top: 18px; right: 16px; padding: 4px 9px; border-radius: 99px; font-size: 12.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; background: rgba(255,255,255,.18); color: #fff; }
.acc-principale { background: linear-gradient(155deg, #168A66 0%, #0F6E51 100%); box-shadow: 0 16px 34px -20px rgba(11,91,66,.75); }
.acc-principale .acc-carte-ico { background: rgba(255,255,255,.16); color: #fff; }
.acc-principale > span:last-child { color: rgba(255,255,255,.88); }
.acc-renouveler { display: inline-flex; align-items: center; gap: 8px; padding: 8px 4px; border: 0; background: none; color: #137F5E; font: 600 14px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.acc-renouveler svg { width: 17px; height: 17px; }
.acc-renouveler svg:last-child { transition: transform .2s; }
.acc-renouveler:hover svg:last-child { transform: translateX(3px); }

/* Derniers bilans */
.acc-recents { padding: 18px 22px 10px; border-radius: 18px; box-shadow: 0 1px 2px rgba(19,32,27,.04); }
.acc-recents-tete { margin-bottom: 6px; }
.acc-recents-tete .acc-titre-section { margin: 0; }
.acc-vide { display: flex; align-items: center; gap: 16px; margin: 6px 0 12px; padding: 18px; border: 1px dashed #D6DDD6; border-radius: 14px; background: #FAFBF9; }
.acc-vide[hidden] { display: none; }
.acc-vide-ico { flex-shrink: 0; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: #EEF2EE; color: var(--text-tertiary, #637069); }
.acc-vide-ico svg { width: 22px; height: 22px; }
.acc-vide p { margin: 0; font-size: 13.5px; line-height: 1.5; color: #637069; }
.acc-vide strong { display: block; font-size: 14.5px; color: #2B3832; }

/* Confidentialité */
.acc-confid { display: flex; align-items: flex-start; gap: 8px; margin: 22px 2px 8px; font-size: 13.5px; line-height: 1.5; color: var(--text-tertiary, #637069); }
.acc-confid svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 1px; color: #137F5E; }
.acc-confid a { color: #137F5E; font-weight: 600; white-space: nowrap; }

@media (max-width: 860px) {
  .acc-actions { grid-template-columns: 1fr; }
  .acc-carte { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; column-gap: 14px; row-gap: 8px; align-items: center; min-height: 0; padding: 16px 18px; }
  .acc-carte-ico { grid-column: 1; grid-row: 1; margin: 0; }
  .acc-carte strong { grid-column: 2; grid-row: 1; }
  .acc-carte-tag { position: static; grid-column: 3; grid-row: 1; }
  .acc-carte > span:last-child { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 560px) {
  .acc-depart { padding: 16px 16px 6px; }
  .acc-pas { flex-wrap: wrap; align-items: flex-start; }
  .acc-pas-txt { flex: 1 1 calc(100% - 42px); }
  .acc-pas .btn { margin-left: 42px; }
}
.acc-recents h2.acc-titre-section { font: 700 13.5px/1.2 'Plus Jakarta Sans', sans-serif; letter-spacing: .09em; color: #637069; }

/* ---------- Accueil de l'outil, v2 (18/10/2026) : bandeau + deux colonnes ---------- */
#screen-accueil { max-width: 1120px; }
.acc-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 28px; align-items: center; margin: 0 0 22px; padding: 34px 36px; border-radius: 24px; overflow: hidden; color: #fff;
  background: radial-gradient(70% 90% at 85% 10%, rgba(91,211,166,.22) 0%, rgba(91,211,166,0) 60%), linear-gradient(150deg, #134A37 0%, #0C3326 60%, #08251B 100%);
  box-shadow: 0 30px 60px -38px rgba(8,37,27,.9); }
.acc-hero .acc-date { color: #A7DCC7; }
.acc-hero .acc-bonjour { color: #fff; font-size: clamp(32px, 2.4vw + 18px, 46px); }
.acc-hero .acc-sous { color: rgba(234,242,238,.86); max-width: 520px; }
.acc-hero .acc-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 26px 0 10px; }
.acc-hero .acc-carte { min-height: 0; display: flex; flex-direction: row; align-items: center; gap: 12px; padding: 14px 14px; border-radius: 14px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.07); box-shadow: none; color: #fff; text-align: left; backdrop-filter: blur(4px); }
.acc-hero .acc-carte:hover { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.28); transform: translateY(-2px); box-shadow: 0 14px 28px -18px rgba(0,0,0,.6); }
.acc-hero .acc-carte:focus-visible { outline: 3px solid #5BD3A6; outline-offset: 2px; }
.acc-hero .acc-carte-ico { width: 40px; height: 40px; margin: 0; flex-shrink: 0; border-radius: 11px; background: rgba(255,255,255,.12); color: #A7DCC7; }
.acc-hero .acc-carte-txt { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.acc-hero .acc-carte strong { font-size: 15px; color: #fff; }
.acc-hero .acc-carte-txt span { font-size: 13.5px; color: rgba(234,242,238,.7); }
.acc-hero .acc-principale { background: #fff; border-color: #fff; }
.acc-hero .acc-principale:hover { background: #F2FAF6; border-color: #fff; }
.acc-hero .acc-principale .acc-carte-ico { background: #EAF5F0; color: #137F5E; }
.acc-hero .acc-principale strong { color: #0B3D2C; }
.acc-hero .acc-principale .acc-carte-txt span { color: #3F6B58; }
.acc-hero .acc-renouveler { color: #A7DCC7; padding-left: 2px; }
/* Aperçu du type de document (illustration, aucune donnée) */
.acc-hero-visuel { position: relative; height: 270px; perspective: 1400px; }
.acc-doc { position: absolute; right: 18px; top: 4px; width: min(300px, 100%); padding: 20px 20px 18px; border-radius: 12px; background: #FFFFFF; box-shadow: 0 30px 60px -20px rgba(0,0,0,.55); transform: rotateY(-14deg) rotateX(6deg) rotateZ(2deg); transform-origin: 60% 50%; }
.acc-doc-tete { padding-bottom: 10px; margin-bottom: 4px; border-bottom: 2px solid #137F5E; }
.acc-doc-tete p { margin: 8px 0 0; font: 700 14px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B5B42; }
.acc-doc-s { margin: 11px 0 6px; font: 700 8.5px/1 'Plus Jakarta Sans', sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #137F5E; }
.acc-doc-l { display: block; height: 6px; margin-top: 5px; border-radius: 99px; background: #E6EAE5; width: 100%; }
.acc-l40 { width: 40%; } .acc-l50 { width: 50%; } .acc-l60 { width: 60%; } .acc-l70 { width: 70%; } .acc-l80 { width: 80%; } .acc-l90 { width: 90%; }
.acc-puce { position: absolute; display: inline-flex; align-items: center; gap: 7px; padding: 8px 13px; border-radius: 99px; background: #fff; color: #0B3D2C; font-size: 13.5px; font-weight: 700; box-shadow: 0 14px 30px -14px rgba(0,0,0,.55); white-space: nowrap; }
.acc-puce svg { width: 15px; height: 15px; color: #137F5E; }
.acc-puce-1 { left: 0; top: 46px; }
.acc-puce-2 { right: 0; bottom: 18px; }
/* Deux colonnes */
.acc-grille { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, 1fr); gap: 20px; align-items: start; }
.acc-col-cote { display: flex; flex-direction: column; gap: 14px; }
.acc-col-cote .acc-depart { margin: 0; padding: 18px 18px 6px; }
.acc-col-cote .acc-depart-tete h2 { font-size: 21px; }
.acc-col-cote .acc-pas { flex-wrap: wrap; align-items: flex-start; gap: 6px 12px; padding: 12px 0; }
.acc-col-cote .acc-pas-txt { flex: 1 1 calc(100% - 42px); }
.acc-col-cote .acc-pas-txt strong { font-size: 14px; }
.acc-col-cote .acc-pas-txt span { font-size: 13.5px; }
.acc-col-cote .acc-pas .btn { margin-left: 40px; }
.acc-tuile { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border-radius: 16px; background: #fff; border: 1px solid #E6E9E3; box-shadow: 0 1px 2px rgba(19,32,27,.04); text-align: left; width: 100%; box-sizing: border-box; font: inherit; color: inherit; }
.acc-tuile-lien { cursor: pointer; transition: border-color .2s, box-shadow .2s, transform .2s; }
.acc-tuile-lien:hover { border-color: #B8D9C9; box-shadow: 0 10px 24px -16px rgba(12,51,38,.35); transform: translateY(-1px); }
.acc-tuile-lien > svg { width: 17px; height: 17px; color: #137F5E; flex-shrink: 0; }
.acc-avatar, .acc-tuile-ico { flex-shrink: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: #EAF5F0; color: #137F5E; font-weight: 700; font-size: 14px; }
.acc-tuile-ico svg { width: 20px; height: 20px; }
.acc-tuile-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.acc-tuile-txt strong { font-size: 14.5px; color: #13201B; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-tuile-txt span { font-size: 13.5px; color: #637069; }
.acc-col-principale .acc-recents { margin: 0; }
.acc-col-cote .acc-confid { margin: 2px 4px 0; }
.acc-col-cote .acc-confid a { white-space: normal; }
.acc-brouillon { margin-bottom: 20px; }
@media (max-width: 1080px) { .acc-hero { grid-template-columns: 1fr; } .acc-hero-visuel { display: none; } }
@media (max-width: 900px) { .acc-grille { grid-template-columns: 1fr; } .acc-col-cote { order: -1; } }
@media (max-width: 700px) {
  .acc-hero { padding: 24px 18px; border-radius: 20px; }
  .acc-hero .acc-actions { grid-template-columns: 1fr; }
  .acc-hero .acc-carte { display: flex; }
}
@media (prefers-reduced-motion: no-preference) {
  .acc-hero, .acc-grille { animation: accEntree .5s cubic-bezier(.2,.7,.2,1) both; }
  .acc-grille { animation-delay: .06s; }
  @keyframes accEntree { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}
/* v2 : finitions */
.acc-hero .acc-carte { flex-direction: column; align-items: flex-start; gap: 10px; padding: 16px; }
.acc-hero .acc-carte svg { width: 20px; height: 20px; margin: 0; color: inherit; }
.acc-hero .acc-carte-ico { color: #A7DCC7; }
.acc-hero .acc-principale .acc-carte-ico { color: #137F5E; }
.acc-hero .acc-carte strong { font-size: 15.5px; white-space: nowrap; }
.acc-puce-1 { left: -6px; top: auto; bottom: 92px; }
.acc-doc-tete p { font-size: 16px; }
.acc-col-principale .acc-bilan { flex-wrap: nowrap; }
.acc-col-principale .acc-bilan-info { flex: 1; min-width: 0; }
.acc-col-principale .acc-bilan-info strong, .acc-col-principale .acc-bilan-info span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.acc-col-principale .acc-bilan-actions { flex-wrap: nowrap; flex-shrink: 0; }
.acc-col-principale .acc-bilan-actions .btn { padding: 7px 11px; }
@media (max-width: 560px) { .acc-col-principale .acc-bilan { flex-wrap: wrap; } }
@media (max-width: 700px) { .acc-hero .acc-carte { flex-direction: row; align-items: center; padding: 12px 14px; } }
/* Première connexion : une seule colonne, premiers pas sur toute la largeur */
#acc-renouveler[hidden], #acc-recents[hidden], #acc-cabinet-carte[hidden] { display: none; }
.acc-premiere .acc-grille { grid-template-columns: 1fr; }
.acc-premiere .acc-col-principale { display: none; }
.acc-premiere .acc-col-cote .acc-depart { padding: 20px 22px 8px; }
.acc-premiere .acc-col-cote .acc-depart-tete h2 { font-size: 24px; }
.acc-premiere .acc-col-cote .acc-pas { flex-wrap: nowrap; align-items: center; padding: 14px 0; }
.acc-premiere .acc-col-cote .acc-pas-txt { flex: 1; }
.acc-premiere .acc-col-cote .acc-pas-txt strong { font-size: 15px; }
.acc-premiere .acc-col-cote .acc-pas-txt span { font-size: 13.5px; }
.acc-premiere .acc-col-cote .acc-pas .btn { margin-left: 0; }
.acc-premiere .acc-col-cote { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.acc-premiere .acc-col-cote .acc-depart { grid-column: 1 / -1; }
.acc-premiere .acc-col-cote .acc-confid { align-self: center; margin: 0 4px; }
@media (max-width: 700px) {
  .acc-premiere .acc-col-cote { grid-template-columns: 1fr; }
  .acc-premiere .acc-col-cote .acc-pas { flex-wrap: wrap; align-items: flex-start; }
  .acc-premiere .acc-col-cote .acc-pas-txt { flex: 1 1 calc(100% - 42px); }
  .acc-premiere .acc-col-cote .acc-pas .btn { margin-left: 40px; }
}
.champ-auto { margin: 5px 0 0; font-size: 13.5px; color: #0B5B42; }
.champ-auto[hidden] { display: none; }
.acc-misdecote { margin: 2px 4px 0; font-size: 13.5px; line-height: 1.5; color: #5C4A12; }
.acc-misdecote[hidden] { display: none; }

/* ---------- Intuitivité (25/10/2026) ----------
   Accueil : le fonctionnement en trois étapes dans le bandeau, puis une section
   « Rédiger un nouveau compte rendu » dont chaque carte dit ce qu'on fait et ce
   qui suit. Fenêtre de dictée : consignes numérotées 1-2-3. */
.acc-comment { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 12px; max-width: 560px; }
.acc-comment[hidden] { display: none; }
.acc-comment li { display: flex; align-items: flex-start; gap: 12px; }
.acc-comment b { flex-shrink: 0; width: 26px; height: 26px; border-radius: 50%; background: rgba(255,255,255,.15); color: #fff; font: 700 14px/26px 'Plus Jakarta Sans', sans-serif; text-align: center; }
.acc-comment span { padding-top: 3px; font-size: 14px; line-height: 1.45; color: rgba(234,242,238,.78); }
.acc-comment strong { display: block; font-weight: 600; color: #fff; }

.acc-commencer { margin: 0 0 22px; padding: 24px 26px 16px; border-radius: 20px; background: #fff; border: 1px solid #E6E9E3; box-shadow: 0 1px 2px rgba(19,32,27,.04), 0 18px 40px -32px rgba(12,51,38,.35); }
.acc-commencer-titre { margin: 0; font: 700 24px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.acc-commencer-sous { margin: 6px 0 18px; font-size: 14.5px; line-height: 1.5; color: #55635C; }
.acc-commencer .acc-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0 0 8px; }
.acc-commencer .acc-carte { position: relative; display: flex; flex-direction: column; align-items: stretch; gap: 6px; min-height: 0; padding: 18px 18px 16px; border-radius: 16px; border: 1px solid #E1E7E2; background: #FAFBF9; color: #13201B; text-align: left; box-shadow: none; }
.acc-commencer .acc-carte:hover { border-color: #9FCDB7; background: #fff; box-shadow: 0 14px 30px -20px rgba(12,51,38,.45); transform: translateY(-2px); }
.acc-commencer .acc-carte:focus-visible { outline: 3px solid #5BD3A6; outline-offset: 2px; }
.acc-carte-tete { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.acc-commencer .acc-carte-ico { display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; margin: 0; border-radius: 12px; background: #EAF5F0; color: #137F5E; }
.acc-commencer .acc-carte svg { width: 21px; height: 21px; margin: 0; color: currentColor; }
.acc-commencer .acc-carte-tag { position: static; padding: 4px 9px; border-radius: 99px; font-size: 10.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; background: #EAF5F0; color: #0B5B42; }
.acc-commencer .acc-carte strong { font-size: 16.5px; line-height: 1.25; color: #13201B; white-space: normal; }
.acc-commencer .acc-carte .acc-carte-desc { flex: 1; font-size: 13.5px; line-height: 1.5; color: #55635C; }
.acc-commencer .acc-carte .acc-carte-go { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 13.5px; font-weight: 700; color: #137F5E; }
.acc-commencer .acc-carte .acc-carte-go svg { width: 16px; height: 16px; transition: transform .2s; }
.acc-commencer .acc-carte:hover .acc-carte-go svg { transform: translateX(3px); }
.acc-commencer .acc-principale { background: linear-gradient(155deg, #168A66 0%, #0F6E51 100%); border-color: #137F5E; box-shadow: 0 16px 34px -22px rgba(11,91,66,.8); }
.acc-commencer .acc-principale:hover { background: linear-gradient(155deg, #138060 0%, #0C6449 100%); border-color: #0F7052; }
.acc-commencer .acc-principale .acc-carte-ico, .acc-commencer .acc-principale .acc-carte-tag { background: rgba(255,255,255,.16); color: #fff; }
.acc-commencer .acc-principale strong, .acc-commencer .acc-principale .acc-carte-go { color: #fff; }
.acc-commencer .acc-principale .acc-carte-desc { color: rgba(255,255,255,.88); }
.acc-commencer .acc-renouveler { color: #137F5E; padding-left: 2px; }
@media (max-width: 860px) {
  .acc-commencer { padding: 20px 18px 12px; }
  .acc-commencer .acc-actions { grid-template-columns: 1fr; gap: 10px; }
}
@media (prefers-reduced-motion: no-preference) { .acc-commencer { animation: accEntree .5s cubic-bezier(.2,.7,.2,1) .03s both; } }

.voice-num { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 20px; height: 20px; border-radius: 50%; background: #137F5E; color: #fff; font-size: 12.5px; font-weight: 700; }
.voice-consignes { margin: 0 0 6px; }
.voice-consignes ul { margin: 0; padding: 10px 14px 10px 30px; border-radius: 10px; background: var(--green-light); color: var(--green-dark); font-size: 13.5px; line-height: 1.55; }
.voice-consignes li + li { margin-top: 3px; }
#voice-transcript-wrap .voice-ident-titre { margin-bottom: 6px; }
/* Titres numérotés de la dictée : la précision passe sous le titre au lieu de l'écraser. */
#voice-modal .voice-ident-titre { flex-wrap: wrap; gap: 2px 8px; }
#voice-modal .voice-ident-titre span { flex-basis: 100%; padding-left: 28px; }
#voice-modal .voice-ident-titre span::before { content: none; }
/* Téléphone : l'en-tête dépassait de 2 px (barre de défilement horizontale). */
.header { min-width: 0; }
.hd-actions { min-width: 0; flex-shrink: 1; }
@media (max-width: 420px) { .hd-actions .hd-sep { display: none; } }
/* Style de rédaction : ce n'est pas une étape du bilan, la barre d'étapes n'y a pas sa place. */
.container:has(#screen-prefs.active) .steps-nav { display: none; }

/* ---------- Accueil v3 (25/10/2026) : une seule action principale à la fois ---------- */
[hidden].acc-premier, .acc-renouv[hidden], .acc-gains[hidden], .acc-demande[hidden], .acc-demande-item[hidden],
.acc-nouveautes[hidden], .acc-commencer[hidden], #acc-cabinet .btn[hidden] { display: none; }
/* Nouvelle utilisatrice : une phrase, UN bouton, les alternatives en liens */
.acc-premier { margin-top: 22px; }
.acc-hero .acc-cta { display: inline-flex; align-items: center; gap: 10px; padding: 16px 26px; border: 0; border-radius: 14px; background: #fff; color: #0B3D2C; font: 700 17px/1.2 'Plus Jakarta Sans', sans-serif; box-shadow: 0 16px 34px -18px rgba(0,0,0,.65); cursor: pointer; transition: transform .15s, background .15s; }
.acc-hero .acc-cta svg { width: 22px; height: 22px; color: #137F5E; }
.acc-hero .acc-cta:hover { background: #F2FAF6; transform: translateY(-1px); }
.acc-hero .acc-cta:focus-visible { outline: 3px solid #5BD3A6; outline-offset: 3px; }
.acc-alt { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 6px; margin: 14px 0 0; color: rgba(234,242,238,.6); font-size: 14px; }
.acc-alt-lien { padding: 4px 2px; border: 0; background: none; color: #CDEBDD; font: 500 14px/1.3 'Plus Jakarta Sans', sans-serif; text-decoration: underline; text-decoration-color: rgba(205,235,221,.4); text-underline-offset: 3px; cursor: pointer; }
.acc-alt-lien:hover { color: #fff; text-decoration-color: #fff; }
.acc-alt-lien:focus-visible { outline: 2px solid #5BD3A6; outline-offset: 2px; border-radius: 4px; }
.acc-rassure { display: flex; align-items: flex-start; gap: 8px; margin: 18px 0 0; max-width: 560px; font-size: 14px; line-height: 1.5; color: rgba(234,242,238,.82); }
.acc-rassure svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 2px; color: #A7DCC7; }
/* « Comment ça marche » : une ligne compacte, pas un bloc concurrent */
.acc-premier .acc-comment { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 16px 0 0; padding: 14px 0 0; border-top: 1px solid rgba(255,255,255,.12); max-width: none; }
.acc-premier .acc-comment li { align-items: center; gap: 7px; }
.acc-premier .acc-comment b { width: 20px; height: 20px; font-size: 12.5px; line-height: 20px; }
.acc-premier .acc-comment span { padding: 0; font-size: 13.5px; color: rgba(234,242,238,.7); }
/* Utilisatrice qui revient : bandeau réduit au bonjour */
.acc-hero.acc-hero-compact { grid-template-columns: 1fr; padding: 22px 30px; margin-bottom: 16px; }
.acc-hero.acc-hero-compact .acc-hero-visuel { display: none; }
.acc-hero.acc-hero-compact .acc-bonjour { font-size: clamp(28px, 1.6vw + 18px, 36px); }
.acc-hero.acc-hero-compact .acc-sous { margin-top: 6px; font-size: 15px; }
/* a. Bilan en cours : l'action principale quand il existe */
#screen-accueil .acc-brouillon { margin: 0 0 16px; padding: 18px 20px; border: 1px solid #9FCDB7; border-radius: 16px; background: linear-gradient(180deg, #F2FAF6 0%, #fff 100%); box-shadow: 0 14px 30px -24px rgba(12,51,38,.5); }
#screen-accueil .acc-brouillon-txt strong { font-size: 13px; }
#screen-accueil .acc-brouillon-txt span { font-size: 15.5px; font-weight: 500; color: #2B3832; }
#screen-accueil .acc-brouillon-actions { align-items: center; }
/* b. Nouveau compte rendu en secondaire (un bilan est en cours) */
.acc-commencer.acc-secondaire { padding-top: 18px; }
.acc-commencer.acc-secondaire .acc-commencer-titre { font-size: 20px; }
.acc-commencer.acc-secondaire .acc-commencer-sous { margin-bottom: 12px; }
.acc-commencer.acc-secondaire .acc-principale { background: #FAFBF9; border-color: #E1E7E2; box-shadow: none; }
.acc-commencer.acc-secondaire .acc-principale:hover { background: #fff; border-color: #9FCDB7; }
.acc-commencer.acc-secondaire .acc-principale .acc-carte-ico, .acc-commencer.acc-secondaire .acc-principale .acc-carte-tag { background: #EAF5F0; color: #137F5E; }
.acc-commencer.acc-secondaire .acc-principale strong { color: #13201B; }
.acc-commencer.acc-secondaire .acc-principale .acc-carte-desc { color: #55635C; }
.acc-commencer.acc-secondaire .acc-principale .acc-carte-go { color: #137F5E; }
.acc-commencer.acc-secondaire .acc-carte-desc { display: none; }
/* c. Renouvellements à préparer : sobre, sans fausse urgence */
.acc-renouv { display: flex; align-items: center; gap: 14px; margin: 0 0 16px; padding: 14px 18px; border-radius: 14px; background: #fff; border: 1px solid #E1E7E2; }
.acc-renouv-ico { flex-shrink: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 12px; background: #EAF5F0; color: #137F5E; }
.acc-renouv-ico svg { width: 20px; height: 20px; }
.acc-renouv-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.acc-renouv-txt strong { font-size: 15px; color: #13201B; }
.acc-renouv-txt span { font-size: 14px; line-height: 1.45; color: #55635C; }
.acc-renouv-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
/* d. Ce mois-ci / à jour : une ligne, sans confettis */
.acc-gains { margin: 0 2px 18px; font-size: 14px; line-height: 1.5; color: #3F6B58; }
.acc-gains strong { color: #0B3D2C; }
.acc-gains-note { font-size: 13px; color: var(--text-tertiary, #637069); }
.acc-ajour { font-weight: 600; color: #137F5E; }
/* Demande unique (après le premier compte rendu) */
.acc-demande { margin: 0 0 18px; }
.acc-demande-item { display: flex; align-items: center; gap: 14px; padding: 14px 18px; border-radius: 14px; background: #F4F8F6; border: 1px dashed #B9D9C9; }
.acc-demande-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.acc-demande-txt strong { font-size: 14.5px; color: #13201B; }
.acc-demande-txt span { font-size: 14px; line-height: 1.45; color: #55635C; }
.acc-demande-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
/* Premiers pas : l'étape « Compte créé » est cochée d'emblée */
#acc-compte .acc-pas-txt strong { text-decoration: none; }
/* Fiches : nouveautés du mois */
.acc-nouveautes { padding: 16px 18px 10px; border-radius: 16px; background: #fff; border: 1px solid #E6E9E3; box-shadow: 0 1px 2px rgba(19,32,27,.04); }
.acc-nouveautes-tete { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.acc-nouveautes-tete .acc-titre-section { margin: 0; }
.acc-nouveautes-liste { list-style: none; margin: 0; padding: 0; }
.acc-nouveautes-liste li + li { border-top: 1px solid #EEF0EC; }
.acc-fiche { display: flex; flex-direction: column; gap: 2px; width: 100%; padding: 10px 2px; border: 0; background: none; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.acc-fiche strong { font-size: 14px; line-height: 1.35; color: #13201B; }
.acc-fiche span { font-size: 13.5px; color: #637069; }
.acc-fiche:hover strong { color: #137F5E; }
.acc-fiche:focus-visible { outline: 2px solid #137F5E; outline-offset: 2px; border-radius: 6px; }
.acc-fiche-nouveau, .acc-bilan-renouv { font-style: normal; font-size: 12.5px; font-weight: 700; letter-spacing: .03em; color: #0B5B42; background: #EAF5F0; padding: 1px 7px; border-radius: 99px; margin-left: 4px; white-space: nowrap; }
@media (max-width: 700px) {
  .acc-hero .acc-cta { width: 100%; justify-content: center; }
  .acc-alt { flex-direction: column; align-items: flex-start; gap: 0; }
  .acc-alt > span { display: none; }
  .acc-renouv, .acc-demande-item { flex-wrap: wrap; }
  .acc-renouv-actions, .acc-demande-actions { width: 100%; padding-left: 54px; }
  .acc-demande-actions { padding-left: 0; }
  .acc-hero.acc-hero-compact { padding: 20px 18px; }
}
/* Téléphone : le nom du patient sur sa propre ligne, au-dessus des boutons
   (il était tronqué en « Inès Fict… »). */
@media (max-width: 560px) { .acc-col-principale .acc-bilan-info { flex-basis: 100%; } .acc-col-principale .acc-bilan-info strong, .acc-col-principale .acc-bilan-info span { white-space: normal; } }
.acc-nouveautes-tete .acc-lien { white-space: nowrap; flex-shrink: 0; }

/* ---------- Accueil simplifié (25/10/2026) : lisible par toutes ----------
   Fond clair, gros textes bien contrastés, trois grands boutons empilés en
   mots simples, une seule action principale. Pas de texte pâle ni de petits liens. */
#screen-accueil { max-width: 880px; }
.acc-hero.acc-simple, .acc-hero.acc-simple.acc-hero-compact { display: block; margin: 0 0 22px; padding: 6px 4px 0; border-radius: 0; background: none; box-shadow: none; color: #13201B; }
.acc-simple .acc-date { margin: 0 0 4px; font-size: 16px; color: #55635C; }
.acc-simple .acc-bonjour { color: #0B3D2C; font-size: clamp(34px, 2vw + 22px, 44px); }
.acc-simple .acc-sous { margin: 10px 0 0; max-width: 700px; font-size: 19px; line-height: 1.55; color: #2B3832; }
/* Bilan en cours */
#screen-accueil .acc-brouillon { gap: 14px 18px; padding: 22px 24px; border: 2px solid #9FCDB7; }
#screen-accueil .acc-brouillon-txt { margin: 0; font-size: 18px; line-height: 1.5; color: #2B3832; }
#screen-accueil .acc-brouillon-txt strong { display: inline; font-size: 18px; letter-spacing: 0; text-transform: none; color: #0B3D2C; }
#screen-accueil .acc-brouillon-txt span { display: inline; margin: 0; font-size: 18px; font-weight: 400; color: #2B3832; }
#screen-accueil .acc-brouillon-actions .btn { min-height: 52px; padding: 12px 22px; font-size: 17px; }
/* Rédiger un compte rendu : trois grands boutons */
.acc-commencer { padding: 26px 28px 22px; }
.acc-commencer-titre { font-size: 28px; }
.acc-commencer-sous { margin: 6px 0 16px; font-size: 17px; color: #2B3832; }
.acc-commencer .acc-actions { grid-template-columns: 1fr; gap: 12px; }
.acc-commencer .acc-carte { flex-direction: row; align-items: center; gap: 18px; min-height: 84px; padding: 18px 22px; border: 2px solid #D5DED8; background: #fff; }
.acc-commencer .acc-carte:hover { transform: none; border-color: #137F5E; background: #F7FBF9; }
.acc-commencer .acc-carte:focus-visible { outline: 3px solid #137F5E; outline-offset: 3px; }
.acc-commencer .acc-carte-ico { flex-shrink: 0; width: 54px; height: 54px; border-radius: 14px; }
.acc-commencer .acc-carte svg { width: 27px; height: 27px; }
.acc-carte-txt { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.acc-commencer .acc-carte strong { font-size: 20px; }
.acc-commencer .acc-carte .acc-carte-desc { flex: none; font-size: 16px; line-height: 1.45; color: #3D4A44; }
.acc-commencer .acc-principale { border-color: #137F5E; }
.acc-commencer .acc-principale:hover { background: linear-gradient(155deg, #138060 0%, #0C6449 100%); border-color: #0C6449; }
.acc-commencer .acc-principale .acc-carte-desc { color: #fff; }
.acc-commencer.acc-secondaire .acc-carte { min-height: 68px; padding: 14px 20px; }
.acc-exemple { display: inline-flex; align-items: center; gap: 10px; min-height: 50px; margin: 16px 0 0; padding: 12px 20px; font-size: 16.5px; }
.acc-exemple[hidden] { display: none; }
.acc-exemple svg { width: 21px; height: 21px; color: #137F5E; }
.acc-commencer .acc-renouveler { display: flex; margin-top: 12px; font-size: 16.5px; }
.acc-commencer .acc-rassure { max-width: none; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid #E6E9E3; font-size: 15.5px; line-height: 1.55; color: #3D4A44; }
.acc-commencer .acc-rassure svg { width: 17px; height: 17px; color: #137F5E; }
/* Le reste de l'accueil, plus lisible */
.acc-renouv-txt strong, .acc-demande-txt strong { font-size: 17px; }
.acc-renouv-txt span, .acc-demande-txt span { font-size: 15px; color: #3D4A44; }
.acc-renouv .btn, .acc-demande .btn { min-height: 44px; font-size: 15.5px; }
#screen-accueil .acc-lien { font-size: 15px; }
.acc-gains { font-size: 16.5px; color: #2B3832; }
.acc-gains-note { font-size: 14px; color: #55635C; }
#screen-accueil .acc-titre-section { font-size: 14px; color: #3D4A44; }
.acc-col-principale .acc-bilan-info strong { font-size: 16.5px; }
.acc-col-principale .acc-bilan-info span { font-size: 14.5px; color: #3D4A44; }
.acc-col-principale .acc-bilan-actions .btn { min-height: 42px; padding: 8px 14px; font-size: 15px; }
.acc-fiche strong { font-size: 15.5px; }
.acc-fiche span { font-size: 14px; color: #3D4A44; }
#screen-accueil .acc-confid { font-size: 14.5px; color: #3D4A44; }
/* Première visite : rien d'autre que l'essentiel */
.acc-premiere .acc-nouveautes, .acc-premiere .acc-confid { display: none !important; }
.acc-premiere .acc-col-cote { display: flex; }
@media (max-width: 700px) {
  .acc-commencer { padding: 20px 16px 16px; }
  .acc-commencer-titre { font-size: 24px; }
  .acc-commencer .acc-carte { gap: 14px; padding: 16px; }
  .acc-commencer .acc-carte strong { font-size: 18.5px; }
  .acc-exemple { width: 100%; justify-content: center; }
  #screen-accueil .acc-brouillon-actions { width: 100%; }
  #screen-accueil .acc-brouillon-actions .btn-primary { flex: 1; }
}
/* Première étape : le cabinet, une seule fois (25/10/2026) */
.acc-config { margin: 0 0 22px; padding: 28px 30px; border-radius: 20px; background: #fff; border: 2px solid #137F5E; box-shadow: 0 18px 40px -30px rgba(12,51,38,.45); }
.acc-config[hidden] { display: none; }
.acc-config-ico { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 14px; border-radius: 16px; background: #EAF5F0; color: #137F5E; }
.acc-config-ico svg { width: 28px; height: 28px; }
.acc-config h2 { margin: 0 0 8px; font: 700 26px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.acc-config p { margin: 0; max-width: 640px; font-size: 17.5px; line-height: 1.6; color: #2B3832; }
.acc-config p strong { color: #0B3D2C; }
.acc-config-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 22px; }
.acc-config-actions .btn { min-height: 52px; padding: 12px 22px; font-size: 17px; }
.acc-config-actions .btn:not(.btn-primary) { min-height: 48px; font-size: 16px; }
.cab-enregistrer { display: none; }
body.config-cabinet #screen-1 .cab-continuer { display: none; }
body.config-cabinet #screen-1 .cab-enregistrer { display: inline-flex; }
body.config-cabinet .steps-nav { display: none; }
#screen-1 .card-intro strong { color: #0B3D2C; }
@media (max-width: 700px) {
  .acc-config { padding: 22px 18px; }
  .acc-config h2 { font-size: 24px; }
  .acc-config-actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* ---------- Lisibilité de tout l'outil (25/10/2026) ----------
   Pour toutes les orthophonistes, y compris en fin de journée ou avec une vue
   moins bonne : textes d'au moins 15-16 px, gris plus foncés, boutons plus
   hauts. Outil connecté seulement (html.espace-outil) et à l'écran : ni le
   site, ni la démo, ni le document imprimé ne changent. */
@media screen {
  html.espace-outil #app { --text-secondary: #3D4A44; --text-tertiary: #55635C; }
  html.espace-outil #app label:where(:not(.oa *)), html.espace-outil #app .label { font-size: 15.5px; color: #2B3832; }
  html.espace-outil #app .label-mini { font-size: 14px; color: #3D4A44; }
  html.espace-outil #app :is(input, select, textarea):where(:not(#bilan-content *)) { font-size: 16.5px; }
  html.espace-outil #app :is(input, textarea)::placeholder { color: #6F7C75; }
  html.espace-outil #app .card-intro { font-size: 16px; line-height: 1.6; color: #3D4A44; }
  html.espace-outil #app .champs-requis { font-size: 15.5px; line-height: 1.55; }
  html.espace-outil #app .note-confid { font-size: 15px; line-height: 1.55; }
  html.espace-outil #app .field-aide { font-size: 14px; }
  html.espace-outil #app .btn { min-height: 46px; font-size: 15.5px; }
  html.espace-outil #app .btn-sm { min-height: 40px; font-size: 14.5px; }
  html.espace-outil #app .step-label { font-size: 15px; }
  html.espace-outil #app .edit-hint { font-size: 14.5px; line-height: 1.55; }
  html.espace-outil .ab-item { font-size: 15.5px; padding: 11px 12px; }
  html.espace-outil .ab-item em { font-size: 14px; color: #55635C; }
  html.espace-outil .sigpad-sub { font-size: 15.5px; line-height: 1.55; }
  html.espace-outil .voice-ident-titre { font-size: 15px; }
  html.espace-outil .voice-consignes ul { font-size: 15px; line-height: 1.6; }
  html.espace-outil #voice-status { font-size: 15.5px !important; color: #2B3832 !important; }
  html.espace-outil .notes-confid, html.espace-outil .notes-etat { font-size: 15px; }
  html.espace-outil .oa-message { font-size: 15.5px; }
}
/* Carte principale : fond vert (la règle de fond blanc ci-dessus l'effaçait). */
.acc-commencer .acc-carte.acc-principale { background: linear-gradient(155deg, #168A66 0%, #0F6E51 100%); border-color: #137F5E; color: #fff; }
.acc-commencer .acc-carte.acc-principale:hover { background: linear-gradient(155deg, #138060 0%, #0C6449 100%); border-color: #0C6449; }
.acc-commencer .acc-carte.acc-principale .acc-carte-ico { background: rgba(255,255,255,.18); color: #fff; }
.acc-commencer .acc-carte.acc-principale strong, .acc-commencer .acc-carte.acc-principale .acc-carte-desc { color: #fff; }
.acc-commencer .acc-carte.acc-principale:focus-visible { outline-color: #0B3D2C; }
/* Première étape : rien d'autre que l'enregistrement du cabinet. */
body.config-cabinet #screen-1 .note-pied { display: none; }
/* Un seul message de confidentialité sur l'accueil (avec « En savoir plus »). */
#screen-accueil .acc-col-cote .acc-confid { display: none; }
.acc-commencer .acc-rassure a { color: #137F5E; font-weight: 600; }
@media (max-width: 700px) {
  #screen-accueil .acc-brouillon-actions { flex-direction: column; }
  #screen-accueil .acc-brouillon-actions .btn { width: 100%; justify-content: center; }
}

/* ---------- Accueil et outil épurés (25/10/2026, cahier des charges de Guillaume) ---------- */
/* Barre latérale repliable, comme les applications d'IA */
.ab-marque { position: relative; }
.ab-replier { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; margin-left: auto; padding: 0; border: 0; border-radius: 10px; background: transparent; color: #55635C; cursor: pointer; }
.ab-replier:hover { background: #F3F5F1; color: #13201B; }
.ab-replier:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }
.ab-replier svg { width: 20px; height: 20px; }
@media (min-width: 760px) {
  .espace-outil .app-barre, .espace-outil #app { transition: width .2s, padding .2s; }
  html.barre-repliee.espace-outil .app-barre { width: 76px; padding: 16px 12px 12px; }
  html.barre-repliee.espace-outil #app { padding-left: 76px; }
  html.barre-repliee .ab-marque { flex-direction: column; gap: 12px; padding: 4px 0 14px; }
  html.barre-repliee .ab-marque > span, html.barre-repliee .ab-nouveau span, html.barre-repliee .ab-item > span,
  html.barre-repliee .ab-item em, html.barre-repliee .ab-compte-txt, html.barre-repliee .ab-sortie { display: none; }
  html.barre-repliee .ab-replier { margin: 0; }
  html.barre-repliee .ab-nouveau { padding: 12px 0; }
  html.barre-repliee .ab-item { justify-content: center; padding: 12px 0; }
  html.barre-repliee .ab-item svg { width: 21px; height: 21px; }
  html.barre-repliee .ab-compte { justify-content: center; padding: 10px 0 2px; }
}
/* Deux très gros boutons */
.acc-deux { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 0 0 30px; }
.acc-deux[hidden] { display: none; }
.acc-gros-bouton { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; min-height: 220px; padding: 28px 28px 26px; border: 2px solid #CFDCD5; border-radius: 22px; background: #fff; color: #13201B; text-align: left; font-family: 'Plus Jakarta Sans', sans-serif; cursor: pointer; box-shadow: 0 1px 2px rgba(19,32,27,.05); transition: border-color .15s, box-shadow .15s, background .15s; }
.acc-gros-bouton[hidden] { display: none; }
.acc-gros-bouton:hover { border-color: #137F5E; box-shadow: 0 18px 36px -26px rgba(12,51,38,.55); }
.acc-gros-bouton:focus-visible { outline: 3px solid #137F5E; outline-offset: 3px; }
.acc-gros-ico { display: flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 6px; border-radius: 18px; background: #EAF5F0; color: #137F5E; }
.acc-gros-ico svg { width: 32px; height: 32px; }
.acc-gros-bouton strong { font-size: 24px; line-height: 1.25; font-weight: 700; color: #0B3D2C; }
.acc-gros-desc { font-size: 17px; line-height: 1.5; color: #2B3832; }
.acc-gros-bouton.acc-principale { border-color: #137F5E; background: linear-gradient(155deg, #168A66 0%, #0F6E51 100%); box-shadow: 0 20px 40px -26px rgba(11,91,66,.85); }
.acc-gros-bouton.acc-principale:hover { background: linear-gradient(155deg, #138060 0%, #0C6449 100%); }
.acc-gros-bouton.acc-principale .acc-gros-ico { background: rgba(255,255,255,.18); color: #fff; }
.acc-gros-bouton.acc-principale strong, .acc-gros-bouton.acc-principale .acc-gros-desc { color: #fff; }
.acc-gros-bouton.acc-principale:focus-visible { outline-color: #0B3D2C; }
/* Proposition des préférences (même allure que la première étape) */
.acc-etape { margin: 0 0 22px; padding: 28px 30px; border-radius: 20px; background: #fff; border: 2px solid #137F5E; box-shadow: 0 18px 40px -30px rgba(12,51,38,.45); }
.acc-etape[hidden] { display: none; }
.acc-etape-ico { display: flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 14px; border-radius: 16px; background: #EAF5F0; color: #137F5E; }
.acc-etape-ico svg { width: 28px; height: 28px; }
.acc-etape h2 { margin: 0 0 8px; font: 700 26px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.acc-etape p { margin: 0; max-width: 640px; font-size: 17.5px; line-height: 1.6; color: #2B3832; }
.acc-etape-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 22px; }
.acc-etape-actions .btn { min-height: 52px; padding: 12px 22px; font-size: 17px; }
/* Historique */
#screen-accueil .acc-recents { padding: 22px 24px 12px; border-radius: 20px; background: #fff; border: 1px solid #E1E7E2; }
#screen-accueil .acc-recents[hidden] { display: none; }
#screen-accueil .acc-recents-tete { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
#screen-accueil .acc-recents .acc-titre-section { margin: 0; font: 700 22px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; letter-spacing: 0; text-transform: none; color: #0B3D2C; }
#screen-accueil .acc-lien[hidden] { display: none; }
#screen-accueil .acc-bilan { padding: 14px 0; border-top: 1px solid #EEF0EC; }
#screen-accueil .acc-bilan-info strong { font-size: 17px; }
#screen-accueil .acc-bilan-info span { font-size: 15px; color: #3D4A44; }
#screen-accueil .acc-vide { margin: 8px 0 12px; padding: 22px; gap: 18px; border: 2px dashed #D5DED8; background: #FAFBF9; }
#screen-accueil .acc-vide-ico { width: 52px; height: 52px; background: #EEF2EE; color: #55635C; }
#screen-accueil .acc-vide-ico svg { width: 26px; height: 26px; }
#screen-accueil .acc-vide p { font-size: 16px; color: #3D4A44; }
#screen-accueil .acc-vide strong { margin-bottom: 2px; font-size: 17px; color: #13201B; }
/* Formulaire : deux petits boutons pour compléter, et « Plus de détails » */
.completer { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; margin: 0 0 22px; }
.completer-btn { display: flex; align-items: center; gap: 16px; width: 100%; min-height: 96px; padding: 18px 20px; text-align: left; white-space: normal; border: 1.5px solid #CBE7DA; border-radius: 18px; background: linear-gradient(135deg, #EEF9F4, #fff 75%); box-shadow: 0 8px 22px -16px rgba(11, 91, 66, .55); transition: border-color .2s, box-shadow .2s, transform .2s; }
.completer-btn:hover { border-color: #1E9A72; background: linear-gradient(135deg, #E3F5EC, #fff 75%); box-shadow: 0 14px 30px -16px rgba(11, 91, 66, .6); transform: translateY(-2px); }
.completer-btn:focus-visible { outline: 3px solid #137F5E; outline-offset: 3px; }
.completer-ico { flex: none; width: 52px; height: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: linear-gradient(145deg, #1E9A72, #0B5B42); color: #fff; box-shadow: 0 6px 14px -6px rgba(11, 91, 66, .6); }
.completer-btn .completer-ico svg { width: 26px; height: 26px; color: #fff; }
.completer-txt { flex: 1; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.completer-txt strong { font: 700 17px/1.25 'Plus Jakarta Sans', sans-serif; color: #0B3D2C; letter-spacing: -.01em; }
.completer-txt small { font: 500 13.5px/1.4 'Plus Jakarta Sans', sans-serif; color: #55635C; }
.completer-fleche { flex: none; font-size: 20px; color: #1E9A72; transition: transform .2s; }
.completer-btn:hover .completer-fleche { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .completer-btn, .completer-fleche { transition: none; } .completer-btn:hover { transform: none; } }
details.plus { margin: 18px 0 4px; border-top: 1px solid #E6E9E3; }
details.plus > summary { display: flex; align-items: center; gap: 8px; padding: 16px 0 6px; list-style: none; cursor: pointer; font-size: 16.5px; font-weight: 600; color: #137F5E; }
details.plus > summary::-webkit-details-marker { display: none; }
details.plus > summary::before { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform .15s; margin-right: 4px; }
details.plus[open] > summary::before { transform: rotate(45deg); }
details.plus > summary span { font-weight: 400; color: #55635C; }
details.plus > summary:focus-visible { outline: 3px solid #137F5E; outline-offset: 3px; border-radius: 6px; }
details.plus > .form-grid { margin-top: 14px; }
@media (max-width: 760px) {
  .acc-deux { grid-template-columns: 1fr; gap: 14px; }
  .acc-gros-bouton { min-height: 0; padding: 22px 20px; }
  .acc-gros-bouton strong { font-size: 21px; }
  .acc-gros-desc { font-size: 16px; }
  .acc-etape { padding: 22px 18px; }
  .acc-etape h2 { font-size: 24px; }
  .acc-etape-actions .btn { flex: 1 1 100%; justify-content: center; }
  #screen-accueil .acc-recents { padding: 18px 16px 8px; }
}

/* Déjà connectée (26/10/2026) : la page de présentation n'apparaît pas pendant
   l'ouverture de l'outil (classe posée dans le <head>, retirée par js/16). */
html.ouverture-outil #landing { display: none !important; }

/* ---------- Espace « Patients », phase 1 (26/10/2026) ----------
   Mêmes cartes, couleurs et tailles que l'accueil ; rien de nouveau à apprendre. */
#screen-patients { max-width: 880px; margin: 0 auto; }
.container:has(#screen-patients.active) .steps-nav { display: none; }
.pa-tete { display: flex; align-items: flex-start; justify-content: space-between; flex-wrap: wrap; gap: 14px 18px; margin: 0 0 20px; }
.pa-titre { margin: 0; font: 700 clamp(28px, 1.5vw + 18px, 35px)/1.15 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.pa-sous { margin: 6px 0 0; font-size: 16.5px; color: #3D4A44; }
.pa-tete-actions { display: flex; align-items: center; gap: 10px; }
.pa-tete-actions .btn-primary { min-height: 50px; padding: 12px 22px; font-size: 16.5px; }
.pa-badge { display: inline-block; vertical-align: middle; padding: 3px 10px; border-radius: 99px; background: #EEF2EE; color: #3D4A44; font: 600 14px/1.4 'Plus Jakarta Sans', sans-serif; }
.pa-retour { margin: 0 0 14px; padding: 8px 2px; border: 0; background: none; color: #137F5E; font: 600 15.5px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.pa-retour:hover { text-decoration: underline; }
.pa-retour:focus-visible, .pa-ligne:focus-visible, .pa-menu-btn:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }
/* Menu « ⋯ » */
.pa-menu { position: relative; }
.pa-menu-btn { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; border: 1px solid #D5DED8; border-radius: 12px; background: #fff; color: #3D4A44; cursor: pointer; }
.pa-menu-btn:hover { border-color: #137F5E; color: #137F5E; }
.pa-menu-btn svg { width: 20px; height: 20px; }
.pa-menu-liste { position: absolute; right: 0; top: calc(100% + 6px); z-index: 50; min-width: 240px; padding: 6px; border-radius: 14px; background: #fff; border: 1px solid #E1E7E2; box-shadow: 0 18px 40px -20px rgba(12,51,38,.45); }
.pa-menu-liste[hidden] { display: none; }
.pa-menu-liste button { display: block; width: 100%; padding: 12px 14px; border: 0; border-radius: 10px; background: none; text-align: left; font: 500 15.5px/1.3 'Plus Jakarta Sans', sans-serif; color: #13201B; cursor: pointer; }
.pa-menu-liste button:hover, .pa-menu-liste button:focus-visible { background: #F3F5F1; outline: none; }
.pa-menu-liste .pa-danger { color: #A8322D; }
/* Liste */
.pa-recherche { width: 100%; margin: 0 0 14px; }
.pa-liste { list-style: none; margin: 0; padding: 0; border-radius: 20px; background: #fff; border: 1px solid #E1E7E2; overflow: hidden; }
.pa-liste li + li { border-top: 1px solid #EEF0EC; }
.pa-liste li[hidden] { display: none; }
.pa-ligne { display: flex; flex-direction: column; gap: 3px; width: 100%; padding: 16px 22px; border: 0; background: none; text-align: left; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; }
.pa-ligne:hover { background: #F7FBF9; }
.pa-ligne strong { font-size: 17.5px; color: #13201B; }
.pa-ligne span { font-size: 15px; color: #3D4A44; }
.pa-vide { margin: 0; }
.pa-aucun, .pa-gris { color: #55635C; }
.pa-aucun { margin: 14px 4px; font-size: 15.5px; }
.pa-bas { display: inline-block; margin: 16px 4px 0; }
.pa-rappel { margin: 0 0 14px; padding: 12px 16px; border-radius: 12px; background: #F4F8F6; border: 1px solid #DCEBE3; font-size: 15px; color: #2B3832; }
.pa-erreur { padding: 16px; border-radius: 12px; background: #FCEBEB; color: #A32D2D; font-size: 15.5px; }
.pa-erreur p { margin: 0 0 8px; } .pa-erreur ul { margin: 0 0 12px; padding-left: 20px; line-height: 1.55; } .pa-erreur li { margin-bottom: 4px; }
/* Fiche */
.pa-carte { margin: 0 0 18px; padding: 22px 24px; border-radius: 20px; background: #fff; border: 1px solid #E1E7E2; }
.pa-h2 { margin: 0 0 10px; font: 700 22px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.pa-h2 span { font: 500 16px 'Plus Jakarta Sans', sans-serif; color: #55635C; }
.pa-texte, .pa-objectif { margin: 0 0 12px; font-size: 16.5px; line-height: 1.6; color: #2B3832; }
.pa-encart { margin: 12px 0 0; padding: 14px 16px; border-radius: 14px; }
.pa-encart strong { display: block; margin-bottom: 4px; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; }
.pa-encart p { margin: 0; font-size: 16.5px; line-height: 1.55; color: #13201B; }
.pa-reprendre { background: #EAF5F0; border: 1px solid #CFE6DA; }
.pa-reprendre strong { color: #0B5B42; }
.pa-garder { background: #FFFAEB; border: 1px solid #F5D98B; }
.pa-garder strong { color: #5C4A12; }
#screen-patients > .pa-reprendre { margin: 0 0 18px; }
.pa-seance { border-top: 1px solid #EEF0EC; }
.pa-seance > summary { display: flex; align-items: baseline; gap: 12px; padding: 14px 0; list-style: none; cursor: pointer; font-size: 16.5px; color: #13201B; }
.pa-seance > summary::-webkit-details-marker { display: none; }
.pa-seance > summary::before { content: ""; flex-shrink: 0; width: 8px; height: 8px; border-right: 2px solid #137F5E; border-bottom: 2px solid #137F5E; transform: rotate(-45deg); transition: transform .15s; }
.pa-seance[open] > summary::before { transform: rotate(45deg); }
.pa-seance > summary:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; border-radius: 6px; }
.pa-seance-date { flex-shrink: 0; font-weight: 700; color: #0B3D2C; }
.pa-seance[open] { padding-bottom: 14px; }
/* Séance en cours : une grande zone de texte, rien qui détourne l'attention */
.pa-seance-saisie .field + .field { margin-top: 18px; }
.pa-notes { min-height: 320px; font-size: 17px !important; line-height: 1.65; }
.pa-pied { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 10px 12px; margin-top: 18px; }
.pa-etat { margin-right: auto; font-size: 14.5px; color: #3F6B58; }
.pa-pied .btn { min-height: 50px; padding: 12px 22px; font-size: 16.5px; }
/* Fenêtre « Nouveau patient » */
.pa-fenetre { max-width: 560px; width: 100%; }
.pa-fenetre-corps { padding: 24px 26px 6px; }
.pa-fenetre-corps h2 { margin: 0 0 16px; font: 700 24px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.pa-f-erreur[hidden] { display: none; }
@media (max-width: 700px) {
  .pa-tete-actions { width: 100%; }
  .pa-tete-actions .btn-primary { flex: 1; justify-content: center; }
  .pa-carte { padding: 18px 16px; }
  .pa-ligne { padding: 14px 16px; }
  .pa-notes { min-height: 240px; }
  .pa-pied .btn { flex: 1 1 100%; justify-content: center; }
  .pa-etat { flex-basis: 100%; }
}

/* ---------- Espace « Patients », phase 2 : l'agenda (27/10/2026) ----------
   Onglets « Patients · Agenda » ; semaine en colonnes (un jour sur téléphone),
   une carte par rendez-vous, pas de grille horaire. */
.pa-onglets { display: inline-flex; gap: 4px; margin: 0 0 18px; padding: 4px; border-radius: 14px; background: #EEF2EE; }
.pa-onglet { min-height: 44px; padding: 8px 20px; border: 0; border-radius: 10px; background: none; color: #3D4A44; font: 600 16px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.pa-onglet.actif { background: #fff; color: #0B3D2C; box-shadow: 0 1px 3px rgba(19,32,27,.12); }
.pa-onglet:focus-visible, .ag-rdv-ouvrir:focus-visible, .ag-ligne:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }
.container:has(#screen-patients.active .ag-nav) { max-width: none; }   /* .active : la barre reste dans la page après l’agenda (30/10/2026) */
#screen-patients:has(.ag-nav) { max-width: 1180px; }
.ag-nav { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 12px; margin: 0 0 16px; }
.ag-fleche { min-width: 46px; min-height: 46px; font-size: 22px; justify-content: center; }
.ag-periode { margin: 0; font: 600 18px/1.3 'Plus Jakarta Sans', sans-serif; color: #13201B; }
.ag-vide { margin: 0 0 14px; font-size: 16px; color: #55635C; }
.ag-semaine { display: grid; grid-template-columns: repeat(var(--ag-colonnes, 6), minmax(0, 1fr)); gap: 10px; }
.ag-jour { min-height: 140px; padding: 10px; border-radius: 16px; background: #fff; border: 1px solid #E1E7E2; }
.ag-jour h3 { margin: 0 0 8px; font: 700 14.5px/1.3 'Plus Jakarta Sans', sans-serif; color: #3D4A44; text-transform: capitalize; }
.ag-aujourdhui { border-color: #137F5E; box-shadow: inset 0 0 0 1px #137F5E; }
.ag-aujourdhui h3 { color: #0B5B42; }
.ag-rdv { position: relative; margin: 0 0 8px; border-radius: 12px; background: #EAF5F0; border: 1px solid #CFE6DA; }
.ag-rdv.fait { background: #F3F5F1; border-color: #E1E7E2; }
.ag-rdv-ouvrir { display: flex; flex-direction: column; gap: 2px; width: 100%; padding: 10px 12px 10px 12px; border: 0; background: none; text-align: left; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; }
.ag-rdv-ouvrir strong, .ag-ligne strong { font-size: 16px; color: #13201B; overflow-wrap: break-word; hyphens: auto; }
.ag-heure { font-weight: 700; font-size: 15px; color: #0B5B42; }
.ag-detail { font-size: 13.5px; color: #3D4A44; }
.ag-rdv .pa-menu { position: absolute; top: 4px; right: 4px; }
.ag-rdv .ag-heure { padding-right: 30px; }
.ag-rdv .ag-menu-btn { width: 34px; height: 34px; border: 0; background: none; }
.ag-rdv .ag-menu-btn svg { width: 18px; height: 18px; }
.ag-f-ligne { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(0, 1fr); gap: 14px; }
.ag-f-ligne { margin-top: 16px; }
.ag-f-hebdo { display: flex; align-items: center; gap: 10px; margin: 18px 0 14px; font-size: 16.5px; cursor: pointer; }
.ag-f-hebdo input { width: 20px; height: 20px; }
.ag-f-jusqu { margin-top: 12px; }
.ag-f-jusqu[hidden], #ag-f-erreur[hidden] { display: none; }
#ag-f-erreur { color: #A8322D; }
/* Accueil : « Aujourd'hui » */
#acc-aujourdhui[hidden] { display: none; }
#screen-accueil #acc-aujourdhui { margin-bottom: 18px; }
.ag-liste-jour { list-style: none; margin: 0 0 8px; padding: 0; }
.ag-liste-jour li + li { border-top: 1px solid #EEF0EC; }
.ag-ligne { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 14px; width: 100%; padding: 13px 4px; border: 0; background: none; text-align: left; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; }
.ag-ligne:hover { background: #F7FBF9; }
.ag-ligne .ag-heure { min-width: 64px; }
.ag-ligne.fait strong { color: #55635C; }
@media (max-width: 700px) {
  .ag-semaine { grid-template-columns: minmax(0, 1fr); }
  .ag-jour { min-height: 0; padding: 0; border: 0; background: none; box-shadow: none; }
  .ag-periode { flex: 1; text-align: center; font-size: 17px; }
  .ag-rdv-ouvrir { padding: 14px 46px 14px 16px; }
  .ag-f-ligne { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ag-f-ligne .field:first-child { grid-column: 1 / -1; }
}

/* ---------- Espace « Patients » : coordonnées (27/10/2026) ----------
   Seulement dans la fiche ; jamais dans l'agenda ni la liste. */
.pa-ajout-contact { display: flex; align-items: center; gap: 14px; width: 100%; margin: 0 0 18px; padding: 16px 20px; border: 2px dashed #B9D9C9; border-radius: 18px; background: #F7FBF9; text-align: left; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; }
.pa-ajout-contact:hover { border-color: #137F5E; background: #EAF5F0; }
.pa-ajout-contact:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }
.pa-ajout-contact svg { flex-shrink: 0; width: 44px; height: 44px; padding: 11px; border-radius: 12px; background: #DDEFE6; color: #0B5B42; }
.pa-ajout-contact strong { display: block; font-size: 17px; color: #0B3D2C; }
.pa-ajout-contact > span > span { display: block; margin-top: 2px; font-size: 15px; color: #3D4A44; }
.pa-contact-tete { display: flex; align-items: baseline; justify-content: space-between; }
.pa-contact-tete .acc-lien { font-size: 15px; }
.pa-contact-liste { list-style: none; margin: 0; padding: 0; }
.pa-contact-liste li { display: flex; flex-wrap: wrap; gap: 2px 12px; padding: 9px 0; font-size: 16.5px; line-height: 1.5; color: #13201B; overflow-wrap: anywhere; }
.pa-contact-liste li + li { border-top: 1px solid #EEF0EC; }
.pa-contact-qui { flex: 0 0 210px; color: #3D4A44; font-weight: 600; }
.pa-contact-liste a { color: #0B5B42; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.pa-appeler { margin-top: 14px; min-height: 48px; }
.pa-contact-f { margin: 18px 0 0; padding: 0; border: 0; }
.pa-contact-f[hidden] { display: none; }
.pa-contact-f legend { margin-bottom: 10px; padding: 0; font: 700 15px/1.3 'Plus Jakarta Sans', sans-serif; color: #0B3D2C; }
.pa-c-second { display: inline-block; margin: 14px 0 4px; font-size: 15px; }
.pa-fenetre details.plus { margin-top: 16px; }
.pa-fenetre-corps { max-height: calc(100vh - 150px); overflow-y: auto; }
.pa-m-avert { margin: 16px 0 0; font-size: 15px; line-height: 1.5; color: #5C4A12; }
.pa-fenetre-corps > .field + .field { margin-top: 14px; }
#pa-w-erreur { color: #A8322D; }
#pa-w-erreur[hidden] { display: none; }
@media (max-width: 700px) {
  .pa-contact-qui { flex-basis: 100%; }
  .pa-appeler { width: 100%; justify-content: center; }
}
.pa-contact .pa-appeler { text-decoration: none; }
.pa-fenetre .form-grid { gap: 14px 16px; }

/* Feuille du patient (27/10/2026) : « À faire à la maison » + bouton imprimer */
.pa-maison { background: #EEF3FB; border: 1px solid #CFDCF0; }
.pa-maison strong { color: #1F3F73; }
.pa-imprimer { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; }
.pa-imprimer svg { width: 19px; height: 19px; }
@media (max-width: 700px) { .pa-imprimer { width: 100%; justify-content: center; } }

/* ---------- Programme du patient et déroulé de la journée (27/10/2026) ---------- */
.pa-programme-vide { padding: 14px 18px; }
/* Programme : barre de progression, pastilles à cocher, fête à l'acquisition (30/10/2026) */
.pa-prog-tete { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.pa-prog-tete .pa-h2 { margin-bottom: 0; }
.pa-prog-compte { font: 500 15px/1.3 'Plus Jakarta Sans', sans-serif; color: #55635C; white-space: nowrap; }
.pa-prog-compte strong { font-weight: 700; font-size: 17px; color: #0B5B42; }
.pa-prog-barre { height: 10px; margin: 12px 0 6px; border-radius: 99px; background: #EAF2EE; overflow: hidden; }
.pa-prog-barre i { display: block; height: 100%; min-width: 0; border-radius: inherit; background: linear-gradient(90deg, #3CC79A, #137F5E); box-shadow: inset 0 -2px 0 rgba(0,0,0,.08); transition: width .9s cubic-bezier(.2,.8,.2,1); }
.pa-prog-astuce { margin: 0 0 10px; font-size: 13.5px; color: #5F6E66; }
.pa-obj-liste { list-style: none; margin: 0 0 14px; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.pa-obj { display: flex; align-items: center; gap: 4px; border: 1px solid #E6EEEA; border-radius: 16px; background: #fff; transition: border-color .2s, box-shadow .2s, transform .2s; }
.pa-obj:hover { border-color: #BFE3D3; box-shadow: 0 6px 18px -12px rgba(11, 91, 66, .45); transform: translateY(-1px); }
/* Menu « … » ouvert : la carte passe devant le champ d'ajout et les cartes suivantes
   (son léger soulèvement au survol l'isole sur son propre plan). */
.pa-obj { position: relative; }
.pa-obj:focus-within, .pa-obj:has(.pa-menu-liste:not([hidden])) { z-index: 10; }
.pa-obj-btn { flex: 1; min-width: 0; display: flex; align-items: center; gap: 14px; min-height: 58px; padding: 10px 6px 10px 14px; border: 0; border-radius: 16px; background: none; text-align: left; cursor: pointer; font-family: 'Plus Jakarta Sans', sans-serif; }
.pa-obj-btn:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }
.pa-obj-coche { flex: none; width: 30px; height: 30px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 2px solid #A9CFC0; background: #fff; transition: background .2s, border-color .2s, transform .2s cubic-bezier(.3,1.6,.5,1); }
.pa-obj-coche svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }
.pa-obj-en_cours .pa-obj-coche { color: #137F5E; }
.pa-obj-apercu { opacity: 0; transition: opacity .15s; }
.pa-obj-btn:hover .pa-obj-coche { transform: scale(1.08); }
.pa-obj-en_cours .pa-obj-btn:hover .pa-obj-coche { border-color: #137F5E; background: #E9F7F1; }
.pa-obj-btn:hover .pa-obj-apercu { opacity: .55; }
.pa-obj-btn:active .pa-obj-coche { transform: scale(.9); }
.pa-obj-acquis { background: linear-gradient(90deg, #F1FAF6, #fff 70%); border-color: #D3EDE1; }
.pa-obj-acquis .pa-obj-coche { border-color: transparent; background: linear-gradient(145deg, #2FB386, #0B6B4D); color: #fff; box-shadow: 0 4px 10px -4px rgba(11, 107, 77, .6); }
.pa-obj-corps { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pa-obj-titre { font-size: 16.5px; font-weight: 600; line-height: 1.4; color: #13201B; }
.pa-obj-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 14px; line-height: 1.3; }
.pa-obj-etat { font-weight: 600; color: var(--text-tertiary, #637069); }
.pa-obj-en_cours .pa-obj-etat { color: #1E8A66; }
.pa-obj-acquis .pa-obj-etat { color: #0B6B4D; }
.pa-obj-dom { padding: 2px 9px; border-radius: 99px; background: #F0F4F2; color: #55635C; font-weight: 500; }
.pa-obj .pa-menu-btn { width: 40px; height: 40px; margin-right: 6px; border: 0; background: none; border-radius: 10px; }
.pa-obj-ajout { position: relative; display: flex; gap: 10px; }
.pa-obj-plus-ico { position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 22px; height: 22px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #E1F5EE; color: #137F5E; pointer-events: none; }
.pa-obj-plus-ico svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2.6; stroke-linecap: round; }
.pa-obj-ajout input { flex: 1; min-width: 0; padding-left: 46px !important; border-style: dashed !important; border-radius: 14px !important; }
.pa-obj-ajout input:focus { border-style: solid !important; }
.pa-obj-plus { margin-top: 14px; }
.pa-obj-plus > summary { padding: 8px 0; cursor: pointer; color: #137F5E; font: 600 15px/1.3 'Plus Jakarta Sans', sans-serif; }
.pa-obj-plus > summary:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; border-radius: 6px; }
.pa-obj-plus .pa-obj-liste { margin-top: 8px; }
.pa-fete { position: fixed; z-index: 9999; width: 0; height: 0; pointer-events: none; }
.pa-fete-coche { position: absolute; left: -17px; top: -17px; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: linear-gradient(145deg, #2FB386, #0B6B4D); color: #fff; box-shadow: 0 0 0 0 rgba(47, 179, 134, .5); animation: paEclot .7s cubic-bezier(.3,1.6,.5,1) forwards, paOnde .8s ease-out forwards; }
.pa-fete-coche svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 20; stroke-dashoffset: 20; animation: paTrace .35s .12s ease-out forwards; }
.pa-fete i { position: absolute; left: -4px; top: -3px; width: 8px; height: 6px; border-radius: 2px; opacity: 0; animation: paConfetti .95s cubic-bezier(.15,.7,.3,1) forwards; }
@keyframes paEclot { 0% { transform: scale(.3); opacity: 0; } 25% { opacity: 1; } 55% { transform: scale(1.25); } 80% { transform: scale(1); opacity: 1; } 100% { transform: scale(1); opacity: 0; } }
@keyframes paOnde { to { box-shadow: 0 0 0 18px rgba(47, 179, 134, 0); } }
@keyframes paTrace { to { stroke-dashoffset: 0; } }
@keyframes paConfetti { 0% { opacity: 1; transform: translate(0, 0) rotate(0); } 70% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--dx), calc(var(--dy) + 30px)) rotate(var(--r)); } }
@media (prefers-reduced-motion: no-preference) { .pa-obj-arrive { animation: paArrive .5s cubic-bezier(.2,.8,.2,1); } }
@keyframes paArrive { from { opacity: 0; transform: translateY(-8px) scale(.98); background: #E9F7F1; } }
@media (prefers-reduced-motion: reduce) { .pa-prog-barre i, .pa-obj, .pa-obj-coche { transition: none; } }
/* Séance : objectifs en puces */
.pa-puces { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 10px; }
.pa-puce { min-height: 42px; padding: 8px 14px; border: 1.5px solid #CFE6DA; border-radius: 99px; background: #fff; color: #13201B; font: 500 15px/1.3 'Plus Jakarta Sans', sans-serif; cursor: pointer; text-align: left; }
.pa-puce:hover { border-color: #137F5E; }
.pa-puce[aria-pressed="true"] { background: #137F5E; border-color: #137F5E; color: #fff; }
.pa-puce[aria-pressed="true"]::before { content: "✓ "; }
.pa-puce:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }
.pa-fiches-obj { margin: 10px 0 0; font-size: 14.5px; color: #3D4A44; }
.pa-fiches-obj .acc-lien { font-size: 14.5px; }
/* Déroulé : une ligne grisée sous le rendez-vous */
.ag-deroule { display: block; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: 14px; font-weight: 400; color: #55635C; }
.ag-qui { flex: 1; min-width: 0; }
.ag-rdv-ouvrir, .ag-jour { min-width: 0; }
.ag-ligne { flex-wrap: nowrap; }
.ag-ligne .ag-qui .ag-deroule { margin-top: 2px; }
/* Supprimer une séance (27/10/2026) : discret, en bas */
.pa-supprimer-seance { display: inline-block; margin-top: 4px; padding: 6px 2px; color: #A8322D; font-size: 14.5px; }
.pa-carte-pied { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-top: 16px; }
.pa-carte-pied .pa-imprimer { margin-top: 0; }
.pa-carte-pied .pa-supprimer-seance { margin-top: 0; margin-left: auto; }

/* ---------- Rendez-vous par jour de la semaine (27/10/2026) ---------- */
.ag-f-jours { margin: 16px 0 0; padding: 0; border: 0; }
.ag-f-jours legend { margin-bottom: 8px; padding: 0; font: 600 15.5px/1.3 'Plus Jakarta Sans', sans-serif; color: #2B3832; }
.ag-jours { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.ag-jour-choix { position: relative; }
.ag-jour-choix input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.ag-jour-choix span { display: flex; align-items: center; justify-content: center; min-height: 48px; border: 1.5px solid #CFE6DA; border-radius: 12px; background: #fff; font: 600 16px/1.2 'Plus Jakarta Sans', sans-serif; color: #13201B; cursor: pointer; }
.ag-jour-choix input:checked + span { background: #137F5E; border-color: #137F5E; color: #fff; }
.ag-jour-choix input:focus-visible + span { outline: 3px solid #137F5E; outline-offset: 2px; }
.ag-jour-choix:hover span { border-color: #137F5E; }
.ag-f-ligne2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 14px; margin-top: 16px; }
.ag-f-frequence { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 16px; font-size: 16.5px; }
.ag-f-frequence label { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.ag-f-frequence input { width: 20px; height: 20px; }
#ag-f-jusqu-champ[hidden] { display: none; }
.ag-ajout { display: block; width: 100%; margin-top: 4px; padding: 8px 4px; border: 1px dashed #CFE6DA; border-radius: 10px; background: none; color: #137F5E; font: 600 14px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.ag-ajout:hover { border-color: #137F5E; background: #F7FBF9; }
.ag-ajout:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }
/* Fiche : rendez-vous prévus */
.pa-rdv-prochain { font-size: 15px; color: #3D4A44; }
.pa-rdv-liste { list-style: none; margin: 0 0 6px; padding: 0; }
.pa-rdv-liste li { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; padding: 10px 0; border-bottom: 1px solid #EEF0EC; }
.pa-rdv-lib { font-size: 16.5px; font-weight: 600; color: #13201B; }
.pa-rdv-lib span { font-weight: 400; color: #55635C; }
.pa-rdv-actions { display: flex; gap: 18px; }
.pa-rdv-actions .acc-lien { font-size: 15px; }
.pa-rdv-ajout { margin-top: 8px; font-size: 15.5px; }
@media (max-width: 700px) { .ag-f-dates { grid-template-columns: minmax(0, 1fr); } }

/* « Nouveau bilan » : dicter ou partir de ses notes (27/10/2026) */
.sigpad-card.nb-choix { max-width: 760px; width: calc(100% - 32px); }
.nb-corps { padding: 26px 28px 8px; }
.nb-corps h2 { margin: 0 0 4px; font: 700 26px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.nb-corps > p { margin: 0 0 18px; font-size: 16.5px; color: #3D4A44; }
.nb-deux { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 14px; }
.nb-deux .acc-gros-bouton { min-height: 0; }
@media (max-width: 700px) { .nb-corps { padding: 20px 18px 6px; } .nb-deux { grid-template-columns: minmax(0, 1fr); } .nb-deux .acc-gros-bouton { padding: 18px; } }

/* ---------- Mode séance (26/10/2026) ----------
   Rappel compact, notes libres (clavier ou dictée), relecture modifiable.
   Mêmes cartes, encarts et boutons que le reste de l'espace Patients. */
.pa-h3 { margin: 0 0 10px; font: 700 20px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0B3D2C; }
.pa-pour { padding: 18px 22px; }
.pa-pour .pa-encart { margin-top: 10px; }
.pa-pour-date { margin: 0 0 4px; font: 600 13.5px/1.3 'Plus Jakarta Sans', sans-serif; letter-spacing: .02em; color: #55635C; }
.pa-pour-resume { margin: 0; }
.pa-voir-plus { margin-top: 2px; font-size: 14.5px; }
.pa-premiere { margin: 0; color: #2B3832; }
.pa-obj-jour { margin-top: 14px; padding-top: 12px; border-top: 1px solid #EEF0EC; }
.pa-obj-jour-lib { margin: 0 0 8px; font: 600 15px/1.3 'Plus Jakarta Sans', sans-serif; color: #2B3832; }
.pa-obj-jour .pa-puces { margin-bottom: 0; }
.pa-seance-saisie .pa-notes { min-height: 260px; }
.pa-notes-outils { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 12px; }
.pa-dicter { display: inline-flex; align-items: center; gap: 8px; }
.pa-dicter svg { width: 19px; height: 19px; }
.pa-dicter[data-etat="ecoute"] { border-color: #A8322D; color: #A8322D; background: #FCEFEE; }
.pa-rec-point { width: 10px; height: 10px; border-radius: 50%; background: #C0392B; animation: pa-pulse 1.4s ease-in-out infinite; }
@keyframes pa-pulse { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .pa-rec-point { animation: none; } }
.pa-dictee-etat { margin: 8px 0 0; font-size: 14.5px; color: #3F6B58; }
.pa-dictee-etat[hidden], .pa-ia-erreur[hidden], #pa-notes-erreur[hidden], .pa-bloc[hidden] { display: none; }
#pa-notes-erreur { margin: 8px 0 0; color: #A8322D; }
.pa-notes-outils .pa-etat { margin: 0 0 0 auto; }
.pa-etat-ko { color: #A8322D; }
.pa-ia-erreur { margin-top: 14px; padding: 14px 16px; border-radius: 14px; background: #FCEBEB; border: 1px solid #F3C9C7; }
.pa-ia-erreur p { margin: 0 0 10px; font-size: 15.5px; color: #6E1F1C; }
.pa-ia-actions { display: flex; flex-wrap: wrap; gap: 10px; }
.pa-ia-actions .btn { background: #fff; }
.pa-seance-saisie .pa-pied { margin-top: 16px; }
.pa-seance-saisie .pa-pied .btn-primary { min-width: 240px; justify-content: center; }
/* Relecture */
.pa-relecture .pa-bloc + .pa-bloc, .pa-relecture .pa-bloc { margin-top: 14px; }
.pa-rel-aide { margin: -4px 0 6px; font-size: 15px; }
.pa-auto { field-sizing: content; min-height: 3.2em; max-height: 60vh; line-height: 1.6; }
#pa-resume.pa-auto { min-height: 6em; }
.pa-ajout-bloc { display: inline-block; margin: 12px 18px 0 0; font-size: 15px; }
.pa-verif { background: #FFF8E6; border-color: #F5D98B; color: #5C4A12; }
.pa-mes-notes { margin-top: 16px; padding-top: 10px; border-top: 1px solid #EEF0EC; }
.pa-mes-notes > summary { cursor: pointer; color: #137F5E; font: 600 15px/1.3 'Plus Jakarta Sans', sans-serif; padding: 4px 0; }
.pa-mes-notes > summary:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; border-radius: 6px; }
.pa-mes-notes .pa-texte { margin: 8px 0; color: #3D4A44; }
.pa-mes-notes .acc-lien { font-size: 14.5px; }
@media (max-width: 700px) {
  .pa-pour { padding: 16px; }
  .pa-seance-saisie .pa-notes { min-height: 200px; }
  .pa-dicter { flex: 1 1 100%; justify-content: center; min-height: 48px; }
  .pa-notes-outils .pa-etat { margin-left: 0; }
  .pa-seance-saisie .pa-pied .btn-primary { min-width: 0; }
  .pa-ia-actions .btn { flex: 1 1 100%; justify-content: center; }
}
/* Modifier / supprimer une séance enregistrée (26/10/2026) */
.pa-seance-actions { display: inline-flex; flex-wrap: wrap; gap: 6px 22px; margin-left: auto; }
.pa-seance .pa-seance-actions { display: flex; margin-top: 4px; }
.pa-seance-actions .acc-lien { font-size: 14.5px; padding: 6px 2px; }
.pa-seance-actions .pa-supprimer-seance { margin-top: 0; }

/* ---------- Fiches suggérées (26/10/2026) : liste compacte, titre · raison · Consulter ---------- */
.pa-suggestions[hidden] { display: none; }
.pa-sug-sous { margin: -4px 0 10px; font-size: 15px; color: #55635C; }
.pa-sug-filtre { display: inline-flex; align-items: center; gap: 8px; font: 600 14px/1.2 'Plus Jakarta Sans', sans-serif; color: #3D4A44; }
.pa-sug-filtre select { max-width: 260px; min-height: 40px; padding: 6px 10px; font-size: 14.5px; }
.pa-sug-liste { list-style: none; margin: 0; padding: 0; }
.pa-sug { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-top: 1px solid #EEF0EC; }
.pa-sug-texte { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pa-sug-texte strong { font-size: 16.5px; color: #13201B; }
.pa-sug-cat { font-size: 13.5px; font-weight: 600; color: #3F6B58; }
.pa-sug-raison { font-size: 15px; color: #3D4A44; }
.pa-sug-btn { flex-shrink: 0; }
.pa-sug-liens { margin: 4px 0 0; }
.pa-sug-tout { display: inline-block; margin-top: 10px; font-size: 15px; }
@media (max-width: 700px) {
  .pa-sug { flex-direction: column; align-items: stretch; gap: 8px; }
  .pa-sug-btn { justify-content: center; min-height: 44px; }
  .pa-sug-filtre { flex-basis: 100%; margin-top: 6px; }
  .pa-sug-filtre select { max-width: none; flex: 1; }
}
.pa-suggestions .pa-contact-tete { flex-wrap: wrap; gap: 6px 12px; align-items: center; }

/* ---------- Bilan → dossier patient (26/10/2026) ---------- */
.bilan-dossier { margin: 0 0 14px; }
.bilan-dossier[hidden] { display: none; }
@media print { .bilan-dossier { display: none !important; } }
.bd-ligne { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0; padding: 10px 14px; border-radius: 12px; background: #F4F8F6; border: 1px solid #DCEBE3; font-size: 15px; color: #2B3832; }
.bd-icone { color: #137F5E; font-size: 10px; }
.bd-discret-ligne { background: none; border: 0; padding: 0; }
.bd-discret { font-size: 14.5px; color: #3F6B58; }
.bd-erreur { background: #FCEBEB; border-color: #F3C9C7; color: #6E1F1C; }
.bd-choix { padding: 16px 18px; border-radius: 14px; background: #fff; border: 1.5px solid #CFE6DA; }
.bd-titre { margin: 0 0 4px; font: 600 16.5px/1.3 'Plus Jakarta Sans', sans-serif; color: #0B3D2C; }
.bd-aide { margin: 0 0 10px; font-size: 14.5px; color: #3D4A44; }
.bd-liste { list-style: none; margin: 0 0 8px; padding: 0; }
.bd-liste li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; padding: 10px 0; border-top: 1px solid #EEF0EC; }
.bd-liste li[hidden] { display: none; }
.bd-cand { font-size: 15px; color: #2B3832; }
.bd-liste-fen { max-height: 46vh; overflow-y: auto; }
.bd-nouveau { margin-top: 10px; }
.bd-creer { margin-top: 12px; }
/* Fiche patient : bilans liés */
.pa-bilans-liste { list-style: none; margin: 0; padding: 0; }
.pa-bilans-liste li { display: flex; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 10px 0; border-top: 1px solid #EEF0EC; }
.pa-bilan-lib { font-size: 16px; color: #13201B; }
.pa-bilan-dom { display: block; font-size: 14px; color: #3F6B58; }
.field-aide.aide-neutre { color: #55635C; }
/* Fenêtre « notes » : même bloc d'identité que la dictée (27/10/2026). */
#notes-modal .voice-ident-titre { flex-wrap: wrap; gap: 2px 8px; }
#notes-modal .voice-ident-titre span { flex-basis: 100%; padding-left: 28px; }
#notes-modal .voice-ident-titre span::before { content: none; }
#notes-modal .notes-label.voice-ident-titre { margin-top: 4px; }

/* ===== Annexes du bilan (27/10/2026, js/34-annexes.js) ===== */
.annexes-bloc { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--border); }
.annexes-titre, .grilles-titre { font-weight: 600; margin: 0 0 4px; }
.annexes-aide, .grilles-aide { font-size: 14px; line-height: 1.5; color: var(--text-secondary); margin: 0 0 14px; }
.annexes-liste, .grilles-liste { list-style: none; margin: 0 0 12px; padding: 0; display: grid; gap: 8px; }
.annexe-item { display: flex; align-items: center; gap: 12px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.annexe-vignette { width: 40px; height: 52px; object-fit: cover; object-position: top; border: 1px solid var(--border); border-radius: 4px; flex: none; }
.annexe-nom { flex: 1; min-width: 0; overflow-wrap: anywhere; font-size: 14px; }
.annexe-nom em { display: block; font-style: normal; font-size: 13.5px; color: var(--text-tertiary); }
.annexe-absente { font-size: 14px; color: #9A5B0B; }
.annexes-etat { min-height: 20px; margin: 10px 0 0; font-size: 13.5px; line-height: 1.5; color: var(--text-secondary); }
.annexes-etat.erreur { color: #B42318; }
.bilan-annexe { margin-top: 2rem; }
/* Ligne pointillée « Annexes » entre le compte rendu et ses annexes. */
.annexes-separateur { display: flex; align-items: center; gap: 14px; margin: 2.5rem 0 1.5rem; font-size: 12.5px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--green); }
.annexes-separateur::before, .annexes-separateur::after { content: ''; flex: 1; border-top: 1.5px dashed #A9C9BA; }
.bilan-annexe-page { display: block; max-width: 100%; height: auto; margin: 0 auto 1rem; padding: 10px; background: #fff; border: 1px solid #DCE8E1; border-radius: 6px; box-sizing: border-box; }
@media print {
  /* Pas de page forcée (27/10/2026, papier économisé) : l'annexe suit le bilan
     s'il reste la place, sinon passe à la page suivante. Une page d'annexe
     n'est jamais coupée ; séparateur et titre ne restent jamais seuls en bas. */
  .bilan-annexe { margin-top: 1.5rem; }
  .annexes-separateur { margin: 2rem 0 1.25rem; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .annexes-separateur, .bilan-annexe .bilan-section-title { break-after: avoid; page-break-after: avoid; }
  .annexes-separateur + .bilan-section-title, .bilan-annexe .bilan-section-title + .bilan-annexe-page { break-before: avoid; page-break-before: avoid; }
  .bilan-annexe-page { max-height: 23cm; width: auto; object-fit: contain; break-inside: avoid; page-break-inside: avoid; margin: 0 auto .5rem; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* Compteur de la consigne personnelle (27/10/2026, js/07). */
.pref-compteur { margin: 6px 0 0; font-size: 13px; color: var(--green-dark); text-align: right; }

/* Glisser-déposer (27/10/2026, js/05) : zone survolée par un fichier. */
.annexes-glisser { margin-left: 10px; font-size: 14px; color: var(--text-tertiary); }
[data-depot] { transition: background .15s, outline-color .15s; border-radius: 10px; }
/* Fond étendu par une ombre : la zone grandit sans décaler la mise en page. */
.depot-survol { background: var(--green-light); box-shadow: 0 0 0 14px var(--green-light); outline: 2px dashed var(--green); outline-offset: 14px; }
@media print { .depot-survol { outline: none; background: none; box-shadow: none; } }

/* « Ajuster avec l'IA » d'un courrier (27/10/2026, js/17) : suggestions. */
.consigne-suggestions { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.consigne-suggestion { border: 1px solid var(--green-mid); background: #fff; color: var(--green-dark); border-radius: 999px; padding: 4px 10px; font: 500 13.5px/1.3 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.consigne-suggestion:hover { background: var(--green-light); }
#courrier-doc .courrier-corps.bs-en-revue p { margin: 0 0 .9em; }

/* Téléphone / e-mail du patient dans le compte rendu (27/10/2026, js/09) :
   liens discrets, cliquables à l'écran, dans le PDF et le Word. */
.bilan-patient-value a.lien-patient { color: inherit; text-decoration: underline; text-decoration-color: var(--green-mid); text-underline-offset: 3px; cursor: pointer; }
@media print { .bilan-patient-value a.lien-patient { color: inherit !important; text-decoration: none !important; } }

/* Boutons du courrier toujours visibles (27/10/2026) : la fenêtre défile, et
   « Ajuster avec l'IA », « Imprimer »… n'apparaissaient qu'une fois arrivé
   sous la signature : Jordan ne les trouvait pas. Barre collée en bas. */
.courrier-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; position: sticky; bottom: 0; z-index: 2;
  margin: 1.5rem -28px -22px; padding: 12px 28px 14px; background: var(--bg); border-top: 1px solid var(--border); }

/* ===== « Mes bilans » (27/10/2026) : même langage que les autres fenêtres ===== */
.hist-overlay { position: fixed; inset: 0; z-index: 10000; align-items: center; justify-content: center; padding: 24px; background: rgba(15, 23, 20, .5); backdrop-filter: blur(2px); font-family: 'Plus Jakarta Sans', sans-serif; }
.hist-carte { width: 100%; max-width: 720px; max-height: 86vh; display: flex; flex-direction: column; overflow: hidden; background: #fff; border: 1px solid var(--border); border-radius: 20px; box-shadow: 0 2px 8px rgba(19, 32, 27, .06), 0 40px 80px -24px rgba(12, 51, 38, .45); }
.hist-tete { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px 26px 18px; }
.hist-titre { margin: 0; font: 700 24px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #13201B; }
.hist-sous { display: flex; align-items: center; gap: 7px; margin: 6px 0 0; font-size: 14px; color: var(--text-secondary); }
.hist-sous svg { width: 14px; height: 14px; flex-shrink: 0; color: #137F5E; }
.hist-fermer { flex-shrink: 0; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 10px; background: transparent; color: #6B756F; cursor: pointer; }
.hist-fermer:hover { background: #F1F4F2; color: #13201B; }
.hist-fermer svg { width: 18px; height: 18px; }
.hist-recherche { position: relative; padding: 0 26px 6px; }
.hist-recherche svg { position: absolute; left: 40px; top: 50%; width: 17px; height: 17px; transform: translateY(calc(-50% - 3px)); color: var(--text-tertiary, #637069); pointer-events: none; }
.hist-recherche input { width: 100%; padding: 11px 14px 11px 40px; border: 1px solid var(--border); border-radius: 12px; font: 14px/1.4 'Plus Jakarta Sans', sans-serif; background: #F7F8F5; }
.hist-recherche input:focus { outline: none; border-color: #137F5E; background: #fff; box-shadow: 0 0 0 3px rgba(19, 127, 94, .12); }
.hist-liste { display: flex; flex-direction: column; gap: 8px; flex: 1; overflow-y: auto; padding: 10px 26px 18px; }
.hist-item { display: flex; align-items: center; gap: 14px; padding: 12px 12px 12px 14px; border: 1px solid #ECEFEC; border-radius: 14px; background: #fff; transition: border-color .15s, box-shadow .15s, background .15s; }
.hist-item:hover { border-color: #CFE3D8; background: #FBFDFC; box-shadow: 0 4px 14px -8px rgba(12, 51, 38, .25); }
.hist-avatar { flex-shrink: 0; width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--green-light); color: #0B5B42; font: 600 14px/1 'Plus Jakarta Sans', sans-serif; letter-spacing: .02em; }
.hist-item-info { flex: 1 1 auto; min-width: 0; }
.hist-nom { display: flex; align-items: center; gap: 8px; min-width: 0; margin: 0; font-size: 15px; font-weight: 600; line-height: 1.3; color: #13201B; }
.hist-nom-texte { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hist-meta { margin: 3px 0 0; font-size: 13.5px; line-height: 1.4; color: var(--text-secondary); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hist-pastille { flex-shrink: 0; display: inline-flex; padding: 2px 8px; border-radius: 999px; background: #F1F4F2; color: #4A554F; font-size: 12.5px; font-weight: 600; line-height: 1.4; }
.hist-avatar svg { width: 20px; height: 20px; }
.hist-pastille.renouv { background: #EAF5F0; color: #0B5B42; }
.hist-item-actions { flex-shrink: 0; display: flex; align-items: center; gap: 4px; }
.hist-ouvrir { margin-right: 4px; }
.hist-action { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 10px; border: 0; border-radius: 9px; background: transparent; color: #3E4A44; font: 600 14px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.hist-action:hover { background: #F1F4F2; color: #0B5B42; }
.hist-action svg { width: 16px; height: 16px; }
.hist-suppr { width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--text-tertiary, #637069); cursor: pointer; }
.hist-vide { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 36px 32px 44px; text-align: center; }
.hist-vide-icone { width: 52px; height: 52px; display: inline-flex; align-items: center; justify-content: center; border-radius: 16px; background: var(--green-light); color: #137F5E; }
.hist-vide-icone svg { width: 26px; height: 26px; }
.hist-vide p { margin: 0; max-width: 360px; font-size: 14px; line-height: 1.55; color: var(--text-secondary); }
.hist-vide strong { display: block; margin-bottom: 4px; font-size: 15px; color: #13201B; }
.hist-aucun { margin: 18px 0; text-align: center; font-size: 14px; color: var(--text-secondary); }
.hist-pied { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; padding: 12px 26px; border-top: 1px solid #EEF0EC; background: #FAFAF8; }
.hist-sauvegarde { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; }
.hist-sauvegarde-info { font-size: 13.5px; color: var(--text-secondary); }
.hist-sauvegarde-info.a-faire { color: #9A5B0B; font-weight: 600; }
.hist-sauv-btn { border: 0; background: none; padding: 4px 0; color: #0B5B42; font: 600 13.5px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.hist-sauv-btn:hover { text-decoration: underline; }
.hist-tout-effacer { border: 0; background: none; padding: 4px 0; color: var(--text-tertiary, #637069); font: 500 13.5px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.hist-tout-effacer:hover { color: #B42318; text-decoration: underline; }
@media (max-width: 600px) {
  .hist-overlay { padding: 12px; }
  .hist-tete { padding: 20px 18px 14px; }
  .hist-recherche { padding: 0 18px 6px; }
  .hist-recherche svg { left: 32px; }
  .hist-liste { padding: 8px 18px 16px; }
  .hist-pied { padding: 12px 18px; }
  .hist-item { flex-wrap: wrap; position: relative; }
  .hist-item-info { flex-basis: calc(100% - 100px); padding-right: 30px; }
  .hist-item-actions { width: 100%; padding-left: 54px; }
  .hist-action span { display: none; }
  .hist-suppr { position: absolute; top: 10px; right: 8px; }
}

/* Site du cabinet dans l'en-tête (27/10/2026) : lien discret, cliquable. */
.bilan-pratician a.lien-cabinet { color: inherit; text-decoration: underline; text-decoration-color: var(--green-mid); text-underline-offset: 3px; }
@media print { .bilan-pratician a.lien-cabinet { color: inherit !important; text-decoration: none !important; } }

/* En-tête compact du cabinet (27/10/2026, js/09 enteteCabinetHtml). */
.bilan-pratician { line-height: 1.65; }
.pratician-ids { display: block; margin-top: 2px; font-size: 12.5px; color: var(--text-tertiary); letter-spacing: .01em; }
.pratician-num { white-space: nowrap; }
/* Deux colonnes équilibrées (écran large et impression ; en colonne sur
   mobile, rien ne change) : le cabinet garde ses lignes, le titre passe sur
   deux lignes si besoin. */
@media (min-width: 768px), print {
  .bilan-header { gap: 24px; }
  .bilan-header .bilan-pratician { flex: 1 1 auto; min-width: 0; }
  .bilan-header .bilan-title-block { flex: 0 1 300px; }
}

/* ===== En-tête « papier à lettres » (27/10/2026, js/09 enteteCabinetHtml) ===== */
.bilan-pratician .pr-l { margin: 0; }
.bilan-pratician .pr-nom { margin-bottom: 1px; }
.bilan-pratician .pr-nom strong { font: 700 17px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #13201B; letter-spacing: .005em; }
.pratician-ei { font-size: 12.5px; font-style: italic; color: var(--text-tertiary); white-space: nowrap; }
.bilan-pratician .pr-fonction { margin-bottom: 7px; }
.pratician-fonction { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #137F5E; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
/* Pictogramme puis texte, dans l'ordre de lecture (pas de positionnement
   absolu : le texte du PDF garderait sinon ces lignes en fin de document). */
.bilan-pratician .pr-coord { display: flex; align-items: flex-start; gap: 8px; }
.pratician-ico { flex-shrink: 0; width: 13px; height: 13px; margin-top: .42em; color: #3E9C7C; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.bilan-pratician a.lien-cabinet { color: inherit; text-decoration: none; border-bottom: 1px solid var(--green-light); }
.bilan-pratician .pr-ids-1 { margin-top: 7px; }
@media print { .bilan-pratician a.lien-cabinet { border-bottom: 0; } }

/* ===== Série de séances (27/10/2026, js/29) ===== */
.pa-serie-compte { margin: 4px 0 10px; font-size: 14px; color: var(--text-secondary); }
.pa-serie-compte strong { font: 700 24px/1 'Plus Jakarta Sans', sans-serif; font-variant-numeric: tabular-nums; color: #13201B; margin-right: 2px; }
.pa-serie-compte span { font-size: 14px; }
.pa-serie-barre { height: 8px; border-radius: 999px; background: #EEF2EF; overflow: hidden; }
.pa-serie-barre span { display: block; height: 100%; border-radius: 999px; background: #137F5E; transition: width .3s; }
.pa-serie-barre.bientot span { background: #D98E04; }
.pa-serie-barre.fini span { background: #C2410C; }
.pa-serie-alerte { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 10px 16px; margin-top: 14px; padding: 12px 14px; border-radius: 12px; }
.pa-serie-alerte p { margin: 0; font-size: 14px; line-height: 1.45; }
.pa-serie-alerte.bientot { background: #FFF8E6; border: 1px solid #F5D98B; color: #5C4A12; }
.pa-serie-alerte.fini { background: #FEF3F2; border: 1px solid #F8C9C4; color: #7A271A; }
.pa-pastille-renouv { display: inline-block; margin-left: 8px; padding: 2px 8px; border-radius: 999px; background: #FFF1D6; color: #8A5300; font: 600 12.5px/1.4 'Plus Jakarta Sans', sans-serif; font-style: normal; vertical-align: 2px; }
.pa-pastille-renouv.fini { background: #FEE4E2; color: #9A2B1B; }

/* ===== Dossier patient redessiné (27/10/2026, js/29 rendreFiche) ===== */
#screen-patients:has(.pa-dossier) { max-width: 1160px; }
/* En-tête : initiales, identité, aperçu en tuiles */
.pa-hero { margin: 0 0 20px; padding: 24px 26px; border: 1px solid #DCE8E1; border-radius: 24px; background: linear-gradient(135deg, #EEF7F2 0%, #F8FBF9 45%, #FFFFFF 100%); box-shadow: 0 1px 2px rgba(19, 32, 27, .04); }
.pa-hero .pa-tete { margin: 0; align-items: center; }
.pa-hero-id { display: flex; align-items: center; gap: 18px; min-width: 0; }
.pa-avatar { flex-shrink: 0; width: 68px; height: 68px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: linear-gradient(145deg, #1E9A72, #0B5B42); color: #fff; font: 700 24px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; letter-spacing: .02em; box-shadow: 0 6px 16px -6px rgba(11, 91, 66, .55); }
.pa-hero .pa-sous { margin-top: 4px; font-size: 15px; }
.pa-apercu { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin-top: 22px; }
.pa-tuile { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border: 1px solid #E3ECE7; border-radius: 16px; background: rgba(255, 255, 255, .85); }
.pa-tuile-lib { font-size: 12.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--text-tertiary, #637069); }
.pa-tuile-val { font: 700 22px/1.2 'Plus Jakarta Sans', sans-serif; font-variant-numeric: tabular-nums; letter-spacing: -.01em; color: #13201B; }
.pa-tuile-val small { font: 500 14px/1 'Plus Jakarta Sans', sans-serif; color: var(--text-tertiary, #637069); }
.pa-tuile-det { font-size: 13.5px; color: var(--text-tertiary, #637069); }
.pa-tuile-barre { display: block; height: 6px; margin-top: 4px; border-radius: 999px; background: #E6EEE9; overflow: hidden; }
.pa-tuile-barre span { display: block; height: 100%; border-radius: 999px; background: #137F5E; }
.pa-tuile-barre.bientot span { background: #D98E04; }
.pa-tuile-barre.fini span { background: #C2410C; }
.pa-tuile.bientot { border-color: #F5D98B; background: #FFFBEF; }
.pa-tuile.fini { border-color: #F8C9C4; background: #FFF6F5; }
/* Deux colonnes : suivi à gauche, repères à droite */
.pa-dossier { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0 20px; align-items: start; }
@media (min-width: 1080px) { .pa-dossier { grid-template-columns: minmax(0, 1fr) 340px; } }
.pa-col-cote .pa-carte { padding: 18px 20px; }
.pa-col-cote .pa-h2 { font-size: 19px; }
.pa-col-cote .pa-serie-compte strong { font-size: 24px; }
.pa-col-cote .pa-serie-alerte { flex-direction: column; align-items: stretch; }
.pa-col-cote .pa-serie-alerte .btn { justify-content: center; }
/* Colonne étroite : libellé au-dessus (le libellé a une base de 210 px en ligne). */
.pa-col-cote .pa-contact-liste li { display: block; font-size: 15px; }
.pa-col-cote .pa-contact-qui { display: block; margin-bottom: 1px; font-size: 14px; font-weight: 600; color: var(--text-tertiary, #637069); }
.pa-col-cote .pa-appeler { width: 100%; justify-content: center; margin-top: 10px; }
.pa-col-cote .pa-rdv-prochain { display: none; }   /* déjà dans l'aperçu */
.pa-col-cote .pa-rdv-liste li { flex-wrap: wrap; gap: 2px 10px; }
.pa-col-cote .pa-ajout-contact { width: 100%; margin: 0 0 18px; }
.pa-garder-carte { background: #FFFBEF; border-color: #F3E2B0; }
.pa-garder-carte .pa-h2 { color: #6B4E0E; }
.pa-garder-carte .pa-texte { margin: 0; }
.pa-derniere { border-color: #CFE3D8; box-shadow: 0 8px 24px -18px rgba(12, 51, 38, .35); }
/* Historique en frise */
.pa-frise { position: relative; margin-top: 6px; }
.pa-frise .pa-seance { position: relative; margin: 0; padding: 0 0 0 22px; border: 0; border-left: 2px solid #E3ECE7; }
.pa-frise .pa-seance::before { content: ''; position: absolute; left: -6px; top: 15px; width: 10px; height: 10px; border-radius: 50%; background: #fff; border: 2px solid #3E9C7C; }
.pa-frise .pa-seance[open]::before { background: #3E9C7C; }
.pa-frise .pa-seance summary { padding: 9px 0; }
.pa-frise-plus > summary { margin: 8px 0 0 22px; color: #0B5B42; font-weight: 600; font-size: 14px; cursor: pointer; }
.pa-frise-plus[open] > summary { margin-bottom: 4px; }
/* Une seule colonne (< 1080 px) : les blocs sont réordonnés par importance,
   l'historique en dernier (sinon « À garder en tête » et la série arrivaient
   après toutes les séances). */
@media (max-width: 1079px) {
  .pa-dossier { display: flex; flex-direction: column; }
  .pa-dossier > .pa-col, .pa-dossier > .pa-col-cote { display: contents; }
  .pa-dossier .pa-garder-carte { order: 1; }
  .pa-dossier .pa-derniere { order: 2; }
  .pa-dossier .pa-serie { order: 3; }
  .pa-dossier .pa-programme { order: 4; }
  .pa-dossier .pa-suggestions { order: 5; }
  .pa-dossier .pa-contact, .pa-dossier .pa-ajout-contact { order: 6; }
  .pa-dossier .pa-rdvs { order: 7; }
  .pa-dossier .pa-bilans { order: 8; }
  .pa-dossier .pa-historique { order: 9; }
}
@media (max-width: 640px) {
  .pa-tuile-val { font-size: 20px; }
  .pa-frise .pa-seance > summary { flex-wrap: wrap; gap: 2px 10px; }
  .pa-frise .pa-seance > summary > :not(.pa-seance-date) { flex-basis: 100%; }
  .pa-hero { padding: 18px 16px; border-radius: 20px; }
  .pa-avatar { width: 52px; height: 52px; font-size: 20px; }
  .pa-apercu { grid-template-columns: 1fr 1fr; }
}
.hist-sauvegarde-info.auto-ok { color: #0B5B42; font-weight: 600; }
.hist-sauvegarde-info.auto-ok::before { content: '✓ '; }
.hist-auto-btn { padding: 4px 10px; border-radius: 999px; background: #EAF5F0; }

/* Grilles de recueil (28/10/2026, js/36). Gros boutons : passation sur
   tablette ou ordinateur à côté du patient. */
.grilles-bloc { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--border); }
.grille-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.grille-nom { flex: 1; min-width: 0; font-weight: 600; font-size: 14px; }
.grille-nom em { display: block; font-style: normal; font-weight: 400; font-size: 13.5px; color: var(--text-secondary); }
.gr-fond { position: fixed; inset: 0; z-index: 1000; background: rgba(20, 30, 25, .45); display: flex; align-items: center; justify-content: center; padding: 16px; }
.gr-panneau { background: #fff; border-radius: 14px; box-shadow: 0 20px 60px rgba(0,0,0,.25); width: 100%; max-width: 520px; max-height: calc(100vh - 32px); overflow: auto; padding: 20px; box-sizing: border-box; }
.gr-passation .gr-panneau { max-width: 920px; height: calc(100vh - 32px); padding: 0; display: flex; flex-direction: column; }
.gr-edition .gr-panneau { max-width: 680px; }
.gr-tete { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.gr-passation .gr-tete { margin: 0; padding: 16px 20px; border-bottom: 1px solid var(--border); background: #fff; flex: none; }
.gr-tete-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.gr-titre { margin: 0; font-size: 18px; font-weight: 700; color: var(--green-deep); }
.gr-sous { margin: 2px 0 0; font-size: 14px; color: var(--text-secondary); }
.gr-x { border: 0; background: none; font-size: 26px; line-height: 1; cursor: pointer; color: var(--text-secondary); padding: 0 4px; }
.gr-corps { overflow: auto; padding: 4px 20px 24px; flex: 1; }
.gr-aide { font-size: 14px; line-height: 1.5; color: var(--text-secondary); margin: 12px 0; }
.gr-aide code { background: var(--bg-secondary); padding: 1px 5px; border-radius: 4px; }
.gr-choix-liste { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
.gr-choix-liste button { width: 100%; text-align: left; padding: 12px 14px; border: 1px solid var(--border); border-radius: 10px; background: #fff; cursor: pointer; font: inherit; }
.gr-choix-liste button:hover, .gr-choix-liste button:focus-visible { border-color: var(--green); background: var(--green-light); }
.gr-choix-liste em { display: block; font-style: normal; font-size: 13.5px; color: var(--text-secondary); }
.gr-section { margin-top: 22px; }
.gr-section h3 { font-size: 15px; margin: 0 0 10px; color: var(--green-deep); }
.gr-section h3 span { font-size: 13px; font-weight: 500; color: var(--text-tertiary); margin-left: 6px; }
.gr-section textarea { width: 100%; box-sizing: border-box; }
.gr-domaine { border: 1px solid var(--border); border-radius: 10px; padding: 10px 12px; margin-bottom: 10px; }
.gr-domaine-tete { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.gr-total { font-weight: 700; color: var(--green-deep); white-space: nowrap; }
.gr-domaine ul { list-style: none; margin: 0; padding: 0; }
.gr-ligne { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(120px, 200px); align-items: center; gap: 10px; padding: 6px 0; border-top: 1px solid #f0f0ee; }
.gr-libelle { font-size: 14px; overflow-wrap: anywhere; }
.gr-boutons { display: flex; flex-wrap: wrap; gap: 4px; }
.gr-boutons button { min-width: 44px; min-height: 40px; padding: 0 10px; border: 1px solid var(--border); border-radius: 8px; background: #fff; font: 600 14px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; color: var(--text-primary); }
.gr-boutons button.on { background: var(--green); border-color: var(--green); color: #fff; }
.gr-obs { font-size: 14px; padding: 6px 8px; }
.gr-libre { display: block; font-size: 13.5px; color: var(--text-secondary); margin-top: 8px; }
.gr-libre input { display: block; width: 100%; margin-top: 4px; box-sizing: border-box; }
.gr-erreur { color: #B42318; font-size: 13.5px; min-height: 18px; margin: 6px 0; }
.gr-pied { display: flex; justify-content: flex-end; gap: 8px; }
.gr-edition textarea { width: 100%; box-sizing: border-box; font-family: ui-monospace, Menlo, monospace; font-size: 14px; }
@media (max-width: 640px) {
  .gr-fond { padding: 0; }
  .gr-panneau, .gr-passation .gr-panneau { max-height: 100vh; height: 100vh; border-radius: 0; }
  .gr-ligne { grid-template-columns: 1fr; gap: 6px; }
  .gr-passation .gr-tete { flex-direction: column; }
}
/* Profil VB-MAPP (28/10/2026, js/36) : passation et compte rendu. */
.gr-profil { margin: 14px 0 4px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; background: #fff; }
.gr-profil img { display: block; width: 100%; height: auto; }
.gr-profil p { margin: 6px 0 0; font-size: 14px; color: var(--text-secondary); }
.bilan-profil-img { display: block; width: 100%; height: auto; margin: 4px 0 6px; }
.bilan-profil-legende { font-size: 13px; line-height: 1.5; color: var(--text-secondary); margin: 0; }
@media print {
  .bilan-profil { break-inside: avoid; page-break-inside: avoid; }
  .bilan-profil-img { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.gr-photo { margin-top: 10px; }
.gr-photo .gr-aide { margin: 6px 0 0; }
.gr-photo-etat { min-height: 18px; margin: 4px 0 0; font-size: 14px; color: var(--green-deep); }
.gr-photo-etat.erreur { color: #B42318; }
.gr-avant { margin-left: 6px; font-size: 13.5px; font-weight: 500; color: var(--text-tertiary); }

/* Synthèse regroupée avec « Épreuves et résultats » (29/10/2026, js/09
   editableSection(…, suite)) : pas de titre, collée à la section précédente. */
.bilan-section.bs-suite { margin-top: -0.75rem; }
.bilan-section.bs-suite .bs-head { justify-content: flex-end; border-bottom: 0; padding-bottom: 0; margin-bottom: 0.25rem; }
@media print { .bilan-section.bs-suite .bs-head { display: none; } }

/* Courrier à un autre professionnel (29/10/2026, js/17 choisirSpecialiste) */
.courrier-sp { display: grid; gap: 8px; max-width: 520px; padding: 6px 2px 4px; }
.courrier-sp label, .courrier-sp .label { font-size: 13.5px; font-weight: 600; color: #13201B; margin-top: 6px; }
.courrier-sp select { width: 100%; }

/* Attestation d'aménagements d'examens (29/10/2026, js/17 choisirExamens) */
.courrier-ex input[type="text"], .courrier-ex input[type="number"], .courrier-ex select { width: 100%; }
.courrier-ex .label em { font-style: normal; font-weight: 400; color: var(--text-secondary); }
.courrier-ex-amen { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 14px; }
.courrier-ex-amen label { display: flex; align-items: flex-start; gap: 8px; margin: 0; font-size: 14px; font-weight: 500; color: #13201B; cursor: pointer; }
.courrier-ex-amen input { width: auto !important; margin-top: 3px; }
@media (max-width: 560px) { .courrier-ex-amen { grid-template-columns: 1fr; } }

/* Fenêtre « Plusieurs ordinateurs » (29/10/2026, js/29) : illustration, badges, étapes en cartes */
#po-fenetre .po-carte { max-width: 640px; max-height: calc(100vh - 32px); display: flex; flex-direction: column; overflow: hidden; }
.po-hero { flex-shrink: 0; padding: 18px 28px 16px; text-align: center; background: linear-gradient(180deg, #EAF5F0 0%, #F7FBF9 100%); border-bottom: 1px solid #E1EEE7; }
.po-hero h2 { margin: 6px 0 4px; font: 700 23px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0C3326; }
.po-hero p { margin: 0; font-size: 14.5px; color: #45534D; }
.po-illus { width: 210px; height: auto; display: block; margin: 0 auto; }
.po-illus .po-ecran { fill: #fff; stroke: #0C3326; stroke-width: 2.4; }
.po-illus .po-vitre { fill: #D3EADF; }
.po-illus .po-trait, .po-illus .po-anse { fill: none; stroke: #0C3326; stroke-width: 2.4; stroke-linecap: round; }
.po-illus .po-lien { fill: none; stroke: #137F5E; stroke-width: 2.4; stroke-dasharray: 2 6; stroke-linecap: round; }
.po-illus .po-nuage { fill: #fff; stroke: #137F5E; stroke-width: 2.4; }
.po-illus .po-cadenas { fill: #137F5E; }
.po-corps { flex: 1; min-height: 0; overflow-y: auto; padding: 18px 28px 6px; }
.po-badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 16px; padding: 0; list-style: none; }
.po-badges li { display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px; border-radius: 99px; background: #F1F5F3; color: #0B5B42; font-size: 14px; font-weight: 600; }
.po-badges svg { width: 15px; height: 15px; }
.po-etapes { margin: 0 0 12px; padding: 0; list-style: none; display: grid; gap: 8px; }
.po-etapes li { display: flex; gap: 12px; align-items: flex-start; padding: 11px 14px; border: 1px solid #E3E9E5; border-radius: 14px; background: #fff; font-size: 14.5px; line-height: 1.5; color: #13201B; }
.po-num { flex-shrink: 0; width: 28px; height: 28px; border-radius: 50%; background: #137F5E; color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 14px; }
.po-note { display: flex; gap: 10px; align-items: flex-start; margin: 0 0 12px; padding: 12px 14px; border-radius: 12px; background: #FFF9E9; color: #5C4813; font-size: 13.5px; line-height: 1.5; }
.po-note svg, .po-info svg { width: 20px; height: 20px; flex-shrink: 0; margin-top: 1px; }
.po-info { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 12px; padding: 13px 15px; border-radius: 14px; background: #F4F7F5; color: #2B3832; font-size: 14.5px; line-height: 1.5; }
.po-info svg { color: #137F5E; }
.po-info p { margin: 0; }
.po-etat { display: flex; gap: 14px; align-items: center; margin: 0 0 12px; padding: 16px 18px; border-radius: 16px; background: #EAF5F0; border: 1px solid #BFE3CB; }
.po-etat strong { display: block; font-size: 16px; color: #0B5B42; }
.po-etat > div > span:not(.po-dossier) { display: block; font-size: 13.5px; color: #45534D; margin-top: 2px; }
.po-etat-ico { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; background: #137F5E; color: #fff; display: flex; align-items: center; justify-content: center; }
.po-etat-ico svg { width: 24px; height: 24px; }
.po-dossier { display: inline-flex; align-items: center; gap: 6px; margin-top: 8px; padding: 4px 10px; border-radius: 8px; background: #fff; color: #13201B; font-size: 14px; font-weight: 600; }
.po-dossier svg { width: 15px; height: 15px; color: #137F5E; }
.po-etat.po-pause { background: #FFFAEB; border-color: #F5D98B; }
.po-etat.po-pause strong { color: #6B4E0A; }
.po-etat.po-pause .po-etat-ico { background: #D4A017; }
.po-carte .sigpad-foot { flex-shrink: 0; display: flex; justify-content: flex-end; align-items: center; gap: 8px; flex-wrap: wrap; }
.po-carte .sigpad-foot .po-arreter { margin-right: auto; color: #B42318; }
.po-carte .sigpad-btn.primary svg { width: 17px; height: 17px; margin-right: 6px; vertical-align: -3px; }

/* Espace Patients plus chaleureux (30/10/2026, js/29) : accueil de la liste,
   pastille de couleur par patient, dates parlantes, séance façon cahier. */
.pa-bonjour { margin: 0 0 2px; font-size: 15px; color: var(--text-secondary); }
.pa-stats { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 8px 0 0; font-size: 14px; color: #45534D; }
.pa-stats span { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 99px; background: #EAF5F0; color: #0B5B42; }
.pa-stats strong { font-weight: 700; }
.pa-liste .pa-ligne { flex-direction: row; align-items: center; gap: 14px; transition: background .15s; }
.pa-liste .pa-ligne:hover { background: #F6FAF8; }
.pa-liste .pa-ligne:hover .pa-ligne-fleche { transform: translateX(3px); color: #137F5E; }
.pa-liste .pa-ligne .pa-ligne-avatar { flex-shrink: 0; width: 44px; height: 44px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: #fff; font: 700 16px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; letter-spacing: .02em; box-shadow: 0 4px 10px -5px rgba(19, 32, 27, .45); }
.pa-ligne-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; text-align: left; }
.pa-ligne-txt > span { display: block; }
.pa-liste .pa-ligne .pa-ligne-infos { font-size: 14px; color: #637069; }
.pa-liste .pa-ligne .pa-ligne-quand { flex-shrink: 0; padding: 4px 10px; border-radius: 99px; background: #F1F4F2; color: #45534D; font-size: 13.5px; font-weight: 600; white-space: nowrap; }
.pa-liste .pa-ligne .pa-ligne-quand.pa-nouveau { background: #FFF4E5; color: #9A5A06; }
.pa-ligne-fleche { flex-shrink: 0; width: 18px; height: 18px; color: #A3B1AA; transition: transform .15s, color .15s; }
@media (max-width: 560px) { .pa-liste .pa-ligne .pa-ligne-quand { display: none; } }
.pa-vide { text-align: center; }
.pa-vide-illus { width: 120px; height: 90px; margin: 0 auto 10px; display: block; }
.pa-vi-feuille { fill: #fff; stroke: #BFE3CB; stroke-width: 2.5; }
.pa-vi-lignes { stroke: #D3EADF; stroke-width: 4; stroke-linecap: round; }
.pa-vi-rond { fill: #137F5E; }
.pa-vi-plus { stroke: #fff; stroke-width: 3; stroke-linecap: round; }
.pa-vide .btn { margin-top: 12px; }
.pa-seance-tete { justify-content: flex-start !important; align-items: center; gap: 16px; }
.pa-avatar.pa-avatar-petit { width: 56px; height: 56px; font-size: 21px; }
.pa-surtitre { margin: 0 0 2px; font-size: 13.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #137F5E; }
/* Notes de séance : une page de cahier, chaude et aérée */
#pa-notes.pa-notes { background-color: #FFFDF7; background-image: linear-gradient(transparent 31px, #F1EAD8 32px); background-size: 100% 32px; background-attachment: local; line-height: 32px; padding: 6px 18px; border: 1px solid #EDE4CF; border-radius: 14px; font-size: 16px; color: #2B2A24; box-shadow: inset 0 1px 2px rgba(80, 60, 20, .05); }
#pa-notes.pa-notes:focus { border-color: #C9B98F; box-shadow: 0 0 0 4px rgba(201, 185, 143, .2); outline: none; }
#pa-notes.pa-notes::placeholder { color: #A89F86; }
.pa-liste .pa-ligne .pa-ligne-txt > span:last-child { font-size: 13.5px; color: var(--text-tertiary, #637069); }
.acc-vide.pa-vide { flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 44px 24px 40px; text-align: center; }
.acc-vide.pa-vide p { max-width: 460px; margin: 0; }
.acc-vide.pa-vide p strong { display: block; margin-bottom: 6px; font: 700 20px 'Plus Jakarta Sans', sans-serif; letter-spacing: -.02em; color: #0C3326; }
.acc-vide.pa-vide .btn { flex: none; }

/* ---------- Temps rendu et compte rendu « prêt » (30/10/2026) ---------- */
.acc-temps { display: inline-flex; flex-direction: column; gap: 3px; margin: 14px 0 0; padding: 10px 18px 10px 14px; border-radius: 18px; background: linear-gradient(90deg, #E6F6EF, #F3FBF7); border: 1px solid #CBE7DA; font: 500 15px/1.35 'Plus Jakarta Sans', sans-serif; color: #2B3832; }
.acc-temps-ligne { display: flex; align-items: center; gap: 10px; margin: 0; }
.acc-temps svg { flex: none; width: 20px; height: 20px; color: #137F5E; }
.acc-temps strong { font-weight: 700; color: #0B5B42; }
.acc-temps-val { font-weight: 700; color: #0B5B42; font-variant-numeric: tabular-nums; }
.acc-temps-total { margin: 0; padding-left: 30px; font-size: 13.5px; color: #55635C; }
@media (prefers-reduced-motion: no-preference) { .acc-temps-monte { animation: accTempsLueur 1.8s ease-out; } }
@keyframes accTempsLueur { 0% { box-shadow: 0 0 0 0 rgba(47, 179, 134, .45); border-color: #2FB386; } 60% { box-shadow: 0 0 0 10px rgba(47, 179, 134, 0); border-color: #2FB386; } }
.acc-palier { display: flex; align-items: center; gap: 16px; margin: 0 0 18px; padding: 18px 20px; border-radius: 20px; background: linear-gradient(120deg, #FFF6DF, #FFFDF6 65%); border: 1px solid #F1DEA8; box-shadow: 0 12px 28px -22px rgba(140, 100, 10, .55); }
.acc-palier[hidden] { display: none; }
.acc-palier-ico { flex: none; width: 52px; height: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: #fff; font-size: 28px; box-shadow: 0 4px 12px -6px rgba(140, 100, 10, .4); }
.acc-palier-txt { flex: 1; min-width: 0; }
.acc-palier-txt strong { display: block; font: 700 18px/1.3 'Plus Jakarta Sans', sans-serif; color: #3D2E05; letter-spacing: -.01em; }
.acc-palier-txt span { display: block; margin-top: 3px; font-size: 14.5px; line-height: 1.5; color: #5C4C22; }
.acc-palier .btn { flex: none; }
@media (max-width: 600px) { .acc-palier { flex-wrap: wrap; } .acc-palier .btn { width: 100%; } }
@media (prefers-reduced-motion: no-preference) { .acc-palier:not([hidden]) { animation: paArrive .6s cubic-bezier(.2,.8,.2,1); } }
.bilan-pret { display: flex; align-items: center; gap: 16px; margin: 0 0 16px; padding: 16px 20px; border-radius: 18px; background: linear-gradient(120deg, #E3F5EC, #F6FCF9 70%); border: 1px solid #C4E6D6; box-shadow: 0 10px 26px -20px rgba(11, 91, 66, .6); }
.bilan-pret-ico { flex: none; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: linear-gradient(145deg, #2FB386, #0B6B4D); color: #fff; box-shadow: 0 6px 14px -6px rgba(11, 107, 77, .6); }
.bilan-pret-ico svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 2.8; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 20; }
.bilan-pret strong { display: block; font: 700 17px/1.3 'Plus Jakarta Sans', sans-serif; color: #0B3D2C; }
.bilan-pret span { display: block; margin-top: 2px; font-size: 14.5px; line-height: 1.45; color: #3D4A44; }
@media (prefers-reduced-motion: no-preference) {
  .bilan-pret:not([hidden]) { animation: paArrive .5s cubic-bezier(.2,.8,.2,1); }
  .bilan-pret-ico { animation: paEclot2 .6s .15s cubic-bezier(.3,1.6,.5,1) both; }
  .bilan-pret-ico svg { animation: paTrace .4s .45s ease-out both; stroke-dashoffset: 20; }
  .bilan-revele > * { animation: bilanSection .55s cubic-bezier(.2,.8,.2,1) both; animation-delay: calc(var(--i, 0) * 110ms + 150ms); }
}
@keyframes paEclot2 { 0% { transform: scale(.3); opacity: 0; } 60% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(1); } }
@keyframes bilanSection { from { opacity: 0; transform: translateY(10px); } }
@media print { .bilan-pret { display: none !important; } .bilan-revele > * { animation: none !important; } }
.acc-temps[hidden], .bilan-pret[hidden] { display: none; }

/* ---------- Écran d'attente vivant (30/10/2026) ---------- */
/* Barre ESTIMATIVE : rapide au début, puis de plus en plus lente pendant la
   rédaction (jamais pleine avant la fin), remplie d'un coup à la mise en forme. */
.gen-barre { height: 8px; max-width: 340px; margin: 18px auto 0; border-radius: 99px; background: #EAF2EE; overflow: hidden; }
.gen-barre i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #3CC79A, #137F5E); transition: width .5s ease-out; }
.gen[data-etape="1"] .gen-barre i { width: 10%; transition-duration: 0s; }
.gen[data-etape="2"] .gen-barre i { width: 74%; transition: width 40s cubic-bezier(.1,.7,.25,1); }
.gen[data-etape="3"] .gen-barre i { width: 93%; transition: width 16s cubic-bezier(.1,.7,.25,1); }
.gen[data-etape="4"] .gen-barre i { width: 100%; transition-duration: .35s; }
/* Le document illustré s'écrit : les lignes apparaissent au fil des étapes. */
.gen-doc i:nth-child(n+2) { transform-origin: left; transition: transform 1.2s cubic-bezier(.2,.8,.2,1), opacity .6s; }
.gen[data-etape="1"] .gen-doc i:nth-child(n+3) { transform: scaleX(.15); opacity: .35; }
.gen[data-etape="2"] .gen-doc i:nth-child(n+4) { transform: scaleX(.35); opacity: .5; transition-duration: 20s, .6s; }
.gen[data-etape="3"] .gen-doc i:nth-child(n+5) { transform: scaleX(.7); }
.gen-astuce { max-width: 380px; min-height: 66px; margin: 22px auto 0; padding: 12px 16px; border-radius: 14px; background: #F4FAF7; font-size: 14px; line-height: 1.5; color: #3D4A44; text-align: left; }
.gen-astuce:empty { visibility: hidden; }
.gen-astuce strong { color: #0B5B42; }
@media (prefers-reduced-motion: no-preference) { .gen-astuce-vue { animation: genAstuce .6s ease-out; } }
@keyframes genAstuce { from { opacity: 0; transform: translateY(6px); } }
@media (prefers-reduced-motion: reduce) { .gen-barre i, .gen-doc i { transition: none !important; } }

/* ---------- Accueil : « À ne pas oublier » (30/10/2026) ---------- */
.acc-rappels[hidden] { display: none; }
#screen-accueil #acc-rappels { margin-bottom: 18px; }
.acc-rappels-liste { list-style: none; margin: 0; padding: 0; }
.acc-rappels-liste li { display: flex; align-items: center; gap: 14px; padding: 12px 0; }
.acc-rappels-liste li + li { border-top: 1px solid #EEF0EC; }
.acc-rappel-ico { flex: none; width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; }
.acc-rappel-ico svg { width: 21px; height: 21px; }
.acc-rappel-seance { background: #EEF3FB; color: #2F5C9E; }
.acc-rappel-renouv { background: #FFF4DE; color: #9A6A0B; }
.acc-rappel-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.acc-rappel-txt strong { font-size: 16px; color: #13201B; }
.acc-rappel-txt span { font-size: 14px; color: #55635C; }
.acc-rappels-liste .btn { flex: none; }

/* ---------- « Mes bilans » : pied clarifié, « À renouveler » (30/10/2026) ---------- */
.hist-pastille.a-renouveler { background: #FFF4DE; color: #8A5A05; }
.hist-pied { align-items: flex-end; }
.hist-sauvegarde { flex: 1; min-width: 0; gap: 6px 16px; }
.hist-sauvegarde-info { flex-basis: 100%; font-size: 14px; }
.hist-sauv-btn { font-size: 14px; }
.hist-auto-btn:not([hidden]) { padding: 6px 12px; border-radius: 99px; background: #E6F5EE; }
.hist-auto-btn:not([hidden]):hover { background: #D4EEE2; text-decoration: none; }
@media (max-width: 600px) { .hist-nom { flex-wrap: wrap; row-gap: 4px; } .hist-nom-texte { white-space: normal; } }

/* ---------- Raccourcis clavier (30/10/2026) ---------- */
.raccourci-aide { margin-right: auto; align-self: center; font-size: 13.5px; color: #5F6E66; white-space: nowrap; }
.raccourci-aide kbd { display: inline-block; min-width: 20px; padding: 1px 6px; border: 1px solid #D5DED8; border-bottom-width: 2px; border-radius: 6px; background: #fff; font: 600 12.5px/1.5 'Plus Jakarta Sans', sans-serif; color: #3D4A44; text-align: center; }
@media (hover: none), (max-width: 700px) { .raccourci-aide { display: none; } }

/* ---------- Compte rendu sur mobile (30/10/2026) : tableau des épreuves défilable,
   jamais coupé. Écran seulement : l'impression et le PDF ne changent pas. ---------- */
@media screen and (max-width: 600px) {
  #bilan-content .bilan-table { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; font-size: 14px; }
  #bilan-content .bilan-table th, #bilan-content .bilan-table td { min-width: 92px; }
}

/* ---------- Ajuster : demandes fréquentes en un clic (30/10/2026) ---------- */
.bs-consigne-suggestions { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 2px; }
.bs-suggestion { padding: 5px 11px; border: 1px solid #CFE3D9; border-radius: 99px; background: #fff; color: #0B5B42; font: 500 14px/1.3 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.bs-suggestion:hover { background: #EEF8F3; border-color: #9FD1BC; }
.bs-suggestion.choisie { background: #E1F5EE; border-color: #7FC4A8; }
.bs-suggestion:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }

/* ---------- Recherche rapide ⌘ K (30/10/2026) ---------- */
.rr-fond { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: flex-start; justify-content: center; padding: 12vh 16px 16px; background: rgba(19, 32, 27, .38); backdrop-filter: blur(3px); }
.rr-carte { width: 100%; max-width: 560px; border-radius: 20px; background: #fff; box-shadow: 0 30px 70px -24px rgba(19, 32, 27, .55); overflow: hidden; }
@media (prefers-reduced-motion: no-preference) { .rr-carte { animation: rrArrive .18s cubic-bezier(.2,.8,.2,1); } }
@keyframes rrArrive { from { opacity: 0; transform: translateY(-8px) scale(.98); } }
.rr-champ-zone { display: flex; align-items: center; gap: 12px; padding: 14px 18px; border-bottom: 1px solid #EEF0EC; }
.rr-champ-zone svg { flex: none; width: 22px; height: 22px; color: #137F5E; }
.rr-champ-zone input { flex: 1; min-width: 0; padding: 6px 0 !important; border: 0 !important; box-shadow: none !important; background: none !important; font: 500 18px/1.3 'Plus Jakarta Sans', sans-serif; outline: none; }
.rr-fond kbd { display: inline-block; padding: 1px 6px; border: 1px solid #D5DED8; border-bottom-width: 2px; border-radius: 6px; background: #fff; font: 600 12.5px/1.5 'Plus Jakarta Sans', sans-serif; color: #55635C; }
.rr-liste { list-style: none; max-height: 52vh; overflow-y: auto; margin: 0; padding: 8px; }
.rr-liste li[role="option"] { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 12px; cursor: pointer; }
.rr-liste li[aria-selected="true"] { background: #EEF8F3; }
.rr-avatar { flex: none; width: 38px; height: 38px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; font: 700 14px/1 'Plus Jakarta Sans', sans-serif; }
.rr-nom { flex: 1; min-width: 0; display: flex; flex-direction: column; font: 600 15.5px/1.3 'Plus Jakarta Sans', sans-serif; color: #13201B; }
.rr-nom small { font-size: 14px; font-weight: 500; color: var(--text-tertiary, #637069); }
.rr-seance { flex: none; padding: 6px 12px; border: 1px solid #CFE3D9; border-radius: 99px; background: #fff; color: #0B5B42; font: 600 14px/1.2 'Plus Jakarta Sans', sans-serif; cursor: pointer; opacity: 0; }
.rr-liste li[aria-selected="true"] .rr-seance, .rr-liste li:hover .rr-seance { opacity: 1; }
.rr-aucun { padding: 18px 12px; color: var(--text-tertiary, #637069); text-align: center; }
.rr-pied { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0; padding: 10px 18px; border-top: 1px solid #EEF0EC; background: #FAFAF8; font-size: 13.5px; color: #55635C; }
@media (max-width: 600px) { .rr-pied { display: none; } .rr-seance { opacity: 1; } }

/* ---------- Formulaire : « ✓ Enregistré à … » (30/10/2026) ---------- */
.brouillon-etat { display: none; position: fixed; right: 22px; bottom: 18px; z-index: 50; margin: 0; padding: 7px 14px; border-radius: 99px; background: rgba(255, 255, 255, .94); border: 1px solid #D3EDE1; box-shadow: 0 6px 18px -10px rgba(11, 91, 66, .45); font-size: 13.5px; font-weight: 500; color: #2E7A5A; pointer-events: none; }
@media (max-width: 700px) { .brouillon-etat { right: 12px; bottom: 12px; } }
#app:has(#screen-2.active, #screen-3.active, #screen-4.active, #screen-5.active) .brouillon-etat:not([hidden]) { display: block; }
.acc-essai { display: inline-block; margin-top: 8px; padding: 0; font-weight: 600; }
.erreur-reessayer { margin-left: 10px; vertical-align: middle; }
.rr-liste .rr-titre { padding: 10px 12px 4px; font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-tertiary, #637069); }
.rr-avatar.rr-doc { background: #EEF3FB; color: #2F5C9E; }
.rr-avatar.rr-doc svg { width: 20px; height: 20px; }
.pa-liste .pa-ligne .pa-ligne-quand.pa-a-terminer { background: #EEF3FB; color: #2F5C9E; font-weight: 600; }
.pa-bilan-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; flex: none; max-width: 100%; }
.pa-bilan-renouv { display: table; margin: 4px 0 0; padding: 2px 9px; border-radius: 99px; background: #FFF4DE; color: #8A5A05; font-style: normal; font-size: 13.5px; font-weight: 600; }
.pa-bilans-liste li { flex-wrap: wrap; }
.pa-bilans-liste .pa-bilan-lib { flex: 1 1 210px; min-width: 0; }
.pa-bilan-renouv { white-space: nowrap; }

/* ---------- Programme vide : axes du bilan à ajouter d'un clic (30/10/2026) ---------- */
.pa-axes { margin-top: 12px; }
.pa-axes-lib { margin: 0 0 8px; font-size: 14px; color: #55635C; }
.pa-axes-liste { display: flex; flex-wrap: wrap; gap: 8px; }
.pa-axe { padding: 7px 13px; border: 1px dashed #9FD1BC; border-radius: 99px; background: #F4FAF7; color: #0B5B42; font: 600 14px/1.3 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.pa-axe:hover { border-style: solid; background: #E6F5EE; }
.pa-axe:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }

/* ---------- Barre latérale : « Rechercher ⌘ K » (30/10/2026) ---------- */
.ab-rechercher { margin: 0 0 12px; border: 1px solid #E1E7E2; background: #FAFBF9; color: #55635C; }
.ab-rechercher:hover { border-color: #BFE3D3; background: #F3F8F5; }
.ab-kbd { margin-left: auto; padding: 1px 6px; border: 1px solid #D5DED8; border-bottom-width: 2px; border-radius: 6px; background: #fff; font: 600 12.5px/1.5 'Plus Jakarta Sans', sans-serif; color: var(--text-tertiary, #637069); }
@media (min-width: 760px) { html.barre-repliee .ab-kbd { display: none; } html.barre-repliee .ab-rechercher { border-color: transparent; background: transparent; } }
.rr-fermer { flex: none; padding: 0; border: 0; background: none; cursor: pointer; }
.rr-tactile { display: none; padding: 6px 12px; border-radius: 99px; background: #F0F4F2; color: #3D4A44; font: 600 14px/1.2 'Plus Jakarta Sans', sans-serif; }
@media (hover: none) { .rr-ordi { display: none; } .rr-tactile { display: inline-block; } }
.acc-rappel-sauv { background: #FDEFE8; color: #B4471F; }
.ag-rdv { border-left: 4px solid var(--teinte, #137F5E); }
.ag-rdv.fait { border-left-color: #C9D2CC; }

/* « Revenir au compte rendu sans le régénérer » : seulement quand le formulaire
   est lié à un compte rendu (30/10/2026). La règle .btn de ce fichier, chargée
   après css/01-base.css, l'affichait sur chaque nouveau bilan. */
.btn.btn-revenir-bilan { display: none; }
body.bilan-lie .btn.btn-revenir-bilan { display: inline-flex; }
@media (max-width: 768px) { .output-actions .btn-primary { grid-column: 1 / -1; } }
/* « Terminer le bilan » à droite du PDF (30/10/2026) ; pleine largeur sur mobile, sous le PDF. */
@media (max-width: 768px) { .output-actions #bl-terminer { grid-column: 1 / -1; } }
@media (min-width: 769px) { .bl-barre .output-actions { flex: 1 1 100%; gap: 6px; } .bl-barre .output-actions .btn.btn-sm { padding-left: 11px; padding-right: 11px; gap: 6px; } .bl-barre .output-actions .bl-sep { margin: 0 1px; } }
/* Titulaire / collaboration dans l'en-tête (30/10/2026, Jordan). */
.bilan-pratician .pr-role { font-size: 14px; color: #4A5A52; line-height: 1.5; }
.bilan-pratician .pr-role strong { font: 600 14px/1.5 'Plus Jakarta Sans', sans-serif; color: #13201B; letter-spacing: 0; }
.bilan-pratician .pr-fonction + .pr-role { margin-top: 2px; }

/* ---------- Première ouverture (30/10/2026) : ce qui attend, l'essentiel d'abord ---------- */
.cab-bienvenue { display: none; }
body.config-cabinet #screen-1 .cab-bienvenue { display: block; margin: -4px 0 22px; }
body.config-cabinet #screen-1 > .card > .card-title { display: none; }
.cab-bienvenue-t { margin: 0 0 16px; font: 800 30px/1.15 'Plus Jakarta Sans', sans-serif; letter-spacing: -.03em; color: #0B3D2C; }
.cab-etapes { list-style: none; counter-reset: etape; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; }
.cab-etapes li { counter-increment: etape; display: flex; flex-direction: column; gap: 2px; padding: 12px 14px 12px 50px; position: relative; border-radius: 14px; background: #F4F6F3; color: #55635C; font-size: 13.5px; }
.cab-etapes li::before { content: counter(etape); position: absolute; left: 14px; top: 13px; width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #DDE4DF; color: #3D4A44; font: 700 14px/1 'Plus Jakarta Sans', sans-serif; }
.cab-etapes li strong { font-size: 15px; color: #13201B; }
.cab-etapes li.en-cours { background: #E6F5EE; box-shadow: inset 0 0 0 1.5px #9FD1BC; }
.cab-etapes li.en-cours::before { background: #137F5E; color: #fff; }
@media (max-width: 700px) { .cab-etapes { grid-template-columns: 1fr; } }
.cab-plus { margin-top: 4px; border-top: 1px solid #EEF0EC; padding-top: 14px; }
.cab-plus > summary { cursor: pointer; font: 600 15px/1.4 'Plus Jakarta Sans', sans-serif; color: #137F5E; list-style: none; }
.cab-plus > summary::-webkit-details-marker { display: none; }
.cab-plus > summary::before { content: "+ "; font-weight: 700; }
.cab-plus[open] > summary::before { content: "− "; }
.cab-plus > summary:focus-visible { outline: 3px solid #137F5E; outline-offset: 3px; border-radius: 6px; }
.cab-plus > .form-grid { margin-top: 16px; }
/* Accueil, première fois : le déroulé en une ligne */
.acc-comment { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 14px 0 0; padding: 0; }
.acc-comment[hidden] { display: none; }
.acc-comment li { display: flex; align-items: center; gap: 10px; font: 600 16px/1.3 'Plus Jakarta Sans', sans-serif; color: #2B3832; }
.acc-comment b { width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: #E1F5EE; color: #0B5B42; font-size: 14px; }
.form-grid > .cab-plus { grid-column: 1 / -1; }
.acc-comment li + li::before { content: ""; width: 22px; height: 0; border-top: 2px dashed #B9D9CB; margin-right: 4px; }
@media (max-width: 700px) { .acc-comment li + li::before { display: none; } }
@media (min-width: 701px) { .acc-comment { flex-wrap: nowrap; } .acc-comment li { white-space: nowrap; } }

/* ---------- Objectifs, fil conducteur du dossier (30/10/2026) ---------- */
.pa-obj-fil { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 3px; font-size: 13.5px; line-height: 1.4; color: #4A5A52; }
.pa-obj-fil span { min-width: 0; }
.pa-obj-reeval { padding: 2px 9px; border-radius: 99px; background: #EEF3FB; color: #2F5C9E; font-weight: 600; }
.pa-obj-reeval.echu { background: #FFF1E0; color: #9A5A06; }
.pa-obs { display: grid; gap: 10px; margin-top: 12px; }
.pa-obs:empty { display: none; }
.pa-obs-champ { margin: 0; }
.pa-obs-champ label { font-size: 14px; }
.pa-obs-hist { font-size: 15px; }
.pa-suivi-titre { margin: 0 0 10px; font: 700 18px/1.35 'Plus Jakarta Sans', sans-serif; color: #13201B; }
.pa-suivi-l { margin: 4px 0; font-size: 15px; color: #2B3832; }
.pa-suivi-h { margin: 18px 0 8px; font: 700 15px/1.3 'Plus Jakarta Sans', sans-serif; color: #0B3D2C; }
.pa-suivi-liste { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; max-height: 320px; overflow-y: auto; }
.pa-suivi-liste li { display: grid; grid-template-columns: 96px 1fr; gap: 10px; padding: 8px 10px; border-radius: 10px; background: #F6F8F6; font-size: 14.5px; line-height: 1.45; }
.pa-suivi-date { font-weight: 600; color: #0B5B42; font-variant-numeric: tabular-nums; }
.pa-suivi-liste em { color: var(--text-tertiary, #637069); }
.pa-suivi-aide { margin: 14px 0 0; font-size: 14px; color: #55635C; }
.acc-rappel-objectif { background: #E6F4EC; color: #0B5B42; }
.pa-fenetre .sigpad-foot > :only-child { margin-left: auto; }

/* Bilans archivés (30/10/2026, js/14) */
.hist-archives { margin: 0 26px 18px; padding: 14px 16px; border: 1px dashed var(--border, #D6DDD6); border-radius: 12px; background: #FAFBFA; }
.hist-archives-t { margin: 0; font-size: 14px; line-height: 1.5; color: #45534D; }
.hist-archives-t strong { color: #13201B; }
.hist-archives-liste { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; }
.hist-archives-liste li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 6px 0; border-top: 1px solid #EEF1EE; font-size: 14.5px; }

/* Corbeille (30/10/2026, js/29) */
.pa-bas-liens { display: flex; flex-wrap: wrap; gap: 6px 22px; margin-top: 18px; }
.pa-corbeille { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 8px; max-height: 50vh; overflow-y: auto; }
.pa-corbeille li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid #E6E9E3; border-radius: 12px; background: #FAFBFA; }
.pa-corbeille li > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pa-corbeille li strong { font-size: 15px; color: #13201B; overflow-wrap: anywhere; }
.pa-corbeille li .pa-gris { font-size: 14px; }
.pa-corbeille-type { font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #637069; }
.pa-corbeille-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; flex: none; }
.pa-danger { color: #B42318 !important; font-size: 14px; }
@media (max-width: 560px) { .pa-corbeille li { flex-direction: column; align-items: stretch; } .pa-corbeille-actions { flex-direction: row; align-items: center; justify-content: space-between; } }

/* =====================================================================
   Lisibilité pour toutes (30/10/2026, audit « orthophoniste de 60 ans,
   presbyte, ordinateur portable ») : liens d'action plus grands, cibles
   d'au moins 36 à 40 px, actions destructrices lisibles, plus de raccourcis
   clavier affichés, plus rien qui n'apparaît qu'au survol.
   ===================================================================== */
.acc-lien { font-size: 15px; line-height: 1.2; padding: 8px 4px; min-height: 36px; }
.pa-seance-actions { gap: 8px 28px; }
.pa-seance-actions .acc-lien { font-size: 15px; padding: 8px 4px; }
.pa-liste .pa-ligne .pa-ligne-txt > span:last-child { font-size: 14.5px; color: #55635C; }
.hist-sauv-btn { font-size: 15px; padding: 9px 10px; min-height: 40px; }
.hist-tout-effacer { color: #A8322D; font-size: 14px; padding: 8px 0; }
.hist-suppr { width: 40px; height: 40px; }
.hist-action { height: 40px; font-size: 14px; }
.pa-tuile-lib { font-size: 13px; color: #55635C; }
.pa-tuile-det { font-size: 14px; color: #55635C; }
.hist-pastille, .acc-bilan-renouv { font-size: 12.5px; padding: 3px 9px; }
.pref-compteur { font-size: 13.5px; }
.rr-seance { opacity: 1; }
.ab-kbd, .rr-pied { display: none; }
.ab-item em { font-size: 13px; color: #637069; }
/* Frise des étapes : jamais coupée (zoom 125 %, petit écran) */
.steps-nav { flex-wrap: wrap; row-gap: 8px; }
@media (max-width: 1200px) { .steps-nav .step-label:not(.active) { display: none; } }
/* Frise (30/10/2026) : sans l'étape « Cabinet » (rempli une seule fois, depuis
   « Mon cabinet ») ; numérotée de 1 à 5 (index.html) ; cachée pendant la
   rédaction (des étapes jamais vues y semblaient cochées) et sur l'écran du cabinet. */
.steps-nav > .step-item:first-child, .steps-nav > .step-item:first-child + .step-arrow { display: none; }
.container:has(#screen-loading.active) .steps-nav, .container:has(#screen-1.active) .steps-nav { display: none; }
/* Fenêtre « Sauvegarde » (30/10/2026) : la copie manuelle d'abord */
.po-manuelle { display: flex; flex-direction: column; gap: 12px; padding: 16px 18px; border: 1px solid #CFE3D9; border-radius: 14px; background: #F2F8F5; margin-bottom: 18px; }
.po-manuelle strong { display: block; font-size: 16px; color: #13201B; margin-bottom: 4px; }
.po-manuelle span { font-size: 14.5px; line-height: 1.5; color: #45534D; }
.po-manuelle-boutons { display: flex; flex-wrap: wrap; gap: 10px; }
.po-sous-titre { margin: 4px 0 12px; font-size: 15px; font-weight: 700; color: #13201B; }

/* Barre du compte rendu regroupée (30/10/2026) */
.bl-gauche { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 8px; }
.bl-notes[aria-expanded="true"] { background: #E8F3EE; color: #0B5B42; }
.bl-menu .pa-menu-btn { width: auto; height: auto; gap: 6px; padding: 8px 12px 8px 14px; border-radius: var(--radius-md, 10px); font: 600 14px/1.2 'Plus Jakarta Sans', sans-serif; color: var(--text-primary); }
.bl-menu .pa-menu-btn .bl-chevron { width: 16px; height: 16px; transition: transform .15s; }
.bl-menu .pa-menu-btn[aria-expanded="true"] .bl-chevron { transform: rotate(180deg); }
.bl-menu .pa-menu-liste { min-width: 300px; }
.bl-menu .pa-menu-liste button { display: grid; grid-template-columns: 22px 1fr; column-gap: 12px; align-items: start; }
.bl-menu .pa-menu-liste button svg { width: 20px; height: 20px; margin-top: 1px; color: #137F5E; }
.bl-menu .pa-menu-liste button span { font-weight: 600; }
.bl-menu .pa-menu-liste button small { display: block; margin-top: 2px; font-size: 13.5px; font-weight: 400; color: #55635C; }
@media (max-width: 600px) { .bl-menu .pa-menu-liste { right: auto; left: 0; min-width: min(300px, calc(100vw - 32px)); } }

/* Relecture section par section (30/10/2026) — à l'écran seulement */
.bs-tools { display: inline-flex; align-items: center; gap: 6px; }
.bs-relu { display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 6px 12px 6px 9px; border: 1px solid #D5DED8; border-radius: 99px; background: #fff; color: #45534D; font: 600 14px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.bs-relu svg { width: 15px; height: 15px; opacity: .35; }
.bs-relu:hover { border-color: #137F5E; color: #0B5B42; }
.bs-relu[aria-pressed="true"] { background: #E6F4EC; border-color: #A7D7BF; color: #0B5B42; }
.bs-relu[aria-pressed="true"] svg { opacity: 1; }
.bs-relu:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; }
.bs-adjust { min-height: 36px; }
.bs-relecture { display: flex; align-items: center; gap: 14px 24px; flex-wrap: wrap; }
.bs-relecture-txt { flex: 1 1 380px; font-size: 15px; line-height: 1.55; color: #2B3832; }
.bs-relecture-etat { flex: 0 1 260px; display: flex; flex-direction: column; gap: 6px; font-size: 14.5px; font-weight: 600; color: #0B5B42; }
.bs-relu-jauge { display: block; height: 8px; border-radius: 99px; background: #DCE9E2; overflow: hidden; }
.bs-relu-jauge > span { display: block; height: 100%; width: 0; border-radius: 99px; background: #137F5E; transition: width .3s cubic-bezier(.2, .8, .2, 1); }
.bs-relecture-ok { background: #E6F4EC; border-color: #A7D7BF; }
@media (prefers-reduced-motion: reduce) { .bs-relu-jauge > span { transition: none; } }
@media (max-width: 600px) { .bs-head { flex-wrap: wrap; row-gap: 8px; } .bs-head .bs-tools { margin-left: auto; } }

/* Volet de navigation sous 760 px / zoom 200 % (30/10/2026) */
.hd-menu-app, .app-voile { display: none; }
@media (max-width: 759px) {
  .espace-outil .hd-menu-app { display: inline-flex; border: 1px solid #D5DED8; font-weight: 600; color: #13201B; }
  .espace-outil .hd-actions > .hd-btn.real-only:not(.hd-menu-app), .espace-outil .hd-actions > .hd-sep { display: none; }
  html.espace-outil.menu-app-ouvert .app-voile { display: block; position: fixed; inset: 0; z-index: 1000; background: rgba(19, 32, 27, .38); }
  html.espace-outil.menu-app-ouvert .app-barre { display: flex; flex-direction: column; position: fixed; top: 0; bottom: 0; left: 0; z-index: 1001; width: min(300px, 86vw); padding: 18px 14px 14px; background: #fff; border-right: 1px solid #E6E9E3; box-shadow: 0 20px 60px -20px rgba(12, 51, 38, .45); overflow-y: auto; }
  html.espace-outil.menu-app-ouvert .ab-replier { display: none; }
  html.espace-outil.menu-app-ouvert .ab-item { padding: 12px 10px; font-size: 16px; }
}
@media (max-width: 759px) { .espace-outil .hd-menu-app { width: auto; min-width: 0; gap: 8px; padding: 0 14px 0 12px; } .espace-outil .hd-menu-app span { display: inline; } }
@media (max-width: 760px) { .bl-menu .pa-menu-btn { width: 100%; justify-content: center; } }

/* ===== « Enregistrer l'entretien » (31/10/2026, js/38) ===== */
.sigpad-card.entretien-carte { max-width: 560px; width: calc(100% - 32px); max-height: 92vh; overflow-y: auto; }
.entretien-corps { padding: 18px 24px 6px; }
.entretien-accord { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; margin: 4px 0 6px; border: 2px solid #CFDCD5; border-radius: 14px; background: #F7FBF9; cursor: pointer; font-size: 15px; line-height: 1.5; color: #13201B; }
.entretien-accord:has(input:checked) { border-color: #137F5E; background: #EAF5F0; }
.entretien-accord input { flex: none; width: 20px; height: 20px; margin: 2px 0 0; accent-color: #137F5E; }
.entretien-rec { display: flex; align-items: center; gap: 14px; padding: 18px 20px; border-radius: 16px; background: #FDF2F2; border: 1px solid #F3D2D2; }
.entretien-point { flex: none; width: 16px; height: 16px; border-radius: 50%; background: #E24B4A; box-shadow: 0 0 0 0 rgba(226,75,74,.55); animation: entretien-pouls 1.6s ease-out infinite; }
.entretien-rec.en-pause { background: #F4F6F5; border-color: #DDE3DF; }
.entretien-rec.en-pause .entretien-point { background: #9AA6A0; animation: none; }
.entretien-chrono { font: 700 34px/1 'Plus Jakarta Sans', sans-serif; font-variant-numeric: tabular-nums; letter-spacing: -.02em; color: #13201B; }
.entretien-niveau { flex: 1; height: 8px; border-radius: 4px; background: rgba(19,32,27,.08); overflow: hidden; }
.entretien-niveau span { display: block; height: 100%; width: 0; border-radius: 4px; background: #137F5E; transition: width .2s linear; }
.entretien-rec.en-pause .entretien-niveau span { width: 0 !important; }
@keyframes entretien-pouls { 70% { box-shadow: 0 0 0 10px rgba(226,75,74,0); } 100% { box-shadow: 0 0 0 0 rgba(226,75,74,0); } }
@media (prefers-reduced-motion: reduce) { .entretien-point { animation: none; } }
.entretien-interrompu { display: flex; flex-direction: column; gap: 4px; margin-top: 12px; padding: 14px 16px; border-radius: 14px; background: #FFF4E5; border: 1px solid #F2D3A6; color: #6B4200; font-size: 14.5px; line-height: 1.5; }
.entretien-interrompu[hidden] { display: none; }
.entretien-interrompu strong { font-size: 16px; color: #5A3700; }
.entretien-apres { display: flex; align-items: center; gap: 14px; padding: 18px 4px; font-size: 15.5px; color: #3D4A44; }
.entretien-apres[hidden] { display: none; }
.entretien-apres p { margin: 0; }
.entretien-roue { flex: none; width: 26px; height: 26px; border-radius: 50%; border: 3px solid #D3EBE0; border-top-color: #137F5E; animation: entretien-tourne 0.9s linear infinite; }
@keyframes entretien-tourne { to { transform: rotate(360deg); } }
.entretien-pied { flex-wrap: wrap; gap: 8px; }
.entretien-pied [hidden] { display: none !important; }
/* 3e choix de « Nouveau bilan » (js/21) */
.nb-entretien { display: flex; align-items: center; gap: 14px; width: 100%; margin: -12px 0 18px; padding: 16px 20px; border: 2px solid #CFDCD5; border-radius: 18px; background: #fff; text-align: left; cursor: pointer; font: inherit; color: #13201B; }
.nb-entretien:hover { border-color: #137F5E; }
.nb-entretien:focus-visible { outline: 3px solid #137F5E; outline-offset: 3px; }
.nb-entretien-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: #EAF5F0; color: #137F5E; }
.nb-entretien-ico svg { width: 24px; height: 24px; }
.nb-entretien strong { display: block; font-size: 18px; font-weight: 700; color: #0B3D2C; }
.nb-entretien-desc { display: block; margin-top: 2px; font-size: 14.5px; color: #3D4A44; }
/* « À vérifier » sous la case Anamnèse : jamais imprimé */
.notes-a-verifier { margin: 8px 0 14px; padding: 12px 16px; border-radius: 12px; background: #FFF8EA; border: 1px solid #F0D9A8; font-size: 14.5px; line-height: 1.5; color: #4A3200; }
.notes-a-verifier[hidden] { display: none; }
.notes-a-verifier-titre { margin: 0 0 6px; font-weight: 700; color: #6B4200; }
.notes-a-verifier ul { margin: 0; padding-left: 20px; }
@media print { #entretien-modal, .notes-a-verifier, #entretien-a-verifier, #entretien-transcription { display: none !important; } }
@media (max-width: 520px) { .entretien-corps { padding: 16px 16px 4px; } .entretien-chrono { font-size: 28px; } .nb-entretien { padding: 14px 16px; }
  .entretien-pied .sigpad-btn.primary { order: -1; width: 100%; justify-content: center; } }

/* « Enregistrer l'entretien » sur l'accueil (31/10/2026) : sous les deux gros boutons, sur toute la largeur. */
.acc-deux .acc-entretien { grid-column: 1 / -1; margin: 0; }
.nb-entretien[hidden] { display: none; }

/* =============================================================================
   DOSSIER PATIENT « SUBLIME » (31/10/2026, js/29 rendreFiche)
   Ordre : en-tête (âge, motif, série) → Prochaine séance (seule action verte)
   → Où en est → Programme → Suivi ; colonne droite : à garder en tête, bilans,
   contact, rendez-vous. Même langage visuel, plus calme et plus hiérarchisé.
   ============================================================================= */
.pa-hero.pa-hero2 { padding: 22px 26px 20px; }
.pa-hero2 .pa-tete { align-items: flex-start; flex-wrap: nowrap; }
.pa-hero2 .pa-hero-id { flex: 1; }
.pa-hero2 .pa-tete-actions { flex: none; }
.pa-hero2 .pa-identite { min-width: 0; }
.pa-hero2 .pa-sous { display: flex; align-items: center; gap: 0 8px; min-width: 0; margin-top: 2px; font-size: 16px; color: #3D4A44; }
.pa-age { flex: none; font-weight: 600; color: #13201B; font-variant-numeric: tabular-nums; }
.pa-point { flex: none; color: #9AA6A0; }
.pa-motif { min-width: 0; min-height: 44px; margin: 0; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pa-motif:hover { color: #13201B; }
.pa-motif:focus-visible { outline: 3px solid #137F5E; outline-offset: 2px; border-radius: 6px; }
.pa-motif.ouvert { white-space: normal; overflow: visible; padding: 10px 0; }
.pa-hero2 .pa-serie { margin: 14px 0 0; }
.pa-hero2 .pa-serie-ligne { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.pa-hero2 .pa-serie-compte { margin: 0 0 8px; font-size: 14.5px; color: #3D4A44; }
.pa-hero2 .pa-serie-compte strong { font-size: 20px; }
.pa-hero2 .pa-serie-barre { height: 10px; background: #E1EAE5; }
.pa-hero2 .pa-serie-alerte { margin-top: 12px; }
.pa-serie-modifier, .pa-hero2 .pa-serie-vide .acc-lien { min-height: 44px; padding: 0 2px; font-size: 14.5px; }
.pa-hero2 .pa-serie-vide { margin: 10px 0 0; }
.pa-btn-renouv { min-height: 40px; border-color: #E6B65C; background: #fff; color: #5C3B0B; }
.pa-btn-renouv:hover { background: #FFF4DE; border-color: #D98E04; }
/* Prochaine séance : la carte la plus visible */
.pa-carte.pa-prochaine { padding: 24px 26px; border: 1.5px solid #9CCDB5; background: #fff; box-shadow: 0 14px 34px -24px rgba(12, 51, 38, .55); }
.pa-prochaine-tete { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin: 0 0 4px; }
.pa-prochaine-tete .pa-h2 { margin: 0; font-size: 24px; }
.pa-prochaine-quand { display: inline-flex; align-items: center; gap: 8px; margin: 0; padding: 8px 14px; border-radius: 999px; background: #EAF5F0; color: #0B4D37; font-weight: 600; font-size: 15px; }
.pa-prochaine-quand svg { flex: none; width: 18px; height: 18px; color: #137F5E; }
.pa-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pa-prochaine .pa-encart { margin-top: 14px; }
.pa-prochaine .pa-encart p { margin: 4px 0 0; font-size: 16px; line-height: 1.5; color: #13201B; }
.pa-prochaine-obj { margin-top: 16px; }
.pa-prochaine-lib { margin: 0 0 8px; font-weight: 700; font-size: 14px; color: #3D4A44; }
.pa-obj-puces { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.pa-obj-puces li { padding: 7px 13px; border-radius: 999px; background: #F3F6F4; border: 1px solid #DCE5DF; font-size: 14.5px; color: #13201B; }
.pa-obj-puces .pa-obj-puces-plus { background: none; border-style: dashed; color: #3D4A44; }
.pa-prochaine-vide { margin: 10px 0 0; }
.pa-prochaine-fiches { margin-top: 16px; }
.pa-prochaine-fiches.pa-carte, .pa-prochaine .pa-suggestions { padding: 0; border: 0; box-shadow: none; background: none; }
.pa-prochaine-pied { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin-top: 20px; padding-top: 0; border-top: 0; }
.pa-prochaine-pied .btn-primary { min-height: 48px; padding-left: 22px; padding-right: 22px; }
.pa-prochaine-pied .pa-imprimer { min-height: 44px; }
/* Où en est : une phrase, pas un tableau de bord */
.pa-ou { margin: 0 0 18px; padding: 18px 24px; border-radius: 20px; background: #F6F9F7; border: 1px solid #E1E7E2; }
.pa-ou .pa-h2 { margin: 0 0 6px; font-size: 19px; }
.pa-ou-texte { margin: 0; font-size: 16px; line-height: 1.6; color: #2B3833; max-width: 68ch; }
.pa-prog-reussite { margin: 10px 0 6px; padding: 10px 14px; border-radius: 12px; background: #EAF5F0; color: #0B4D37; font-weight: 600; font-size: 15px; }
/* Frise « Suivi » */
.pa-historique .pa-frise { margin-top: 8px; }
.pa-suivi-el { position: relative; margin: 0; padding: 0; border: 0; }
.pa-frise .pa-suivi-el.pa-seance { padding: 0; border: 0; }
.pa-frise .pa-suivi-el.pa-seance::before { content: none; }
.pa-suivi-el + .pa-suivi-el, .pa-frise-reste > .pa-suivi-el:first-child { border-top: 1px solid #EEF2EF; }
.pa-suivi-el > summary, .pa-suivi-ligne { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 4px; }
.pa-suivi-el > summary { list-style: none; cursor: pointer; border-radius: 10px; }
.pa-suivi-el > summary::-webkit-details-marker { display: none; }
.pa-suivi-el > summary:hover { background: #F6F9F7; }
.pa-frise .pa-suivi-el.pa-seance > summary { align-items: center; padding: 6px 4px; font-size: 15px; }
.pa-frise .pa-suivi-el.pa-seance > summary::before { content: none; }
/* Chevron discret à droite : la séance se déplie. */
.pa-frise .pa-suivi-el.pa-seance > summary::after { content: ""; flex: none; width: 8px; height: 8px; margin: 0 6px 0 4px; border-right: 2px solid #6B7A73; border-bottom: 2px solid #6B7A73; transform: rotate(45deg); transition: transform .15s; }
.pa-frise .pa-suivi-el.pa-seance[open] > summary::after { transform: rotate(-135deg); }
.pa-frise .pa-suivi-el.pa-seance[open] { padding-bottom: 0; }
.pa-suivi-el > summary:focus-visible { outline: 3px solid #137F5E; outline-offset: 1px; }
.pa-suivi-ico { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 10px; }
.pa-suivi-ico svg { width: 18px; height: 18px; }
.pa-suivi-seance { background: #EAF5F0; color: #137F5E; }
.pa-suivi-bilan { background: #EEF3FB; color: #2F5DA8; }
.pa-suivi-objectif { background: #E5F6EC; color: #1F7A45; }
.pa-suivi-courrier { background: #FFF4E5; color: #9A5B00; }
.pa-suivi-el .pa-seance-date { flex: none; min-width: 92px; font-weight: 700; font-size: 14.5px; font-variant-numeric: tabular-nums; color: #13201B; }
.pa-suivi-titre { flex: 1; min-width: 0; font-size: 15px; color: #2B3833; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pa-suivi-badge { flex: none; padding: 3px 10px; border-radius: 999px; background: #137F5E; color: #fff; font-style: normal; font-weight: 600; font-size: 12.5px; }
.pa-suivi-ligne .acc-lien { flex: none; min-height: 44px; padding: 0 6px; }
.pa-suivi-corps { padding: 2px 4px 14px 48px; }
.pa-suivi-corps .pa-seance-actions { display: flex; flex-wrap: wrap; gap: 0 18px; margin-top: 12px; }
.pa-suivi-corps .pa-seance-actions .acc-lien { min-height: 44px; }
.pa-frise-tout { min-height: 44px; margin-top: 4px; padding: 0 4px; font-weight: 600; }
/* Colonne droite : plus légère */
.pa-dossier2 .pa-col-cote .pa-carte { padding: 18px 20px; }
.pa-contact-vide { margin: 0 0 18px; padding: 0 4px; }
.pa-contact-vide .acc-lien { min-height: 44px; }
.pa-bilans-liste .pa-bilan-actions { display: flex; align-items: center; gap: 8px; margin-top: 8px; }
.pa-bilans-liste .pa-bilan-actions .btn-sm { min-height: 40px; }
.pa-dossier2 .pa-rdv-actions .acc-lien { min-height: 44px; }
/* Liste des patients : motif sur une ligne */
.pa-liste .pa-ligne-txt { min-width: 0; }
.pa-liste .pa-ligne-infos { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Date de naissance invraisemblable : avertissement doux */
.pa-f-avert { margin: 8px 0 0; padding: 8px 12px; border-radius: 10px; background: #FFF8E6; border: 1px solid #F5D98B; color: #5C4A12; }
.pa-f-avert[hidden] { display: none; }
/* Une colonne : Prochaine séance en premier, la colonne droite en dessous */
@media (max-width: 1079px) {
  .pa-dossier.pa-dossier2 { display: block; }
  .pa-dossier.pa-dossier2 > .pa-col, .pa-dossier.pa-dossier2 > .pa-col-cote { display: block; }
}
@media (max-width: 640px) {
  .pa-hero.pa-hero2 { padding: 18px 16px; }
  .pa-carte.pa-prochaine { padding: 20px 16px; }
  .pa-prochaine-tete .pa-h2 { font-size: 22px; }
  .pa-prochaine-pied .btn-primary { width: 100%; justify-content: center; }
  .pa-ou { padding: 16px; }
  .pa-suivi-el .pa-seance-date { min-width: 0; }
  .pa-suivi-corps { padding-left: 4px; }
  .pa-frise .pa-suivi-el.pa-seance > summary { flex-wrap: wrap; row-gap: 0; }
  .pa-frise .pa-suivi-el.pa-seance > summary > * { flex-basis: auto; }
  .pa-frise .pa-suivi-el.pa-seance > summary > .pa-suivi-titre { flex: 1 1 100%; order: 3; padding-left: 44px; white-space: normal; }
}
@media (prefers-reduced-motion: reduce) {
  .pa-serie-barre span, .pa-suivi-el > summary, .pa-frise .pa-suivi-el.pa-seance > summary::after, .pa-seance > summary::before, .pa-ligne-fleche { transition: none; }
}
.pa-suivi-el .pa-seance-date, .pa-suivi-titre, .pa-suivi-badge { line-height: 1.35; align-self: center; }

/* Dossier sur téléphone (31/10/2026) : « … » à droite sans rien recouvrir,
   motif sur sa propre ligne tronquée, « À garder en tête » avant la Prochaine séance. */
.pa-garder-mobile { display: none; }
@media (max-width: 1079px) {
  .pa-garder-mobile { display: block; }
  .pa-garder-cote { display: none; }
}
@media (max-width: 640px) {
  .pa-hero2 .pa-tete { flex-wrap: nowrap; align-items: flex-start; gap: 10px; }
  .pa-hero2 .pa-tete-actions { width: auto; flex: none; align-self: flex-start; }
  .pa-hero2 .pa-hero-id { gap: 12px; align-items: flex-start; }
  .pa-hero2 .pa-titre { font-size: 24px; overflow-wrap: anywhere; }
  .pa-hero2 .pa-sous { flex-wrap: wrap; font-size: 15px; }
  .pa-hero2 .pa-sous .pa-point { display: none; }
  .pa-hero2 .pa-motif { flex: 1 1 100%; max-width: 100%; min-height: 32px; }
}

/* ========== SAUVEGARDE IMPOSSIBLE À OUBLIER (01/11/2026, js/29) ========== */
/* Pastille de la barre latérale : vert = récente, orange = jamais ou 7 jours et plus, rouge = en pause. */
.ab-sauv { position: relative; }
.ab-item [data-sauv-etat] { display: flex; align-items: center; gap: 5px; width: fit-content; max-width: 100%; margin-top: 3px; padding: 1px 8px 1px 7px; border-radius: 99px; font-size: 12.5px; font-weight: 600; line-height: 1.5; background: #E6F4EE; color: #0B5B42; }
.ab-item [data-sauv-etat]::before { content: ''; flex: none; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.ab-item [data-sauv-etat][data-niveau="jamais"], .ab-item [data-sauv-etat][data-niveau="ancienne"] { background: #FFF1DD; color: #8A4600; }
.ab-item [data-sauv-etat][data-niveau="pause"] { background: #FDE8E7; color: #A3241B; }
html.espace-outil .ab-item [data-sauv-etat] { font-size: 13px; color: #0B5B42; }
html.espace-outil .ab-item [data-sauv-etat][data-niveau="jamais"], html.espace-outil .ab-item [data-sauv-etat][data-niveau="ancienne"] { color: #8A4600; }
html.espace-outil .ab-item [data-sauv-etat][data-niveau="pause"] { color: #A3241B; }
.ab-item.actif [data-sauv-etat] { color: #0B5B42; }
/* Barre repliée : un point sur l'icône, seulement s'il faut agir. */
.ab-sauv-point { display: none; position: absolute; top: 8px; right: calc(50% - 15px); width: 9px; height: 9px; border-radius: 50%; border: 2px solid #fff; background: #D97706; }
html.barre-repliee .ab-sauv:not([data-niveau="ok"]):not([data-niveau=""]) .ab-sauv-point { display: block; }
html.barre-repliee .ab-sauv[data-niveau="pause"] .ab-sauv-point { background: #D92D20; }

/* Bandeau de pause : en haut de tous les écrans de l'outil. */
.sauv-pause { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin: 0 0 18px; padding: 12px 8px 12px 16px; border-radius: 12px; background: #FDECEC; border: 1px solid #F3B5B0; color: #7A1C16; font-size: 14.5px; line-height: 1.45; }
.sauv-pause > svg { flex: none; width: 24px; height: 24px; color: #C4271D; }
.sauv-pause p { flex: 1 1 260px; margin: 0; }
.sauv-pause strong { display: block; font-weight: 700; color: #7A1C16; }
.sauv-pause .sauv-pause-relancer { flex: none; min-height: 44px; padding: 0 18px; background: #fff; border: 1.5px solid #C4271D; color: #A3241B; font-weight: 600; }
.sauv-pause .sauv-pause-relancer:hover { background: #FFF7F6; }
.sauv-pause-fermer { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 0; border-radius: 10px; background: transparent; color: #A3241B; cursor: pointer; }
.sauv-pause-fermer:hover { background: rgba(196, 39, 29, .08); }
.sauv-pause-fermer svg { width: 18px; height: 18px; }
.sauv-pause button:focus-visible { outline: 2px solid #A3241B; outline-offset: 2px; }
@media (max-width: 640px) {
  .sauv-pause { display: grid; grid-template-columns: 24px 1fr 44px; align-items: start; gap: 10px; padding: 12px 6px 12px 12px; font-size: 14px; }
  .sauv-pause > svg { margin-top: 1px; }
  .sauv-pause .sauv-pause-fermer { grid-column: 3; grid-row: 1; margin-top: -10px; }
  .sauv-pause .sauv-pause-relancer { grid-column: 1 / -1; grid-row: 2; margin-right: 6px; }
}

/* Fenêtre « Protégez vos bilans » / rappel de la semaine. */
#sauv-fenetre .sauv-f-carte { max-width: 480px; }
.sauv-f-corps { padding: 28px 28px 8px; text-align: center; }
.sauv-f-ico { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 14px; border-radius: 50%; background: #E6F4EE; color: #137F5E; }
.sauv-f-ico svg { width: 28px; height: 28px; }
.sauv-f-corps h2 { margin: 0 0 10px; font: 600 21px/1.3 'Plus Jakarta Sans', sans-serif; color: #111; letter-spacing: -.2px; }
.sauv-f-corps p { margin: 0 0 10px; font-size: 15px; line-height: 1.6; color: #45534D; }
.sauv-f-corps .sauv-f-comment { padding: 12px 14px; border-radius: 12px; background: #F4F8F6; color: #2F3D37; font-size: 14.5px; }
#sauv-fenetre .sigpad-foot .sigpad-btn { min-height: 44px; }
@media (max-width: 480px) {
  .sauv-f-corps { padding: 22px 18px 6px; }
  #sauv-fenetre .sigpad-foot { flex-direction: column-reverse; }
  #sauv-fenetre .sigpad-foot .sigpad-btn { width: 100%; }
}
#hd-menu-app { position: relative; }
#hd-menu-app[data-sauv="jamais"]::after, #hd-menu-app[data-sauv="ancienne"]::after, #hd-menu-app[data-sauv="pause"]::after { content: ''; position: absolute; top: 5px; right: 5px; width: 10px; height: 10px; border-radius: 50%; border: 2px solid #fff; background: #D97706; }
#hd-menu-app[data-sauv="pause"]::after { background: #D92D20; }

/* ========== TABLEAU DE BORD FONDATEUR (03/11/2026, js/39) ========== */
.tdb { max-width: 1180px; margin: 0 auto; padding-bottom: 48px; color: #13201B; }
.tdb .sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tdb-tete { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.tdb-tete h1 { margin: 0; font: 600 30px/1.2 'Plus Jakarta Sans', sans-serif; letter-spacing: -.4px; color: #0B3D2E; }
.tdb-tete p { margin: 4px 0 0; color: #55635C; font-size: 14.5px; }
.tdb-tete .btn { min-height: 44px; }
.tdb-attente, .tdb-vide { color: #55635C; font-size: 14.5px; margin: 8px 0; }
.tdb-erreur { padding: 12px 14px; border-radius: 10px; background: #FDECEC; color: #7A1C16; margin: 0 0 16px; }
.tdb-tuiles { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.tdb-tuile { padding: 16px 16px 14px; border: 1px solid #E1E8E4; border-radius: 14px; background: #fff; min-width: 0; }
.tdb-tuile-titre { margin: 0; font-size: 13.5px; font-weight: 600; color: #45534D; }
.tdb-tuile-val { margin: 6px 0 2px; font: 600 30px/1.1 'Plus Jakarta Sans', sans-serif; color: #0B3D2E; font-variant-numeric: tabular-nums; }
.tdb-tuile-30 { margin: 0; font-size: 12.5px; color: #637069; }
.tdb-tuile.tdb-alerte { border-color: #F3B5B0; background: #FFF8F7; }
.tdb-tuile.tdb-alerte .tdb-tuile-val { color: #A3241B; }
.tdb-note { margin: 8px 2px 0; font-size: 12.5px; color: #637069; }
.tdb-bloc { margin-top: 26px; padding: 20px 22px; border: 1px solid #E1E8E4; border-radius: 16px; background: #fff; }
.tdb-bloc h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 14px; font: 600 19px/1.3 'Plus Jakarta Sans', sans-serif; color: #0B3D2E; }
.tdb-bloc h2 span { min-width: 26px; padding: 1px 8px; border-radius: 99px; background: #E6F4EE; color: #0B5B42; font-size: 13px; text-align: center; }
.tdb-bloc h3 { margin: 18px 0 8px; font-size: 14.5px; font-weight: 600; color: #2F3D37; }
.tdb-appeler { border-color: #CDE7DB; background: linear-gradient(180deg, #F6FBF8, #fff 70%); }
.tdb-liste { list-style: none; margin: 0; padding: 0; }
.tdb-liste li { display: flex; align-items: center; gap: 12px 18px; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid #EDF2EF; }
.tdb-liste li:first-child { border-top: 0; }
.tdb-qui { flex: 1 1 280px; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.tdb-qui a, .tdb-table a { color: #0F7052; font-weight: 600; overflow-wrap: anywhere; }
.tdb-raisons { display: flex; flex-wrap: wrap; gap: 6px; }
.tdb-raison { padding: 1px 9px; border-radius: 99px; font-size: 12.5px; font-weight: 600; background: #EEF1F0; color: #3B4842; }
.tdb-raison[data-raison="a rencontré un problème"] { background: #FDE8E7; color: #A3241B; }
.tdb-raison[data-raison="a décroché"] { background: #FFF1DD; color: #8A4600; }
.tdb-raison[data-raison="à ouvrir"] { background: #E6F4EE; color: #0B5B42; }
.tdb-quand { font-size: 13.5px; color: #55635C; }
.tdb-liste .btn-sm { min-height: 40px; }
.tdb-outils { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.tdb-filtres { display: flex; gap: 4px; padding: 4px; border-radius: 12px; background: #F1F5F3; flex-wrap: wrap; }
.tdb-filtre { min-height: 36px; padding: 0 14px; border: 0; border-radius: 9px; background: transparent; font: 600 13.5px/1 'Plus Jakarta Sans', sans-serif; color: #45534D; cursor: pointer; }
.tdb-filtre.actif { background: #fff; color: #0B5B42; box-shadow: 0 1px 3px rgba(15, 110, 86, .12); }
.tdb-recherche input { min-height: 40px; width: 260px; max-width: 100%; }
.tdb-table-defile { overflow-x: auto; }
.tdb-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.tdb-table th { text-align: left; padding: 8px 10px; font-size: 12.5px; font-weight: 600; color: #55635C; border-bottom: 1px solid #E1E8E4; white-space: nowrap; }
.tdb-table td { padding: 9px 10px; border-bottom: 1px solid #EDF2EF; vertical-align: top; overflow-wrap: anywhere; }
.tdb-table code { font-size: 12px; color: #45534D; }
.tdb-statut { display: flex; flex-direction: column; gap: 6px; min-width: 140px; }
.tdb-statut select, .tdb-statut input, .tdb-note-champ { min-height: 36px; padding: 4px 8px; font-size: 13.5px; }
.tdb-note-champ { min-width: 150px; }
.tdb-retours { list-style: none; margin: 0; padding: 0; }
.tdb-retours li { padding: 12px 0; border-top: 1px solid #EDF2EF; font-size: 14px; }
.tdb-retours li:first-child { border-top: 0; }
.tdb-retours p { margin: 2px 0; }
.tdb-retour-tete { font-size: 12.5px; color: #637069; }
@media (max-width: 1100px) { .tdb-tuiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .tdb-tete h1 { font-size: 25px; }
  .tdb-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tdb-tuile-val { font-size: 25px; }
  .tdb-bloc { padding: 16px 14px; border-radius: 14px; }
  .tdb-recherche, .tdb-recherche input { width: 100%; }
  /* Tableaux en cartes : une ligne = un bloc, l'intitulé de chaque colonne devant sa valeur. */
  .tdb-table thead { display: none; }
  .tdb-table, .tdb-table tbody, .tdb-table tr, .tdb-table td { display: block; }
  .tdb-table tr { padding: 10px 0; border-bottom: 1px solid #E1E8E4; }
  .tdb-table td { display: grid; grid-template-columns: 112px 1fr; gap: 8px; padding: 4px 0; border: 0; }
  .tdb-table td::before { content: attr(data-col); font-size: 12.5px; font-weight: 600; color: #637069; }
}
.container:has(#screen-tdb.active) .steps-nav { display: none; }
@media (min-width: 641px) {
  .tdb-table td[data-col="E-mail"] { min-width: 190px; overflow-wrap: normal; word-break: break-all; }
  .tdb-table td[data-col="Inscrite le"], .tdb-table td[data-col="Date"], .tdb-table td[data-col="Bilans 30 j / total"], .tdb-table td[data-col="Dernière activité"] { white-space: nowrap; overflow-wrap: normal; }
}
.container:has(#screen-tdb.active) { max-width: 1240px; }

/* ========== AVIS SUR LE BROUILLON (06/11/2026, js/25) ==========
   Le logo d'OrthoAssist descend jusqu'au coin haut-droit, puis la carte s'ouvre
   dessous. Non modal, jamais bloquant, aucun son. Mouvement réduit : fondu. */
.avis { position: fixed; top: 76px; right: 20px; z-index: 950; width: 320px; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; pointer-events: none; }
.avis > * { pointer-events: auto; }
.avis-logo { width: 44px; height: 44px; padding: 6px; border-radius: 14px; background: #fff; border: 1px solid #DCE7E1; box-shadow: 0 6px 18px -8px rgba(12, 51, 38, .35); animation: avisDescend 1.2s cubic-bezier(.22, .8, .3, 1) both; }
@keyframes avisDescend { from { transform: translateY(-140px); opacity: 0; } 30% { opacity: 1; } }
.avis-carte { position: relative; width: 100%; padding: 16px 16px 12px; border-radius: 16px; background: #fff; border: 1px solid #DCE7E1; box-shadow: 0 2px 6px rgba(19, 32, 27, .06), 0 24px 48px -20px rgba(12, 51, 38, .35); animation: avisOuvre .3s ease-out 1.05s both; }
@keyframes avisOuvre { from { opacity: 0; transform: translateY(-6px) scale(.98); } }
.avis-carte h2 { margin: 0 28px 10px 0; font: 700 16px/1.3 'Plus Jakarta Sans', sans-serif; color: #13201B; }
.avis-annonce { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.avis-fermer { position: absolute; top: 6px; right: 6px; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 10px; background: transparent; color: #55635C; cursor: pointer; }
.avis-fermer svg { width: 16px; height: 16px; }
.avis-notes { display: grid; gap: 6px; }
.avis-note { min-height: 40px; padding: 8px 12px; border: 1px solid #D5DED8; border-radius: 10px; background: #fff; font: 600 14px/1.2 'Plus Jakarta Sans', sans-serif; color: #2B3832; text-align: left; cursor: pointer; }
.avis-note:hover { border-color: #137F5E; }
.avis-note[aria-pressed="true"] { background: #E6F4EE; border-color: #137F5E; color: #0B5B42; }
.avis-suite { margin-top: 12px; }
.avis-suite[hidden] { display: none; }
.avis-suite label[for="avis-mot"] { display: block; margin-bottom: 4px; font-size: 13.5px; font-weight: 700; color: #13201B; }
.avis-suite label span { font-weight: 500; color: #637069; }
.avis-suite textarea { width: 100%; min-height: 64px; padding: 8px 10px; font-size: 14px; resize: vertical; }
.avis-aide { margin: 4px 0 8px; font-size: 12.5px; color: #9A5B0B; }
.avis-suite fieldset { margin: 6px 0; padding: 0; border: 0; }
.avis-suite legend { margin-bottom: 4px; font-size: 13px; font-weight: 700; color: #2B3832; }
.avis-case { display: flex; align-items: center; gap: 8px; min-height: 30px; font-size: 13.5px; color: #2B3832; }
.avis-envoyer { width: 100%; min-height: 40px; margin-top: 6px; border: 0; border-radius: 10px; background: #137F5E; color: #fff; font: 600 14px/1 'Plus Jakarta Sans', sans-serif; cursor: pointer; }
.avis-liens { display: flex; justify-content: space-between; gap: 8px; margin: 10px 0 0; }
.avis-liens button { min-height: 36px; padding: 0 4px; border: 0; background: transparent; font: 600 13px/1 'Plus Jakarta Sans', sans-serif; color: #55635C; text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.avis button:focus-visible { outline: 2px solid #137F5E; outline-offset: 2px; }
@media (max-width: 640px) {
  .avis { left: 12px; right: 12px; width: auto; top: 64px; }
}
@media (prefers-reduced-motion: reduce) {
  .avis-logo { animation: avisFondu .3s ease-out both; }
  .avis-carte { animation: avisFondu .3s ease-out .1s both; }
}
@keyframes avisFondu { from { opacity: 0; } }
/* Pouces par section (dans .bs-tools : jamais imprimés ni exportés). */
.avis-pouces { display: inline-flex; gap: 2px; margin-right: 4px; }
.avis-pouce { width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid transparent; border-radius: 8px; background: transparent; color: #8A968F; cursor: pointer; }
.avis-pouce svg { width: 16px; height: 16px; }
.avis-pouce:hover { color: #2B3832; background: #F2F5F3; }
.avis-pouce[data-valeur="juste"][aria-pressed="true"] { color: #0B5B42; background: #E6F4EE; border-color: #BFE0CF; }
.avis-pouce[data-valeur="a_revoir"][aria-pressed="true"] { color: #A3241B; background: #FDECEC; border-color: #F3B5B0; }
@media print { .avis, .avis-pouces { display: none !important; } }
/* Tableau de bord : satisfaction (avis par bilan, 06/11/2026). */
.tdb-tuiles { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 1100px) { .tdb-tuiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .tdb-tuiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tdb-tuile-val small { font-size: 14px; font-weight: 600; color: #637069; }
.tdb-barre { display: flex; height: 8px; margin: 6px 0; border-radius: 99px; overflow: hidden; background: #EEF1F0; }
.tdb-barre-1 { background: #137F5E; } .tdb-barre-2 { background: #E7B35A; } .tdb-barre-3 { background: #D92D20; }
.tdb-raison[data-raison^="a trouvé « beaucoup à reprendre »"] { background: #FDE8E7; color: #A3241B; }
.tdb-note-avis { padding: 1px 8px; border-radius: 99px; font-size: 12.5px; font-weight: 700; }
.tdb-note-avis[data-note="1"] { background: #E6F4EE; color: #0B5B42; } .tdb-note-avis[data-note="2"] { background: #FFF1DD; color: #8A4600; } .tdb-note-avis[data-note="3"] { background: #FDE8E7; color: #A3241B; }
.tdb-modele { font-size: 12.5px; color: #637069; }
.avis-carte { max-height: calc(100vh - 150px); overflow-y: auto; }
.avis-case { align-items: flex-start; padding: 3px 0; line-height: 1.35; }
.avis-case input { flex: none; width: 16px; height: 16px; min-height: 0; margin: 1px 0 0; padding: 0; accent-color: #137F5E; }
