/* Fransou · Le grand chat v2 (19/10/2026) · thème Encre (charte v0.3), dosage des maquettes v4 (chat-maquette-v4) : cadre en Encre
   profonde, page un cran plus claire, une seule carte claire pour ce qui se décide d'abord. Fransou Texte seulement ; rien sous 12 px ;
   un seul bouton plein par écran ; aucune ombre, aucun dégradé, aucun verre. Tout est rangé sous .ch2 et préfixé ch- : aucune règle ne
   déborde sur l'appli. Jetons à deux valeurs : Encre par défaut, clair au choix (data-ch-mode="clair"). Le signe SOIE : motif fixe du
   cadre, au même endroit sur chaque page. */
@font-face{font-family:'Fransou Texte';src:url('/factures-v2/fonts/FransouTexte-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Fransou Texte';src:url('/factures-v2/fonts/FransouTexte-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'Fransou Texte';src:url('/factures-v2/fonts/FransouTexte-Semibold.woff2') format('woff2');font-weight:600;font-display:swap}

.ch2{
  --coque:#0C181C; --page:#162125; --carte:#1D282C; --actif:#273135; --filet:#2E383C; --contour:#536066;
  --texte:#FFFFFF; --sec:#B9BFC1; --plein-fond:#FFFFFF; --plein-texte:#0C181C; --faire-fond:#D7DDDE; --faire-texte:#0C181C;
  --avant:#F3F4F3; --avant-texte:#0C181C; --avant-sec:#536066; --avant-filet:#D7DDDE; --soie:#FFFFFF; --soie-op:.045;
  --d1:#7FB3C8; --d2:#9CC59A; --d3:#D8B47A; --d4:#C99AB8; --large:1200px;
  --police:'Fransou Texte',system-ui,sans-serif; --courbe:cubic-bezier(.23,1,.32,1);
  position:fixed;inset:0;z-index:60;overflow:hidden;background:var(--page);color:var(--texte);
  font:400 15px/1.6 var(--police);font-synthesis:none;font-variant-numeric:tabular-nums;-webkit-text-size-adjust:100%;letter-spacing:normal;text-align:left
}
.ch2[data-ch-mode="clair"]{
  --coque:#F3F4F3; --page:#FFFFFF; --carte:#F6F7F6; --actif:#E5E8E8; --filet:#D7DDDE; --contour:#C9D0D2;
  --texte:#0C181C; --sec:#536066; --plein-fond:#0C181C; --plein-texte:#FFFFFF; --faire-fond:#0C181C; --faire-texte:#FFFFFF;
  --avant:#0C181C; --avant-texte:#FFFFFF; --avant-sec:#BCC6C9; --avant-filet:#2E383C; --soie:#0C181C; --soie-op:.04;
  --d1:#3F6E8C; --d2:#4E7A5A; --d3:#8A6420; --d4:#875070
}
.ch2 *,.ch2 *::before,.ch2 *::after{box-sizing:border-box}
.ch2 a{color:inherit;text-decoration:none}
.ch2 button,.ch2 input,.ch2 select,.ch2 textarea{font:inherit;color:inherit;margin:0;letter-spacing:normal}
.ch2 button{background:transparent;border:0;padding:0;cursor:pointer;text-align:inherit}
.ch2 button:disabled{cursor:default;opacity:.55}
.ch2 svg{flex:none}
.ch2 h1,.ch2 h2,.ch2 h3,.ch2 p,.ch2 ul,.ch2 ol,.ch2 dl,.ch2 dd,.ch2 figure{margin:0;padding:0}
.ch2 ul,.ch2 ol{list-style:none}
.ch2 :focus-visible{outline:2px solid var(--texte);outline-offset:3px;border-radius:6px}
.ch2 .chv-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ch2 .chv-attente{padding:40px;color:var(--sec)}
.ch2[data-ch-animations="aucune"] *{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){.ch2 *{animation-duration:1ms!important;transition-duration:1ms!important}}
@keyframes chv-monte{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes chv-point{0%,80%,100%{opacity:.25}40%{opacity:1}}

/* drapeau allumé : la bulle de l'ancienne messagerie (iframe /messages) se retire ; le grand chat s'ouvre par la navigation */
body.ch2-actif #fi-conversations{display:none!important}

/* le cadre */
.ch2 .chv-cadre{position:relative;height:100%;display:grid;grid-template-rows:auto 1fr;background:var(--page);overflow:hidden}
.ch2 .chv-soie-x{position:absolute;z-index:0;pointer-events:none;left:-180px;bottom:-120px;width:720px;aspect-ratio:632/288;background:var(--soie);opacity:var(--soie-op);-webkit-mask:url('/factures-v2/soie.svg') center/contain no-repeat;mask:url('/factures-v2/soie.svg') center/contain no-repeat}
.ch2 .chv-signe{display:inline-block;flex:none;border-radius:50%;border:1px solid var(--filet);background:var(--carte);position:relative}
.ch2 .chv-signe::after{content:"";position:absolute;inset:22%;background:var(--texte);-webkit-mask:url('/factures-v2/soie.svg') center/contain no-repeat;mask:url('/factures-v2/soie.svg') center/contain no-repeat}
.ch2 .chv-haut{position:relative;z-index:3;display:flex;align-items:center;gap:20px;height:64px;padding:0 24px;background:var(--coque);border-bottom:1px solid var(--filet);overflow:hidden}
.ch2 .chv-soie-h{position:absolute;z-index:0;pointer-events:none;right:12%;top:-120px;width:520px;aspect-ratio:632/288;background:var(--soie);opacity:var(--soie-op);-webkit-mask:url('/factures-v2/soie.svg') center/contain no-repeat;mask:url('/factures-v2/soie.svg') center/contain no-repeat}
.ch2 .chv-marque{position:relative;z-index:1;font-size:26px;font-weight:500;letter-spacing:-.01em;margin-right:12px}
.ch2 .chv-nav{position:relative;z-index:1;display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}
.ch2 .chv-nav-a{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border-radius:8px;color:var(--sec);font-weight:500;white-space:nowrap;transition:color 160ms var(--courbe),background 160ms var(--courbe),transform 140ms var(--courbe)}
.ch2 .chv-nav-a:hover{color:var(--texte)}
.ch2 .chv-nav-a:active{transform:scale(.98)}
.ch2 .chv-nav-a.chv-actif{color:var(--texte);background:var(--actif)}
.ch2 .chv-n{min-width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;border-radius:10px;font-size:12px;font-weight:600;background:var(--texte);color:var(--page);padding:0 6px}
.ch2 .chv-n-doux{background:transparent;color:var(--texte);border:1px solid var(--contour)}
.ch2 .chv-outils{position:relative;z-index:1;margin-left:auto;display:flex;gap:10px;align-items:center}
.ch2 .chv-icone{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;border:1px solid var(--filet);color:var(--texte);transition:background 160ms var(--courbe),transform 140ms var(--courbe)}
.ch2 .chv-icone:hover{background:var(--actif)}
.ch2 .chv-icone:active{transform:scale(.96)}
.ch2 .chv-icone.chv-petit{width:28px;height:28px;border-color:transparent}
.ch2 .chv-icone.chv-actif{background:var(--actif)}
.ch2 .chv-avatar{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1px solid var(--filet);font-size:13px;font-weight:600}
.ch2 .chv-main{position:relative;z-index:1;min-height:0;overflow-y:auto;overflow-x:hidden}
.ch2 .chv-esp-fil .chv-main{overflow:hidden}
.ch2 .chv-bas{display:none}

/* les pages */
.ch2 .chv-page{max-width:var(--large);margin:0 auto;padding:28px 40px 120px;display:flex;flex-direction:column;gap:20px;animation:chv-monte 260ms var(--courbe)}
.ch2 .chv-onglets{display:flex;gap:24px;border-bottom:1px solid var(--filet);overflow-x:auto;scrollbar-width:none}
.ch2 .chv-onglet{display:inline-flex;align-items:center;gap:8px;padding:10px 0 12px;color:var(--sec);font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color 160ms var(--courbe)}
.ch2 .chv-onglet:hover{color:var(--texte)}
.ch2 .chv-onglet.chv-actif{color:var(--texte);border-color:var(--texte)}
.ch2 .chv-ariane{display:flex;gap:6px;color:var(--sec);font-size:14px;margin-bottom:8px}
.ch2 .chv-ariane a:hover{color:var(--texte)}
.ch2 .chv-ariane b{color:var(--texte);font-weight:500}
.ch2 .chv-tete{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-top:8px}
.ch2 .chv-tete-txt{max-width:760px}
.ch2 .chv-sur{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sec);font-weight:500}
.ch2 .chv-h1{font-size:34px;line-height:1.15;letter-spacing:-.012em;font-weight:600;margin-top:8px}
.ch2 .chv-phrase{color:var(--sec);margin-top:8px;font-size:16px}
.ch2 .chv-plein{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:11px 22px;border-radius:8px;background:var(--plein-fond);color:var(--plein-texte);font-weight:600;white-space:nowrap;transition:transform 140ms var(--courbe),opacity 160ms}
.ch2 .chv-plein:hover{opacity:.92}
.ch2 .chv-plein:active{transform:scale(.98)}
.ch2 .chv-bouton{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:8px 14px;border-radius:8px;border:1px solid var(--contour);font-weight:500;white-space:nowrap;transition:background 160ms var(--courbe),transform 140ms var(--courbe)}
.ch2 .chv-bouton:hover{background:var(--actif)}
.ch2 .chv-bouton:active{transform:scale(.98)}
.ch2 .chv-lien{display:inline-flex;align-items:center;gap:6px;min-height:32px;font-weight:500;text-decoration:underline;text-underline-offset:4px;text-decoration-color:var(--contour);white-space:nowrap}
.ch2 .chv-lien:hover{text-decoration-color:var(--texte)}
.ch2 .chv-rang{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.ch2 .chv-sec{color:var(--sec)}
.ch2 .chv-note{color:var(--sec);font-size:13px;line-height:1.5}
.ch2 .chv-petit-txt{font-size:13px}
.ch2 .chv-barre{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.ch2 .chv-cherche{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:1px solid var(--filet);border-radius:8px;background:var(--carte);color:var(--sec);min-width:240px}
.ch2 .chv-cherche input{flex:1;min-width:0;background:transparent;border:0;outline:0;color:var(--texte);padding:8px 0}
.ch2 .chv-cherche-large{min-width:320px}
.ch2 .chv-filtre{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 4px 0 12px;border:1px solid var(--filet);border-radius:8px;color:var(--sec);font-size:14px}
.ch2 .chv-filtre select{background:transparent;border:0;color:var(--texte);font-weight:500;padding:8px 8px 8px 0;outline:0}
.ch2 .chv-filtre select option{background:var(--carte);color:var(--texte)}
.ch2 .chv-filtre-mini{min-height:34px;font-size:13px}
.ch2 .chv-lecture{padding:14px 16px;border:1px solid var(--filet);border-radius:10px;color:var(--sec);display:flex;align-items:center;justify-content:space-between;gap:16px}
.ch2 .chv-lecture.chv-echec{border-color:var(--contour);color:var(--texte)}
.ch2 .chv-vide{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:48px 24px;color:var(--sec);max-width:560px;margin:0 auto}
.ch2 .chv-vide b{color:var(--texte)}
.ch2 .chv-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:16px}
.ch2 .chv-grille-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.ch2 .chv-deux{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}
.ch2 .chv-pile{display:flex;flex-direction:column;gap:16px}
.ch2 .chv-table{display:flex;flex-direction:column;border-top:1px solid var(--filet)}
.ch2 .chv-ligne{display:flex;align-items:center;gap:16px;padding:14px 4px;border-bottom:1px solid var(--filet);min-height:60px}
.ch2 .chv-ligne time{color:var(--sec);font-size:13px;white-space:nowrap;min-width:110px}
.ch2 .chv-ligne-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ch2 .chv-ligne-txt small{color:var(--sec);font-size:13px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 6px}
.ch2 .chv-ligne-txt small .chv-valeur{margin:0}
.ch2 .chv-ligne.chv-annule{opacity:.6}
.ch2 .chv-ligne-geste,.ch2 .chv-ligne-reglage{flex-wrap:wrap}
.ch2 .chv-etiquette{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid var(--contour);border-radius:4px;font-size:12px;font-weight:500;color:var(--texte);white-space:nowrap}
.ch2 .chv-etiquette-b:hover{background:var(--actif)}
.ch2 .chv-badge{display:inline-flex;align-self:flex-start;padding:2px 8px;border-radius:4px;background:var(--texte);color:var(--page);font-size:12px;font-weight:600;margin-bottom:6px}
.ch2 .chv-pastille{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--contour);font-size:13px;font-weight:600;flex:none}
.ch2 .chv-segmente{display:inline-flex;border:1px solid var(--filet);border-radius:8px;padding:3px;gap:2px;flex-wrap:wrap}
.ch2 .chv-segmente button{min-height:34px;padding:4px 12px;border-radius:6px;color:var(--sec);font-size:14px;font-weight:500;transition:background 160ms var(--courbe),color 160ms}
.ch2 .chv-segmente button:hover{color:var(--texte)}
.ch2 .chv-segmente button.chv-actif{background:var(--actif);color:var(--texte)}
.ch2 .chv-chiffres{display:grid;grid-template-columns:1fr auto;gap:6px 16px;font-size:14px}
.ch2 .chv-chiffres dt{color:var(--sec)}
.ch2 .chv-chiffres dd{text-align:right;font-weight:500}
.ch2 .chv-ajout{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ch2 .chv-ajout .chv-champ{flex:1;min-width:220px}

/* l'édition sur place */
.ch2 .chv-valeur{display:inline-flex;align-items:baseline;gap:8px;text-align:left;max-width:100%;white-space:normal;overflow-wrap:anywhere;border-radius:6px;padding:2px 4px;margin:-2px -4px;transition:background 160ms var(--courbe)}
.ch2 .chv-valeur:hover{background:var(--actif)}
.ch2 .chv-valeur-ico{color:var(--sec);opacity:.8;align-self:center}
.ch2 .chv-valeur.chv-vide{color:var(--sec);font-style:italic;padding:2px 4px;display:inline-flex}
.ch2 .chv-edite{display:flex;flex-direction:column;gap:6px;width:100%}
.ch2 .chv-edite-aide{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--sec)}
.ch2 .chv-edite-boutons{display:flex;gap:10px;align-items:center}
.ch2 .chv-champ{width:100%;min-height:40px;padding:9px 12px;border:1px solid var(--contour);border-radius:5px;background:var(--page);color:var(--texte);outline:0;resize:vertical}
.ch2 .chv-champ:focus{border-color:var(--texte)}
.ch2 .chv-verif{font-size:13px;color:var(--texte);min-height:0}
.ch2 .chv-verif:empty{display:none}
.ch2 .chv-champ-ligne{display:grid;grid-template-columns:110px 1fr;gap:10px;align-items:start}
.ch2 .chv-champ-ligne > span{color:var(--sec);font-size:13px;padding-top:10px}

/* le fil : trois colonnes */
.ch2 .chv-trois{display:grid;grid-template-columns:300px minmax(0,1fr) 400px;height:100%;min-height:0}
.ch2 .chv-trois.chv-sans-panneau{grid-template-columns:300px minmax(0,1fr)}
.ch2 .chv-gauche{display:flex;flex-direction:column;gap:14px;padding:16px;border-right:1px solid var(--filet);background:var(--coque);overflow-y:auto;min-height:0}
.ch2 .chv-fransou{display:flex;align-items:center;gap:12px;padding:14px;border-radius:10px;background:var(--actif)}
.ch2 .chv-fransou small,.ch2 .chv-qui small{display:block;color:var(--sec);font-size:13px}
.ch2 .chv-sujets{display:flex;flex-direction:column;gap:2px}
.ch2 .chv-sujet{display:flex;align-items:center;gap:12px;min-height:38px;padding:0 10px;border-radius:8px;color:var(--sec);font-weight:500;transition:background 160ms var(--courbe),color 160ms}
.ch2 .chv-sujet span{flex:1}
.ch2 .chv-sujet:hover{color:var(--texte)}
.ch2 .chv-sujet.chv-actif{background:var(--actif);color:var(--texte)}
.ch2 .chv-reperes{display:flex;flex-direction:column;gap:2px}
.ch2 .chv-repere{display:flex;flex-direction:column;gap:6px;padding:10px;border-radius:8px}
.ch2 .chv-repere:hover{background:var(--actif)}
.ch2 .chv-repere-l1{display:flex;justify-content:space-between;gap:10px;font-size:14px}
.ch2 .chv-repere-l1 time{color:var(--sec);font-size:12px;white-space:nowrap}
.ch2 .chv-centre{display:grid;grid-template-rows:auto auto 1fr auto;min-height:0;min-width:0}
.ch2 .chv-centre-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 28px;flex-wrap:wrap}
.ch2 .chv-qui{display:flex;align-items:center;gap:12px}
.ch2 .chv-onglet-mini{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border-radius:8px;color:var(--sec);font-size:14px;font-weight:500}
.ch2 .chv-onglet-mini:hover{color:var(--texte)}
.ch2 .chv-onglet-mini.chv-actif{background:var(--actif);color:var(--texte)}
.ch2 .chv-sujets-onglets{display:flex;flex-wrap:wrap;gap:8px;padding:0 28px 12px;border-bottom:1px solid var(--filet)}
.ch2 .chv-puce{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border:1px solid var(--filet);border-radius:17px;color:var(--sec);font-size:14px;font-weight:500;white-space:nowrap;transition:background 160ms var(--courbe),color 160ms}
.ch2 .chv-puce:hover{color:var(--texte)}
.ch2 .chv-puce.chv-actif{background:var(--texte);color:var(--page);border-color:var(--texte)}
.ch2 .chv-puce.chv-actif .chv-n-doux{color:var(--page);border-color:var(--page)}
.ch2 .chv-puce select{background:transparent;border:0;color:var(--texte);font-weight:500;outline:0}
.ch2 .chv-puce select option{background:var(--carte);color:var(--texte)}
.ch2 .chv-defile{overflow-y:auto;min-height:0;overscroll-behavior:contain}
.ch2 .chv-colonne{max-width:760px;margin:0 auto;padding:12px 28px 24px;display:flex;flex-direction:column;gap:18px}
.ch2 .chv-colonne-page{padding:0;max-width:820px;margin:0}
.ch2 .chv-jour{display:flex;justify-content:center;margin:6px 0}
.ch2 .chv-jour span{font-size:12px;color:var(--sec);padding:3px 12px;border-radius:12px;background:var(--actif)}
.ch2 .chv-msg{display:flex;flex-direction:column;gap:8px;animation:chv-monte 220ms var(--courbe)}
.ch2[data-ch-densite="compacte"] .chv-colonne{gap:10px}
.ch2 .chv-msg-tete{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}
.ch2 .chv-msg-tete time{color:var(--sec);font-size:13px}
.ch2 .chv-msg-corps{display:flex;flex-direction:column;gap:10px;font-size:16px;line-height:1.6;padding-left:38px;overflow-wrap:anywhere}
.ch2 .chv-msg-v{align-items:flex-end}
.ch2 .chv-msg-v .chv-msg-corps{padding:14px 18px;border-radius:12px;background:var(--actif);max-width:86%}
.ch2 .chv-msg-part{opacity:.75}
.ch2 .chv-liste{display:flex;flex-direction:column;gap:4px;padding-left:18px;list-style:disc}
.ch2 .chv-liste li{list-style:disc}
.ch2 .chv-actions{display:flex;flex-wrap:wrap;gap:4px;padding-left:38px}
.ch2 .chv-msg-v .chv-actions{padding-left:0}
.ch2 .chv-action{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:0 8px;border-radius:6px;color:var(--sec);font-size:13px;font-weight:500;transition:background 160ms var(--courbe),color 160ms}
.ch2 .chv-action:hover,.ch2 .chv-action.chv-actif{background:var(--actif);color:var(--texte)}
.ch2 .chv-menu{display:flex;flex-wrap:wrap;gap:6px;padding:8px;margin-left:38px;border:1px solid var(--filet);border-radius:10px;background:var(--carte)}
.ch2 .chv-menu button{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 10px;border-radius:6px;font-size:14px}
.ch2 .chv-menu button:hover,.ch2 .chv-menu button[aria-checked="true"]{background:var(--actif)}
.ch2 .chv-epingle{color:var(--sec)}
.ch2 .chv-correction{margin-left:38px;padding:12px 14px;border:1px dashed var(--contour);border-radius:10px;display:flex;flex-direction:column;gap:6px;font-size:15px}
.ch2 .chv-pense{display:flex;gap:6px;padding-left:38px}
.ch2 .chv-pense i{width:7px;height:7px;border-radius:50%;background:var(--sec);animation:chv-point 1.2s infinite}
.ch2 .chv-pense i:nth-child(2){animation-delay:.15s}.ch2 .chv-pense i:nth-child(3){animation-delay:.3s}
.ch2 .chv-gestes{margin-left:38px;border:1px solid var(--filet);border-radius:10px;overflow:hidden}
.ch2 .chv-gestes-tete{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--filet);background:var(--carte)}
.ch2 .chv-geste{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--filet)}
.ch2 .chv-geste:last-child{border-bottom:0}
.ch2 .chv-geste-txt{flex:1;display:flex;flex-direction:column}
.ch2 .chv-geste-txt small{color:var(--sec);font-size:13px}
.ch2 .chv-choix{margin-left:38px;display:flex;flex-direction:column;gap:10px;padding:14px 16px;border:1px solid var(--contour);border-radius:10px}
.ch2 .chv-refus{margin-left:38px;display:flex;align-items:center;gap:8px;color:var(--sec);font-size:13px}
.ch2 .chv-echec-msg{padding:14px 16px;border:1px solid var(--contour);border-radius:10px;display:flex;flex-direction:column;gap:8px}
.ch2 .chv-plus-ancien{align-self:center}

