  /* CHARTE KEDROS, reprise telle quelle du pack d'identite du 13 juin 2026
     (« Identite visuelle Kedros/Lisez-moi - Identite Kedros.md »). Aucune couleur
     n'est inventee : chaque valeur ci-dessous figure au tableau du pack.

       Papier #FBF9F4  Ivoire #F1EEE4  Grege #C9C2AE  Jeune pousse #7C8F5F
       Cedre  #4A5A3F  Cedre profond #3C4A36  Encre #33352B  Creme #EDE6D6

     PLAN DE NAVIGATION (parti pris d'ergonomie du 19 juillet 2026, choix de session,
     revisable) : le partage habituel des logiciels de gestion de dossiers. La barre
     LATERALE porte la hierarchie (le dossier ouvert et ses rubriques : vue d'ensemble,
     pieces, parties et bien, pieces collectees, livrables) ; les ONGLETS en
     haut portent les vues paralleles d'une meme rubrique ; les blocs longs sont des
     ACCORDEONS replies par defaut. Tout est atteignable au clavier.

     SEULE EXCEPTION a la charte, signalee : la terre brulee d'alerte est un choix de
     session (le pack regit la marque, pas les etats d'une interface). */
  :root{
    --papier:#FBF9F4; --ivoire:#F1EEE4; --grege:#C9C2AE; --pousse:#7C8F5F;
    --cedre:#4A5A3F; --cedre-profond:#3C4A36; --encre:#33352B; --creme:#EDE6D6;

    --fond:var(--ivoire); --blanc:var(--papier); --trait:var(--grege);
    --accent:var(--cedre-profond); --accent-clair:var(--creme);
    --doux:var(--cedre); --vert:var(--pousse); --alerte:#8C3A22; --ambre:#8a5a00; --or:#b07d23;
    --etat-confirme-fond:#EEF3E8; --etat-confirme-texte:#3F5A2E;
    --etat-propose-fond:#E6EEF1; --etat-propose-texte:#2F4A7A;
    --etat-verifier-fond:#F6EEDA; --etat-verifier-texte:#8A5A00;
    --etat-bloquant-fond:#FDEEEB; --etat-bloquant-texte:#8C3A22;
    --etat-manquant-fond:#F3E3C8; --etat-manquant-texte:#6B503A;
    --etat-neutre-fond:#F4F1EA; --etat-neutre-texte:#666666;
    --action-payante-fond:#EFC554; --action-payante-texte:#3A2A08;
    --ombre:0 1px 2px rgba(60,74,54,.06), 0 8px 26px rgba(60,74,54,.07);
    --rayon:12px;

    /* L'ECHELLE TYPOGRAPHIQUE : QUATRE DEGRES, ET PAS UN DE PLUS (P12 du
       contre-audit du 2 aout 2026). Les tailles ont ete MESUREES a l'ecran : douze
       tailles differentes coexistaient (26, 16, 15, 14.5, 14.4, 13.5, 13, 12.4, 11,
       11.52 px...), et les plus petites etaient deja trop petites. Le probleme
       n'etait pas que les polices soient trop grandes : c'est qu'il y en avait
       douze. La densite vient du calme, pas de la petitesse.
       Un degre ne s'ajoute pas : une taille neuve se replie sur l'un des quatre. */
    --t-titre:20px;     /* titres de vue et de carte */
    --t-corps:15px;     /* tout le texte courant */
    --t-appui:13px;     /* tableaux denses, bandeau, boutons */
    --t-mention:12px;   /* mentions discretes (.sous) : discretes par la COULEUR */
    /* La classe .sous portait les phrases de doctrine, ce que Kedros a de plus
       important a dire, en 11,5 px GRAISSE 300 sur fond beige : le texte le moins
       lisible de l'ecran. Elle reste discrete, mais par sa couleur, jamais par sa
       maigreur : la graisse remonte a 400 et ne redescend plus. */
    --g-mention:400;
    /* LA PROSE N'EST PLUS BORNEE (decision de Flore, 13 aout 2026 : « ne limite
       jamais a 80 caracteres, exploite la largeur de chaque carte »). La borne de
       78 ch etait un choix de session (P12 du contre-audit du 2 aout) : abrogee.
       C'est la carte qui borne son texte, pas une colonne de caracteres. */
  }
  *{box-sizing:border-box}
  body{margin:0;font:15px/1.6 Arial,"Helvetica Neue",sans-serif;
       color:var(--encre);background:var(--fond)}
  h1,h2,h3{font-family:Arial,"Helvetica Neue",sans-serif;
           font-weight:800;letter-spacing:-.025em}

  .entete{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:18px;
          padding:10px 22px;background:linear-gradient(180deg,#3C4A36,#2c3729);
          color:var(--creme);border-bottom:1px solid #222a20}
  .marque{display:flex;align-items:center;gap:10px;font-size:var(--t-titre);font-weight:300;
          letter-spacing:.14em;color:var(--creme);flex:none}
  .marque svg{width:30px;height:30px;flex:0 0 auto}
  .ariane{display:flex;align-items:center;gap:9px;font-size:var(--t-appui);color:#c3c8b5;
          border-left:1px solid rgba(237,230,214,.20);padding-left:18px;min-width:0}
  .ariane .courant{color:var(--creme);font-weight:600;white-space:normal;
                   overflow:visible;max-width:none}
  .entete-droite{margin-left:auto;display:flex;align-items:center;gap:12px;flex:none}
  .etude{color:#c3c8b5;font-size:var(--t-mention);text-align:right;line-height:1.35}
  .etude #nom-etude{color:var(--creme)}
  .entete button{background:transparent;border:1px solid rgba(237,230,214,.28);
                 color:var(--creme);border-radius:8px;padding:7px 12px;font-size:var(--t-appui)}
  .entete button:hover{background:rgba(237,230,214,.12)}

  .corps{display:grid;grid-template-columns:290px 1fr;gap:20px;padding:20px;
         max-width:1760px;margin:0 auto;align-items:start}
  @media(max-width:980px){.corps{grid-template-columns:1fr}}
  /* B6 (audit du 24 juillet 2026) : la fiche en vue globale. Parties, intervenants et
     bien tiennent ensemble en tete, en colonnes, la largeur exploitee ; le detail et la
     confirmation restent dessous. */
  .fiche-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:18px}
  @media(max-width:1100px){.fiche-cols{grid-template-columns:1fr}}
  .fiche-cols .col-fiche{background:var(--blanc);border:1px solid var(--trait);border-radius:12px;padding:14px;min-width:0}
  .fiche-cols .col-fiche h3{margin:0 0 2px;font-size:var(--t-corps)}
  .fiche-cols .col-fiche .hint{font-size:var(--t-mention);color:var(--doux);margin:0 0 10px}
  .mini-entite{border:1px solid var(--trait);border-radius:9px;padding:8px 10px;margin-bottom:8px;background:var(--papier)}
  .mini-entite .role{font-size:var(--t-mention);letter-spacing:.4px;text-transform:uppercase;color:var(--accent);font-weight:700}
  .mini-entite .nom{font-weight:600;word-break:break-word}
  .mini-entite .meta{font-size:var(--t-appui);color:var(--doux)}
  .bien-ligne{display:flex;justify-content:space-between;gap:10px;padding:4px 0;border-bottom:1px dotted var(--trait);font-size:var(--t-appui)}
  .bien-ligne .k{color:var(--doux)}
  .bien-ligne b{word-break:break-word;text-align:right}
  .colonne{min-width:0}
  .surtitre{font-size:var(--t-mention);letter-spacing:.14em;text-transform:uppercase;
            color:var(--doux);font-weight:700;margin:0 2px 10px}

  .carte{background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);
         padding:20px;margin-bottom:18px;box-shadow:var(--ombre)}
  .rail{background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);
        padding:14px;box-shadow:var(--ombre);position:sticky;top:78px}
  h2{font-size:var(--t-titre);margin:0 0 4px}
  /* LA CLASSE QUI PORTE LES PHRASES DE DOCTRINE (P12 du contre-audit du 2 aout
     2026). Mesuree a 11,52 px en graisse 300 sur fond beige : le texte le MOINS
     lisible de l'ecran, alors qu'il porte ce que Kedros a de plus important a dire.
     Elle reste discrete, mais par sa COULEUR, jamais par sa maigreur. Sa prose
     EXPLOITE LA LARGEUR DE SA CARTE (decision de Flore, 13 aout 2026 : « ne limite
     jamais a 80 caracteres ») : aucune borne de colonne, c'est la carte qui borne. */
  .sous{color:var(--doux);font-size:var(--t-mention);font-weight:var(--g-mention);
        line-height:1.5;margin:0 0 16px}
  /* Dans une cellule, une grille ou un pied de carte, .sous suit son contenant. */
  td .sous,th .sous,.cd-corps .sous,.cd-manque .sous,.grille .sous,
  .rv-bloc .sous,.rv-abord .sous,.rv-piece-rang .sous{margin:0}
  /* Un tableau dans un bloc .sous prend la pleine largeur de la carte (constat de
     Flore du 3 aout 2026 sur le suivi des demandes de l'agent du poste). */
  .sous table{min-width:100%}

  /* LA BARRE LATERALE DES RUBRIQUES : la hierarchie du dossier. */
  .nav-rubriques{list-style:none;margin:0 0 14px;padding:0}
  .nav-rubriques li{margin-bottom:4px}
  .nav-rubriques button{display:flex;width:100%;text-align:left;background:transparent;
    color:var(--encre);border:1px solid transparent;border-radius:8px;padding:9px 12px;
    font-size:var(--t-appui);cursor:pointer;align-items:center;gap:9px;justify-content:space-between}
  .nav-rubriques button:hover{background:var(--accent-clair);filter:none}
  .nav-rubriques button[aria-current="true"]{background:var(--accent-clair);
    border-color:var(--pousse);font-weight:600;color:var(--accent)}
  .nav-rubriques .badge{font-size:var(--t-mention);background:var(--ivoire);border:1px solid var(--trait);
    border-radius:20px;padding:1px 8px;color:var(--doux);font-weight:600}

  label{display:block;font-size:var(--t-mention);color:var(--doux);margin:12px 0 5px}
  input[type=text],input[type=email],input[type=password],textarea{
    width:100%;padding:9px 12px;border:1px solid var(--trait);border-radius:8px;
    font-size:var(--t-appui);font-family:inherit;background:var(--blanc);color:var(--encre)}
  input:focus,textarea:focus{outline:2px solid var(--pousse);outline-offset:1px;
    border-color:var(--accent)}
  button{background:var(--accent);color:var(--creme);border:0;border-radius:8px;
         padding:9px 16px;font-size:var(--t-appui);font-family:inherit;cursor:pointer}
  button:hover{filter:brightness(1.1)}
  button:focus-visible{outline:2px solid var(--pousse);outline-offset:2px}
  button.discret{background:transparent;color:var(--accent);border:1px solid var(--trait)}
  button.discret:hover{background:var(--accent-clair);filter:none}
  button.consultation{background:transparent;color:var(--accent);border:1px solid transparent}
  button.production-kedros{background:var(--cedre);color:var(--creme)}
  button.production-kedros::before{content:"✦ ";font-weight:700}
  button.engageant{background:var(--etat-verifier-fond);color:var(--etat-verifier-texte);border:1px solid var(--etat-verifier-texte)}
  button.payant{background:var(--action-payante-fond);color:var(--action-payante-texte);border:1px solid var(--action-payante-texte)}
  button.payant::before{content:"€ ";font-weight:700}
  button.destructif{background:var(--alerte);color:#fff;border:1px solid var(--alerte)}
  button.destructif::before{content:"⚠ ";font-weight:700}
  button.retrait-reversible::before{content:"↶ ";font-weight:700}
  button:disabled{opacity:1;color:var(--doux);background:var(--ivoire);border-color:var(--trait);cursor:default;filter:none}

  table{width:100%;border-collapse:collapse;margin-top:6px}
  th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--trait);font-size:var(--t-appui)}
  /* L'EN-TETE DE COLONNE redevient lisible sans cesser d'etre secondaire (P12 du
     contre-audit du 2 aout 2026 : mesure a 11 px, sous le plancher de lisibilite).
     Il tient sa discretion de ses CAPITALES espacees et de sa couleur douce. */
  th{font-size:var(--t-mention);text-transform:uppercase;letter-spacing:.8px;
     color:var(--doux);font-weight:700;padding-top:6px;padding-bottom:6px}
  td{padding-top:5px;padding-bottom:5px}
  tr.cliquable{cursor:pointer}
  tr.cliquable:hover{background:var(--accent-clair)}
  tr.actif{background:var(--accent-clair);box-shadow:inset 3px 0 0 var(--pousse)}
  .vide{color:var(--doux);font-style:italic;padding:14px 0;font-size:var(--t-appui)}

  .msg{padding:11px 14px;border-radius:8px;margin:12px 0;font-size:var(--t-appui);display:none}
  .msg.erreur{background:#fdeeeb;color:var(--alerte);display:block;
              border:1px solid rgba(140,58,34,.25)}
  .msg.ok{background:#eef3e8;color:#3f5a2e;display:block;
          border:1px solid rgba(124,143,95,.35)}
  /* LA VARIANTE NEUTRE (24 août 2026). Un état qui n'est ni un succès ni une erreur
     (« Kedros recherche les modèles… », « 43 destinataires connus », « traitement de
     12 alertes… ») n'avait aucune classe visible : les modules écrivaient donc
     `className = "msg "` et le message existait sans jamais s'afficher. Une progression
     qu'on n'a pas prévu de peindre est une progression qu'on ne voit pas. */
  .msg.info{background:#eef1f5;color:#31455e;display:block;
            border:1px solid rgba(49,69,94,.22);white-space:pre-line}
  /* L'ÉTAT DE L'ATELIER DE COURRIER EST UNE RÉGION VIVANTE (aria-live). Elle reste
     RENDUE même sans message : un élément en display:none sort de l'arbre
     d'accessibilité, et l'annonce ne part alors jamais. Sans classe d'état, elle
     n'occupe aucune place et ne peint rien. */
  #courrier-papier-etat{display:block}
  #courrier-papier-etat:not(.ok):not(.erreur):not(.info){
    margin:0;padding:0;border:0;background:none}

  .depose{border:2px dashed var(--trait);border-radius:10px;padding:24px;text-align:center;
          color:var(--doux);cursor:pointer;transition:.15s;font-size:var(--t-appui)}
  .depose:hover,.depose.survol{border-color:var(--pousse);background:var(--accent-clair);
                               color:var(--accent)}
  .cadenas{font-size:var(--t-mention);color:var(--vert)}
  .connexion{max-width:400px;margin:9vh auto}

  /* LES ONGLETS : des vues paralleles d'une meme rubrique, mutuellement exclusives. */
  .onglets{display:flex;gap:4px;border-bottom:2px solid var(--trait);margin-bottom:16px}
  .onglets button{background:transparent;color:var(--doux);border:0;border-radius:8px 8px 0 0;
    padding:9px 16px;font-size:var(--t-appui);margin-bottom:-2px;border-bottom:2px solid transparent}
  .onglets button:hover{background:var(--accent-clair);filter:none;color:var(--accent)}
  .onglets button[aria-selected="true"]{color:var(--accent);font-weight:600;
    border-bottom-color:var(--pousse)}

  /* LE SOMMAIRE ANCRE de la vue d'ensemble (retour de Flore du 20 juillet 2026 : les
     productions s'empilent sur une page a defilement long, l'oeil se perd). Une rangee
     de reperes COLLEE en tete de colonne : un clic mene a la carte, rien n'est
     retranche. */
  .sommaire-ensemble{position:sticky;top:0;z-index:5;background:var(--fond);
    padding:8px 0 10px;margin:0 0 4px;display:flex;flex-wrap:wrap;gap:6px}
  .sommaire-ensemble button{font-size:var(--t-mention);padding:4px 10px;border-radius:20px;
    background:var(--blanc);border:1px solid var(--trait);color:var(--accent)}
  .sommaire-ensemble button:hover{border-color:var(--pousse)}

  /* L'ACCORDEON : divulgation progressive, replie par defaut. */
  details.pli{border:1px solid var(--trait);border-radius:9px;margin:10px 0;
    background:var(--blanc)}
  details.pli>summary{cursor:pointer;padding:11px 14px;font-size:var(--t-appui);font-weight:600;
    color:var(--accent);list-style-position:inside}
  details.pli>summary:focus-visible{outline:2px solid var(--pousse);outline-offset:2px}
  details.pli>.pli-corps{padding:4px 14px 14px;border-top:1px solid var(--trait)}
  details.pli>summary .pli-detail{font-weight:400;color:var(--doux);font-size:var(--t-mention)}

  .fil{background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);
       padding:16px 18px;margin-bottom:18px;box-shadow:var(--ombre)}
  .etapes{list-style:none;display:flex;gap:6px;margin:0;padding:0;flex-wrap:wrap}
  .etape{display:flex;align-items:center;gap:9px;padding:8px 12px;border-radius:9px;
         font-size:var(--t-appui);color:var(--doux);border:1px solid transparent;flex:1;min-width:170px}
  .etape .pastille{width:23px;height:23px;flex:none;border-radius:50%;display:grid;
                   place-items:center;font-size:var(--t-mention);font-weight:700;
                   background:var(--ivoire);color:var(--doux);border:1px solid var(--trait)}
  .etape .nom{font-weight:600;color:var(--encre);line-height:1.25}
  .etape .detail{display:block;font-weight:400;font-size:var(--t-mention);color:var(--doux)}
  .etape.fait .pastille{background:var(--etat-confirme-fond);color:var(--etat-confirme-texte);border-color:var(--etat-confirme-texte)}
  .etape.courant{background:var(--accent-clair);border-color:var(--pousse)}
  .etape.courant .pastille{background:var(--accent);color:var(--creme);border-color:var(--accent)}
  .etape.afaire{opacity:.62}
  .etape.inconnu .pastille{background:#fdf6e6;color:var(--ambre);border-color:#e0cfa6}
  .conseil{margin-top:12px;padding:11px 14px;background:var(--accent-clair);
           border-radius:9px;font-size:var(--t-appui);display:flex;align-items:center;gap:12px;
           flex-wrap:wrap}
  .conseil b{color:var(--accent)}
  .conseil button{margin-left:auto;padding:7px 13px;font-size:var(--t-appui)}

  .chargement{display:inline-flex;align-items:center;gap:8px;color:var(--doux);
              font-size:var(--t-appui)}
  .chargement::before{content:"";width:13px;height:13px;border-radius:50%;
    border:2px solid var(--trait);border-top-color:var(--pousse);
    animation:tourne .8s linear infinite}
  @keyframes tourne{to{transform:rotate(360deg)}}
  @media(prefers-reduced-motion:reduce){.chargement::before{animation:none}}

  /* B6 : l'en-tete d'analyse est une BARRE pleine largeur, ancree en tete de la vue,
     jamais flottante au milieu de l'ecran (constat de l'audit). */
  .barre-analyse{display:flex;align-items:center;gap:14px;margin:0 0 16px;flex-wrap:wrap;
    width:100%;border-bottom:1px solid var(--trait);padding-bottom:10px}
  .barre-analyse h2{margin:0}
  .deux-volets{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
  .deux-volets.source-repliee{grid-template-columns:1fr}
  @media(max-width:900px){.deux-volets{grid-template-columns:1fr}}
  .volet{background:var(--blanc);border:1px solid var(--trait);border-radius:var(--rayon);
         padding:18px;max-height:78vh;overflow:auto}
  .volet h3{margin:0 0 10px;font-size:var(--t-corps)}
  .source-texte{white-space:pre-wrap;font:12.5px/1.55 "Cascadia Code",Consolas,monospace;
                color:var(--encre)}
  .source-texte mark{background:#f4e6a8;color:inherit;border-radius:2px}
  .note-texte{white-space:pre-wrap;font:13.5px/1.65 inherit;color:var(--encre);
              max-height:70vh;overflow:auto;border:1px solid var(--trait);
              border-radius:9px;padding:16px;background:var(--blanc)}
  .champ{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--trait)}
  .champ:last-child{border-bottom:0}
  .champ .etiq{font-size:var(--t-mention);color:var(--doux);display:flex;justify-content:space-between;
               align-items:center;margin-bottom:4px;gap:10px}
  .champ input{width:100%}
  .statut{font-size:var(--t-mention);padding:2px 8px;border-radius:20px;font-weight:700;
          white-space:nowrap;border:1px solid currentColor}
  .statut::before{display:inline-block;margin-right:4px;font-weight:700}
  /* 2.2 (arbitrage de Flore, 22 juillet 2026) : « à vérifier » est un registre
     d'attente, pas une erreur. Couleur DOUCE (ambre) ; le rouge (--alerte) reste
     réservé au vrai bloquant. Une pastille « à vérifier » cliquable porte la classe
     .cliquable et se lève d'un clic (voir champEditable). */
  .statut.verifier{background:var(--etat-verifier-fond);color:var(--etat-verifier-texte)}
  .statut.verifier::before{content:"◇"}
  .statut.confirme{background:var(--etat-confirme-fond);color:var(--etat-confirme-texte)}
  .statut.confirme::before{content:"✓"}
  .statut.propose{background:var(--etat-propose-fond);color:var(--etat-propose-texte)}
  .statut.propose::before{content:"✦"}
  .statut.bloquant{background:var(--etat-bloquant-fond);color:var(--etat-bloquant-texte);border-width:2px}
  .statut.bloquant::before{content:"!"}
  .statut.manquant{background:var(--etat-manquant-fond);color:var(--etat-manquant-texte);border-style:dashed}
  .statut.manquant::before{content:"○"}
  .statut.non-applicable{background:var(--etat-neutre-fond);color:var(--etat-neutre-texte)}
  .statut.non-applicable::before{content:"∅"}
  .statut.en-cours{background:var(--creme);color:var(--cedre)}
  .statut.en-cours::before{content:"◌"}
  .statut.cliquable{cursor:pointer}
  .statut.cliquable:hover{filter:brightness(.96)}
  .statut.cliquable:focus-visible{outline:2px solid var(--ambre);outline-offset:1px}
  /* 10 (sprint 10 points de Flore, 22 juillet 2026) : le petit mot d'accueil, discret. */
  .accueil-mot{margin:2px 0 12px;font-size:var(--t-appui);color:var(--doux);font-style:italic}
  .bloc-titre{font-size:var(--t-mention);font-weight:700;text-transform:uppercase;letter-spacing:.7px;
              color:var(--accent);margin:18px 0 8px;padding-top:4px}
  .bloc-titre:first-child{margin-top:0}
  .voir-source{cursor:pointer;color:var(--accent);font-size:var(--t-mention);text-decoration:underline;
               white-space:nowrap}
  .partie-carte{border:1px solid var(--trait);border-radius:9px;padding:12px;margin-bottom:10px}
  .partie-role{font-size:var(--t-mention);font-weight:700;color:var(--accent);text-transform:uppercase;
               letter-spacing:.5px}
  .lot-carte{background:var(--accent-clair);border-radius:9px;padding:10px 12px;
             margin-bottom:8px;font-size:var(--t-appui)}
  .att{background:#fdf0e6;border-left:3px solid var(--alerte);padding:8px 12px;
       border-radius:0 6px 6px 0;font-size:var(--t-appui);margin-bottom:10px;color:var(--encre)}
  .alerte-lcbft{border-radius:9px;padding:14px 16px;margin:12px 0;font-size:var(--t-appui);line-height:1.5}
  .alerte-lcbft.rouge{background:#fdeeeb;border:1px solid var(--alerte);color:var(--alerte)}
  .alerte-lcbft.vert{background:#eef3e8;border:1px solid var(--pousse);color:#3f5a2e}
  .alerte-lcbft.orange{background:#fdf6e6;border:1px solid #c9a227;color:var(--ambre)}
  .alerte-lcbft strong{display:block;font-size:var(--t-corps);margin-bottom:4px}

  .renseignements{display:grid;grid-template-columns:minmax(140px,auto) 1fr;
                  gap:2px 14px;margin:8px 0 0}
  .renseignements dt{font-size:var(--t-mention);color:var(--doux)}
  .renseignements dd{margin:0;font-size:var(--t-appui);color:var(--encre)}
  .tracabilite{font-size:var(--t-mention);color:var(--doux);margin-top:6px;
               word-break:break-word;font-style:italic}
  .bilan{background:var(--accent-clair);border-radius:8px;padding:10px 14px;
         font-size:var(--t-appui);color:var(--encre);margin-top:14px}
  .voie-manuelle{display:flex;align-items:center;gap:16px;flex-wrap:wrap;
                 border-top:1px solid var(--trait);margin-top:18px;padding-top:16px}
  .voie-manuelle > div{flex:1;min-width:240px}
  .pied{color:var(--doux);font-size:var(--t-mention);text-align:center;margin:26px 0 10px;line-height:1.7}
  .cache{display:none}
  /* B9 : l'encart du livrable epingle. Le display vit ici (pas en ligne), pour que la
     classe .cache le ferme toujours (gardien test_conversation). */
  #livrable-epingle{margin:4px 0 14px;background:#eef1e8;border:1px solid #d6ddc7;border-radius:12px;padding:12px 14px}
  #livrable-epingle:not(.cache){display:flex;align-items:center;gap:14px;flex-wrap:wrap}
  #livrable-epingle .tagp-epingle{background:#3d4a2f;color:#fff;border-radius:8px;font-size:var(--t-mention);padding:3px 9px;font-weight:600}
  #livrable-epingle b{color:var(--cedre-profond)}
  #livrable-epingle .act-epingle{margin-left:auto;display:flex;gap:8px}
  /* Les panneaux flottants (Conversation, Clients) : la mise en page flex ne vit PAS en
     style en ligne, sinon elle bat la classe .cache et le panneau devient
     infermable (constaté par Flore le 20 juillet 2026, socle:50). */
  /* LE GRAND ESPACE de l'assistant (retours de Flore des 28 juillet et 31 aout
     2026 : la fenetre etait trop petite pour travailler). Il occupe presque toute la
     surface utile : le fil, les sources et la demande restent lisibles ensemble. Le positionnement vit ICI et
     non en style en ligne : en ligne, il battrait .cache et le panneau ne se
     fermerait plus (defaut du 20 juillet 2026). */
  #panneau-conversation{position:fixed;left:24px;right:24px;top:76px;bottom:18px;
    z-index:85;width:auto;max-width:none}
  #panneau-conversation:not(.cache){display:flex;flex-direction:column}
  #panneau-conversation #conversation-consignes,
  #panneau-conversation #conversation-echanges,
  #panneau-conversation .conversation-saisie{width:min(1100px, 100%);margin-left:auto;
    margin-right:auto;box-sizing:border-box}
  #panneau-conversation #conversation-echanges{font-size:var(--t-corps);line-height:1.55}
  @media(max-width:900px){
    #panneau-conversation{left:8px;right:8px;width:auto;top:64px;bottom:8px}
  }
  /* Le compagnon est une porte supplementaire vers le rail EXISTANT. Les 24
     emplacements restent volontairement techniques tant que la session visuelle
     n'a pas livre le catalogue. Aucun style ne suppose la forme des futurs assets. */
  .compagnon-amorces{display:flex;gap:5px;flex-wrap:wrap;padding:7px 14px 4px;
    border-bottom:1px solid var(--trait)}
  .compagnon-amorces .compagnon-amorce{padding:3px 7px;font-size:var(--t-mention);
    text-align:left}
  .parametres-compagnon{border:1px solid var(--trait);border-radius:10px;
    padding:12px;background:var(--papier,#faf8f2)}
  .parametres-compagnon h2{font-size:var(--t-corps);margin:0 0 4px}
  .parametres-compagnon fieldset{border:0;border-top:1px solid var(--trait);
    margin:12px 0 0;padding:10px 0 0;display:flex;gap:10px;flex-wrap:wrap}
  .parametres-compagnon legend{font-size:var(--t-appui);font-weight:700;
    color:var(--accent);padding:0 6px 0 0}
  .parametres-compagnon label{font-size:var(--t-appui);cursor:pointer}
  .compagnon-choix-speciaux{display:flex;gap:10px;flex-wrap:wrap;width:100%}
  .compagnon-filtre{display:flex;align-items:center;justify-content:space-between;
    gap:10px;width:100%}
  .compagnon-filtre select{max-width:72%;min-width:190px}
  .compagnon-catalogue{display:grid;grid-template-columns:repeat(6,minmax(56px,1fr));
    gap:7px;width:100%}
  .compagnon-option{position:relative;display:flex!important;flex-direction:column;
    align-items:center;gap:3px;min-width:0;padding:7px 4px;border:1px solid var(--trait);
    border-radius:8px;background:var(--blanc);text-align:center}
  .compagnon-option:hover{border-color:var(--pousse)}
  .compagnon-option:has(input:checked){border-color:var(--pousse);
    box-shadow:0 0 0 2px rgba(124,143,95,.2)}
  .compagnon-option:has(input:focus-visible){outline:2px solid var(--pousse);
    outline-offset:2px}
  .compagnon-option>input{position:absolute;top:5px;left:5px;margin:0}
  .compagnon-option-visuel{width:42px;height:42px;display:grid;place-items:center;
    overflow:hidden;border-radius:50%;background:var(--accent-clair);color:var(--accent)}
  .compagnon-rendu-calques{position:relative;display:block;width:100%;height:100%;
    transform-origin:center bottom}
  .compagnon-trame,.compagnon-calque{position:absolute;inset:0;display:block;pointer-events:none}
  .compagnon-trame>img,
  .compagnon-calque>img{display:block;width:100%;height:100%;object-fit:contain}
  .compagnon-calque-saison>img{height:auto}
  @keyframes compagnon-respire{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
  .compagnon-rendu-calques[data-mouvement="normal"]{animation:compagnon-respire 3.2s ease-in-out infinite}
  .compagnon-rendu-calques[data-mouvement="reduit"]{animation:compagnon-respire 7s ease-in-out infinite}
  .compagnon-option-nom{width:100%;overflow:hidden;text-overflow:ellipsis;
    white-space:nowrap;font-size:var(--t-mention);color:var(--doux)}
  .compagnon-repere-technique{font-size:var(--t-mention);font-weight:800;
    font-variant-numeric:tabular-nums}
  .compagnon-soutien{display:flex;align-items:flex-start;gap:7px;margin-top:12px}
  .compagnon-presence{border:1px solid var(--trait)!important;background:var(--blanc)!important;
    color:var(--accent)!important;display:flex;align-items:center;gap:7px;padding:6px 9px!important;
    border-radius:999px!important;box-shadow:var(--ombre);z-index:87;max-width:min(360px,92vw)}
  .compagnon-presence[hidden]{display:none!important}
  body>.compagnon-presence{position:fixed;right:18px;bottom:18px}
  .compagnon-visuel{width:38px;height:38px;display:grid;place-items:center;flex:none;
    overflow:hidden;border-radius:50%;background:var(--accent-clair);transform-origin:center bottom}
  .compagnon-nom{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    font-size:var(--t-mention);font-weight:700}
  .compagnon-activite{position:absolute;right:0;bottom:calc(100% + 7px);width:310px;
    max-width:80vw;padding:8px 10px;border:1px solid var(--trait);border-radius:9px;
    background:var(--blanc);box-shadow:var(--ombre);color:var(--encre);font-size:var(--t-mention);
    font-weight:400;line-height:1.35;text-align:left;pointer-events:none}
  .compagnon-rail-slot{position:relative;display:flex;align-items:center;min-width:0}
  .compagnon-rail-slot .compagnon-presence{position:relative;box-shadow:none;padding:2px!important}
  .compagnon-rail-slot .compagnon-visuel{width:32px;height:32px}
  .compagnon-rail-slot .compagnon-nom{position:absolute;width:1px;height:1px;padding:0;
    margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .compagnon-rail-slot .compagnon-activite{left:0;right:auto;top:calc(100% + 8px);
    bottom:auto}
  .compagnon-mode-discret{opacity:.86}
  .compagnon-mode-concentration,.compagnon-mode-au_dodo,
  .compagnon-mode-ne_pas_deranger{box-shadow:none}
  @media(prefers-reduced-motion:reduce){
    .compagnon-rendu-calques,.compagnon-rendu-calques .compagnon-calque{
      animation:none!important;transform:none!important}}
  @media(forced-colors:active){
    .compagnon-presence,.compagnon-option{forced-color-adjust:auto;border:1px solid ButtonText}}
  @media(max-width:620px){
    .compagnon-catalogue{grid-template-columns:repeat(4,minmax(52px,1fr))}
    .compagnon-nom{display:none}
    .compagnon-activite{width:260px}
    body>.compagnon-presence{right:12px;bottom:12px}}
  #panneau-clients:not(.cache){display:flex;flex-direction:column}
  #panneau-situation:not(.cache){display:flex;flex-direction:column}

/* ---- LA VUE COURRIER (nuit du 29 juillet 2026 : trois volets, densite de
   messagerie, fenetre separee ; les dimensions vivent ICI, jamais en ligne) ---- */
#vue-courrier:not(.cache){display:flex;flex-direction:column;gap:8px;
  padding:12px 16px;height:calc(100vh - 24px);box-sizing:border-box}
body.fenetre-courrier #barre-app{display:none}
#courrier-entete{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#courrier-entete .courrier-outils{margin-left:auto;display:flex;gap:6px;
  align-items:center}
/* Le MENU des outils de reprise (10 aout 2026) : ils servent quelques fois par an,
   ils ne meritent pas huit boutons en ligne devant les yeux tous les jours. */
.courrier-menu{position:relative}
.courrier-menu>summary{list-style:none;cursor:pointer;padding:6px 10px;
  border:1px solid var(--trait);border-radius:8px;font-size:var(--t-appui);
  background:var(--blanc)}
.courrier-menu>summary::-webkit-details-marker{display:none}
.courrier-menu[open]>summary{background:var(--ivoire)}
.courrier-menu-liste{position:absolute;right:0;top:calc(100% + 4px);z-index:20;
  display:flex;flex-direction:column;gap:4px;min-width:280px;padding:8px;
  background:var(--blanc);border:1px solid var(--trait);border-radius:10px;
  box-shadow:var(--ombre)}
.courrier-menu-liste button{text-align:left;white-space:nowrap}
#courrier-reglages{border:1px solid var(--trait);border-radius:10px;
  padding:10px 12px;background:var(--fond, #fafafa)}
#courrier-reglages label{display:flex;gap:6px;align-items:center;margin:4px 0}
#courrier-reglages .courrier-reglages-boutons{display:flex;gap:8px;margin:6px 0}
#courrier-reglages .courrier-reglages-entete{position:sticky;top:-16px;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin:-16px -18px 12px;padding:12px 18px;background:var(--papier);
  border-bottom:1px solid var(--trait)}
/* Le panneau des boites (P6, 9 aout 2026) : une ligne par boite, ses gestes en
   dessous. La mise en page vit ici, jamais en style en ligne. */
#courrier-boites .boite-ligne{border:1px solid var(--trait);border-radius:8px;
  padding:6px 8px;margin:6px 0}
#courrier-boites .boite-gestes{display:flex;flex-wrap:wrap;gap:6px;
  align-items:center;margin-top:4px}
#courrier-boites .boite-gestes input{flex:1;min-width:200px}
#courrier-onglets #courrier-filtre-boite{max-width:180px;margin:4px}
/* Retrouver un mail, et le geste groupe (P5, 10 aout 2026). */
/* Ce que le lecteur a fait : discret quand tout va, souligne d'ocre quand il a ete
   plafonne ou empeche (le silence sur un plafond ressemble a un modele qui echoue). */
#courrier-lecture{flex-basis:100%}
#courrier-lecture.alerte-lecture{border-left:3px solid var(--ocre,#b8860b);
  padding-left:6px}
#courrier-entete .courrier-chercher{display:flex;gap:6px;align-items:center}
#courrier-entete .courrier-chercher input{min-width:200px}
#courrier-groupe{display:flex;flex-wrap:wrap;gap:6px;align-items:center;
  padding:6px 8px;border-bottom:1px solid var(--trait);background:var(--ivoire,#f8f4ea)}
#courrier-groupe.cache{display:none}
.cligne .cligne-case{margin:2px 4px 0 0;flex:0 0 auto}
/* QUATRE volets depuis le P5 (cap Outlook) : dossiers, liste, lecture, actions.
   Le volet des dossiers se replie sous 1100 px : sur un ecran etroit, la liste
   et la lecture priment. */
#courrier-3volets{display:grid;grid-template-columns:minmax(170px, 15%)
  minmax(260px, 26%) 1fr minmax(220px, 22%);gap:10px;flex:1;min-height:0}
@media (max-width: 1100px){
  #courrier-3volets{grid-template-columns:minmax(260px, 30%) 1fr minmax(220px, 24%)}
  #courrier-dossiers{display:none}
}
/* LE VOLET GAUCHE, REPARE le 10 aout 2026 : son texte HERITAIT une couleur claire
   (creme #EDE6D6, mesuree au banc de captures), et les dossiers de Flore etaient
   invisibles sur fond clair. La couleur se pose ICI, explicitement. */
#courrier-dossiers{overflow:auto;border:1px solid var(--trait);border-radius:10px;
  padding:6px;color:var(--encre);background:var(--blanc)}
#courrier-dossiers .cd-groupe{margin-bottom:10px}
#courrier-dossiers .cd-titre{font-size:var(--t-mention);color:var(--doux);
  font-weight:700;padding:2px 4px;overflow:hidden;text-overflow:ellipsis}
