/* MakeHub - feuille de style de la plateforme.
   Issue de la maquette (docs/maquette) : memes jetons, memes composants. */
:root{
  --fond:#EEF0EB; --surface:#FFFFFF; --surface-2:#F6F7F3; --surface-3:#ECEEE8;
  --trait:#E1E4DC; --trait-fort:#CBCFC4;
  --encre:#16170F; --encre-2:#3A3C33; --doux:#6A6D62; --pale:#9A9D91;
  --ocre:#B7772A; --ocre-vif:#D8A25E; --ocre-voile:#F6EAD8; --ocre-texte:#8C581A;
  --ok:#2C7756; --ok-voile:#E0EFE6;
  --rupture:#BE3A2A; --rupture-voile:#F8E2DD;
  --vivant:#2E62CD; --vivant-voile:#E2E9FA;
  --ia:#7A54C3; --ia-voile:#ECE4F8;
  --sur-ocre:#16150F;
  --ombre:0 1px 2px rgba(22,23,15,.05),0 22px 48px -24px rgba(22,23,15,.28);
  --rayon:14px;
  --f-titre:"Bricolage Grotesque","Hanken Grotesk",system-ui,sans-serif;
  --f-ui:"Hanken Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-code:"IBM Plex Mono",ui-monospace,Consolas,monospace;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --fond:#0C0C09; --surface:#15150F; --surface-2:#1A1A13; --surface-3:#202019;
    --trait:#2A2A21; --trait-fort:#3A3A2F;
    --encre:#EDEBE3; --encre-2:#CFCCC0; --doux:#9A978A; --pale:#6E6C62;
    --ocre:#D8A25E; --ocre-vif:#E2B374; --ocre-voile:#2B2316; --ocre-texte:#E2B374;
    --ok:#63B38F; --ok-voile:#16281E;
    --rupture:#E47662; --rupture-voile:#331914;
    --vivant:#83A5F2; --vivant-voile:#171F38;
    --ia:#B08FEC; --ia-voile:#231B35;
    --ombre:0 1px 0 rgba(255,255,255,.03),0 26px 56px -24px rgba(0,0,0,.75);
  }
}
:root[data-theme="dark"]{
  --fond:#0C0C09; --surface:#15150F; --surface-2:#1A1A13; --surface-3:#202019;
  --trait:#2A2A21; --trait-fort:#3A3A2F;
  --encre:#EDEBE3; --encre-2:#CFCCC0; --doux:#9A978A; --pale:#6E6C62;
  --ocre:#D8A25E; --ocre-vif:#E2B374; --ocre-voile:#2B2316; --ocre-texte:#E2B374;
  --ok:#63B38F; --ok-voile:#16281E;
  --rupture:#E47662; --rupture-voile:#331914;
  --vivant:#83A5F2; --vivant-voile:#171F38;
  --ia:#B08FEC; --ia-voile:#231B35;
  --ombre:0 1px 0 rgba(255,255,255,.03),0 26px 56px -24px rgba(0,0,0,.75);
}

*{box-sizing:border-box}
html,body{overflow-x:clip}
.page>*{min-width:0}
body{background:var(--fond);color:var(--encre);font-family:var(--f-ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
.page{max-width:1320px;margin:0 auto;padding-inline:clamp(16px,3vw,40px);padding-block:40px 80px}
a{color:inherit}
.mono{font-family:var(--f-code);font-size:.92em}
.doux{color:var(--doux)}
:focus-visible{outline:2px solid var(--ocre);outline-offset:2px;border-radius:6px}

/* ------------------------------------------------------------ identite */
.identite{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;align-items:end;margin-bottom:28px}
@media (max-width:900px){.identite{grid-template-columns:1fr;gap:28px}}
.marque{display:flex;align-items:center;gap:14px;margin-bottom:26px}
.marque svg{width:46px;height:46px}
.marque span{font-family:var(--f-titre);font-size:26px;font-weight:700;letter-spacing:-.02em}
.these{font-family:var(--f-titre);font-weight:700;font-size:clamp(34px,5.2vw,62px);line-height:1.02;letter-spacing:-.035em;margin:0;text-wrap:balance}
.these em{font-style:normal;color:var(--ocre)}
.chapeau{font-size:17px;color:var(--encre-2);max-width:56ch;margin:18px 0 0;text-wrap:pretty}
.principes{display:grid;gap:0;border-top:1px solid var(--trait-fort)}
.principe{display:grid;grid-template-columns:132px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--trait)}
.principe b{font-family:var(--f-titre);font-weight:600;font-size:15px}
.principe span{color:var(--doux)}
.systeme{display:flex;flex-wrap:wrap;gap:28px;align-items:center;padding:18px 0 22px;border-bottom:1px solid var(--trait-fort);margin-bottom:22px}
.nuancier{display:flex;gap:6px;align-items:center}
.nuancier i{width:26px;height:26px;border-radius:7px;display:block;border:1px solid var(--trait)}
.nuancier small,.polices small{color:var(--doux);margin-left:8px;font-size:12px}
.polices{display:flex;gap:18px;align-items:baseline;flex-wrap:wrap}
.polices .p1{font-family:var(--f-titre);font-weight:700;font-size:20px}
.polices .p2{font-family:var(--f-ui);font-weight:600;font-size:15px}
.polices .p3{font-family:var(--f-code);font-size:13px}
.sommaire{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 54px;padding:0;list-style:none}
.sommaire a{display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border:1px solid var(--trait-fort);border-radius:99px;text-decoration:none;font-weight:500;font-size:13px;background:var(--surface)}
.sommaire a:hover{border-color:var(--ocre);color:var(--ocre-texte)}
.sommaire a b{font-family:var(--f-code);font-weight:500;font-size:11px;color:var(--pale)}

/* ------------------------------------------------------------ ecrans */
.ecran{margin-bottom:72px;scroll-margin-top:24px}
.legende{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:28px;align-items:end;margin-bottom:16px}
@media (max-width:900px){.legende{grid-template-columns:1fr;gap:6px}}
.legende h2{font-family:var(--f-titre);font-size:28px;font-weight:700;letter-spacing:-.025em;margin:0;text-wrap:balance}
.legende h2 small{display:block;font-family:var(--f-ui);font-size:12px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ocre-texte);margin-bottom:6px}
.legende p{margin:0;color:var(--encre-2);max-width:62ch}
.cadre{max-width:100%;overflow-x:auto;border-radius:calc(var(--rayon) + 2px);-webkit-overflow-scrolling:touch}
.app{min-width:1120px;display:grid;grid-template-columns:78px minmax(0,1fr);background:var(--surface);border:1px solid var(--trait-fort);border-radius:var(--rayon);box-shadow:var(--ombre);overflow:hidden}

/* rail */
.rail{background:var(--surface-2);border-right:1px solid var(--trait);display:flex;flex-direction:column;align-items:center;padding:14px 0;gap:2px}
.rail .logo{width:34px;height:34px;margin-bottom:14px}
.rail a{width:62px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 0 7px;border-radius:10px;text-decoration:none;color:var(--doux);font-size:10.5px;font-weight:500}
.rail a svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rail a.actif{background:var(--ocre-voile);color:var(--ocre-texte)}
.rail a:hover{color:var(--encre)}
.rail .bas{margin-top:auto;display:grid;place-items:center;gap:10px}
.avatar{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;background:var(--encre);color:var(--surface)}

/* barre */
.principal{min-width:0;display:flex;flex-direction:column}
.barre{height:58px;display:grid;grid-template-columns:minmax(0,1fr) 420px minmax(0,1fr);align-items:center;gap:18px;padding:0 20px;border-bottom:1px solid var(--trait)}
.fil{display:flex;align-items:center;gap:8px;font-weight:600;white-space:nowrap}
.fil .sep{color:var(--pale);font-weight:400}
.fil .gris{color:var(--doux);font-weight:500}
.branche{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:99px;background:var(--surface-3);font-family:var(--f-code);font-size:11.5px;color:var(--encre-2);font-weight:500}
.commande{display:flex;align-items:center;gap:10px;height:36px;padding:0 12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--trait);color:var(--pale);font-size:13px}
.commande kbd{margin-left:auto;font-family:var(--f-code);font-size:11px;padding:1px 6px;border-radius:5px;border:1px solid var(--trait-fort);color:var(--doux);background:var(--surface)}
.droite{display:flex;justify-content:flex-end;align-items:center;gap:14px}
.direct{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;color:var(--vivant)}
.pouls{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;animation:pouls 2.2s ease-out infinite}
@keyframes pouls{0%{box-shadow:0 0 0 0 color-mix(in srgb,currentColor 45%,transparent)}100%{box-shadow:0 0 0 8px transparent}}
@media (prefers-reduced-motion:reduce){.pouls{animation:none}}
.cloche{width:20px;height:20px;fill:none;stroke:var(--doux);stroke-width:1.7}

/* bande de convergence */
.bande{border-bottom:1px solid var(--trait);background:linear-gradient(var(--surface-2),var(--surface));padding:8px 20px 6px}
.bande svg{display:block;width:100%;height:auto}
.bande text{font-family:var(--f-code);font-size:10.5px;fill:var(--doux)}

.zone{padding:22px 26px 28px}
.entete{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:20px}
.entete h3{font-family:var(--f-titre);font-size:25px;font-weight:700;letter-spacing:-.025em;margin:0}
.entete p{margin:4px 0 0;color:var(--doux)}
.sur{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--doux);margin:0 0 10px}
.actions{display:flex;gap:8px;flex-shrink:0}
.btn{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:9px;border:1px solid var(--trait-fort);background:var(--surface);color:var(--encre);font:600 13px var(--f-ui);cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--encre-2)}
.btn-prim{background:var(--ocre-vif);border-color:var(--ocre-vif);color:var(--sur-ocre)}
.btn-prim:hover{filter:brightness(1.05);border-color:var(--ocre)}
.btn-danger{color:var(--rupture)}
.puce{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:99px;font-size:11.5px;font-weight:600;background:var(--surface-3);color:var(--encre-2);white-space:nowrap}
.puce.ok{background:var(--ok-voile);color:var(--ok)}
.puce.rup{background:var(--rupture-voile);color:var(--rupture)}
.puce.viv{background:var(--vivant-voile);color:var(--vivant)}
.puce.ia{background:var(--ia-voile);color:var(--ia)}
.puce.ocr{background:var(--ocre-voile);color:var(--ocre-texte)}
.point{width:7px;height:7px;border-radius:50%;background:currentColor;display:inline-block}
.panneau{border:1px solid var(--trait);border-radius:12px;background:var(--surface)}
.panneau-t{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--trait)}
.panneau-t h4{margin:0;font-size:13px;font-weight:700}
.grille-2{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}
.grille-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
table.liste{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.liste th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pale);padding:9px 14px;border-bottom:1px solid var(--trait)}
.liste td{padding:11px 14px;border-bottom:1px solid var(--trait);vertical-align:middle}
.liste tr:last-child td{border-bottom:0}
.liste tr:hover td{background:var(--surface-2)}
.nom{font-weight:700}
.jauge{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden;width:110px}
.jauge i{display:block;height:100%;border-radius:99px;background:var(--ok)}