/* tâches longues : progression segmentée (charte p. 22) */
.ch2 .chv-progression{display:flex;gap:6px}.ch2 .chv-progression i{flex:1;height:4px;border-radius:2px;background:var(--filet)}.ch2 .chv-progression i.chv-fait-i{background:var(--texte)}
.ch2 .chv-etapes{display:flex;flex-direction:column;border-top:1px solid var(--filet)}.ch2 .chv-etape{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--filet)}

/* le conseil de Fransou au dirigeant, à part de la réponse */
.ch2 .chv-conseil{padding:12px 14px;border-left:2px solid var(--contour);color:var(--sec);font-size:14px}
.ch2 .chv-conseil b{color:var(--texte);font-weight:500}

/* trouvé pour vous */
.ch2 .chv-trouve{display:flex;flex-direction:column;gap:12px}

/* les cartes */
.ch2 .chv-carte{display:flex;flex-direction:column;gap:12px;padding:18px 20px;border:1px solid var(--filet);border-radius:10px;background:var(--carte)}
.ch2 .chv-msg .chv-carte{margin-left:38px}
.ch2 .chv-carte-tete{display:flex;align-items:center;gap:10px}
.ch2 .chv-carte-tete small{display:block;color:var(--sec);font-size:13px}
.ch2 .chv-carte-attend{border-color:var(--contour)}
.ch2 .chv-carte-avant{background:var(--avant);color:var(--avant-texte);border-color:var(--avant)}
.ch2 .chv-carte-avant .chv-sec,.ch2 .chv-carte-avant .chv-sur,.ch2 .chv-carte-avant dt{color:var(--avant-sec)}
.ch2 .chv-carte-avant .chv-bouton{border-color:var(--avant-sec)}
.ch2 .chv-carte-avant .chv-bouton:hover{background:transparent;opacity:.85}
.ch2 .chv-carte-avant .chv-plein{background:var(--avant-texte);color:var(--avant)}
.ch2 .chv-carte-lignes{display:grid;grid-template-columns:110px 1fr;gap:8px 16px;border-top:1px solid var(--filet);padding-top:12px;font-size:15px}
.ch2 .chv-carte-avant .chv-carte-lignes{border-color:var(--avant-filet)}
.ch2 .chv-carte-lignes dt{color:var(--sec)}
.ch2 .chv-carte-edite{display:flex;flex-direction:column;gap:10px}
.ch2 .chv-preuve{display:flex;align-items:center;gap:8px;font-size:14px}
.ch2 .chv-carte-sujet .chv-rang{margin-top:auto}