#courrier-dossiers .cd-dossier{display:flex;width:100%;gap:6px;align-items:center;
  border:0;background:none;text-align:left;padding:3px 6px;border-radius:6px;
  font-size:var(--t-mention);cursor:pointer;color:var(--encre)}
#courrier-dossiers .cd-dossier:hover{background:var(--ivoire,#f8f4ea)}
#courrier-dossiers .cd-dossier.actif{background:var(--ivoire,#f8f4ea);font-weight:700}
#courrier-dossiers .cd-enfant{padding-left:18px}
#courrier-dossiers .cd-nonlus{margin-left:auto;font-variant-numeric:tabular-nums;
  color:var(--pousse,#4a6741);font-weight:700}
#courrier-nonlus{display:flex;gap:6px;padding:4px 8px;
  border-bottom:1px solid var(--trait)}
#courrier-nonlus.cache{display:none}
#courrier-nonlus button.actif{font-weight:700;text-decoration:underline}
.cjour{padding:4px 8px;font-size:var(--t-mention);color:var(--doux,#666);
  font-weight:700;background:var(--ivoire,#f8f4ea);position:sticky;top:0;z-index:1}
.cligne.nonlu .cligne-2{font-weight:700}
#courrier-liste{display:flex;flex-direction:column;min-height:0;
  border:1px solid var(--trait);border-radius:10px;overflow:hidden}
/* LES ONGLETS, REPARES le 10 aout 2026. Ils etaient en `flex:1` : sept onglets dans
   une colonne de 400 px donnaient des boutons de 55 px de large, ou chaque libelle
   se cassait sur trois lignes et se coupait. Mesure au banc de captures : 55x75 px
   pour << A trancher (59) >>. Desormais ils s'ajustent a leur texte, ne le coupent
   jamais, et passent a la ligne quand il le faut. */
#courrier-onglets{display:flex;flex-wrap:wrap;gap:2px;padding:4px 4px 0;
  border-bottom:1px solid var(--trait)}
#courrier-onglets button{flex:0 0 auto;border:0;background:none;padding:5px 9px;
  font-size:var(--t-mention);cursor:pointer;border-bottom:2px solid transparent;
  white-space:nowrap;color:var(--encre);border-radius:6px 6px 0 0}