/* ecran : aujourd'hui */
.salut h3{font-family:var(--f-titre);font-size:34px;font-weight:700;letter-spacing:-.03em;margin:0}
.salut p{margin:6px 0 0;font-size:15.5px;color:var(--encre-2)}
.attente{display:grid;gap:10px;margin:22px 0 26px}
.item{display:grid;grid-template-columns:5px minmax(0,1fr) auto;gap:16px;align-items:center;padding:13px 16px 13px 0;border:1px solid var(--trait);border-radius:12px;background:var(--surface);overflow:hidden}
.item::before{content:"";align-self:stretch;background:var(--c,var(--ocre))}
.item h5{margin:0;font-size:14px;font-weight:700}
.item p{margin:2px 0 0;color:var(--doux);font-size:13px}
.fil-evt{display:grid;gap:0}
.evt{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;padding:11px 16px;border-bottom:1px solid var(--trait)}
.evt:last-child{border-bottom:0}
.evt i{width:9px;height:9px;border-radius:50%;margin-top:6px;justify-self:center;background:var(--c,var(--pale));box-shadow:0 0 0 3px var(--surface-2)}
.evt b{font-weight:600}
.evt small{display:block;color:var(--pale);font-size:12px}

/* ecran : sessions */
.couloirs .liste td{padding:13px 14px}
.qui{display:flex;align-items:center;gap:10px}
.bulle{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:12px;font-weight:700;color:#fff;flex-shrink:0}
.ecart{font-family:var(--f-code);font-size:12px;color:var(--doux)}
.ecart b{color:var(--ok);font-weight:500}
.ecart u{text-decoration:none;color:var(--rupture)}
.lettre{padding:16px}
.lettre .alerte{border:1px solid color-mix(in srgb,var(--rupture) 35%,var(--trait));background:var(--rupture-voile);border-radius:10px;padding:13px 14px}
.lettre .alerte h5{margin:0 0 6px;font-size:13px;color:var(--rupture);display:flex;align-items:center;gap:6px}
.lettre code{font-family:var(--f-code);font-size:12px;background:var(--surface);padding:1px 5px;border-radius:5px;border:1px solid var(--trait)}

/* ecran : contrat */
.diff{font-family:var(--f-code);font-size:12.5px;line-height:1.7;border-radius:0 0 12px 12px;overflow:hidden}
.diff div{display:grid;grid-template-columns:40px 18px 1fr;padding:0 14px 0 0}
.diff span.n{color:var(--pale);text-align:right;padding-right:10px;user-select:none}
.diff .moins{background:var(--rupture-voile)}
.diff .plus{background:var(--ok-voile)}
.diff .moins span:nth-child(2){color:var(--rupture)}
.diff .plus span:nth-child(2){color:var(--ok)}
.note{margin:4px 14px 10px 58px;padding:9px 12px;border-radius:9px;background:var(--surface);border:1px solid color-mix(in srgb,var(--rupture) 40%,var(--trait));font-family:var(--f-ui);font-size:12.5px;line-height:1.45;color:var(--encre-2)}
.note b{color:var(--rupture)}
.chrono{list-style:none;margin:0;padding:6px 16px 14px;position:relative}
.chrono li{position:relative;padding:9px 0 9px 22px;border-left:1px dashed var(--trait-fort);margin-left:5px}
.chrono li::before{content:"";position:absolute;left:-5px;top:14px;width:9px;height:9px;border-radius:50%;background:var(--c,var(--pale));box-shadow:0 0 0 3px var(--surface)}
.chrono time{font-family:var(--f-code);font-size:11.5px;color:var(--pale);display:block}

/* ecran : proposition */
.verdict{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--trait);border-radius:12px;overflow:hidden;margin-bottom:18px}
.verdict div{padding:14px 16px;border-right:1px solid var(--trait)}
.verdict div:last-child{border-right:0}
.verdict small{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pale)}
.verdict b{display:block;font-family:var(--f-titre);font-size:21px;font-weight:700;letter-spacing:-.02em;margin-top:4px}
.verdict span{color:var(--doux);font-size:12.5px}
.avant-apres{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:16px}
.ecr{border:1px solid var(--trait);border-radius:10px;overflow:hidden;background:var(--surface-2)}
.ecr header{display:flex;justify-content:space-between;align-items:center;padding:7px 10px;border-bottom:1px solid var(--trait);font-size:11.5px;color:var(--doux)}
.ecr .corps{padding:14px;display:grid;gap:10px}
.fauxchamp{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:8px;font-size:12.5px}
.fauxchamp span:first-child{color:var(--doux)}
.fauxchamp span:last-child{padding:6px 9px;border-radius:7px;background:var(--surface);border:1px solid var(--trait);font-family:var(--f-code);font-size:12px}
.change span:last-child{border-color:var(--ocre);box-shadow:0 0 0 3px var(--ocre-voile)}
.decision{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border-top:1px solid var(--trait);background:var(--surface-2);border-radius:0 0 12px 12px}
.message{display:grid;grid-template-columns:32px minmax(0,1fr);gap:10px;padding:12px 16px;border-bottom:1px solid var(--trait)}
.message:last-child{border-bottom:0}
.message p{margin:2px 0 0;color:var(--encre-2)}

/* ecran : fiche de version */
.chaine{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;margin-bottom:18px;position:relative}
.maillon{position:relative;padding:34px 12px 0}
.maillon::before{content:"";position:absolute;top:13px;left:0;right:0;height:2px;background:var(--trait-fort)}
.maillon:first-child::before{left:50%}
.maillon:last-child::before{right:50%}
.maillon::after{content:"";position:absolute;top:7px;left:50%;margin-left:-7px;width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--c,var(--ok))}
.maillon.plein::after{background:var(--c,var(--ok))}
.maillon small{display:block;text-align:center;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--pale)}
.maillon b{display:block;text-align:center;font-size:13.5px;margin-top:3px}
.maillon span{display:block;text-align:center;font-size:12px;color:var(--doux)}
.kv{display:grid;grid-template-columns:140px 1fr;gap:0;font-size:13px}
.kv dt,.kv dd{margin:0;padding:9px 16px;border-bottom:1px solid var(--trait)}
.kv dt{color:var(--doux)}
.kv dd{font-weight:500}
.kv dt:nth-last-of-type(1),.kv dd:last-of-type{border-bottom:0}

/* ecran : en ligne */
.cibles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.cible{border:1px solid var(--trait);border-radius:12px;padding:16px;background:var(--surface)}
.cible.vive{border-color:color-mix(in srgb,var(--ok) 45%,var(--trait))}
.cible h5{margin:0;font-size:15px;display:flex;justify-content:space-between;align-items:center}
.cible .ver{font-family:var(--f-titre);font-size:24px;font-weight:700;letter-spacing:-.02em;margin:12px 0 2px}
.cible p{margin:0;color:var(--doux);font-size:12.5px}
.cible .pied{display:flex;gap:8px;margin-top:14px}
.histo td:first-child{font-family:var(--f-code);font-size:12px;color:var(--doux);white-space:nowrap}

/* ecran : briques */
.compteurs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--trait);border-radius:12px;overflow:hidden;margin-bottom:16px}
.compteurs div{padding:14px 18px;border-right:1px solid var(--trait)}
.compteurs div:last-child{border-right:0}
.compteurs b{display:block;font-family:var(--f-titre);font-size:30px;font-weight:700;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}
.compteurs span{color:var(--doux);font-size:12.5px}
.filtres{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.filtre{height:30px;padding:0 12px;border-radius:99px;border:1px solid var(--trait-fort);background:var(--surface);font:500 12.5px var(--f-ui);color:var(--encre-2)}
.filtre.on{background:var(--encre);border-color:var(--encre);color:var(--surface)}
.niv{font-family:var(--f-code);font-size:11.5px;color:var(--doux)}

/* ecran : code */
.code-grille{display:grid;grid-template-columns:230px minmax(0,1fr) 290px;min-height:520px;border:1px solid var(--trait);border-radius:12px;overflow:hidden}
.arbre{background:var(--surface-2);border-right:1px solid var(--trait);padding:12px 8px;font-size:13px}
.arbre div{padding:4px 8px;border-radius:7px;display:flex;align-items:center;gap:7px;color:var(--encre-2);white-space:nowrap}
.arbre div.dos::before{content:"▸";color:var(--pale);font-size:10px}
.arbre div.ouv::before{content:"▾";color:var(--pale);font-size:10px}
.arbre div.fic::before{content:"";width:6px;height:6px;border-radius:2px;background:var(--trait-fort);margin:0 2px}
.arbre div.sel{background:var(--ocre-voile);color:var(--ocre-texte);font-weight:600}
.arbre .p2{padding-left:22px}.arbre .p3{padding-left:36px}
.source{font-family:var(--f-code);font-size:12.5px;line-height:1.75;padding:12px 0;overflow:hidden}
.source div{display:grid;grid-template-columns:44px 1fr;white-space:pre}
.source div span:first-child{color:var(--pale);text-align:right;padding-right:14px}
.source .surli{background:var(--ocre-voile)}
.k{color:var(--ia)} .s{color:var(--ok)} .c{color:var(--pale);font-style:italic} .f{color:var(--vivant)}
.contexte{border-left:1px solid var(--trait);padding:14px 16px;display:grid;gap:18px;align-content:start}
.contexte h6{margin:0 0 8px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--pale)}
.contexte ul{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.contexte li{display:flex;justify-content:space-between;gap:8px;font-size:13px}

.fin{border-top:1px solid var(--trait-fort);padding-top:26px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;color:var(--encre-2)}
@media (max-width:900px){.fin{grid-template-columns:1fr;gap:18px}}
.fin h2{font-family:var(--f-titre);font-size:24px;letter-spacing:-.02em;margin:0 0 10px;color:var(--encre)}
.fin p{margin:0 0 10px;max-width:60ch}

/* ------------------------------------------------------------ architecture elargie */
.app.avec-nav{grid-template-columns:78px 208px minmax(0,1fr);min-width:1320px}
.snav{background:var(--surface);border-right:1px solid var(--trait);padding:16px 12px 20px;display:flex;flex-direction:column;gap:14px}
.snav .tete{padding:4px 8px 12px;border-bottom:1px solid var(--trait)}
.snav .tete b{display:block;font-family:var(--f-titre);font-size:16px;font-weight:700;letter-spacing:-.01em}
.snav .tete span{font-family:var(--f-code);font-size:11px;color:var(--doux)}
.snav h6{margin:0 0 4px;padding:0 8px;font-size:10.5px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--pale)}
.snav nav{display:grid;gap:1px}
.snav a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:8px;text-decoration:none;color:var(--encre-2);font-size:13px;font-weight:500}
.snav a:hover{background:var(--surface-2)}
.snav a.actif{background:var(--ocre-voile);color:var(--ocre-texte);font-weight:600}
.snav a em{font-style:normal;font-family:var(--f-code);font-size:11px;color:var(--pale)}
.snav a.actif em{color:var(--ocre-texte)}
.snav a .alerte-n{font-family:var(--f-code);font-size:10.5px;font-weight:500;color:#fff;background:var(--rupture);border-radius:99px;padding:0 6px;line-height:17px}

/* ------------------------------------------------------------ sommaire par groupes */
.sommaire-groupes{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px 26px;margin:0 0 30px;padding:0;list-style:none}
.sommaire-groupes li>b{display:block;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ocre-texte);margin-bottom:8px}
.sommaire-groupes div{display:flex;flex-wrap:wrap;gap:6px}
.sommaire-groupes a{display:inline-flex;padding:5px 11px;border:1px solid var(--trait-fort);border-radius:99px;text-decoration:none;font-weight:500;font-size:12.5px;background:var(--surface)}
.sommaire-groupes a:hover{border-color:var(--ocre);color:var(--ocre-texte)}
.groupe-titre{display:flex;align-items:baseline;gap:14px;margin:6px 0 28px;padding-top:26px;border-top:2px solid var(--encre)}
.groupe-titre b{font-family:var(--f-titre);font-size:15px;font-weight:700;letter-spacing:.02em;text-transform:uppercase}
.groupe-titre span{color:var(--doux)}