/* la saisie */
.ch2 .chv-compose{padding:10px 28px 14px;display:flex;flex-direction:column;gap:8px;max-width:820px;width:100%;margin:0 auto}
.ch2 .chv-compose-boite{border:1px solid var(--contour);border-radius:12px;background:var(--carte);padding:12px 14px 10px;display:flex;flex-direction:column;gap:8px;transition:border-color 160ms}
.ch2 .chv-compose-boite:focus-within{border-color:var(--texte)}
.ch2 .chv-saisie{width:100%;border:0;outline:0;background:transparent;color:var(--texte);resize:none;font-size:16px;line-height:1.5;min-height:28px;max-height:220px}
.ch2 .chv-saisie::placeholder{color:var(--sec)}
.ch2 .chv-compose-bas{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ch2 .chv-compose-bas .chv-sec{font-size:13px}
.ch2 .chv-envoi{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:8px;border:1px solid var(--contour);transition:background 160ms var(--courbe),transform 140ms var(--courbe)}
.ch2 .chv-envoi:hover{background:var(--actif)}
.ch2 .chv-envoi:active{transform:scale(.95)}
.ch2 .chv-arret{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 12px;border-radius:8px;border:1px solid var(--texte);font-weight:600;margin-left:auto}
.ch2 .chv-arret + .chv-envoi{margin-left:0}
.ch2 .chv-compose-aide{text-align:center;color:var(--sec);font-size:12px}
.ch2 .chv-attente-liste{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px dashed var(--contour);border-radius:10px}
.ch2 .chv-attend{display:flex;align-items:center;gap:8px}
.ch2 .chv-attend > .chv-valeur,.ch2 .chv-attend > .chv-edite{flex:1}

/* le panneau de droite */
.ch2 .chv-droite{display:flex;flex-direction:column;gap:12px;padding:16px 20px;border-left:1px solid var(--filet);background:var(--coque);overflow-y:auto;min-height:0}
.ch2 .chv-droite-tete{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;padding-bottom:8px}
.ch2 .chv-droite-tete small{display:block;color:var(--sec);font-size:13px}
.ch2 .chv-decide{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:10px;background:var(--actif);transition:transform 140ms var(--courbe)}
.ch2 .chv-decide:hover{transform:translateY(-1px)}
.ch2 .chv-decide small{display:flex;align-items:center;gap:6px;color:var(--sec);font-size:13px}
.ch2 .chv-decide .chv-sec{font-size:13px}
.ch2 .chv-moment{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--filet);font-size:14px}