#courrier-onglets button:hover{background:var(--ivoire)}
#courrier-onglets button.actif{font-weight:700;border-bottom-color:var(--pousse, #2e7d32)}
/* Le filtre « avec pièces » sur À trancher (décision de Flore du 10 août 2026 au
   soir : cinq onglets, « Pièces à classer » devient ce filtre) : un sous-onglet
   en italique, masqué hors de À trancher. */
#courrier-filtre-pieces{font-style:italic}
#courrier-filtre-pieces.cache{display:none}
/* Glisser-déposer d'un mail vers un dossier de la boîte (le geste d'Outlook) :
   la cible survolée le dit, la ligne saisissable aussi. */
#courrier-dossiers .cd-dossier.cd-depot{outline:2px dashed var(--pousse,#2e7d32);
  outline-offset:-2px;background:var(--ivoire,#f8f4ea)}
.cligne[draggable="true"]{cursor:grab}
#courrier-lignes{flex:1;overflow:auto;outline:none}
#courrier-clavier{margin:4px 8px}
.cligne{display:flex;gap:8px;align-items:flex-start;padding:6px 8px;
  border-bottom:1px solid var(--trait);cursor:pointer;font-size:var(--t-mention)}
.cligne.sel{background:var(--survol, #eef4ee)}
.cligne-corps{flex:1;min-width:0}
.cligne-1{display:flex;justify-content:space-between;gap:8px}
.cligne-de{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cligne-date{color:var(--sous, #777);white-space:nowrap}
.cligne-2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cligne-3{color:var(--sous, #777);font-size:var(--t-mention);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.cpt-rond{width:9px;height:9px;border-radius:50%;margin-top:4px;flex:none}
.cpt-rond.vert{background:#2e7d32}
.cpt-rond.rose{background:#d81b60}
.cpt-rond.gris{background:#9e9e9e}
.cpt-rond.jaune{background:#f9a825}
/* Bleu : la lecture propose d'OUVRIR un dossier (10 aout 2026). Le jaune existant
   sert desormais aussi a dire << ce courriel ne porte sur aucun dossier >>. */
.cpt-rond.bleu{background:#1565c0}
/* 3.5 bis : l'autocompletion de dossier de la page courrier. */
.autoc{position:relative}
.autoc input{width:100%;box-sizing:border-box}
.autoc-liste{position:absolute;left:0;right:0;top:100%;z-index:60;background:var(--blanc,#fff);
  border:1px solid var(--trait,#d8d2c0);border-radius:0 0 8px 8px;max-height:220px;overflow-y:auto}
.autoc-liste div{padding:5px 8px;font-size:var(--t-mention);cursor:pointer}
.autoc-liste div:hover,.autoc-liste div.sel{background:var(--ivoire,#f4efe3)}
#courrier-apercu{border:1px solid var(--trait);border-radius:10px;padding:12px;
  overflow:auto;min-height:0}
#courrier-apercu .apercu-objet{font-weight:700;font-size:var(--t-corps);margin-bottom:2px}
#courrier-apercu .apercu-corps{margin-top:10px;font-size:var(--t-appui);line-height:1.5;
  white-space:pre-wrap}
#courrier-actions{border:1px solid var(--trait);border-radius:10px;padding:12px;
  display:flex;flex-direction:column;gap:8px;align-items:stretch;overflow:auto}
@media(max-width:1000px){#courrier-3volets{grid-template-columns:1fr;
  grid-auto-rows:minmax(160px, auto)}}

/* ---- LE COURRIER COMME FILE DE DECISIONS (23 aout 2026) -----------------------
   Toutes les capacites restent en place. La forme passe de quatre colonnes tassees
   a trois zones : navigation, liste, lecture. Les gestes rejoignent le bas du mail ;
   les reglages techniques deviennent un panneau secondaire. */
#vue-courrier:not(.cache){box-sizing:border-box;gap:0;padding:0;height:calc(100vh - 52px);position:relative;
  background:#F4F6F2}
body:has(#bandeau-mfa) #vue-courrier:not(.cache){height:calc(100vh - 94px)}
@media(max-width:1400px){
  body:has(#bandeau-mfa) #vue-courrier:not(.cache){height:calc(100vh - 131px)}
}
#courrier-entete{display:grid;grid-template-columns:auto auto minmax(280px,560px) 1fr auto;
  grid-template-areas:"retour identite chercher outils fraicheur";
  align-items:center;gap:8px 14px;
  padding:9px 18px;background:var(--papier);border-bottom:1px solid #DDE3DB;
  box-shadow:0 4px 18px rgba(60,74,54,.06);z-index:10}
#btn-courrier-retour{grid-area:retour}
.courrier-identite{grid-area:identite;display:flex;flex-direction:column;min-width:130px;
  line-height:1.2}
.courrier-identite strong{font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:var(--t-titre);color:var(--cedre-profond)}
.courrier-identite>span{font-size:var(--t-mention);color:var(--doux)}
#courrier-entete .courrier-chercher{grid-area:chercher;display:flex;gap:7px;
  align-items:center;min-width:0}
#courrier-entete .courrier-chercher input{width:min(100%,430px);min-width:240px;
  border:1px solid #C9D2C7;border-radius:10px;padding:9px 12px;background:#fff;
  box-shadow:inset 0 1px 2px rgba(60,74,54,.04)}
#courrier-entete .courrier-outils{grid-area:outils;margin-left:auto;display:flex;
  gap:7px;align-items:center}
#courrier-entete>#courrier-fraicheur{grid-area:fraicheur}
#courrier-entete>#courrier-etat,#courrier-entete>#courrier-envoi-etat,
#courrier-entete>#courrier-lecture{display:none}
.courrier-rideau{display:flex;gap:6px;align-items:center;margin:8px 0 12px;
  font-size:var(--t-mention);color:var(--doux);cursor:pointer}
#courrier-entete>#courrier-fraicheur::before{content:"";display:inline-block;width:7px;
  height:7px;border-radius:50%;margin-right:7px;background:#38985A;
  box-shadow:0 0 0 3px #E2F2E7}
#btn-courrier-balayer{background:linear-gradient(135deg,#3F744D,#2F633D);color:#fff;
  border-color:#2F633D;box-shadow:0 5px 14px rgba(47,99,61,.16)}
#courrier-reglages{position:absolute;z-index:40;right:18px;top:58px;
  width:min(680px,calc(100vw - 36px));max-height:calc(100vh - 96px);overflow:auto;
  border:1px solid #CBD5CB;border-radius:14px;padding:16px 18px;
  background:var(--papier);box-shadow:0 20px 60px rgba(35,55,40,.22)}
#courrier-3volets{display:grid;grid-template-columns:minmax(190px,15%)
  minmax(310px,27%) minmax(390px,1fr);grid-template-rows:minmax(0,1fr) auto;
  grid-template-areas:"dossiers liste apercu" "dossiers liste actions";
  gap:0;flex:1;min-height:0;background:var(--papier)}
#courrier-dossiers{grid-area:dossiers;overflow:auto;border:0;border-right:1px solid
  #DDE3DB;border-radius:0;padding:14px 10px;color:var(--encre);background:#F0F4EF}
#courrier-dossiers .cd-titre{font-size:var(--t-mention);color:#718074;
  font-weight:700;padding:2px 8px 6px;overflow:hidden;text-overflow:ellipsis;
  letter-spacing:.07em;text-transform:uppercase}
#courrier-dossiers .cd-dossier{padding:7px 9px;border-radius:9px;
  font-size:var(--t-appui);transition:background .12s}
#courrier-dossiers .cd-dossier:hover{background:#E4ECE3}
#courrier-dossiers .cd-dossier.actif{background:#DCEBDD;font-weight:700;
  box-shadow:inset 3px 0 0 #4A8A59;color:#24452E}
#courrier-dossiers .cd-dossier[data-vue]::before{content:"";width:8px;height:8px;
  flex:0 0 auto;border-radius:50%;background:#9AA69C}
#courrier-dossiers .cd-dossier[data-vue="bac"]::before{background:#C74B73}
#courrier-dossiers .cd-dossier[data-vue="emis"]::before{background:#467EA4}
#courrier-dossiers .cd-dossier[data-vue="hors"]::before{background:#D09A33}
#courrier-dossiers .cd-dossier[data-vue="rattaches"]::before{background:#4A9661}
#courrier-dossiers .cd-dossier[data-vue="brouillons"]::before{background:#7C68A7}
#courrier-liste{grid-area:liste;border:0;border-right:1px solid #DDE3DB;
  border-radius:0;background:#FAFBFA}
#courrier-onglets{align-items:center;min-height:51px;padding:8px 10px 0;
  border-bottom:1px solid #DDE3DB;background:#fff}
#courrier-onglets button.actif{border-bottom-color:#4A8A59;color:#285238}
.cjour{padding:7px 14px;background:#F2F5F1}
.cligne{gap:9px;padding:11px 13px;min-height:68px;border-bottom:1px solid #E2E7E2;
  font-size:var(--t-appui);background:#fff;transition:background .12s}
.cligne:hover{background:#F4F7F3}
.cligne.sel{background:linear-gradient(90deg,#E5F2E8,#F3F7F3);
  box-shadow:inset 4px 0 0 #43905A}
.cligne-de{font-weight:700}
.cligne-3{display:inline-block;max-width:100%;margin-top:5px;padding:2px 7px;
  border-radius:999px;color:#2D6640;background:#E1F0E5}
#courrier-apercu{grid-area:apercu;border:0;border-radius:0;padding:22px 26px;
  overflow:auto;min-height:0;background:#fff}
#courrier-apercu .apercu-tete{padding-bottom:15px;border-bottom:1px solid #E2E7E2}
#courrier-apercu .apercu-objet{font-size:var(--t-titre);line-height:1.3;
  margin-bottom:7px;color:var(--cedre-profond)}
#courrier-apercu .apercu-corps{margin-top:20px;font-size:var(--t-corps);
  line-height:1.7;color:#37423A}
.courrier-corps-html{display:block;width:100%;height:min(70vh,760px);min-height:320px;
  border:1px solid var(--trait);border-radius:6px;background:#fff}
#courrier-actions{grid-area:actions;border:0;border-top:1px solid #DDE3DB;
  border-radius:0;padding:12px 20px;display:flex;flex-direction:row;flex-wrap:wrap;
  gap:8px;align-items:center;overflow:visible;background:#F7F9F6}
.courrier-aide-reponse{display:flex;flex:1 1 100%;gap:8px;align-items:stretch}
.courrier-aide-reponse textarea{flex:1 1 320px;min-width:220px;resize:vertical;
  border:1px solid #C9D2C7;border-radius:9px;padding:9px 11px;background:#fff}
.courrier-aide-reponse select{flex:0 0 125px;border:1px solid #C9D2C7;
  border-radius:9px;padding:7px 9px;background:#fff}
.courrier-aide-reponse button{flex:0 0 auto}
.courrier-reponse-attente{flex:1 1 100%;padding:4px 2px}
#courrier-signature-reglage{margin:12px 0;padding:10px 0;border-top:1px solid #DDE3DB}
#courrier-signature-champs{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;
  margin:10px 0}
#courrier-signature-champs label{display:flex;flex-direction:column;gap:3px;
  font-size:var(--t-mention)}
#courrier-signature-champs input{padding:7px 9px;border:1px solid #C9D2C7;
  border-radius:8px}
.courrier-signature-apercu{margin:10px 0;padding:13px 15px;border-left:3px solid #4A8A59;
  background:#fff;line-height:1.45}
.courrier-signature-apercu .signature-nom{font-weight:700;color:#24452E}
.courrier-signature-apercu .signature-contact{margin-top:4px;color:#5D6A60}

/* Le papier a en-tete propre a l'etude vit dans Parametres. La mise en page
   garde les traces longues lisibles sans elargir le panneau hors de l'ecran. */
.papier-entete-reglage{margin-top:4px;padding-top:9px;border-top:1px solid var(--trait)}
.papier-entete-reglage>summary{cursor:pointer;font-weight:700;color:var(--cedre);
  padding:4px 0}
.papier-entete-reglage>p{margin:9px 0;line-height:1.45}
.papier-entete-reglage code{font-size:var(--t-mention);overflow-wrap:anywhere}
.papier-entete-form{display:grid;gap:8px;margin:11px 0 9px;padding:11px;
  border:1px solid var(--trait);border-radius:9px;background:var(--ivoire)}
.papier-entete-form>label:first-child{font-size:var(--t-appui);font-weight:700;color:var(--cedre)}
.papier-entete-form input[type=file]{box-sizing:border-box;width:100%;padding:7px;
  border:1px solid var(--trait);border-radius:8px;background:var(--blanc);font:inherit}
.papier-entete-signature{display:flex;gap:8px;align-items:flex-start;font-size:var(--t-appui);
  line-height:1.35;cursor:pointer}
.papier-entete-signature input{margin-top:2px;flex:none}
.papier-entete-prudence{margin:0;line-height:1.4}
.papier-entete-etat{margin:8px 0;padding:8px 10px;border-left:3px solid var(--pousse);
  border-radius:0 7px 7px 0;background:var(--creme);font-size:var(--t-appui);line-height:1.4}
.papier-entete-etat:empty{display:none}
.papier-entete-etat.papier-entete-erreur{border-left-color:var(--alerte);color:#7a351e}
.papier-entete-bloc{margin-top:10px;padding-top:9px;border-top:1px solid var(--trait)}
.papier-entete-bloc h3{margin:0 0 8px;font-size:var(--t-corps)}
#papier-entete-actif-details{display:grid;grid-template-columns:minmax(92px,auto) 1fr;
  gap:4px 10px;margin:0;font-size:var(--t-appui)}
#papier-entete-actif-details dt{font-weight:700;color:var(--cedre)}
#papier-entete-actif-details dd{margin:0;overflow-wrap:anywhere}
.papier-entete-actions{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:10px}
.papier-entete-lien{display:inline-block;padding:7px 10px;border-radius:8px;
  background:var(--cedre);color:var(--blanc);text-decoration:none;font-size:var(--t-appui)}
.papier-entete-lien:hover{text-decoration:underline}
.papier-entete-version{padding:9px 0;border-top:1px solid var(--trait);font-size:var(--t-appui)}
.papier-entete-version:first-child{border-top:0}
.papier-entete-version p{margin:3px 0;line-height:1.35}
.papier-entete-trace{overflow-wrap:anywhere;color:var(--doux)}
.papier-entete-pastille{display:inline-block;margin-top:4px;padding:2px 7px;
  border-radius:999px;background:var(--creme);color:var(--cedre);font-size:var(--t-mention);
  font-weight:700}
@media(max-width:600px){
  #papier-entete-actif-details{grid-template-columns:1fr;gap:1px}
  #papier-entete-actif-details dd{margin-bottom:5px}
  .papier-entete-actions{align-items:stretch;flex-direction:column}
  .papier-entete-actions>*{box-sizing:border-box;width:100%;text-align:center}
}
.atelier-courrier{max-width:900px}
.courrier-intentions{margin:20px 0;padding:18px;border:1px solid var(--trait);
  border-radius:12px;background:var(--fond-doux,#f7f5ee)}
.courrier-intentions h3{margin:0 0 4px}
.courrier-intentions-choix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;margin-top:12px}
.courrier-intentions-choix button{text-align:left;min-height:48px}
.courrier-intentions-choix button strong,.courrier-intentions-choix button span{display:block}
.courrier-intentions-choix button span{margin-top:3px;font-size:var(--t-mention);font-weight:400;color:var(--encre-douce,#53604f)}
.courrier-formulaire{margin-top:16px;border-top:1px solid var(--trait);padding-top:12px}
.courrier-formulaire>summary{cursor:pointer;font-weight:700;margin-bottom:16px}
.atelier-courrier-grille{display:grid;grid-template-columns:1fr 1fr;gap:12px;
  margin:16px 0}
.atelier-courrier-grille label{display:flex;flex-direction:column;gap:5px}
.atelier-courrier-grille input,.atelier-courrier-grille textarea{padding:9px 11px;
  border:1px solid var(--trait);border-radius:9px;font:inherit}
.atelier-courrier-large{grid-column:1/-1}
/* L'ATELIER NE DÉBORDE PLUS QUAND LA COLONNE SE RESSERRE (mesuré le 24 août 2026 en
   ligne : 382 pixels de débordement pour une carte de 360). La cause a été ISOLÉE et
   non supposée : en masquant l'aperçu, la carte revient exactement à sa largeur. Ce
   qui la tenait ouverte, c'est le CHEMIN des modèles retenus, une chaîne de cent
   cinquante signes sans une espace, que rien n'autorisait à se couper. Le reste est
   du durcissement de mise en page qui ne coûte rien : une case de grille ne descend
   pas sous la largeur de son contenu tant que son `min-width` vaut `auto`, le
   rembourrage des champs s'ajoute à leur largeur faute de `box-sizing`, et deux
   colonnes de champs ne se lisent plus sous 760 pixels. */
#courrier-papier-modele,#courrier-papier-destinataire-info{overflow-wrap:anywhere}
.atelier-courrier-grille>*{min-width:0}
.atelier-courrier-grille input,.atelier-courrier-grille textarea,
.atelier-courrier-grille select{box-sizing:border-box;max-width:100%}
#courrier-papier-destinataires option{overflow:hidden;text-overflow:ellipsis}
@media(max-width:760px){
  .atelier-courrier-grille{grid-template-columns:1fr}
  .courrier-intentions-choix{grid-template-columns:1fr}
}
.exig-questions{border-left:3px solid var(--alerte,#8C3A22)}
.exig-questions>h3,.exig-contradictions>h3{margin:0 0 4px;font-size:var(--t-corps)}
.exig-filtre{display:inline-flex;align-items:center;gap:5px;margin:8px 0;padding:6px 9px;
  border:1px solid var(--trait);border-radius:8px;background:#F8FAF7;font-size:var(--t-appui)}
.exig-filtre input{width:16px;height:16px;accent-color:#356B45}
.exig-theme{margin-top:13px}
.exig-theme h4{margin:0;padding:7px 9px;border-radius:8px;background:#EEF3EC;
  color:#294D33;font-size:var(--t-appui);letter-spacing:.01em}
.exig-question{margin:9px 0 0;padding:10px 12px 12px;border:1px solid #DDE4DA;
  border-radius:10px;background:#fff}
.exig-question legend{max-width:95%;padding:0 5px;font-size:var(--t-appui);font-weight:650;
  line-height:1.35;color:var(--encre,#243329)}
.exig-dependances{margin:0 0 8px;color:var(--doux,#667169);font-size:var(--t-mention)}
.exig-proposition{margin:5px 0;padding:7px 9px;border-left:3px solid #9A792B;
  border-radius:0 7px 7px 0;background:#FBF7E9;color:#5E4A19;font-size:var(--t-mention)}
.exig-sur-proposition{padding:2px 6px;border:1px solid #B99A4D;border-radius:999px;
  background:#FBF7E9;color:#5E4A19;font-size:var(--t-mention);white-space:nowrap}
.exig-reponse{display:grid;grid-template-columns:minmax(240px,max-content) minmax(220px,1fr);
  gap:6px 12px;align-items:end}
.exig-ternaire{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.exig-choix{min-height:34px;padding:6px 11px;border:1px solid #7D887F;border-radius:999px;
  background:#fff;font-weight:550}
.exig-choix.oui{border-color:#3F7C50;color:#245934}
.exig-choix.non{border-color:#A45151;color:#762D2D}
.exig-choix.inconnu{border-color:#92711F;color:#654D12}
.exig-choix[aria-pressed="true"]::before{content:"✓ ";font-weight:800}
.exig-choix[aria-pressed="true"]{box-shadow:inset 0 0 0 2px currentColor;
  font-weight:750;background:#F1F5F0}
.exig-choix:focus-visible,.exig-reponse input:focus-visible,.exig-reponse select:focus-visible,
.exig-filtre input:focus-visible{outline:3px solid #C6902C;outline-offset:2px}
.exig-select-label,.exig-complement-label{display:flex;flex-direction:column;gap:3px;
  color:var(--doux,#667169);font-size:var(--t-mention)}
.exig-select-label select,.exig-select-label input{min-width:230px;padding:7px 9px;
  border:1px solid var(--trait);border-radius:7px;background:#fff;font:inherit;color:var(--encre)}
.exig-libre{display:flex;gap:6px;flex-wrap:wrap}
.exig-libre input{flex:1 1 220px}
.exig-complement{width:100%;min-width:0;padding:7px 9px;border:1px solid var(--trait);
  border-radius:7px;font:inherit}
.exig-sauvegarde{min-height:17px;color:var(--doux,#667169);font-size:var(--t-mention)}
.exig-sauvegarde.en-cours{font-style:italic}
.exig-sauvegarde.enregistre{color:#2D663B;font-weight:650}
.exig-sauvegarde.erreur{color:#8C3A22;font-weight:650}
.exig-contradictions{border-left:3px solid var(--alerte,#8C3A22)}
.exig-divergence{margin-top:8px;padding:9px;border:1px solid #E1C9C1;border-radius:9px;
  background:#FFF9F7;font-size:var(--t-appui)}
.exig-divergence>p{margin:4px 0;color:#68473D}
.exig-reponse-trouvee{padding:9px 0;border-bottom:1px solid var(--ivoire,#F2EEE2);
  font-size:var(--t-appui)}
.exig-source{margin:3px 0;color:var(--doux,#667169);font-size:var(--t-mention)}
/* Le plan de conduite (25 aout 2026) : une section par moment du dossier, une carte
   par action, et le repli des questions secondaires. */
.exig-conduite-entete>h2{margin:0 0 4px}
.exig-compteurs-actions{display:flex;flex-wrap:wrap;gap:6px 16px;margin:0 0 4px;
  padding:0;list-style:none;font-size:var(--t-appui)}
.exig-actions{margin-top:12px}
.exig-actions>h3{margin:0 0 2px;font-size:var(--t-corps)}
.exig-action{margin:9px 0 0;padding:9px 11px;border:1px solid #DDE4DA;border-radius:10px;
  background:#fff}
.exig-action>h4{margin:0 0 3px;font-size:var(--t-appui);font-weight:650}
.exig-action>p{margin:3px 0;font-size:var(--t-appui)}
.exig-action>blockquote{margin:4px 0 4px 10px;padding-left:8px;
  border-left:2px solid var(--ivoire,#F2EEE2);color:#4B554D;font-size:var(--t-mention)}
.exig-meta{color:#356B45;font-weight:650;font-size:var(--t-mention)}
.exig-reserve{color:#654D12}
.exig-destinataire{margin:12px 0 0;padding:6px 9px;border-radius:8px;background:#EEF3EC;
  font-size:var(--t-appui);font-weight:650}
.exig-geste{display:flex;gap:8px;align-items:center;margin:6px 0 0;flex-wrap:wrap}
.exig-secondaire{margin-top:12px}
.exig-secondaire-ligne{padding:8px 0;border-bottom:1px solid var(--ivoire,#F2EEE2)}
.exig-secondaire-titre{margin:0;font-size:var(--t-appui);font-weight:650}
.exig-correction{margin-top:6px}
.exig-correction>summary{color:#315E3D;font-size:var(--t-mention);font-weight:650}
.exig-correction>.exig-reponse{margin-top:8px}
@media(max-width:760px){
  .exig-reponse{grid-template-columns:1fr}
  .exig-select-label select,.exig-select-label input{min-width:0;width:100%}
  .exig-choix{flex:1 1 auto}
}
#courrier-actions>button{min-height:38px}
#courrier-actions>button:not(.discret){margin-left:auto;background:linear-gradient(135deg,
  #3E7C4D,#2D663B);color:#fff;border-color:#2D663B}
#courrier-actions>.autoc{flex:1;min-width:260px}
#courrier-actions>select{min-width:220px;max-width:100%}
#courrier-actions>.sous{flex-basis:100%}
#courrier-actions .courrier-proposition{padding:10px 12px;border-radius:10px;
  color:#28543A;background:linear-gradient(100deg,#E2F2E6,#F3F1D9);
  box-shadow:inset 0 0 0 1px #C8E0CE}
@media(max-width:1100px){
  #courrier-3volets{grid-template-columns:minmax(300px,36%) 1fr;
    grid-template-areas:"liste apercu" "liste actions"}
  #courrier-dossiers{display:none}
}
@media(max-width:760px){
  #courrier-entete{grid-template-columns:auto 1fr auto;
    grid-template-areas:"retour identite outils" "chercher chercher chercher"
                        "fraicheur etat envoi" "lecture lecture lecture"}
  #courrier-entete>#courrier-etat,#courrier-entete>#courrier-envoi-etat{display:none}
  .courrier-rideau{display:none}
  #courrier-entete .courrier-chercher input{min-width:0;width:100%}
  #courrier-entete .courrier-chercher{width:100%}
  #courrier-entete .courrier-outils .courrier-menu{display:none}
  #courrier-3volets{grid-template-columns:1fr;grid-template-rows:minmax(280px,42vh)
    minmax(280px,1fr) auto;grid-template-areas:"liste" "apercu" "actions"}
  #courrier-actions{padding:10px 12px}
  #courrier-actions>button:not(.discret){width:100%;order:-1;margin-left:0}
}

/* ---- LE VOILE « RELIRE, CORRIGER, ENVOYER » (DECISIONS 91) ---- */
#voile-envoi{position:fixed;inset:0;background:rgba(20,24,20,.45);z-index:120;
  display:flex;align-items:center;justify-content:center}
#voile-envoi .cadre-envoi{background:var(--blanc, #fff);border-radius:12px;
  box-shadow:var(--ombre, 0 8px 30px rgba(0,0,0,.25));padding:18px 20px;
  width:min(720px, 94vw);max-height:92vh;overflow:auto;display:flex;
  flex-direction:column;gap:8px}
#voile-envoi label{display:flex;flex-direction:column;gap:3px;font-size:var(--t-mention)}
#voile-envoi input, #voile-envoi textarea{font:inherit;padding:6px 8px;
  border:1px solid var(--trait);border-radius:6px}
#voile-envoi .cadre-envoi-boutons{display:flex;gap:8px;justify-content:flex-end}
#voile-envoi .cadre-envoi-titre{display:flex;align-items:center;justify-content:space-between;gap:12px}
#voile-envoi .cadre-envoi-titre h3{margin:0}
#voile-envoi .cadre-envoi.cadre-envoi-agrandi{position:fixed;inset:12px;max-width:none;width:auto;
  max-height:none;display:flex;flex-direction:column}
#voile-envoi .cadre-envoi-agrandi label:has(#envoi-corps){flex:1;min-height:0}
#voile-envoi .cadre-envoi-agrandi #envoi-corps{flex:1;min-height:45vh;resize:none}
@media(max-width:700px){#voile-envoi .cadre-envoi.cadre-envoi-agrandi{inset:0;border-radius:0}}

/* ---- Le dossier en cartes (4.1, nuit du 29 au 30 juillet 2026) --------------- */
.cartes-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:10px;margin-top:10px}
/* LES TROIS GROUPES de « Parties et biens » (Flore, 11 aout 2026) : les parties, les
   intervenants et partenaires, les biens. Le titre de groupe est discret : c'est un
   reperage, pas une hierarchie qui repousserait les cartes vers le bas. */
.pb-groupe{margin:0 0 18px}
.pb-groupe-titre{font-size:var(--t-appui);margin:14px 0 0;font-weight:600;
  color:var(--encre);border-bottom:1px solid var(--trait,#e5e0d8);padding-bottom:4px}
.pb-groupe:first-child .pb-groupe-titre{margin-top:2px}
/* Le PICTOGRAMME et le texte d'entete d'une carte, sur une ligne. Le pictogramme ne
   dit que ce qui est etabli ; son infobulle dit sur quoi il se fonde (app_02c1). */
.cd-entete{display:flex;gap:9px;align-items:flex-start}
.cd-entete-texte{min-width:0;flex:1}
.cd-entete-texte h3{margin:0}
.picto{flex:0 0 auto;color:var(--accent);line-height:0;margin-top:1px}
.picto svg{display:block}
.carte-do{border:1px solid var(--trait,#d8d4c8);border-radius:8px;padding:10px 12px;
  background:var(--fond-carte,#fff);cursor:pointer;border-left-width:4px}
.carte-do.confirme{border-left-color:var(--etat-confirme-texte)}
.carte-do.a_confirmer{border-left-color:var(--etat-verifier-texte)}
.carte-do.vide{border-left-color:var(--etat-manquant-texte);border-left-style:dashed}
.carte-do.intervenant{border-left-color:var(--etat-propose-texte);cursor:default}
.carte-do .cd-genre{font-size:var(--t-mention);text-transform:uppercase;letter-spacing:.04em;
  opacity:.65}
.carte-do .cd-titre{font-weight:600;margin:2px 0 6px}
.carte-ouverture{border-left:4px solid var(--cedre);background:var(--creme)}
.carte-ouverture .bilan-ouverture{font-size:var(--t-corps);font-weight:600;
  color:var(--accent);margin:4px 0}
.carte-ouverture .bilan-comptes{margin:2px 0 0}
.carte-ouverture .bilan-priorite{display:flex;align-items:center;gap:10px;
  flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--trait)}
.carte-ouverture .bilan-priorite>span{flex:1;min-width:220px}
.carte-ouverture .bilan-confirmes{margin-top:10px;background:var(--etat-confirme-fond);
  color:var(--etat-confirme-texte);border:1px solid currentColor;border-radius:7px}
.carte-ouverture .bilan-confirmes summary{cursor:pointer;padding:7px 10px;font-weight:600}
.carte-ouverture .bilan-confirmes p{padding:0 10px 8px;margin:0}
.explication-repliable{margin-top:4px}
.explication-repliable>button{background:transparent;color:var(--accent);border:0;
  padding:2px 0;text-decoration:underline;text-underline-offset:2px}
.explication-repliable .explication-corps{display:none;margin-top:5px}
.explication-repliable.ouverte .explication-corps{display:block}
.carte-repliable>.carte-repliable-tete{display:flex;align-items:center;gap:10px}
.carte-repliable>.carte-repliable-tete h2{flex:1}
.carte-repliable>.carte-repliable-tete button{background:transparent;color:var(--accent);
  border:1px solid var(--trait);padding:5px 9px}
.carte-repliable>.carte-corps{display:none;padding-top:8px}
.carte-repliable.ouverte>.carte-corps{display:block}

/* L'accueil du dossier, réordonné le 21 août 2026 à la demande de Flore : le même
   contenu métier est déplacé, jamais copié. Identité, synthèse vivante, action, puis
   avancement. La rubrique détaillée retrouve toutes ses cartes et tous ses gestes. */
.ensemble-identite-dossier{padding:16px 18px;border:1px solid var(--trait);
  border-radius:var(--rayon);background:var(--blanc);box-shadow:var(--ombre);min-width:0}
.ensemble-identite-tete{display:flex;align-items:flex-start;justify-content:space-between;
  gap:14px;margin-bottom:10px}
.ensemble-identite-tete h2{margin:0;font-size:var(--t-titre)}
.ensemble-identite-contenu>.carte{margin:0;padding:0;border:0;box-shadow:none}
.identite-dossier-resume>h2,.identite-dossier-resume>p.sous,
.identite-dossier-resume #msg-cartes{display:none}
.identite-dossier-resume #cartes-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;align-items:start}
.identite-dossier-resume .pb-groupe{min-width:0}
.identite-dossier-resume .btn-ranger-parties{display:none}
.identite-dossier-resume .pb-groupe-titre{margin:0 0 7px;font-size:var(--t-appui);
  color:var(--accent)}
.identite-dossier-resume .cartes-grille{display:grid;grid-template-columns:minmax(0,1fr);
  gap:7px}
.identite-dossier-resume .carte-do{padding:8px 10px;min-width:0}
.identite-dossier-resume .cd-gestes,.identite-dossier-resume .cd-demande,
.identite-dossier-resume details,.identite-dossier-resume .cd-champ,
.identite-dossier-resume .cd-manques,.identite-dossier-resume .cd-etat{display:none}
.identite-dossier-resume .cd-corps{display:block;margin-top:5px;font-size:var(--t-mention)}
.identite-dossier-resume .cd-champ[data-champ="Téléphone"],
.identite-dossier-resume .cd-champ[data-champ="Courriel"],
.identite-dossier-resume .cd-champ[data-champ="Coordonnées"],
.identite-dossier-resume .cd-champ[data-champ="Prénoms"],
.identite-dossier-resume .cd-champ[data-champ="Adresse"],
.identite-dossier-resume .cd-champ[data-champ="Cadastre"],
.identite-dossier-resume .cd-champ[data-champ="Lot(s)"],
.identite-dossier-resume .cd-champ[data-champ="Prix"]{display:block}
.identite-dossier-resume .cd-etat{margin-top:6px;font-size:var(--t-mention)}
.identite-dossier-resume .cd-etat button{display:none}
.note-premier-rang{border-left:7px solid var(--cedre);padding:24px 28px}
.note-premier-rang>h2{font-size:calc(var(--t-titre) * 1.22);margin-bottom:7px}
.ensemble-composition>#fil{margin:0;box-shadow:var(--ombre)}
.ensemble-composition>#pli-alertes-dossier{margin:0!important}
#alertes-dossier-corps{display:grid;gap:12px}
.alertes-dossier-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:10px}
.alerte-dossier-carte{display:grid;align-content:start;gap:8px;padding:14px 16px;
  border:1px solid var(--trait);border-left:5px solid var(--accent);
  border-radius:var(--rayon);background:var(--blanc)}
.alerte-dossier-carte.urgence-critique{border-left-color:#a03b32}
.alerte-dossier-carte.urgence-haute{border-left-color:#bd7517}
.alerte-dossier-tete{display:flex;align-items:flex-start;justify-content:space-between;
  gap:12px}
.alerte-dossier-tete h3{margin:0;font-size:var(--t-corps);line-height:1.35}
.alerte-dossier-urgence{flex:0 0 auto;padding:3px 8px;border-radius:999px;
  background:var(--creme);color:var(--accent);font-size:var(--t-mention);font-weight:700}
.alerte-dossier-meta,.alerte-dossier-explication,.alerte-dossier-message{margin:0}
.alerte-dossier-meta{color:var(--doux);font-size:var(--t-mention)}
.alerte-dossier-explication{line-height:1.45}
.alerte-dossier-trace summary{cursor:pointer;color:var(--accent);font-size:var(--t-appui)}
.alerte-dossier-trace ul{display:grid;gap:7px;margin:8px 0 0;padding-left:20px}
.alerte-dossier-trace li{display:grid;gap:2px}
.alerte-dossier-trace code{color:var(--doux);font-size:var(--t-mention);
  overflow-wrap:anywhere}
.alerte-dossier-gestes{display:flex;flex-wrap:wrap;gap:7px;margin-top:3px}
.alerte-dossier-message{padding:9px 11px;border-radius:var(--rayon);background:var(--creme)}
.alerte-dossier-message.ok{color:var(--ok)}
.alerte-dossier-message.erreur{color:var(--erreur)}
@media(max-width:700px){.alertes-dossier-grille{grid-template-columns:minmax(0,1fr)}
  .alerte-dossier-tete{display:grid}.alerte-dossier-urgence{justify-self:start}}

/* Vue d'ensemble : une colonne réelle, trois portes métier, aucun débordement. */
.sommaire-ensemble{display:none}
.ensemble-composition{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;
  width:100%;max-width:100%;min-width:0;margin-top:14px}
.ensemble-priorites-corps,.ensemble-porte,.actions-contextuelles-dossier{min-width:0}
.ensemble-priorites-corps>.carte{margin:0}
.ensemble-porte{border:1px solid var(--trait);border-radius:var(--rayon);
  background:var(--blanc);box-shadow:var(--ombre);overflow:hidden}
.ensemble-porte>summary{display:flex;align-items:center;gap:12px;padding:14px 16px;
  cursor:pointer;list-style:none;color:var(--encre)}
.ensemble-porte>summary::-webkit-details-marker{display:none}
.ensemble-porte>summary::after{content:"Ouvrir";margin-left:auto;color:var(--accent);
  font-size:var(--t-appui);font-weight:600}
.ensemble-porte[open]>summary::after{content:"Fermer"}
.ensemble-porte-numero{display:grid;place-items:center;flex:0 0 30px;height:30px;
  border-radius:50%;background:var(--creme);color:var(--accent);font-weight:700;
  font-size:var(--t-appui)}
.ensemble-porte-numero:empty{display:none}
#ensemble-conduite{margin-top:8px;background:var(--fond)}
#ensemble-conduite>.ensemble-porte-corps{gap:12px}
#ensemble-conduite .carte-ouverture,#ensemble-conduite .actions-contextuelles-dossier{
  box-shadow:none}
.ensemble-porte-texte{display:grid;min-width:0}
.ensemble-porte-titre{font-family:Arial,"Helvetica Neue",sans-serif;
  font-size:var(--t-titre);font-weight:800}
.ensemble-porte-description{color:var(--doux);font-size:var(--t-appui)}
.ensemble-porte-corps{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;
  min-width:0;padding:0 12px 12px;border-top:1px solid var(--trait)}
.ensemble-porte-corps>.carte{width:100%;max-width:100%;min-width:0;margin:10px 0 0;
  box-shadow:none}
.ensemble-surtitre{display:block;color:var(--accent);font-size:var(--t-mention);
  line-height:1;text-transform:uppercase;letter-spacing:.09em;font-weight:750;margin-bottom:6px}
.actions-contextuelles-dossier{padding:16px;border:1px solid var(--etat-propose-texte);
  border-radius:var(--rayon);background:var(--etat-propose-fond)}
.actions-contextuelles-tete{display:flex;justify-content:space-between;align-items:flex-start;
  gap:12px;margin-bottom:12px}
.actions-contextuelles-tete h2{margin:0;font-size:var(--t-titre)}
.actions-contextuelles-liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.action-contextuelle{display:block;min-width:0;text-align:left;background:var(--blanc);
  color:var(--encre);border:1px solid var(--trait);padding:11px 12px}
.action-contextuelle:hover{border-color:var(--etat-propose-texte);filter:none}
.action-contextuelle-demande{display:block;font-weight:650}
.action-contextuelle-demande::before{content:"✦ ";color:var(--etat-propose-texte)}
.action-contextuelle-pourquoi{display:block;color:var(--doux);font-size:var(--t-mention);
  font-weight:400;margin-top:5px}
.recherche-fonctionnalite{margin-top:12px;padding-top:12px;border-top:1px solid var(--trait)}
.recherche-fonctionnalite>label{display:block;font-weight:650;margin-bottom:6px}
.recherche-fonctionnalite>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.recherche-fonctionnalite input{flex:1;min-width:220px}
.carte-ouverture{border:1px solid var(--trait);border-left:7px solid var(--cedre);
  border-radius:var(--rayon);padding:17px 20px;box-shadow:var(--ombre)}
.carte-ouverture .bilan-surtitre{display:block;margin-bottom:8px;color:var(--cedre);
  font-size:var(--t-mention);line-height:1;text-transform:uppercase;letter-spacing:.1em;font-weight:800}
.carte-ouverture .bilan-titre{display:block;margin:0;font-size:var(--t-titre);
  line-height:1.15;color:var(--encre)}
.carte-ouverture .bilan-explication{margin:9px 0 0;line-height:1.45;color:var(--encre)}
.carte-ouverture .bilan-comptes{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}
.carte-ouverture .bilan-ouvrir{display:block;margin-top:10px;color:var(--accent);
  font-size:var(--t-appui);font-weight:650}
.carte-ouverture .bilan-priorite{margin-top:12px;padding-top:12px;border-top:1px solid var(--trait)}
.carte-ouverture .bilan-priorite .bouton{min-height:42px;padding-inline:18px}
.carte-repliable>.carte-repliable-tete h2{min-width:0;margin:0;font-size:var(--t-titre)}
.carte-repliable>.carte-corps{min-width:0;overflow:hidden}
@media (max-width:800px){
  .actions-contextuelles-liste{grid-template-columns:1fr}
  .identite-dossier-resume #cartes-grille{grid-template-columns:1fr}
}
@media (max-width:620px){
  .ensemble-composition{gap:16px}
  .carte-ouverture{padding:18px 16px}
  .carte-ouverture .bilan-priorite{align-items:stretch;flex-direction:column}
  .actions-contextuelles-tete{display:block}
  .actions-contextuelles-tete .statut{display:inline-block;margin-top:8px}
  .ensemble-porte-description{display:none}
  .ensemble-identite-tete{display:block}
  .ensemble-identite-tete>button{margin-top:10px}
  .note-premier-rang{padding:17px 16px}
}
.reponse-kedros-verdict{padding:9px 11px;background:var(--etat-propose-fond);
  color:var(--etat-propose-texte);border-left:3px solid currentColor;border-radius:0 7px 7px 0}
.reponse-kedros-verdict::before{content:"✦ ";font-weight:700}
.reponse-kedros-raisonnement,.reponse-kedros-sources{margin:6px 0;border:1px solid var(--trait);
  border-radius:7px;background:var(--blanc)}
.reponse-kedros-raisonnement summary,.reponse-kedros-sources summary{cursor:pointer;
  padding:7px 10px;color:var(--accent);font-size:var(--t-appui);font-weight:600}
.reponse-kedros-raisonnement>div,.reponse-kedros-sources>div{padding:0 10px 9px;
  white-space:pre-wrap;font-size:var(--t-appui)}
.reponse-kedros-vigilance{white-space:pre-wrap;margin:6px 0;padding:7px 10px;
  background:var(--etat-verifier-fond);color:var(--etat-verifier-texte);
  border-left:3px solid currentColor;border-radius:0 7px 7px 0;font-size:var(--t-appui)}
.cd-champ{font-size:var(--t-appui);margin:2px 0}
.cd-libelle{opacity:.65}
.cd-etat{font-size:var(--t-mention);margin-top:8px;opacity:.8;font-style:italic}
.cd-demande{margin-top:8px}
/* CE QUE KEDROS A TIRE DE VOTRE MAIN, pose au dossier (DECISIONS 33.9 : modifier la
   note met le dossier a jour). Encadre et discret : un compte rendu, pas une alerte. */
.np-cadre{margin-top:10px;padding:10px 12px;border:1px solid var(--trait,#d8d4c8);
  border-radius:8px;background:var(--fond-doux,#f7f5f0)}
.np-titre{font-weight:600}
.np-ligne{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap;
  padding:7px 0;border-top:1px solid var(--trait,#e5e0d8)}
.np-ligne>div:first-child{flex:1;min-width:0}
.np-gestes{display:flex;gap:6px;flex-wrap:wrap}
/* LES GESTES QUI DEFONT (2.8, demandes de Flore du 11 aout 2026) : ecarter une
   proposition, retirer un rattachement, detacher une personne. Discrets et en pied de
   carte : ce sont des gestes de correction, pas l'action principale. Le pli des
   propositions ecartees traverse la grille (il n'est pas une carte) et les rend. */
.cd-gestes{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}
.pb-ecartes{grid-column:1/-1;margin-top:6px;font-size:var(--t-menu,.9em)}
.pb-ecartes summary{cursor:pointer;color:var(--encre-doux,#6b6558)}
.pb-ecarte{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:4px 0}
.pb-ecarte span{flex:1;min-width:0}
#voile-carte-do, #voile-revue{position:fixed;inset:0;background:rgba(30,28,20,.45);
  z-index:70;display:flex;align-items:center;justify-content:center}
#voile-carte-do .cadre-carte-do, #voile-revue .cadre-carte-do{
  background:var(--fond-carte,#fff);border-radius:10px;
  padding:18px 22px;max-width:560px;width:92%;max-height:80vh;overflow:auto}
/* LE DETAIL D'UNE PARTIE (lot 2, 11 aout 2026). Flore : « quand on clique sur la
   carte, cela ouvre un TRES VASTE ECRAN ». Il est donc large et haut, la ou
   l'agrandissement simple d'une carte reste une vignette. */
#voile-detail-partie{position:fixed;inset:0;background:rgba(30,28,20,.45);
  z-index:72;display:flex;align-items:center;justify-content:center}
#voile-detail-partie .cadre-detail-partie{
  background:var(--fond-carte,#fff);border-radius:10px;
  padding:18px 22px;max-width:980px;width:94%;max-height:88vh;overflow:auto}
#voile-detail-partie .cd-entete{margin-bottom:10px}
#voile-detail-partie #dp-corps{margin-top:12px}
/* LE DETAIL DU DOSSIER, DU BIEN, DES PIECES ET DU CONFRERE (repli du lot 2, 11 aout
   2026) : meme cadre et meme geste que le detail d'une partie, parce qu'il n'y a plus
   qu'un seul ecran et qu'un seul geste a y apprendre. Le bloc est EMPRUNTE a la page
   puis rendu (app_02c3), il n'est jamais recopie. */
#voile-detail-dossier{position:fixed;inset:0;background:rgba(30,28,20,.45);
  z-index:72;display:flex;align-items:center;justify-content:center}
#voile-detail-dossier .cadre-detail-partie{
  background:var(--fond-carte,#fff);border-radius:10px;
  padding:18px 22px;max-width:1100px;width:95%;max-height:90vh;overflow:auto}
#voile-detail-dossier .cd-entete{margin-bottom:10px}
#voile-detail-dossier #dd-corps{margin-top:12px}
/* Le bloc emprunte porte parfois sa propre carte : on evite la carte dans la carte. */
#voile-detail-dossier #dd-corps > .carte{border:0;box-shadow:none;padding:0;margin:0}

/* ---- La revue du dossier : recoupements par champ (refonte du 10 aout 2026,
   carte blanche de Flore : la grille champs par pieces etait illisible). Une
   LISTE : chaque champ porte la fiche et les seules pieces qui en parlent ;
   aucun defilement horizontal, lisible au telephone. ------------------------- */
.rv-synthese{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}
.rv-jeton{font-size:var(--t-appui);background:var(--fond-doux,#f4f1ea);
  border:1px solid var(--trait,#d8d4c8);border-radius:14px;padding:3px 12px}
.rv-jeton.rv-alerte{background:#f3e3c8;border-color:#d9b976;color:#6d4f1c;
  font-weight:600}
.rv-jeton.rv-attention{background:#efe7e0;border-color:#cbb6a4;color:#6b503a}
.rv-abord{border:1px solid var(--trait,#d8d4c8);border-left:4px solid
  var(--accent,#8a6d3b);border-radius:8px;background:#f7f5ee;
  padding:10px 14px;margin:12px 0}
.rv-abord h3{margin:2px 0 6px}
.rv-abord-titre{font-size:var(--t-appui);font-weight:600;text-transform:uppercase;
  letter-spacing:.03em;opacity:.75;margin:10px 0 4px}
.rv-renvoi{display:block;width:100%;text-align:left;cursor:pointer;
  background:var(--fond-carte,#fff);border:1px solid var(--trait,#e2ddd2);
  border-radius:6px;padding:6px 10px;margin:4px 0;font:inherit;
  font-size:var(--t-appui)}
.rv-renvoi:hover,.rv-renvoi:focus{outline:2px solid var(--accent,#8a6d3b);
  outline-offset:-2px}
.rv-renvoi-valeurs{overflow-wrap:anywhere}
.rv-filtre{display:block;width:100%;max-width:460px;margin:10px 0;
  padding:7px 12px;font:inherit;font-size:var(--t-appui);
  border:1px solid var(--trait,#d8d4c8);border-radius:8px}
details.rv-section{border:1px solid var(--trait,#d8d4c8);border-radius:8px;
  margin:10px 0;background:var(--fond-carte,#fff)}
details.rv-section>summary{cursor:pointer;font-weight:600;padding:10px 14px;
  text-transform:uppercase;letter-spacing:.03em;font-size:var(--t-appui);
  list-style-position:inside}
details.rv-section>summary:hover{background:var(--fond-doux,#f4f1ea)}
.rv-compte{font-weight:400;opacity:.6;margin-left:6px}
.rv-section-corps{border-top:1px solid var(--trait,#e2ddd2)}
.rv-bloc{padding:8px 14px;border-top:1px solid var(--trait,#efece3)}
.rv-bloc:first-child{border-top:none}
.rv-bloc.rv-eclair{animation:rv-eclair 1.6s ease-out 1}
@keyframes rv-eclair{0%{background:#f3e3c8}100%{background:transparent}}
.rv-tete{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.rv-libelle{font-weight:600}
.rv-badge{font-size:var(--t-mention);border-radius:10px;padding:1px 9px;
  white-space:nowrap}
.rv-badge.rv-div{background:#f3e3c8;color:#6d4f1c}
.rv-badge.rv-ok{background:#e4ecdd;color:#43603a}
.rv-fiche-ligne{margin:4px 0 2px}
.rv-etiquette{display:inline-block;font-size:var(--t-mention);
  text-transform:uppercase;letter-spacing:.04em;opacity:.6;margin-right:8px}
.rv-mention{display:flex;gap:10px;align-items:flex-start;margin:4px 0}
.rv-source{flex:0 0 auto;max-width:300px;overflow:hidden;text-overflow:ellipsis;
  white-space:nowrap;cursor:pointer;font:inherit;font-size:var(--t-mention);
  background:var(--fond-doux,#f4f1ea);border:1px solid var(--trait,#d8d4c8);
  border-radius:12px;padding:2px 10px}
.rv-source:hover,.rv-source:focus{outline:2px solid var(--accent,#8a6d3b);
  outline-offset:-2px}
.rv-corps{cursor:pointer;min-width:0}
.rv-corps:hover,.rv-corps:focus{outline:2px solid var(--accent,#8a6d3b);
  outline-offset:2px;border-radius:4px}
.rv-piece-rang{display:flex;gap:10px;align-items:flex-start;padding:6px 14px;
  border-top:1px solid var(--trait,#efece3)}
.rv-piece-rang:first-child{border-top:none}
.rv-piece-rang.rv-eteinte{opacity:.65}
.rv-corps-piece{min-width:0}
.rv-valeur{overflow-wrap:anywhere}
.rv-extrait{font-size:var(--t-mention);font-style:italic;opacity:.72;margin-top:2px;
  overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;
  -webkit-box-orient:vertical;overflow:hidden}
.rv-absent{font-size:var(--t-mention);font-style:italic;opacity:.7}
.rv-prov{margin:2px 0 0}
.rv-att-liste{margin-top:4px;font-size:var(--t-appui)}
.rv-att-liste>summary{cursor:pointer;text-decoration:underline}

/* ---- Le voile d'amorcage : l'ecran ne ment jamais sur la session (10 aout 2026).
   Couvre tout tant que l'amorcage n'a pas tranche app ou vitrine. ------------- */
#voile-amorcage{position:fixed;inset:0;z-index:200;display:flex;align-items:center;
  justify-content:center;background:#f4f1ea;color:#4a5a3f;
  font-size:var(--t-titre);letter-spacing:.04em}
@media (max-width:700px){
  .rv-mention,.rv-piece-rang{flex-direction:column;gap:2px}
  .rv-source{max-width:100%}
}

/* ---- Le redline de deux projets d'acte (3.B, soir du 30 juillet 2026) ------- */
.rd-titre{font-weight:600;font-size:var(--t-appui);text-transform:uppercase;
  letter-spacing:.03em;margin:14px 0 4px;opacity:.75}
.rd-ecart{border-left:4px solid var(--trait,#d8d4c8);padding:6px 10px;margin:6px 0;
  border-radius:0 6px 6px 0;background:var(--fond-doux,#faf8f2)}
.rd-b-ajoute{border-left-color:#3d7a4a}
.rd-b-supprime{border-left-color:#a04545}
.rd-b-modifie{border-left-color:#8a6d3b}
.rd-badge{font-size:var(--t-mention);text-transform:uppercase;letter-spacing:.04em;
  opacity:.7}
.rd-texte{margin-top:3px;font-size:var(--t-appui);overflow-wrap:anywhere;
  white-space:pre-wrap}
ins.rd-ajt{background:#e3f2e6;color:#2d5a37;text-decoration:none;
  border-radius:2px;padding:0 1px}
del.rd-sup{background:#f7e3e3;color:#8c3535;border-radius:2px;padding:0 1px}

/* ---- L'encart des manques pour les recherches (3.4, 30 juillet 2026) -------- */
.cd-manques{margin-top:8px;padding:6px 8px;border:1px dashed var(--trait,#d8d4c8);
  border-radius:6px;background:var(--fond-doux,#faf8f2)}
.cd-manques-titre{font-size:var(--t-mention);text-transform:uppercase;letter-spacing:.04em;
  opacity:.65;margin-bottom:3px}
.cd-manque{font-size:var(--t-appui);margin:2px 0}
.cd-manque .btn-manque-valider{margin-left:4px;font-size:var(--t-mention);padding:1px 8px}

/* ---- Squelettes de chargement (3.8, 30 juillet 2026) : l'attente se voit ---- */
@keyframes sq-pulse{0%,100%{opacity:.35}50%{opacity:.75}}
@media(prefers-reduced-motion:reduce){.cpt-attente,.sq-ligne{animation:none}}
.cpt-attente{background:var(--trait,#d8d4c8) !important;color:transparent !important;
  min-width:22px;min-height:12px;border-radius:9px;
  animation:sq-pulse 1.2s ease-in-out infinite}
.sq-ligne{height:34px;margin:6px 10px;border-radius:6px;
  background:var(--fond-doux,#efece3);animation:sq-pulse 1.2s ease-in-out infinite}

/* ============================================================================
   SOCLE DE FINITION (30 juillet 2026, directive de Flore : « revois et corrige
   integralement l'ergonomie... rendu ultra professionnel »). Premiere passe,
   ADDITIVE et transverse, calee sur les standards des applications
   professionnelles de reference (messageries et outils de gestion recents) :
   1. une seule famille d'interface, Arial avec son repli sans serif, pour supprimer
      les ruptures entre les vues publiques, la messagerie et le dossier ;
   2. un etat de FOCUS visible au clavier sur tout element actionnable
      (accessibilite et finition : l'anneau prend la couleur de la charte) ;
   3. des transitions courtes et UNIFORMES (boutons, lignes, cartes) coupees
      par prefers-reduced-motion ;
   4. une hierarchie de boutons nette (plein / discret), des champs de saisie
      au meme dessin partout, des barres de defilement fines a la charte.
   Rien de casse : additif, meme specificite ou plus, aucune couleur inventee.
   ========================================================================== */
body{font-family:Arial,"Helvetica Neue",sans-serif;
     -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3{font-family:Arial,"Helvetica Neue",sans-serif;
         font-weight:800;letter-spacing:-.025em}

/* 2. Le focus au clavier : visible, jamais au clic (focus-visible). */
:focus{outline:none}
:focus-visible{outline:2px solid var(--pousse);outline-offset:2px;border-radius:4px}
input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:none;border-color:var(--pousse);box-shadow:0 0 0 3px rgba(124,143,95,.22)}

/* 3. Transitions uniformes, sobres. */
button,.onglet,.pop-item,.cligne,.tab,.card,input,select,textarea{
  transition:background-color .14s ease,border-color .14s ease,
             box-shadow .14s ease,color .14s ease,transform .14s ease}
@media(prefers-reduced-motion:reduce){
  button,.onglet,.pop-item,.cligne,.tab,.card,input,select,textarea{transition:none}}

/* 4. Boutons : hierarchie et etats. */
button{cursor:pointer;font-family:inherit}
button:not(.discret):not(.onglet):not(.pop-item):not(.pilule){
  border-radius:9px}
button:not(.discret):not(.onglet):not(.pop-item):hover{filter:brightness(1.04)}
button:not(.discret):not(.onglet):not(.pop-item):active{transform:translateY(1px)}
button.discret:hover{background:var(--ivoire)}
button:disabled{opacity:1;color:var(--doux);background:var(--ivoire);border-color:var(--trait);cursor:not-allowed;transform:none;filter:none}

/* Champs de saisie : un seul dessin partout. */
input[type=text],input[type=email],input[type=password],input[type=number],
input[type=datetime-local],select,textarea{
  font-family:inherit;font-size:var(--t-appui);color:var(--encre);
  background:var(--blanc);border:1px solid var(--trait);border-radius:8px;
  padding:7px 10px}
::placeholder{color:var(--grege);opacity:1}

/* Les lignes de liste (courrier, resultats) : survol et selection nets. */
.cligne{border-radius:8px}
.cligne:hover{background:var(--ivoire)}
.cligne.sel{background:var(--creme);box-shadow:inset 2px 0 0 var(--pousse)}

/* Cartes et panneaux : l'ombre de la charte, posee partout pareil. */
.card,.ag-jour,.bp-resultat,.agx-enveloppe{box-shadow:var(--ombre)}

/* Barres de defilement fines, a la charte (WebKit et Firefox). */
*{scrollbar-width:thin;scrollbar-color:var(--grege) transparent}
*::-webkit-scrollbar{width:9px;height:9px}
*::-webkit-scrollbar-thumb{background:var(--grege);border-radius:8px;
  border:2px solid var(--fond)}
*::-webkit-scrollbar-thumb:hover{background:var(--cedre)}
*::-webkit-scrollbar-track{background:transparent}

/* Tableaux de resultats : en-tetes marques, lignes zebrees douces. */
table.out{border-collapse:collapse;width:100%}
table.out tr:nth-child(even){background:rgba(241,238,228,.5)}
table.out td{padding:6px 8px}

/* La barre d'application : un liseret d'ancrage sous l'onglet survole. */
#barre-app .onglet:hover{background:rgba(237,230,214,.10);border-radius:8px}

/* Un geste sans matiere se tait : « Retirer la selection » n'apparait que si la
   table porte au moins une ligne (revue du 31 juillet 2026 : bouton mort sinon). */
section:has(#corps-pieces:empty) #btn-retirer-pieces{display:none}
section:has(#corps-livrables:empty) #btn-retirer-livrables{display:none}

/* LES TROIS GESTES PDF (parite PRAETOR, P5) : la liste des pieces, l'apercu de la
   page rendu par le serveur, et le trace de la zone a occulter. La zone se trace a
   la souris SUR l'apercu : taper des coordonnees ne serait pas un geste. */
.geste-liste{display:flex;flex-direction:column;gap:2px;margin:8px 0;max-height:200px;
  overflow:auto}
.geste-piece{font-size:var(--t-appui);display:flex;gap:7px;align-items:center;cursor:pointer}
.geste-apercu{position:relative;display:inline-block;margin:8px 0;max-width:100%}
.geste-page{max-width:100%;display:block;border:1px solid var(--trait,#d8d4c8);
  cursor:crosshair;user-select:none}
.geste-trace{position:absolute;border:2px dashed #b23;background:rgba(178,34,34,.18);
  pointer-events:none}
.geste-zone{position:absolute;background:rgba(20,20,20,.82);pointer-events:none}

/* L'AVANCEMENT DES COLLECTES source par source (parite PRAETOR, P6) : une barre,
   ce qui tourne a cet instant, et l'etat de chacune. Une attente lisible n'est
   plus une attente. */
.av-titre{display:flex;gap:8px;flex-wrap:wrap;align-items:baseline}
.av-barre{height:6px;border-radius:4px;background:var(--grege,#ddd6c3);margin:7px 0;
  overflow:hidden}
.av-barre i{display:block;height:100%;background:var(--cedre,#3c4a36);
  transition:width .4s ease}
.av-liste{display:flex;flex-direction:column;gap:2px;font-size:var(--t-appui)}
.av-ligne{display:flex;gap:7px;align-items:baseline}
.av-attente,.av-encours,.av-faite,.av-echec{width:9px;height:9px;border-radius:50%;
  display:inline-block;flex:none;align-self:center}
.av-attente{background:var(--grege,#ddd6c3)}
.av-encours{background:var(--cedre,#3c4a36);animation:av-battement 1.1s infinite}
.av-faite{background:#5a7d4a}
.av-echec{background:var(--alerte,#b4622a)}
@keyframes av-battement{0%,100%{opacity:1}50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.av-encours{animation:none}}

/* Le panneau des travaux se borne a la fenetre et fait defiler son CONTENU,
   pour que son en-tete (et le bouton Fermer) ne sorte jamais de l'ecran par le
   haut quand la liste est longue (constat de Flore, 4 aout 2026). Le `display`
   vit ICI et non en ligne : en ligne, il annulerait `.cache` et le panneau ne
   se fermerait plus du tout. */
#panneau-travaux:not(.cache){display:flex;flex-direction:column}

/* La DICTÉE VOCALE (app_24_dictee.js, périmètre arbitré par Flore le
   1er septembre 2026) : un bouton unique suit le champ qui a le focus, une
   pastille d'état dit honnêtement ce qui se passe (R9). Position fixe : les
   coordonnées sont posées par la vue depuis le rectangle du champ.
   COUCHE 125 (fusion accueil espace de travail, 2 septembre 2026) : les champs
   suivis vivent aussi dans des couches hautes, le grand panneau de conversation
   (85), les voiles de détail (72), les modales de l'accueil (100) et les
   panneaux du dossier (118 et 119) ; à 70, le bouton était caché exactement là
   où l'on dicte. 125 reste sous le toast et le voile d'amorçage (200). */
.dictee-bouton{position:fixed;z-index:125;font-size:var(--t-mention);line-height:1;
  padding:5px 12px;border-radius:999px;border:1px solid var(--trait);
  background:var(--blanc);color:var(--accent);cursor:pointer;
  box-shadow:0 1px 3px rgba(51,53,43,.18)}
.dictee-bouton:hover{background:var(--accent-clair)}
.dictee-bouton[aria-pressed="true"]{background:var(--alerte);
  border-color:var(--alerte);color:var(--papier);animation:av-battement 1.4s infinite}
@media(prefers-reduced-motion:reduce){.dictee-bouton[aria-pressed="true"]{animation:none}}
.dictee-etat{position:fixed;z-index:125;margin:0;font-size:var(--t-mention);
  padding:3px 10px;border-radius:6px;background:var(--encre);
  color:var(--papier);max-width:340px}