/* ------------------------------------------------------------ carte des realites */
.carte-realites{margin-bottom:72px}
.carte-realites .enveloppe{overflow-x:auto;border:1px solid var(--trait-fort);border-radius:var(--rayon);background:var(--surface)}
.carte-realites table{width:100%;min-width:900px;border-collapse:collapse;font-size:13.5px}
.carte-realites th{text-align:left;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--pale);padding:12px 16px;border-bottom:1px solid var(--trait-fort);background:var(--surface-2)}
.carte-realites td{padding:10px 16px;border-bottom:1px solid var(--trait);vertical-align:top}
.carte-realites tr.famille td{background:var(--surface-2);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ocre-texte);padding:8px 16px}
.carte-realites td:first-child{color:var(--doux)}
.carte-realites td:nth-child(2){font-weight:700;white-space:nowrap}
.carte-realites td:nth-child(3){color:var(--encre-2)}
.carte-realites td:last-child{font-family:var(--f-code);font-size:12px;color:var(--doux);white-space:nowrap}

/* ------------------------------------------------------------ connexion */
.connexion{display:grid;grid-template-columns:1.1fr 1fr;min-height:560px}
.connexion .gauche{background:#16150F;color:#EDEBE3;padding:44px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.connexion .gauche h3{font-family:var(--f-titre);font-size:38px;line-height:1.05;letter-spacing:-.03em;margin:0;max-width:14ch}
.connexion .gauche h3 em{font-style:normal;color:#D8A25E}
.connexion .gauche p{color:#A9A597;max-width:40ch;margin:14px 0 0}
.connexion .gauche svg.motif{position:absolute;right:-40px;bottom:-30px;width:420px;opacity:.9}
.connexion .droite-f{padding:56px 60px;display:flex;flex-direction:column;justify-content:center;gap:14px;max-width:470px}
.connexion .droite-f h4{font-family:var(--f-titre);font-size:24px;margin:0 0 4px;letter-spacing:-.02em}
.champ{display:grid;gap:6px}
.champ label{font-size:12.5px;font-weight:600;color:var(--encre-2)}
.champ div{height:40px;border:1px solid var(--trait-fort);border-radius:9px;display:flex;align-items:center;padding:0 12px;color:var(--pale);background:var(--surface)}
.champ div.rempli{color:var(--encre)}
.separateur{display:flex;align-items:center;gap:10px;color:var(--pale);font-size:12px}
.separateur::before,.separateur::after{content:"";flex:1;height:1px;background:var(--trait)}
.btn-large{height:42px;justify-content:center;width:100%;font-size:14px}

/* ------------------------------------------------------------ profil */
.profil-tete{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;padding-bottom:22px;border-bottom:1px solid var(--trait);margin-bottom:20px}
.grand-avatar{width:92px;height:92px;border-radius:26px;display:grid;place-items:center;font-family:var(--f-titre);font-size:34px;font-weight:700;background:var(--encre);color:var(--ocre-vif)}
.profil-tete h3{font-family:var(--f-titre);font-size:30px;letter-spacing:-.03em;margin:0}
.profil-tete p{margin:4px 0 0;color:var(--encre-2);max-width:60ch}
.meta{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px;font-size:12.5px;color:var(--doux)}
.epingles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.epingle{border:1px solid var(--trait);border-radius:12px;padding:14px 16px;background:var(--surface)}
.epingle h5{margin:0;font-size:14.5px;display:flex;justify-content:space-between;align-items:center}
.epingle p{margin:6px 0 10px;color:var(--doux);font-size:13px}
.epingle .bas-e{display:flex;gap:14px;font-size:12px;color:var(--doux);align-items:center}
.rythme svg{display:block;width:100%;height:auto}
.rythme text{font-family:var(--f-code);font-size:10px;fill:var(--pale)}
.legende-mini{display:flex;gap:14px;font-size:12px;color:var(--doux)}
.legende-mini i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}

/* ------------------------------------------------------------ boite */
.boite-groupe h6{margin:18px 0 8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pale)}
.boite-groupe h6:first-child{margin-top:0}
.notif{display:grid;grid-template-columns:5px 34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 14px 11px 0;border-bottom:1px solid var(--trait)}
.notif::before{content:"";align-self:stretch;background:var(--c,transparent)}
.notif .icone{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-3);font-size:14px}
.notif b{font-weight:600}
.notif small{display:block;color:var(--pale);font-size:12px}
.notif.lu{opacity:.62}

/* ------------------------------------------------------------ recherche */
.requete{display:flex;align-items:center;gap:12px;height:50px;border:1.5px solid var(--ocre);border-radius:12px;padding:0 16px;font-size:17px;box-shadow:0 0 0 4px var(--ocre-voile);margin-bottom:16px;background:var(--surface)}
.requete kbd{margin-left:auto;font-family:var(--f-code);font-size:11px;color:var(--doux)}
.onglets{display:flex;gap:4px;border-bottom:1px solid var(--trait);margin-bottom:14px}
.onglets span{padding:8px 12px;font-size:13px;font-weight:500;color:var(--doux);border-bottom:2px solid transparent;margin-bottom:-1px}
.onglets span.on{color:var(--encre);border-color:var(--ocre);font-weight:700}
.onglets span em{font-style:normal;font-family:var(--f-code);font-size:11px;color:var(--pale);margin-left:5px}
.resultat{border:1px solid var(--trait);border-radius:12px;overflow:hidden;margin-bottom:10px;background:var(--surface)}
.resultat header{display:flex;justify-content:space-between;align-items:center;padding:9px 14px;background:var(--surface-2);border-bottom:1px solid var(--trait);font-size:13px}
.extrait{font-family:var(--f-code);font-size:12.5px;line-height:1.7;padding:8px 0}
.extrait div{display:grid;grid-template-columns:44px 1fr;white-space:pre}
.extrait div span:first-child{color:var(--pale);text-align:right;padding-right:14px}
.extrait mark{background:var(--ocre-voile);color:var(--ocre-texte);border-radius:3px;padding:0 2px}

/* ------------------------------------------------------------ agents */
.budget{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden;width:120px}
.budget i{display:block;height:100%;background:var(--ia)}
.validation{border:1px solid color-mix(in srgb,var(--ia) 40%,var(--trait));background:var(--ia-voile);border-radius:12px;padding:14px 16px;margin-bottom:10px}
.validation h5{margin:0 0 4px;font-size:13.5px}
.validation p{margin:0 0 10px;color:var(--encre-2);font-size:13px}
.droits-ia{display:flex;flex-wrap:wrap;gap:6px}

/* ------------------------------------------------------------ espace */
.espace-tete{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;margin-bottom:20px}
.espace-logo{width:64px;height:64px;border-radius:18px;background:linear-gradient(135deg,var(--ocre-vif),var(--ocre));display:grid;place-items:center;font-family:var(--f-titre);font-weight:800;font-size:26px;color:var(--sur-ocre)}
.pile{display:flex}
.pile span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:10.5px;font-weight:700;color:#fff;border:2px solid var(--surface);margin-left:-8px}
.pile span:first-child{margin-left:0}

/* ------------------------------------------------------------ droits */
.matrice td{text-align:center}
.matrice td:first-child{text-align:left}
.droit{display:inline-block;min-width:74px;font-size:11.5px;font-weight:600;padding:3px 8px;border-radius:6px}
.droit.admin{background:var(--encre);color:var(--surface)}
.droit.ecrit{background:var(--ok-voile);color:var(--ok)}
.droit.lit{background:var(--surface-3);color:var(--doux)}
.droit.non{color:var(--pale)}

/* ------------------------------------------------------------ branches */
.ecart-barre{display:grid;grid-template-columns:70px 70px;align-items:center;gap:0}
.ecart-barre i{display:block;height:8px}
.ecart-barre .g{justify-self:end;background:var(--rupture);border-radius:4px 0 0 4px}
.ecart-barre .d{background:var(--ok);border-radius:0 4px 4px 0}
.ecart-barre .axe{grid-column:1/3;height:0}

/* ------------------------------------------------------------ documentation */
.doc-grille{display:grid;grid-template-columns:210px minmax(0,1fr) 260px;border:1px solid var(--trait);border-radius:12px;overflow:hidden;min-height:520px}
.prose{padding:26px 34px;max-width:720px}
.prose h4{font-family:var(--f-titre);font-size:26px;letter-spacing:-.02em;margin:0 0 6px}
.prose h5{font-family:var(--f-titre);font-size:17px;margin:22px 0 6px}
.prose p{margin:0 0 10px;color:var(--encre-2);line-height:1.65}
.prose blockquote{margin:14px 0;padding:10px 16px;border-left:3px solid var(--ocre);background:var(--ocre-voile);border-radius:0 8px 8px 0;color:var(--encre-2)}

/* ------------------------------------------------------------ sujets */
.jalon{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:12px 16px;border:1px solid var(--trait);border-radius:12px;margin-bottom:16px}
.jalon .jauge{width:100%;height:8px}
.kanban{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.colonne{background:var(--surface-2);border:1px solid var(--trait);border-radius:12px;padding:10px;display:grid;gap:8px;align-content:start}
.colonne>header{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 6px;font-size:12px;font-weight:700;color:var(--encre-2)}
.colonne>header em{font-style:normal;font-family:var(--f-code);color:var(--pale);font-weight:500}
.carte-sujet{background:var(--surface);border:1px solid var(--trait);border-radius:10px;padding:10px 11px;display:grid;gap:7px}
.carte-sujet h5{margin:0;font-size:13px;line-height:1.35}
.carte-sujet .liens{display:flex;flex-wrap:wrap;gap:4px}
.carte-sujet .liens .puce{height:19px;font-size:10.5px;padding:0 6px}
.carte-sujet footer{display:flex;justify-content:space-between;align-items:center;font-family:var(--f-code);font-size:11px;color:var(--pale)}

/* ------------------------------------------------------------ verifications */
.etapes{list-style:none;margin:0;padding:6px 0}
.etapes li{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 16px}
.etapes li .etat{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:var(--c,var(--ok))}
.etapes li small{display:block;color:var(--pale);font-size:12px}
.etapes li.en-cours .etat{background:var(--vivant)}
.journal{margin:0;background:#16150F;color:#D9D5C9;font-family:var(--f-code);font-size:12px;line-height:1.7;padding:14px 16px;border-radius:0 0 12px 12px;overflow:auto}
.journal .ok{color:#7FCBA4}.journal .av{color:#E2B374}.journal .gr{color:#8C8A7F}

/* ------------------------------------------------------------ confiance */
.gravites{display:flex;height:12px;border-radius:99px;overflow:hidden;margin:10px 0 6px}
.gravites i{display:block;height:100%}
.score{font-family:var(--f-titre);font-size:44px;font-weight:800;letter-spacing:-.04em;line-height:1}

/* ------------------------------------------------------------ paquets */
.publication{border:1px solid var(--trait);border-radius:12px;background:var(--surface);overflow:hidden;margin-bottom:12px}
.publication>header{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;border-bottom:1px solid var(--trait)}
.publication>header h5{margin:0;font-family:var(--f-titre);font-size:19px;letter-spacing:-.02em}
.fichiers-pub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.fichiers-pub div{padding:11px 16px;border-right:1px solid var(--trait);font-size:12.5px}
.fichiers-pub div:last-child{border-right:0}
.fichiers-pub b{display:block;font-family:var(--f-code);font-weight:500;font-size:12px}

/* ------------------------------------------------------------ observation */
.remontee{display:flex;align-items:stretch;gap:0;margin:4px 0 0}
.remontee div{flex:1;padding:12px 14px;border:1px solid var(--trait);border-left:0;background:var(--surface);position:relative;font-size:12.5px}
.remontee div:first-child{border-left:1px solid var(--trait);border-radius:10px 0 0 10px}
.remontee div:last-child{border-radius:0 10px 10px 0}
.remontee small{display:block;font-size:10.5px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--pale);margin-bottom:3px}
.remontee b{font-weight:600}
.etincelle svg{display:block;width:100%;height:46px}

/* ------------------------------------------------------------ reglages */
.reglages-grille{display:grid;grid-template-columns:200px minmax(0,1fr);gap:22px}
.reglages-menu{display:grid;gap:2px;align-content:start}
.reglages-menu span{padding:7px 10px;border-radius:8px;font-size:13px;color:var(--encre-2)}
.reglages-menu span.on{background:var(--surface-3);font-weight:700;color:var(--encre)}
.regle{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:13px 16px;border-bottom:1px solid var(--trait)}
.regle:last-child{border-bottom:0}
.regle h5{margin:0;font-size:13.5px}
.regle p{margin:2px 0 0;color:var(--doux);font-size:12.5px}
.bascule{width:38px;height:22px;border-radius:99px;background:var(--trait-fort);position:relative}
.bascule::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface)}
.bascule.on{background:var(--ok)}
.bascule.on::after{left:19px}