/* règles par glisser */
.ch2 .chv-colonne-regle{display:flex;flex-direction:column;gap:10px;padding:16px;border:1px solid var(--filet);border-radius:10px;min-height:240px;transition:border-color 160ms}
.ch2 .chv-colonne-regle.chv-survol{border-color:var(--texte);border-style:dashed}
.ch2 .chv-regle{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--filet);border-radius:8px;background:var(--carte);cursor:grab}
.ch2 .chv-regle:active{cursor:grabbing}
.ch2 .chv-poignee{color:var(--sec);display:inline-flex}
.ch2 .chv-depose{display:flex;align-items:center;justify-content:center;min-height:60px;border:1px dashed var(--contour);border-radius:8px;color:var(--sec);font-size:13px}
.ch2 .chv-fait{align-items:flex-start}
.ch2 .chv-fait .chv-rang{flex-wrap:nowrap}

/* droits */
.ch2 .chv-droits{width:100%;border-collapse:collapse;font-size:15px}
.ch2 .chv-droits th,.ch2 .chv-droits td{padding:12px 8px;border-bottom:1px solid var(--filet);text-align:center}
.ch2 .chv-droits thead th{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sec);font-weight:500}
.ch2 .chv-droits tbody th{text-align:left;display:flex;flex-direction:column;font-weight:500}
.ch2 .chv-droits tbody th small{color:var(--sec);font-size:13px;font-weight:400}
.ch2 .chv-droits input{width:20px;height:20px;accent-color:var(--texte);cursor:pointer}