/* ------------------------------------------------------------ explorer */
.decouverte{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.projet-carte{border:1px solid var(--trait);border-radius:14px;padding:16px;background:var(--surface);display:grid;gap:10px}
.projet-carte h5{margin:0;font-size:15px;display:flex;justify-content:space-between;gap:10px}
.projet-carte p{margin:0;color:var(--doux);font-size:13px}
.projet-carte .bas-e{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--doux)}
.avec-nav .code-grille{grid-template-columns:186px minmax(0,1fr) 236px}
.avec-nav .source{overflow-x:auto}

/* ================================================================ application
   La maquette montrait des ecrans encadres dans une page ; la plateforme, elle,
   occupe toute la fenetre. */
html,body{margin:0}

.app,.app.avec-nav{min-width:0;min-height:100vh;border:0;border-radius:0;box-shadow:none}
.app,.app.avec-nav{display:block;overflow:visible}
.rail{position:fixed;left:0;top:0;bottom:0;width:78px;z-index:30;overflow-y:auto;scrollbar-width:none}
.principal{margin-left:78px}
.snav{position:sticky;top:0;height:100vh;overflow-y:auto}
.barre{position:sticky;top:0;z-index:25;background:var(--surface)}
.principal{background:var(--surface)}
.zone{max-width:1440px}
.rail a,.snav a{cursor:pointer}
a.nom,a.lien{text-decoration:none;color:inherit}
a.nom:hover,a.lien:hover{color:var(--ocre-texte)}
.vide{padding:28px 16px;text-align:center;color:var(--doux)}
.vide b{display:block;font-family:var(--f-titre);font-size:17px;color:var(--encre);margin-bottom:4px}
.erreur-bandeau{margin:0 0 16px;padding:11px 14px;border-radius:10px;background:var(--rupture-voile);color:var(--rupture);font-size:13px}
.avatar img,.bulle img{width:100%;height:100%;border-radius:inherit;object-fit:cover}
.commande input{flex:1;border:0;background:transparent;font:inherit;color:var(--encre);outline:none}
.connexion-page{min-height:100vh;background:var(--surface)}
.connexion-page .connexion{min-height:100vh}
.champ input{height:40px;border:1px solid var(--trait-fort);border-radius:9px;padding:0 12px;font:inherit;color:var(--encre);background:var(--surface)}
.champ input:focus{outline:2px solid var(--ocre);outline-offset:1px}
@media (max-width:860px){
  .app,.app.avec-nav{grid-template-columns:1fr}
  .rail,.snav{display:none}
  .principal{margin-left:0}
  .barre{grid-template-columns:1fr auto}
  :root{--mh-barre:104px}
  .barre{height:var(--mh-barre);row-gap:8px;padding-block:10px;align-content:center}
  .barre .commande{grid-column:1/-1;grid-row:2}
  .grille-2,.grille-3,.kanban,.cibles,.verdict,.compteurs{grid-template-columns:1fr}
  .connexion{grid-template-columns:1fr}
  .connexion .gauche{display:none}
}

/* ---- livrer et vérifier, sur petit écran ---- */
@media (max-width:860px){
  .chaine{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:14px}
  .maillon::before{display:none}
  .fichiers-pub{grid-template-columns:1fr}
  .fichiers-pub div{border-right:0;border-bottom:1px solid var(--trait)}
  .remontee{flex-direction:column}
  .remontee div,.remontee div:first-child,.remontee div:last-child{border:1px solid var(--trait);border-radius:10px;margin-bottom:6px}
  .kv{grid-template-columns:110px 1fr}
}
.chaine a.maillon:hover b{text-decoration:underline}

/* ---- partie 4 : liens d'onglets, bascules de formulaire, fil d'Explorer ---- */
.onglets a{padding:8px 12px;font-size:13px;font-weight:500;color:var(--doux);border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none}
.onglets a.on{color:var(--encre);border-color:var(--ocre);font-weight:700}
.onglets a em{font-style:normal;font-family:var(--f-code);font-size:11px;color:var(--pale);margin-left:5px}
.reglages-grille{display:grid;grid-template-columns:190px minmax(0,1fr);gap:22px}
.reglages-menu a{padding:7px 10px;border-radius:8px;font-size:13px;color:var(--encre-2);text-decoration:none;display:flex;justify-content:space-between}
.reglages-menu a.on{background:var(--surface-3);font-weight:700;color:var(--encre)}
.reglages-menu a em{font-style:normal;font-family:var(--f-code);font-size:11px;color:var(--pale)}
input.bascule-case{appearance:none;-webkit-appearance:none;width:38px;height:22px;border-radius:99px;background:var(--trait-fort);position:relative;cursor:pointer;margin:0;flex:none}
input.bascule-case::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--surface);transition:left .15s}
input.bascule-case:checked{background:var(--ok)}
input.bascule-case:checked::after{left:19px}
input.bascule-case:focus-visible{outline:2px solid var(--ocre);outline-offset:2px}
label.regle{cursor:pointer}
.champ-ligne{display:grid;gap:6px;margin-bottom:12px}
.champ-ligne label{font-size:12.5px;font-weight:600;color:var(--encre-2)}
.champ-ligne input,.champ-ligne select,.champ-ligne textarea{border:1px solid var(--trait-fort);border-radius:9px;padding:8px 11px;font:inherit;background:var(--surface);color:var(--encre)}
a.filtre{display:inline-flex;align-items:center;text-decoration:none}
.fil-reseau{display:grid;gap:12px}
.publication-fil{border:1px solid var(--trait);border-radius:14px;background:var(--surface);padding:14px 16px;display:grid;gap:10px}
.publication-fil .tete-fil{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:13.5px}
.publication-fil .tete-fil small{color:var(--pale);font-size:12px;white-space:nowrap}
.publication-fil .genre{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;background:var(--c,var(--pale))}
.mini-projet{border:1px solid var(--trait);border-radius:11px;padding:11px 13px;background:var(--surface-2);display:grid;gap:6px}
.mini-projet h6{margin:0;font-size:14px;display:flex;justify-content:space-between;gap:8px;align-items:center}
.mini-projet p{margin:0;color:var(--doux);font-size:12.5px}
.mini-projet .bas-e{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--doux);align-items:center}
.accueil-public{border:1px solid var(--trait);border-radius:16px;padding:22px 24px;margin-bottom:18px;background:linear-gradient(135deg,var(--surface) 55%,var(--ocre-voile));display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center}
.accueil-public h2{margin:0;font-family:var(--f-titre);font-size:30px;letter-spacing:-.03em}
.accueil-public p{margin:6px 0 0;color:var(--encre-2);max-width:62ch}
@media (max-width:860px){
  .reglages-grille,.accueil-public{grid-template-columns:1fr}
  .doc-grille{grid-template-columns:1fr}
  .contexte{border-left:0;border-top:1px solid var(--trait)}
  .decouverte{grid-template-columns:1fr}
}