/* carte de chaleur */
.ch2 .chv-chaleur{display:flex;flex-direction:column;gap:12px;padding:20px;border:1px solid var(--filet);border-radius:10px}
.ch2 .chv-chaleur-g{display:grid;grid-template-columns:48px repeat(14,minmax(0,1fr));gap:4px;align-items:center}
.ch2 .chv-chaleur-j,.ch2 .chv-chaleur-h{font-size:12px;color:var(--sec);white-space:nowrap}
.ch2 .chv-case{aspect-ratio:1.6;border-radius:4px;border:1px solid var(--filet);background:color-mix(in srgb,var(--d1) calc(var(--n) * 100%),transparent)}
.ch2 .chv-case:hover{outline:2px solid var(--texte)}

/* messages éphémères */
.ch2 .chv-toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:9;display:flex;flex-direction:column;gap:8px;max-width:calc(100vw - 32px)}
.ch2 .chv-toast{display:flex;align-items:center;gap:14px;padding:12px 14px 12px 18px;border-radius:10px;background:var(--plein-fond);color:var(--plein-texte);font-size:14px;animation:chv-monte 220ms var(--courbe)}
.ch2 .chv-toast .chv-lien{text-decoration-color:currentColor}
.ch2 .chv-toast .chv-icone{border:0;color:inherit}

/* téléphone : une colonne, la barre en bas */
@media (max-width:1180px){.ch2 .chv-trois{grid-template-columns:260px minmax(0,1fr)}.ch2 .chv-droite{display:none}.ch2 .chv-grille-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .ch2 .chv-haut{height:56px;padding:0 16px}
  .ch2 .chv-nav{display:none}
  .ch2 .chv-cadre{grid-template-rows:auto 1fr auto}
  .ch2 .chv-bas{display:flex;position:relative;z-index:3;justify-content:space-around;border-top:1px solid var(--filet);background:var(--coque);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}
  .ch2 .chv-bas-a{position:relative;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:60px;min-height:48px;padding:4px;border-radius:8px;color:var(--sec);font-size:12px}
  .ch2 .chv-bas-a.chv-actif{color:var(--texte);background:var(--actif)}
  .ch2 .chv-bas-a .chv-n{position:absolute;top:0;right:6px;height:18px;min-width:18px;font-size:12px}
  .ch2 .chv-bas-menu{position:absolute;right:8px;bottom:64px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--filet);border-radius:10px;background:var(--carte);min-width:200px}
  .ch2 .chv-bas-menu-a{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 12px;border-radius:6px}
  .ch2 .chv-trois,.ch2 .chv-trois.chv-sans-panneau{grid-template-columns:minmax(0,1fr)}
  .ch2 .chv-gauche{display:none}
  .ch2 .chv-centre-tete{padding:10px 16px}
  .ch2 .chv-centre-tete .chv-rang{width:100%}
  .ch2 .chv-sujets-onglets{padding:0 16px 10px}
  .ch2 .chv-colonne{padding:10px 16px 20px}
  .ch2 .chv-msg-corps,.ch2 .chv-actions,.ch2 .chv-gestes,.ch2 .chv-choix,.ch2 .chv-refus,.ch2 .chv-correction,.ch2 .chv-menu,.ch2 .chv-msg .chv-carte,.ch2 .chv-pense{margin-left:0;padding-left:0}
  .ch2 .chv-msg-v .chv-msg-corps{padding:12px 14px;max-width:100%}
  .ch2 .chv-compose{padding:8px 16px 10px}
  .ch2 .chv-compose-aide{display:none}
  .ch2 .chv-page{padding:20px 16px 100px;gap:16px}
  .ch2 .chv-tete{flex-direction:column;align-items:stretch}
  .ch2 .chv-h1{font-size:26px}
  .ch2 .chv-grille,.ch2 .chv-grille-3,.ch2 .chv-deux{grid-template-columns:minmax(0,1fr)}
  .ch2 .chv-cherche,.ch2 .chv-cherche-large{min-width:0;width:100%}
  .ch2 .chv-ligne{flex-wrap:wrap;gap:10px}
  .ch2 .chv-ligne time{min-width:0}
  .ch2 .chv-carte-lignes,.ch2 .chv-champ-ligne{grid-template-columns:minmax(0,1fr)}
  .ch2 .chv-droits{font-size:13px}.ch2 .chv-droits th,.ch2 .chv-droits td{padding:10px 4px}
  .ch2 .chv-chaleur-g{grid-template-columns:36px repeat(14,minmax(0,1fr));gap:2px}
  .ch2 .chv-plein{width:100%}
  .ch2 .chv-fait .chv-ligne-txt{flex:1 1 calc(100% - 40px)}
}