/* ---- bandeau et navigation communs aux pages MakeHub et aux pages de la forge ---- */
.menu-mh{position:relative}
.menu-mh>summary{list-style:none}
.menu-mh>summary::-webkit-details-marker{display:none}
.menu-mh-liste{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;z-index:40;padding:6px;background:var(--surface);border:1px solid var(--trait-fort);border-radius:12px;box-shadow:0 18px 40px -18px rgba(0,0,0,.35);display:grid}
.menu-mh-liste a{padding:8px 10px;border-radius:8px;color:var(--encre);text-decoration:none;font-size:13.5px;font-weight:500}
.menu-mh-liste a:hover{background:var(--surface-2)}
.mh-cloche{position:relative;padding:0 10px}
.mh-cloche em{font-style:normal;font-family:var(--f-code);font-size:10.5px;line-height:16px;padding:0 5px;border-radius:99px;background:var(--rupture);color:#fff}
.droite{gap:10px}

.snav .tete{display:grid;gap:4px}
.snav .mh-etats{display:flex;flex-wrap:wrap;gap:4px}
.snav .mh-etats:empty{display:none}
.snav .mh-gestes{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.snav .mh-gestes a.puce{text-decoration:none}

/* ---- une seule plateforme : les variables communes, relies aux couleurs de MakeHub ---- */
:root{
  --mh-fond:var(--fond); --mh-surface:var(--surface); --mh-surface-2:var(--surface-2); --mh-surface-3:var(--surface-3);
  --mh-trait:var(--trait); --mh-trait-fort:var(--trait-fort); --mh-encre:var(--encre); --mh-encre-2:var(--encre-2);
  --mh-doux:var(--doux); --mh-pale:var(--pale); --mh-ocre:var(--ocre); --mh-ocre-voile:var(--ocre-voile); --mh-ocre-texte:var(--ocre-texte);
  --mh-rupture:var(--rupture); --mh-ok:var(--ok); --mh-ok-voile:var(--ok-voile); --mh-vivant:var(--vivant); --mh-vivant-voile:var(--vivant-voile); --mh-ia:var(--ia); --mh-ia-voile:var(--ia-voile); --mh-f-titre:var(--f-titre); --mh-f-ui:var(--f-ui); --mh-f-code:var(--f-code);
  --mh-ocre-vif:var(--ocre-vif); --mh-sur-ocre:var(--sur-ocre);
}

.zone{max-width:none}
.principal{min-height:100vh}
.principal>.zone{flex:1}
.mh-geste>button svg,.mh-geste>a svg{width:16px;height:16px}

/* ---- editeur d'images ---- */
.editeur-image{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.editeur-scene .scene{position:relative;margin:18px auto;width:min(420px,100%);aspect-ratio:1;border-radius:18px;overflow:hidden;background:repeating-conic-gradient(var(--surface-3) 0 25%,var(--surface) 0 50%) 0 0/24px 24px;cursor:grab;touch-action:none;outline:none}
.editeur-scene .scene:focus-visible{box-shadow:0 0 0 3px var(--ocre-voile)}
.editeur-scene .scene.survol{box-shadow:0 0 0 3px var(--ocre)}
.editeur-scene canvas{width:100%;height:100%;display:block}
.editeur-image.rond .scene .gabarit{position:absolute;inset:0;border-radius:50%;box-shadow:0 0 0 999px rgba(22,23,15,.45);pointer-events:none}
.editeur-scene .depot{position:absolute;inset:0;display:grid;place-content:center;gap:6px;text-align:center;padding:24px;color:var(--doux);cursor:pointer;border:2px dashed var(--trait-fort);border-radius:18px;background:var(--surface-2)}
.editeur-scene .depot b{color:var(--encre);font-size:16px}
.editeur-scene .depot.cache{display:none}
.reglages-image{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:center;padding:0 16px 18px}
.reglages-image label:not(.btn){display:flex;align-items:center;gap:8px;font-size:13px;color:var(--doux)}
.vignette{width:120px;height:120px;border-radius:16px;object-fit:cover;display:grid;place-items:center;font:700 40px var(--f-titre);background:var(--encre);color:var(--ocre-vif)}
.editeur-image.rond .vignette{border-radius:50%}
.generees{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:14px 16px}
.generee{padding:0;border:2px solid transparent;border-radius:14px;overflow:hidden;cursor:pointer;background:none;aspect-ratio:1}
.generee:hover,.generee:focus-visible{border-color:var(--ocre)}
.generee img{width:100%;height:100%;display:block}
.editeur-image.rond .generee{border-radius:50%}
@media (max-width:860px){.editeur-image{grid-template-columns:1fr}}

/* ---- grilles : aucun bloc ne deborde sur son voisin, quelle que soit la largeur ---- */
.grille-2>*,.grille-3>*,.grille-2>div>*,.grille-2>aside>*,.kanban>*,.cibles>*,.decouverte>*,.epingles>*{min-width:0}
.grille-2>div[style*="display:grid"],.grille-2>aside[style*="display:grid"]{grid-template-columns:minmax(0,1fr)}
.panneau{min-width:0;max-width:100%}
.liste td{overflow-wrap:anywhere}
.liste td.mono,.liste td[style*="nowrap"]{overflow-wrap:normal}
.kv dd{min-width:0;overflow-wrap:anywhere}
.commande.mono{overflow-wrap:anywhere}
@media (max-width:1180px){
  .grille-2{grid-template-columns:minmax(0,1fr)}
  .grille-3,.cibles,.decouverte{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kanban{grid-template-columns:repeat(3,minmax(0,1fr))}
  .verdict,.compteurs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .code-grille,.doc-grille{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:720px){
  .grille-3,.cibles,.decouverte,.kanban,.epingles,.verdict,.compteurs{grid-template-columns:minmax(0,1fr)}
  .kv{grid-template-columns:minmax(0,1fr)}
  .chaine{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ---- livraison pilotee depuis l'interface ---- */
.ok-bandeau{margin:0 0 16px;padding:11px 14px;border-radius:10px;background:var(--ok-voile);color:var(--ok);font-size:13px;font-weight:600}
.livrer{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.livrer form{margin:0}
.livrer .btn[disabled]{opacity:.55;cursor:default}
.chaine-mh{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:14px 16px;margin-bottom:16px;border-color:var(--ocre)}
.chaine-mh p{margin:4px 0 0;color:var(--encre-2);font-size:13px;max-width:78ch}
.chaine-mh form{margin:0;flex:none}
@media (max-width:720px){.chaine-mh{flex-direction:column;align-items:flex-start}}

/* ---- agents ---- */
.mission-form{padding:14px 16px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mission-form .large{grid-column:1/-1}
.mission-form textarea,.reglages-ia input:not([type=radio]):not([type=checkbox]){width:100%;font:inherit;padding:8px 10px;border:1px solid var(--trait-fort);border-radius:9px;background:var(--surface);color:var(--encre)}
.reglages-ia{padding:16px;display:grid;gap:14px}
.reglages-ia fieldset{border:0;margin:0;padding:0;display:grid;gap:8px}
.reglages-ia legend{font-weight:700;margin-bottom:6px}
.choix{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--trait);border-radius:10px;cursor:pointer}
.choix span{display:grid;gap:2px}.choix small{color:var(--doux)}
/* ---- la mission, fil vivant : l'essentiel lisible, le detail ouvrable ---- */
.fil-mission{list-style:none;margin:0;padding:6px 0}
.fil-mission>li{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;padding:9px 16px;border-top:1px solid var(--trait);font-size:13px}
.fil-mission>li:first-child{border-top:0}
.fil-mission time{font:12px var(--f-code);color:var(--doux);padding-top:2px}
.fil-mission p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.fil-mission li.evenement{background:var(--surface-2)}
.fil-mission li.message{background:var(--ocre-voile);border-left:3px solid var(--ocre)}
.fil-mission li.question{background:var(--ia-voile);border-left:3px solid var(--ia)}
.fil-mission li.fin b{font-weight:600}
.fil-mission li.erreur p,.fil-mission li.erreur summary,.actions-tour li.erreur{color:var(--rupture)}
.fil-mission details{margin-top:4px}
.fil-mission summary{cursor:pointer;color:var(--doux)}
.actions-tour{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px}
.actions-tour li.outil b{color:var(--ia)}
.fil-mission pre{margin:6px 0 0;max-height:260px;overflow:auto;font:12px/1.45 var(--f-code);background:var(--surface);padding:8px 10px;border-radius:8px;white-space:pre-wrap;overflow-wrap:anywhere}
.question-agent{border:1px solid var(--ia);background:var(--ia-voile);border-radius:12px;padding:12px 16px;margin-bottom:14px}
.question-agent h4{margin:0 0 6px}.question-agent p{margin:0}
.ecrire-agent form{padding:12px 16px;display:grid;gap:8px}
.ecrire-agent textarea{width:100%;font:inherit;padding:8px 10px;border:1px solid var(--trait-fort);border-radius:9px;background:var(--surface);color:var(--encre)}
.missions-liste{list-style:none;margin:0;padding:4px 0}
.missions-liste li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 16px;border-top:1px solid var(--trait)}
.missions-liste li:first-child{border-top:0}
.missions-liste li.decider{background:var(--ocre-voile)}
.cases-liste{display:grid;gap:6px}
.cases-liste .adm-case{display:flex;gap:8px;align-items:flex-start}
.fournisseurs-ia{display:grid;gap:12px;padding:4px 16px 12px}
.fournisseur-ia{border:1px solid var(--trait);border-radius:12px;padding:12px 14px;display:grid;gap:8px}
.fournisseur-ia.defaut{border-color:var(--ok)}
.fournisseur-ia header{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.fournisseur-choix{display:grid;grid-template-columns:minmax(80px,120px) minmax(0,1fr);gap:8px 12px;align-items:center}
.fournisseur-choix .eco-actions{grid-column:1/-1}
.fournisseur-choix select,.fournisseur-choix input{width:100%;font:inherit;padding:7px 10px;border:1px solid var(--trait-fort);border-radius:9px;background:var(--surface);color:var(--encre)}
@media (max-width:720px){.fournisseur-choix,.missions-liste li{grid-template-columns:minmax(0,1fr)}}
@media (max-width:720px){.mission-form{grid-template-columns:minmax(0,1fr)}}
.outils-analyse{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 14px}

/* ---- telemetrie de l'application ---- */
.jeton-otlp{padding:14px 16px;margin-bottom:14px;border-color:var(--ok);display:grid;gap:8px}
.jeton-otlp pre{margin:0;padding:10px 12px;border-radius:9px;background:var(--surface-2);font:12.5px/1.5 var(--f-code);white-space:pre-wrap;overflow-wrap:anywhere}
.jeton-otlp p{margin:0;font-size:12.5px}
.journaux-appli{list-style:none;margin:0;padding:4px 0;font:12.5px/1.45 var(--f-code);max-height:420px;overflow:auto}
.journaux-appli li{display:grid;grid-template-columns:62px 52px minmax(0,120px) minmax(0,1fr);gap:8px;padding:3px 16px}
.journaux-appli time,.journaux-appli .svc{color:var(--doux)}
.journaux-appli .msg{overflow-wrap:anywhere}
.journaux-appli .grav{font-weight:600}
.journaux-appli li.ERROR .grav,.journaux-appli li.FATAL .grav{color:var(--rupture)}
.journaux-appli li.WARN .grav{color:var(--ocre-texte)}
@media (max-width:720px){.journaux-appli li{grid-template-columns:56px minmax(0,1fr)}.journaux-appli .grav,.journaux-appli .svc{display:none}}
.protection-envois{display:flex;gap:18px;align-items:center;justify-content:space-between;padding:14px 16px;margin-bottom:16px}
.protection-envois p{margin:4px 0 0;font-size:13px;max-width:80ch}
.protection-envois form{margin:0;flex:none}
@media (max-width:720px){.protection-envois{flex-direction:column;align-items:flex-start}}
.syntaxe-recherche{margin-top:8px;font-size:12.5px}
.syntaxe-recherche summary{cursor:pointer;color:var(--doux)}
.syntaxe-recherche dl{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;margin:8px 0 0}
.syntaxe-recherche dt{color:var(--encre);margin-top:6px}
.syntaxe-recherche dd{margin:0;color:var(--doux)}
.accepter-risque{margin-top:6px}
.accepter-risque>summary{list-style:none;display:inline-flex}
.accepter-risque>summary::-webkit-details-marker{display:none}
.accepter-risque form{display:grid;gap:6px;margin-top:8px;min-width:220px;font-size:12.5px}
.accepter-risque input,.accepter-risque select{width:100%;font:inherit;padding:6px 8px;border:1px solid var(--trait-fort);border-radius:8px;background:var(--surface);color:var(--encre)}

/* ecosysteme : plateformes soeurs reliees */
.ecosysteme{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));align-items:start}
.eco-form{padding:12px 16px 16px;display:grid;gap:4px}
.eco-form>p{margin:0 0 10px;font-size:13px}
.eco-a-declarer{border:1px dashed var(--trait-fort);border-radius:10px;padding:10px 12px;margin:4px 0 12px;display:grid;gap:8px;font-size:12.5px}
.eco-a-declarer p{margin:0;color:var(--encre-2);font-weight:600}
.eco-a-declarer .copie{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;align-items:center}
.eco-a-declarer .copie span{grid-column:1/-1}
.eco-a-declarer code{font:500 12px var(--f-code);overflow-wrap:anywhere;color:var(--encre)}
.eco-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.eco-case{display:flex;gap:8px;align-items:center;font-size:13px;margin:2px 0 6px}
.btn-sancti{display:inline-flex;align-items:center;justify-content:center;gap:9px}
.separateur-connexion{display:flex;align-items:center;gap:10px;margin:4px 0;color:var(--doux);font-size:12.5px}
.separateur-connexion::before,.separateur-connexion::after{content:"";flex:1;border-top:1px solid var(--trait)}

/* ---- administration ---- */
/* Administration de la plateforme et regles d'un espace. */
.adm-sommaire { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 16px; }
.adm-sommaire a { padding: 5px 11px; border: 1px solid var(--trait, #ddd); border-radius: 999px; font-size: 13px; color: var(--encre-2, inherit); text-decoration: none; }
.adm-sommaire a:hover { border-color: var(--ocre, #D8A25E); }
.adm-section { margin-bottom: 18px; scroll-margin-top: 70px; }
.adm-form { display: grid; gap: 10px; padding: 12px 16px; }
.adm-form .champ-ligne { display: grid; grid-template-columns: minmax(180px, 240px) 120px 1fr; gap: 10px; align-items: center; }
.adm-form .champ-ligne input { width: 100%; }
.adm-case { display: flex; gap: 8px; align-items: flex-start; font-size: 13.5px; }
.adm-etat { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding: 6px 16px 12px; }
.adm-sous { margin: 14px 16px 6px; font-size: 14px; }
.adm-section > p.doux, .adm-section > .liste, .adm-section > .kv, .adm-section > .vide { margin-left: 16px; margin-right: 16px; }
.adm-toml { width: 100%; font-size: 12.5px; line-height: 1.5; resize: vertical; }
.adm-essai { border-top: 1px solid var(--trait, #ddd); padding-top: 8px; }
.adm-echec { margin: 0 16px 8px; font-size: 13px; }
.adm-echec summary { cursor: pointer; }
.adm-echec pre { white-space: pre-wrap; word-break: break-word; max-height: 320px; overflow: auto; font-size: 12px; background: var(--surface-2, rgba(0,0,0,.04)); padding: 8px 10px; border-radius: 6px; }
.adm-licences { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.adm-licences label { display: grid; gap: 4px; font-size: 13px; }
.adm-sources { display: grid; gap: 4px; font-size: 13px; }
.adm-sources input { width: 56px; }
@media (max-width: 720px) {
  .adm-form .champ-ligne { grid-template-columns: 1fr; }
}

/* ---- confiance ---- */
/* Page Confiance : ajouts de la vague 1 (a fusionner dans makehub.css).
   La page s'affiche deja correctement sans eux : les styles essentiels sont en ligne. */

/* filtres des failles, en tete du bloc « À traiter » */
.filtres-failles { border-bottom: 1px solid var(--trait); }
.filtres-failles label { display: inline-flex; gap: 4px; align-items: center; cursor: pointer; }

/* detail depliable d'un secret : qui, quand, ou exactement */
.detail-secret dl.kv { grid-template-columns: max-content 1fr; }

/* un secret revoque reste visible, en retrait : il est dans l'historique mais ne vaut plus rien */
tr.secret-revoque td { opacity: .72; }

/* ---- recherche ---- */
/* Page Recherche : aide a la requete, reglages (vue, contexte, casse),
   extraits avec contexte et liens vers la ligne. A fusionner dans makehub.css
   (le lien vers ce fichier dans recherche.tmpl pourra alors etre retire). */

.rch-aide{border:1px solid var(--trait);border-radius:10px;background:var(--surface-2);padding:9px 14px;margin-bottom:12px;font-size:13px;display:grid;gap:6px}
.rch-aide.rch-erreur{border-color:var(--rupture);background:var(--rupture-voile);color:var(--encre)}
.rch-aide.rch-erreur b{color:var(--rupture)}
.rch-position{font-size:12.5px;white-space:pre-wrap;word-break:break-all}
.rch-position mark{background:var(--rupture);color:var(--surface);border-radius:3px;padding:0 2px}

.rch-reglages{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;font-size:12.5px}
.rch-groupe{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--trait);border-radius:8px;padding:2px;background:var(--surface)}
.rch-groupe .doux{padding:0 6px}
.rch-groupe a{padding:3px 9px;border-radius:6px;text-decoration:none;color:var(--doux);font-weight:500}
.rch-groupe a:hover{color:var(--encre)}
.rch-groupe a.on{background:var(--ocre-voile);color:var(--ocre-texte);font-weight:700}
.rch-casse{margin-left:auto}
.rch-casse a{font-family:var(--f-code)}

.rch-puces{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.resultat.rch-fichier header{border-bottom:0}
.extrait div.rch-contexte span:last-child{color:var(--doux)}
.extrait div.rch-saut span{color:var(--pale)}
.extrait div span:first-child a{color:inherit;text-decoration:none}
.extrait div span:first-child a:hover{color:var(--ocre-texte);text-decoration:underline}
.rch-coupe{font-size:12.5px}
.rch-frais{color:var(--vivant);font-weight:600}

@media (max-width:640px){
  .rch-casse{margin-left:0}
  .resultat header{flex-wrap:wrap;gap:6px}
}

/* Recherche limitee a un projet, usages d'un nom */
.rch-portee{display:flex;flex-wrap:wrap;gap:6px 16px}

/* Champ de recherche d'une page de projet (Contrats) */

/* Page Proposition : usages ailleurs des fonctions modifiees */
.rch-impact{margin-bottom:14px}
.rch-impact ul{list-style:none;margin:0;padding:0}
.rch-impact li{padding:10px 16px;border-top:1px solid var(--trait);display:grid;gap:6px}
.rch-impact li:first-child{border-top:0}
.rch-impact-nom{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px}
.rch-impact-nom .lien{margin-left:auto;font-size:12.5px}
.rch-impact .extrait{margin:0}
.rch-impact-plus{margin:0;font-size:12.5px}

/* ---- Pages de code de la forge (variables --mh-* : les deux cotes les definissent) ---- */

.mh-symbole{position:absolute;z-index:1000;min-width:210px;display:grid;padding:6px;border:1px solid var(--mh-trait-fort);border-radius:10px;background:var(--mh-surface);box-shadow:0 8px 24px rgba(0,0,0,.14);font:13px var(--mh-f-ui)}
.mh-symbole-nom{padding:4px 8px 6px;font:500 12.5px var(--mh-f-code);color:var(--mh-doux);border-bottom:1px solid var(--mh-trait);margin-bottom:4px;overflow-wrap:anywhere}
.mh-symbole a{padding:6px 8px;border-radius:6px;color:var(--mh-encre);text-decoration:none}
.mh-symbole a:hover,.mh-symbole a:focus{background:var(--mh-surface-2);outline:0}

.mh-plan{position:relative;margin-left:10px;font:13px var(--mh-f-ui)}
.mh-plan > summary{cursor:pointer;list-style:none;padding:2px 9px;border:1px solid var(--mh-trait);border-radius:7px;color:var(--mh-encre-2);font-weight:600}
.mh-plan > summary::-webkit-details-marker{display:none}
.mh-plan > summary em{font-style:normal;color:var(--mh-doux);margin-left:4px;font-weight:500}
.mh-plan > ol{position:absolute;z-index:900;left:0;top:calc(100% + 6px);width:min(360px,80vw);max-height:60vh;overflow:auto;margin:0;padding:6px;list-style:none;border:1px solid var(--mh-trait-fort);border-radius:10px;background:var(--mh-surface);box-shadow:0 8px 24px rgba(0,0,0,.14)}
.mh-plan li a{display:flex;justify-content:space-between;gap:10px;padding:5px 8px;border-radius:6px;color:var(--mh-encre);text-decoration:none}
.mh-plan li a:hover{background:var(--mh-surface-2)}
.mh-plan li a span{font-family:var(--mh-f-code);overflow-wrap:anywhere}
.mh-plan li a small{color:var(--mh-doux);white-space:nowrap}
.mh-plan li.mh-plan-enfant a{padding-left:22px}


/* ---- secrets (vague 4) : suivi de chaque secret, garde des textes et des agents ---- */
.etat-secret{white-space:nowrap}
.etat-suivi{font-size:12px;margin-top:3px;line-height:1.4}
.secret-hasard{font-size:12px;white-space:nowrap}
tr.secret-traite td{opacity:.85}
tr.secret-traite .puce.ok{opacity:1}
.actions-tour li.garde{color:var(--ocre);font-style:italic}
.garde-secret{max-width:620px;margin:12vh auto;padding:0 16px;font:15px/1.55 var(--f-ui,system-ui)}
.garde-secret h1{font-size:22px;margin:0 0 10px}
.point-depart{margin-top:8px;font-size:12.5px;line-height:1.45}
.point-depart form,form.point-depart{display:inline-block;margin-top:4px}

/* ---- failles (vague 3) : Confiance, verdict des propositions, En ligne ---- */
.menu-export{position:relative}
.menu-export > summary{list-style:none;cursor:pointer}
.menu-export > summary::-webkit-details-marker{display:none}
.menu-export > div{position:absolute;right:0;top:calc(100% + 6px);z-index:20;display:grid;gap:2px;min-width:240px;padding:6px;border:1px solid var(--trait-fort);border-radius:10px;background:var(--surface);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.menu-export > div a{padding:6px 8px;border-radius:6px;color:var(--encre);text-decoration:none;font-size:13px}
.menu-export > div a:hover,.menu-export > div a:focus{background:var(--surface-2);outline:0}
.menu-export > div small{padding:4px 8px 2px;font-size:11.5px}
.origine-paquet{font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}
.fiche-faille{margin:4px 0 6px}
.fiche-faille > summary{cursor:pointer;font-size:12px}
.fiche-faille .kv{font-size:12.5px;margin-top:4px}
.fiche-description{margin:6px 0 0;font-size:12.5px;color:var(--encre-2);white-space:pre-wrap;max-height:220px;overflow:auto}
.accepter-risque .ecarter-mode{border:1px solid var(--trait);border-radius:8px;padding:6px 10px 10px;margin:8px 0 0;display:grid;gap:6px}
.accepter-risque .ecarter-mode legend{font-size:12px;color:var(--doux);padding:0 4px}
.extrait-config{margin-top:4px}
.extrait-config > summary{cursor:pointer;font-size:12.5px}
.extrait-config pre{margin:6px 0 0;font-size:12px;max-height:260px;overflow:auto;white-space:pre}
.extrait-config pre .cause{background:color-mix(in srgb,var(--rupture) 14%,transparent);display:inline-block;min-width:100%}
.volet-ecartees{border-top:1px solid var(--trait)}
.volet-ecartees > summary{cursor:pointer;list-style:none}
.volet-ecartees > summary::-webkit-details-marker{display:none}
.ecartees-echus{margin:0;padding:8px 14px;font-size:13px}
.verdict.verdict-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.garde-en-ligne{margin-bottom:16px;border-color:var(--rupture)}
.garde-en-ligne > p,.garde-en-ligne form{padding:10px 16px;margin:0}
.garde-en-ligne form{display:grid;gap:10px}
.garde-en-ligne form label{display:grid;gap:4px;font-size:13px}
.garde-en-ligne .actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.badge-confiance{white-space:normal}
.carte-confiance{margin-bottom:16px}
@media (max-width:1180px){.verdict.verdict-5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){
  .verdict.verdict-5{grid-template-columns:minmax(0,1fr)}
  .menu-export > div{right:auto;left:0;min-width:0;width:min(280px,86vw)}
}

/* ---------------------------------------------------------------- paquets (vague 4) : securite des versions et des publications */
.securite-versions{display:grid;gap:4px;margin-top:6px}
.etat-paquet{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:4px 6px;border-radius:8px;color:inherit;text-decoration:none;font-size:12px}
.etat-paquet:hover{background:var(--surface-2)}
.etat-paquet .mono{font-size:11.5px;min-width:52px}
.securite-pub{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;padding:9px 16px;border-top:1px solid var(--trait);font-size:12.5px}
.securite-pub form{margin:0 0 0 auto}
.grille-3:has(> .tuile-images){grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.alerte-registre td:first-child b{font-weight:600}

/* ---- recherche (vague 3) : statistiques, suivi, diagnostic, filtres de projets ---- */
.rch-stats{margin-left:auto;color:var(--doux);font-family:var(--f-code);font-size:12px}
.rch-suivre{margin:0}
.rch-suivre .btn{height:28px;font-size:12.5px}
.rch-nouveaux{margin-bottom:12px;border-color:var(--vivant)}
.rch-diagnostic{margin:0 0 12px;padding:8px 12px;border:1px dashed var(--trait-fort);border-radius:10px;background:var(--surface);font-size:12.5px}
.rch-diagnostic summary{cursor:pointer;font-weight:600}
.rch-diagnostic .kv{margin:8px 0 0}
.rch-diagnostic dd.mono{overflow-wrap:anywhere}
.rch-score{padding:4px 14px;font-size:11.5px;color:var(--doux);border-bottom:1px dashed var(--trait);overflow-wrap:anywhere}
.rch-etats{display:grid;gap:4px;margin-top:8px;font-size:12.5px}
@media (max-width:640px){.rch-stats{margin-left:0;width:100%}}
.etat-ligne{display:flex;align-items:center;gap:6px}
.etat-ligne .etat-paquet{flex:1;min-width:0}
.btn.btn-mini{height:22px;padding:0 8px;font-size:11.5px}

/* ------------------------------------------------------------------ profondeur de lecture : l'essentiel, ou tout */
.mh-profondeur{display:inline-flex;margin:0}
.mh-profondeur button{padding:6px 12px;font:600 12.5px var(--f-ui,inherit);color:var(--encre-2);background:var(--surface);border:1px solid var(--trait-fort,var(--trait));cursor:pointer}
.mh-profondeur button:first-of-type{border-radius:9px 0 0 9px}
.mh-profondeur button:last-of-type{border-radius:0 9px 9px 0;border-left:0}
.mh-profondeur button:hover{color:var(--encre);background:var(--surface-2)}
.mh-profondeur button.actif{background:var(--encre);border-color:var(--encre);color:var(--surface)}
.reglage-aide{margin:0 0 12px;font-size:13px;color:var(--encre-2);max-width:80ch}
.reglage-detail{margin-top:4px}
.reglage-detail>summary{cursor:pointer;padding:10px 16px;font-size:13px;font-weight:600;color:var(--encre-2);list-style-position:inside}
.reglage-detail>summary:hover{color:var(--encre)}
.reglage-detail[open]>summary{border-bottom:1px solid var(--trait);margin-bottom:10px}
form.panneau .reglage-detail>summary{padding:10px 0}
.reglages-ajout{padding:14px 16px;border-top:1px solid var(--trait);display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}
@media (max-width:720px){.reglages-ajout{grid-template-columns:1fr}}
.reglages-menu h6{margin:12px 0 2px;padding:0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--pale)}
.reglages-menu a.sous{padding-left:18px;font-size:12.5px}

/* ------------------------------------------------------------------ regles heritees : plateforme › espace › projet */
.heritage{display:grid;gap:0}
.heritage-chaine{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:0 16px 6px;font-size:13px}
.heritage-chaine .sep{color:var(--pale)}
.heritage-chaine b{color:var(--encre)}
.heritage-principe{margin:0 16px 8px;font-size:12.5px}
.heritage-ligne{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--trait)}
.heritage-ligne p{margin:4px 0 0;font-size:12.5px;max-width:85ch}
.heritage-ligne form{margin:0;flex:none}
@media (max-width:720px){.heritage-ligne{flex-direction:column;align-items:flex-start}}
.heritage-detail>summary{cursor:pointer;margin:0 0 14px;font-size:13px;font-weight:600;color:var(--encre-2)}
.heritage-couches{margin:4px 16px 8px;padding-left:18px;display:grid;gap:4px;font-size:13px}
.heritage-licences textarea{width:100%;min-width:160px;font-size:12px}

/* ---- l'accueil de la recherche : ce qu'on peut chercher, et la recherche avancee ---- */
.rch-accueil .vide{padding-bottom:6px}
.rch-guide{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px 28px;padding:6px 24px 22px;font-size:13px}
.rch-guide ul{margin:6px 0 0;padding-left:18px;display:grid;gap:6px;color:var(--encre-2)}
.rch-guide kbd{font-family:var(--f-code);font-size:11px;padding:0 5px;border-radius:5px;border:1px solid var(--trait-fort);background:var(--surface-2)}
.rch-guide .syntaxe-recherche{margin-top:0}
.reglages-ia fieldset.fournisseur{border:1px solid var(--trait);border-radius:10px;padding:10px 14px 12px;margin:0;display:grid;gap:6px}
.reglages-ia fieldset.fournisseur legend{padding:0 4px}
.reglages-ia fieldset.fournisseur:has(input[type=radio]:checked){border-color:var(--ocre,#D8A25E)}

/* Administration › Agents : dans la carte d'un fournisseur, un champ prend toute
   la largeur (la grille a trois colonnes des reglages chiffres ne s'y applique pas) */
.reglages-ia fieldset.fournisseur .champ-ligne{grid-template-columns:minmax(120px,170px) minmax(0,1fr)}
.reglages-ia fieldset.fournisseur legend{display:flex;gap:8px;align-items:flex-start;font-weight:600}
@media (max-width:720px){.reglages-ia fieldset.fournisseur .champ-ligne{grid-template-columns:1fr}}
/* le fil d'une mission, comme une conversation : le plus recent en bas, on y reste si on le suivait */
.fil-mission{max-height:min(72vh,820px);overflow:auto;overscroll-behavior:contain;scroll-behavior:auto}
.fil-mission li.tour .pensee{color:var(--encre)}
.fil-mission .actions-tour li{overflow-wrap:anywhere}
.fil-mission .actions-tour li.resultat summary{color:var(--encre-2)}
.fil-mission li.attente{background:var(--ocre-voile)}
.fil-mission li.direct{background:var(--ia-voile);border-left:3px solid var(--ia)}
.fil-mission li.direct pre{max-height:140px}
/* l'annonce d'etape : la phrase que l'agent ecrit avant d'agir ; sans texte,
   une annonce neutre deduite de ses actions (penseeNeutre, ia_fil.go) */
.fil-mission .pensee.neutre{color:var(--doux);font-style:italic}
.fil-mission .curseur-vivant{display:inline-block;width:7px;color:var(--ia);animation:mh-curseur 1s steps(1) infinite}
@keyframes mh-curseur{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.fil-mission .curseur-vivant{animation:none}}
/* les pastilles d'une ligne : une action, son etat en direct, son detail au clic */
.actions-tour li{list-style:none}
.actions-tour details>summary{display:flex;align-items:center;gap:6px;list-style:none}
.actions-tour details>summary::-webkit-details-marker{display:none}
.actions-tour .pastille-court{color:var(--doux);font-size:12px}
.actions-tour .pastille-court.erreur{color:var(--rupture)}
.actions-tour li.pastille-en-cours summary{color:var(--ia)}
.actions-tour li.pastille-en-cours .pouls{width:6px;height:6px}
.actions-tour li.pastille-erreur summary{color:var(--rupture)}
.actions-tour li.pastille-preparation summary{color:var(--doux)}

/* ---- les agents : un seul bloc pour confier une mission et choisir l'agent ---- */
.visuel-cache{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.atelier-agents{margin-bottom:16px}
.atelier-savoir{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px 24px;padding:14px 16px;border-bottom:1px solid var(--trait);background:var(--surface-2)}
.atelier-savoir>p{margin:0;color:var(--encre-2);font-size:13px;line-height:1.55}
.atelier-capacites{display:grid;gap:8px}
.atelier-capacites b{font-size:12px;color:var(--doux);text-transform:uppercase;letter-spacing:.04em}
.atelier-capacites ul{list-style:none;margin:5px 0 0;padding:0}
.atelier-grille{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
.atelier-mission{border-right:1px solid var(--trait);min-width:0}
.atelier-mission .mission-form textarea{min-height:112px;resize:vertical}
.atelier-mission select{width:100%}
.atelier-budget{display:flex;align-items:center;gap:6px}
.atelier-budget input{width:78px}
.atelier-lancer{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.atelier-lancer small{font-size:12px}
.atelier-liste{padding:12px 16px;display:grid;gap:8px;align-content:start;min-width:0}
.carte-agent{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border:1px solid var(--trait);border-radius:10px;cursor:pointer;background:var(--surface)}
.carte-agent:hover{border-color:var(--trait-fort)}
.carte-agent:has(input[type=radio]:checked){border-color:var(--ia);background:var(--ia-voile)}
.carte-agent>input[type=radio]{margin:10px 0 0;accent-color:var(--ia)}
.carte-agent .bulle{width:30px;height:30px}
.carte-agent-corps{display:grid;gap:2px;min-width:0;font-size:13px}
.carte-agent-tete{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.carte-agent small{font-size:12px}
.nouvel-agent input[name=nom]{border:1px solid var(--trait-fort);border-radius:8px;padding:6px 9px;font:inherit;background:var(--surface);color:var(--encre);margin:4px 0 2px}
.atelier-liste .reglage-detail .mission-form{grid-template-columns:minmax(0,1fr)}
.missions-liste li.travaille{background:var(--ia-voile)}
.missions-liste li.recente .bulle{width:28px;height:28px;font-size:11px}
.missions-liste li.missions-sep{display:block;padding:6px 16px;font-size:11.5px;font-weight:700;color:var(--doux);text-transform:uppercase;letter-spacing:.05em;background:var(--surface-2)}
@media (max-width:860px){
  .atelier-savoir,.atelier-grille{grid-template-columns:minmax(0,1fr)}
  .atelier-mission{border-right:0;border-bottom:1px solid var(--trait)}
}

/* ---- la page d'une mission : un fil qui tient dans l'ecran, comme une conversation ---- */
.mission-page{--mission-haut:calc(100dvh - var(--mh-barre,58px) - 50px);display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;align-items:start}
.mission-chat{display:flex;flex-direction:column;height:var(--mission-haut);min-height:420px;overflow:hidden}
.mission-bande{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--trait);flex:none}
.mission-titre{min-width:0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mission-titre h3{margin:0;font-family:var(--f-titre);font-size:17px;font-weight:700;letter-spacing:-.015em}
.mission-titre p{margin:0;flex-basis:100%;font-size:12.5px}
.mission-maintenant{color:var(--ia)}
.mission-bande .actions{display:flex;gap:6px;flex-wrap:wrap}
.mission-bande .actions form{margin:0}
.mission-bande .btn{height:30px;padding:0 11px;font-size:12.5px}
.mission-avis{margin:8px 14px 0;flex:none}
.mission-chat .fil-mission{flex:1 1 auto;min-height:0;max-height:none;overflow:auto}
.mission-question{flex:none;padding:0 14px}
.mission-question .question-agent{margin:8px 0}
.barre-ecrire{flex:none;display:grid;gap:6px;margin:0 10px 10px;padding:8px 10px;border:1px solid var(--trait-fort);border-radius:14px;background:var(--surface)}
.barre-ecrire:focus-within{border-color:var(--ocre);box-shadow:0 0 0 3px var(--ocre-voile)}
.barre-ecrire-aide{font-size:12px}
.barre-ecrire textarea{width:100%;border:0;outline:0;resize:none;font:inherit;line-height:1.5;padding:2px 2px;background:transparent;color:var(--encre);min-height:24px;max-height:40vh;overflow-y:auto}
.barre-ecrire-outils{display:flex;align-items:center;gap:6px}
.barre-ecrire-clavier{font-size:11.5px;margin-left:auto;white-space:nowrap}
.barre-ecrire-envoi{display:inline-flex}
.btn-rond{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid var(--trait-fort);background:var(--surface);color:var(--encre-2);cursor:pointer;padding:0;flex:none}
.btn-rond:hover{color:var(--encre);border-color:var(--encre-2)}
.btn-rond[aria-pressed=true]{background:var(--rupture-voile);color:var(--rupture);border-color:var(--rupture)}
.barre-ecrire input[type=file]:focus-visible+label,.btn-rond:focus-visible{outline:2px solid var(--ocre);outline-offset:2px}
.barre-modele select{height:30px;max-width:230px;border:1px solid var(--trait);border-radius:99px;padding:0 10px;font:500 12.5px var(--f-ui);background:var(--surface-2);color:var(--encre-2);cursor:pointer}
.btn-envoyer{height:32px;border-radius:99px}
.btn-envoyer.arreter{border-color:var(--rupture);color:var(--rupture)}
.barre-ecrire-joints{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.barre-ecrire-joints li{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 4px 0 10px;border-radius:99px;background:var(--surface-3);font-size:12px}
.barre-ecrire-joints li.refus{background:var(--rupture-voile);color:var(--rupture);padding-right:10px}
.barre-ecrire-joints button{border:0;background:none;cursor:pointer;color:var(--doux);font-size:14px;line-height:1;padding:0 4px}
.mission-cote{position:sticky;top:calc(var(--mh-barre,58px) + 16px);max-height:var(--mission-haut);overflow:auto}
.cote-part{padding:12px 14px;border-top:1px solid var(--trait);display:grid;gap:6px;font-size:13px}
.cote-part:first-child{border-top:0}
.cote-part h4{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--doux)}
.cote-part p{margin:0}
.cote-tete{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px}
.cote-consigne{white-space:pre-wrap;overflow-wrap:anywhere;max-height:30vh;overflow:auto}
.cote-note{font-size:12.5px}
.cote-branche{white-space:pre-wrap;color:var(--encre-2)}
.cote-etat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:4px}
.cote-etat>div{display:grid;gap:2px;padding:8px 10px;border-radius:9px;background:var(--surface-2);min-width:0}
.cote-etat span{font-size:11.5px;color:var(--doux)}
.cote-etat b{font-family:var(--f-titre);font-size:16px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.cote-etat small{font-size:11.5px}
.cote-etat .jauge{width:100%;height:4px;margin-top:2px}
.cote-etat .jauge i{background:var(--ia)}
.cote-form{display:grid;gap:6px}
.cote-form textarea,.cote-form input{width:100%;font:inherit;padding:6px 9px;border:1px solid var(--trait-fort);border-radius:8px;background:var(--surface);color:var(--encre)}
.cote-form .btn{justify-self:start}
.cote-budget{grid-template-columns:minmax(0,1fr) 84px;align-items:center}
.cote-budget label{font-size:12.5px;color:var(--encre-2)}
.cote-budget .btn{grid-column:1/-1}
@media (max-width:860px){
  .mission-page{grid-template-columns:minmax(0,1fr)}
  .mission-cote{position:static;max-height:none}
  .barre-ecrire-clavier{display:none}
  .barre-modele select{max-width:150px}
}

/* La bande du fil d'une mission : titre et sa ligne a gauche, boutons a droite sur
   la meme ligne que le titre. La bande s'arrete apres la ligne du projet. */
.mission-bande{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;column-gap:14px;row-gap:6px}
.mission-bande .mission-titre{min-width:0}
.mission-bande .actions{justify-content:flex-end;align-self:start}
@media (max-width:720px){.mission-bande{grid-template-columns:1fr}.mission-bande .actions{justify-content:flex-start}}

/* ecran : aujourd'hui, en blocs alignes. Mes projets et les ruptures sur toute la
   largeur ; dessous, a gauche ce qui attend une decision puis la confiance, a droite
   le fil, qui prend la hauteur de la colonne de gauche et defile a l'interieur. */
.auj{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
.auj>*{min-width:0}
.auj .salut{margin-bottom:4px}
.auj .mh-alertes,.auj .carte-confiance{margin:0}
.auj-projets{overflow:hidden}
.auj-rangee{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:stretch}
.auj-rangee>*{min-width:0}
.auj-gauche{display:flex;flex-direction:column;gap:18px;min-width:0}
.auj-gauche>.panneau:last-child{flex:1 1 auto}
.auj-attentes{display:grid;gap:10px;padding:12px}
.auj-attentes .item{background:var(--surface)}
.auj-fil{display:flex;flex-direction:column;min-height:320px;overflow:hidden}
.auj-fil>.panneau-t{flex:none}
.auj-defile{flex:1 1 0;min-height:0;overflow-y:auto;contain:size;overscroll-behavior:contain}
@media (max-width:860px){
  .auj-rangee{grid-template-columns:minmax(0,1fr)}
  .auj-fil{min-height:0}
  .auj-defile{contain:none;max-height:420px}
}

/* ---- les agents en conversation : un chatbot d'agent (mission.tmpl, agent.tmpl, agents.tmpl) ---- */
/* l'avatar d'un agent : son image en cercle, ou son initiale sur la couleur des agents */
.avatar-agent{width:32px;height:32px;border-radius:50%;display:inline-grid;place-items:center;flex:none;overflow:hidden;background:var(--ia);color:#fff;font:700 13px var(--f-ui);line-height:1}
.avatar-agent img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
.avatar-agent.nouveau{background:var(--surface-3);color:var(--encre)}
.carte-agent .avatar-agent,.missions-liste .avatar-agent{width:30px;height:30px}
.missions-liste li.recente .avatar-agent{opacity:.8}
.mission-fin{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.supprimer-mini{position:relative;font-size:12px}
.supprimer-mini>summary{cursor:pointer;color:var(--doux);list-style:none}
.supprimer-mini>summary::-webkit-details-marker{display:none}
.supprimer-mini>summary:hover{color:var(--rupture)}
.supprimer-mini form{position:absolute;right:0;top:calc(100% + 6px);z-index:5;width:240px;display:grid;gap:8px;padding:10px 12px;border:1px solid var(--trait-fort);border-radius:10px;background:var(--surface);box-shadow:0 6px 18px rgba(0,0,0,.12)}
.zone-suppression>summary{cursor:pointer;color:var(--rupture);font-size:12.5px}
.zone-suppression form{display:grid;gap:8px;margin-top:8px}

/* le fil : ce que dit l'agent a gauche, sous son nom ; ce qu'ecrit une personne a
   droite, en bulle ocre ; le pilotage en petite mention centree */
.fil-chat{padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.fil-mission.fil-chat>li{display:flex;gap:10px;padding:0;border:0;background:none;font-size:13.5px;max-width:100%}
.fil-chat li.bulle-agent .fil-bulle p,.fil-chat li.bulle-personne .fil-bulle p{color:inherit}
.fil-chat .fil-corps{min-width:0;display:grid;gap:4px;max-width:min(78ch,86%)}
.fil-chat .fil-qui{font-size:12px;color:var(--doux);display:flex;gap:6px;align-items:baseline;flex-wrap:wrap}
.fil-chat .fil-qui b{color:var(--encre);font-weight:600}
.fil-chat time{font:11.5px var(--f-code);color:var(--doux);padding:0}
.fil-chat .fil-bulle{padding:9px 13px;border-radius:14px;line-height:1.5}
.fil-chat .fil-bulle p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.fil-chat .fil-avatar{flex:none;align-self:flex-start;margin-top:18px;text-decoration:none}
.fil-chat li.bulle-agent .fil-bulle{background:var(--surface-2);border:1px solid var(--trait);border-top-left-radius:4px}
.fil-chat li.bulle-agent.question .fil-bulle{background:var(--ia-voile);border-color:var(--ia)}
.fil-chat li.bulle-agent.erreur .fil-bulle{border-color:var(--rupture)}
.fil-chat li.bulle-agent.direct .fil-bulle{border-color:var(--ia)}
.fil-chat .fil-genre{color:var(--ia)}
.fil-chat .pensee.neutre{margin:0;padding:2px 2px 0;font-size:12.5px}
.fil-chat .actions-tour{margin:2px 0 0;padding-left:2px}
.fil-chat .fil-constat{margin:0;font-size:12px;color:var(--doux)}
/* les etapes qui se suivent : le nom et l'image ne se repetent pas */
.fil-chat li.bulle-agent+li.bulle-agent .fil-qui{display:none}
.fil-chat li.bulle-agent+li.bulle-agent .fil-avatar{visibility:hidden;margin-top:0}
.fil-chat li.bulle-agent+li.bulle-agent{margin-top:-6px}
.fil-chat li.bulle-personne{justify-content:flex-end}
.fil-chat li.bulle-personne .fil-corps{justify-items:end}
.fil-chat li.bulle-personne .fil-bulle{background:var(--ocre-vif);color:#2A1D0C;border-top-right-radius:4px}
.fil-chat li.bulle-personne .fil-qui{justify-content:flex-end}
.fil-chat li.mention{justify-content:center;font-size:12px;color:var(--doux)}
.fil-chat li.mention p{margin:0;padding:2px 10px;border-radius:99px;text-align:center;overflow-wrap:anywhere}
.fil-chat li.mention time{margin-left:4px;font-size:11px}
.fil-chat li.mention.erreur p{color:var(--rupture)}
.fil-chat li.mention.attente p{background:var(--ocre-voile);color:var(--ocre-texte)}
.fil-chat li.mention.fin p{color:var(--encre-2)}
.mission-titre .mission-avatar{display:inline-flex}
.mission-titre .mission-avatar .avatar-agent{width:28px;height:28px;font-size:12px}
.btn-barre{height:30px;padding:0 11px;font-size:12.5px;border-radius:99px}
.barre-ecrire-envoi{align-items:center;gap:6px;margin-left:auto}
.cote-etat-large{grid-column:1/-1}
.cote-alerte{color:var(--ocre-texte);font-size:12px;font-weight:600}
.cote-agent{display:flex;gap:10px;align-items:flex-start}
@media (max-width:720px){.fil-chat .fil-corps{max-width:92%}.fil-chat .fil-avatar .avatar-agent{width:26px;height:26px}}

/* la fiche d'un agent : qui il est en tete, puis ses missions */
.fiche-agent-tete .fiche-agent-qui{display:flex;gap:14px;align-items:center;min-width:0}
.fiche-agent-tete .avatar-agent{width:56px;height:56px;font-size:22px}
.fiche-agent{margin-bottom:16px}
.fiche-form{display:grid}
.fiche-parties{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0}
.fiche-partie{padding:14px 16px;display:grid;gap:8px;align-content:start;min-width:0;border-top:1px solid var(--trait);border-left:1px solid var(--trait)}
.fiche-partie:nth-child(2){border-left:0}
.fiche-partie h5{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--doux)}
.fiche-partie h6{margin:6px 0 0;font-size:12px;font-weight:600;color:var(--encre-2)}
.fiche-partie .champ-ligne{display:grid;gap:4px}
.fiche-partie input:not([type=checkbox]):not([type=radio]):not([type=file]),.fiche-partie textarea,.fiche-partie select{width:100%;font:inherit;padding:7px 10px;border:1px solid var(--trait-fort);border-radius:9px;background:var(--surface);color:var(--encre)}
.fiche-note{margin:0;font-size:12.5px}
.fiche-identite{grid-column:1/-1;border-left:0;border-top:0}
.fiche-apparence{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;align-items:start}
.fiche-image{display:grid;gap:8px;justify-items:center;text-align:center}
.fiche-image .avatar-agent{width:96px;height:96px;font-size:36px}
.fiche-image small{font-size:11.5px}
.fiche-fichier{max-width:100%;font-size:12px}
.fiche-champs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:10px 14px}
.fiche-champs .fiche-large{grid-column:1/-1}
.fiche-budget{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fiche-pied{display:flex;justify-content:flex-end;padding:10px 16px;border-top:1px solid var(--trait);background:var(--surface-2)}
.fiche-suppression{padding:10px 16px;border-top:1px solid var(--trait)}
.fiche-suppression fieldset{border:0;margin:0;padding:0;display:grid;gap:6px}
.fiche-suppression legend{font-weight:600;margin-bottom:4px;font-size:13px}
.fiche-suppression input[name=confirmer]{max-width:260px;font:inherit;padding:6px 9px;border:1px solid var(--trait-fort);border-radius:8px;background:var(--surface);color:var(--encre)}
.fiche-suppression .btn{justify-self:start}
.fiche-missions-grille{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);align-items:start}
.fiche-confier{padding:14px 16px;border-right:1px solid var(--trait);display:grid;gap:8px}
.fiche-confier h5{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--doux)}
.fiche-confier .mission-form{padding:0;grid-template-columns:minmax(0,1fr)}
.fiche-confier select{width:100%}
@media (max-width:980px){.fiche-parties{grid-template-columns:minmax(0,1fr)}.fiche-partie{border-left:0}.fiche-missions-grille{grid-template-columns:minmax(0,1fr)}.fiche-confier{border-right:0;border-bottom:1px solid var(--trait)}}
@media (max-width:720px){.fiche-apparence,.fiche-champs{grid-template-columns:minmax(0,1fr)}}
.fiche-image-choix{font-size:12.5px;font-weight:600;color:var(--encre-2)}
