:root{
  color-scheme:dark; /*fleches-nombre*/
  /* Valeurs exactes du theme VS Code Dark Modern */
  --bg:#121314;              /* mesure a l ecran : rgb(18,19,20) - zone de chat */
  --side:#121314;            /* mesure a l ecran : rgb(18,19,20) */
  --border:#2B2B2B;          /* sideBar.border / tab.border */
  --text:#FFFFFF;            /* tout le texte en blanc ; etait #B9BFBF */
  --muted:#9D9D9D;           /* tab.inactiveForeground / descriptionForeground */
  --dim:#8B949E;
  --input:#191A1B;           /* mesure a l ecran : rgb(25,26,27) */
  --inputborder:#3C3C3C;     /* input.border */
  --sel:#04395E;             /* list.activeSelectionBackground */
  --hover:#2A2D2E;           /* list.hoverBackground */
  --tabactivefg:#FFFFFF;     /* tab.activeForeground */
  --scroll:#79797966;        /* scrollbarSlider.background */
  --scrollhover:#646464B3;   /* scrollbarSlider.hoverBackground */
  --scrollactive:#BFBFBF66;  /* scrollbarSlider.activeBackground */
  --accent:#D97757;          /* orange Claude : bouton envoi + bypass */
  --ui:-apple-system,BlinkMacSystemFont,"Segoe WPC","Segoe UI",system-ui,"Ubuntu","Droid Sans",sans-serif;
  --actw:calc(38px * var(--fs,1));   /* largeur de la barre d activite */
  --btnbase:calc(30px * var(--fs,1));--btnb:var(--btnbase);   /* boutons du bas */
}
*{box-sizing:border-box;scrollbar-color:#797979 transparent;scrollbar-width:thin}
html,body{height:100%;margin:0;overflow:hidden}
@supports (height:100dvh){body{height:100dvh}}
body{background:var(--bg);color:var(--text);font:calc(13px * var(--fs,1))/1.4 var(--ui);display:flex;flex-direction:column}
.shell{flex:1;display:flex;min-height:0;min-width:0}

/* ---- panneau gauche ---- */
.side{width:var(--sidew,280px);flex:none;background:var(--side);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}
.sh{padding:6px 10px;min-height:calc(44px * var(--fs,1));color:var(--text);font-size:calc(14px * var(--fs,1));font-weight:600;display:flex;align-items:center;gap:6px;cursor:pointer}
.sh .chev{font-size:calc(14px * var(--fs,1))}
/* Fermeture explicite du panneau : utile seulement en mobile, ou il couvre tout
   l ecran et ou plus aucune bande ne rappelle ce qu il y a derriere. */
.sidex{display:none;background:transparent;border:0;color:var(--text);cursor:pointer;
  font-size:calc(22px * var(--fs,1));line-height:1;padding:0;width:40px;height:40px;
  margin-left:2px;flex:0 0 auto}
.sidex:hover{color:var(--text)}
.searchwrap{padding:4px 10px 8px}
.search{width:100%;background:var(--input);color:var(--text);padding:4px 8px;font:calc(12px * var(--fs,1)) var(--ui);outline:none;border:1px solid var(--inputborder);border-radius:6px}
.search:focus{border-color:var(--accent)}
.search::placeholder{color:rgba(255,255,255,.55)}
.convs{flex:1;overflow-y:auto;overflow-x:hidden;padding:0 6px 12px;min-width:0}
.conv{display:flex;align-items:center;gap:8px;padding:5px 8px;cursor:pointer;min-width:0;max-width:100%;overflow:hidden;border-radius:6px}
.conv:hover{background:var(--hover)}
.conv.agenfant{padding-left:calc(22px * var(--fs,1))}
.agequipe{margin-left:10px;border-left:calc(2px * var(--fs,1)) solid var(--border)}   /* sous le rond du Directeur (padding .conv 8px + 3px) */
.agequipe .conv.agenfant{padding-left:calc(10px * var(--fs,1))}
.conv.agglisse{opacity:.5}   /* glisser-directeur (tache 853) : ligne glissee */
.conv.agcible{background:var(--sel)}   /* Directeur vise par le glisser */
@media (max-width:1024px), (pointer:coarse){.agequipe{margin-left:15px}}   /* telephone et tablette : padding .conv 12px + 4px */
.conv.aganciens{color:#8C8C8C}   /* groupe Anciens de la vue Agents : replie par defaut, en bas */
.conv.aganciens .fl{flex:none;width:6px;height:6px;border-right:calc(1.5px * var(--fs,1)) solid currentColor;border-bottom:calc(1.5px * var(--fs,1)) solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.conv.aganciens.ouvert .fl{transform:rotate(45deg)}
.conv.aganciens .d,.conv.aganciens:hover .d{display:block;color:#8C8C8C}
.conv.on{background:var(--sel)}
.conv .bul{width:6px;height:6px;border-radius:50%;background:var(--dim);flex:none}
.conv.on .bul{background:var(--accent)}
.conv .t{flex:1 1 0;min-width:0;width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(13px * var(--fs,1))}
.conv .d{color:var(--text);font-size:calc(12px * var(--fs,1));flex:none}
.conv .act{display:none;flex:none;gap:2px;margin-left:2px}
.conv:hover .act{display:flex}
.conv:hover .d{display:none}
.conv .ic{color:var(--text);background:none;border:none;font-size:calc(13px * var(--fs,1));line-height:1;width:20px;height:20px;padding:0;cursor:pointer;border-radius:3px;font-family:var(--ui)}
.conv .ic:hover{color:var(--text);background:var(--hover)}
.conv .rn{flex:1 1 0;min-width:0;width:0;background:#121314;border:1px solid var(--accent);border-radius:4px;color:var(--text);font-size:calc(13px * var(--fs,1));padding:2px 6px;outline:none}
@media (pointer:coarse){ .conv .act{display:flex} .conv .d{display:none} .conv .ic{width:32px;height:32px;} }
.empty{padding:10px 14px;color:var(--text);font-size:calc(12px * var(--fs,1))}

/* ---- zone principale ---- */
.main{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;position:relative}
.tabs{display:flex;height:auto;flex:none;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;background:#191A1B;border-bottom:0;align-items:flex-end;gap:2px;padding:5px 4px 0}
.tabs::-webkit-scrollbar{display:none}
.tab .lbl{flex:none;white-space:nowrap}   /* onglet-largeur (tache 1721) : nom entier, jamais tronque */
.newtab{flex:none;background:none;border:none;color:var(--text);font-size:calc(17px * var(--fs,1));cursor:pointer;padding:0 12px;height:calc(17px + 13px * var(--fs,1))}
.newtab:hover{color:var(--text)}

.msgs{flex:1;min-height:0;overflow-y:auto;overflow-anchor:none;padding:12px 14px;background:var(--bg);overflow-x:hidden}
.msg{margin-bottom:14px;font-size:calc(13px * var(--fs,1));line-height:2.6}
/* messages hors ecran non mis en page : re-rendu de 3 491 messages mesure 540 ms -> 85 ms */
/* Pas de content-visibility sur .msg : hauteurs estimees -> ouverture a des milliers de px du bas et sauts au defilement (banc Pixel 5). */
.user{background:#191A1B;border:1px solid #2A2B2C;border-radius:6px;padding:9px 13px;white-space:pre-wrap}
.assistant{white-space:pre-wrap}
.outil{display:flex;align-items:baseline;gap:8px;color:var(--text);font-size:calc(12px * var(--fs,1));margin:3px 0;min-width:0}
.outil .on{color:var(--text);font-weight:600;flex:none}
.outil .ordesc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.refl{color:var(--text);border-left:2px solid var(--border);padding:2px 0 2px 10px;margin:2px 0;cursor:pointer}
.refl .rc{font-size:calc(12px * var(--fs,1));line-height:1.5;white-space:pre-wrap;max-height:84px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.think{color:var(--text);display:flex;align-items:center;gap:9px}
@keyframes p{0%,100%{opacity:.25}50%{opacity:1}}
.err{color:#f48771;white-space:pre-wrap}

/* ---- composer ---- */
.composer{padding:8px;flex:none;min-width:0}
.box{background:var(--input);border:1px solid var(--border);padding:6px 9px;min-width:0;border-radius:10px;position:relative}
.box:focus-within{border-color:var(--accent)}
/* Mode plan : la zone de saisie passe au bleu, comme dans VS Code.
   Legerement bleutee au repos pour que le mode reste visible sans le focus. */
body.modeplan .box{border-color:rgba(55,148,255,.45)}
body.modeplan .box:focus-within{border-color:#3794ff}
textarea{width:100%;background:none;border:none;color:var(--text);resize:none;outline:none;font:calc(13px * var(--fs,1))/1.6 var(--ui);max-height:220px}
textarea::placeholder{color:rgba(255,255,255,.55)}
.jointes{display:none;flex-wrap:wrap;gap:8px;margin-bottom:8px}
.jt{position:relative;width:76px;height:76px;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:#0e0f10}
.jt img{width:100%;height:100%;object-fit:cover;display:block}
/* fichier joint (non image) : etiquette avec le nom au lieu d une vignette */
.jt.jfic{width:auto;max-width:calc(240px * var(--fs,1));height:auto;min-height:40px;display:flex;align-items:center;
  padding:6px 30px 6px 10px;background:var(--input);color:var(--text);font-size:calc(12px * var(--fs,1));
  overflow-wrap:anywhere}
.jt.jfic.encours{opacity:.6}
.plusbtn{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:5px;
  width:calc(26px * var(--fs,1));height:calc(26px * var(--fs,1));cursor:pointer;font-size:calc(18px * var(--fs,1));line-height:1;padding:0;flex:0 0 auto}
.plusbtn:hover{background:rgba(255,255,255,.08)}
.jt .jx{position:absolute;top:2px;right:2px;width:22px;height:22px;border:0;border-radius:4px;background:rgba(0,0,0,.66);color:#fff;font-size:calc(15px * var(--fs,1));line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:manipulation}
img.jointe{display:block;max-width:100%;max-height:340px;border-radius:6px;border:1px solid var(--border);margin-top:8px;cursor:zoom-in}
.ctl{display:flex;align-items:center;gap:8px;margin-top:5px;container-type:inline-size}
select{background:transparent;color:var(--text);border:1px solid transparent;padding:2px 5px;font:calc(12px * var(--fs,1)) var(--ui);outline:none;cursor:pointer;border-radius:6px}
select:hover{background:#3a3a3a;color:var(--text)}
select option{background:var(--input);color:var(--text)}
.spacer{margin-left:auto}
.send{background:var(--accent);color:#1f1f1f;border:none;width:calc(26px * var(--fs,1));height:calc(26px * var(--fs,1));cursor:pointer;font-size:calc(14px * var(--fs,1));font-weight:700;flex:none;border-radius:6px}
.send:hover{filter:brightness(1.1)}
/* Stop : bouton DISTINCT d Envoyer, visible seulement pendant un tour. Gris et non
   accentue pour qu il ne soit pas la cible naturelle du pouce. */
.stopbtn{display:none;background:#3a3b3d;color:#fff;border:none;border-radius:5px;
  width:calc(26px * var(--fs,1));height:calc(26px * var(--fs,1));cursor:pointer;align-items:center;justify-content:center;
  margin-right:6px;flex:0 0 auto}
.stopbtn.montre{display:flex}
.stopbtn:hover{background:#4a4b4d}
.stopbtn .carre{display:block;width:calc(10px * var(--fs,1));height:calc(10px * var(--fs,1));border-radius:2px;background:#fff}

/* ---- scrollbars facon VS Code : piste noire, curseur discret ---- */
::-webkit-scrollbar{width:14px;height:14px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--scroll);border-radius:0}
::-webkit-scrollbar-thumb:hover{background:var(--scrollhover)}
::-webkit-scrollbar-thumb:active{background:var(--scrollactive)}
::-webkit-scrollbar-corner{background:transparent}

/* onglets : rond devant le titre, pas de liseret ni de coins arrondis */
.tab{display:flex;align-items:center;gap:calc(5px * var(--fs,1));padding:0 calc(10px * var(--fs,1)) 3px;font-size:calc(13px * var(--fs,1));cursor:pointer;border:none;flex:none;margin:0;background:#2A2A2B;border-radius:6px 6px 0 0;height:calc(21px + 13px * var(--fs,1));color:#9D9D9D}
.tab .bul{width:7px;height:7px;border-radius:50%;background:var(--muted);flex:none;opacity:.55}
.tab.on{border-radius:0;color:#FFFFFF;box-shadow:inset 0 2px 0 var(--accent)}
.tab.on .bul{background:var(--accent);opacity:1}
.fastbtn{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);
  padding:2px 8px;font:calc(12px * var(--fs,1)) var(--ui);cursor:pointer}
.fastbtn:hover{color:var(--text)}
.fastbtn.on{color:var(--accent);border-color:var(--accent)}
body.nosidebar .side{display:none}
/* Barre d activite a gauche, comme VS Code : fichiers = explorateur du home,
   Claude = conversations. Etroite ; icone active sur fond arrondi (capture de reference). */
.actbar{width:var(--actw);flex:none;background:var(--side);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:8px;z-index:25;position:relative}
.actbtn{width:calc(32px * var(--fs,1));height:calc(38px * var(--fs,1));background:none;border:0;border-radius:6px;color:var(--text);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;position:relative}
.actbtn svg{width:calc(22px * var(--fs,1));height:calc(22px * var(--fs,1))}
.actbtn:hover{color:var(--text)}
.actbtn.on{background:rgba(255,255,255,.12);color:var(--text)}
.vue{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}
.vue[hidden]{display:none}
.explo{flex:1;overflow:auto;padding:2px 0 12px;font-size:calc(13px * var(--fs,1))}
.exrow{display:flex;align-items:center;gap:4px;padding:3px 6px;cursor:pointer;white-space:nowrap;color:var(--text);user-select:none}
.exrow:hover{background:rgba(255,255,255,.05)}
.exrow .chev{width:calc(14px * var(--fs,1));flex:none;color:var(--text);text-align:center;transition:transform .1s}
.exrow.ouvert .chev{transform:rotate(90deg)}
.exrow .ico{width:calc(16px * var(--fs,1));height:calc(16px * var(--fs,1));flex:none}
.exrow .nom{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.exrow .lien{color:var(--text);flex:none;font-size:.85em}
.exrow.racine{font-weight:600}
.exrow.fichier{cursor:pointer}
.exnote{padding:3px 8px;color:var(--text);font-style:italic}
/* Tablette et telephone : typographie nettement plus grande.
   Le seuil couvre aussi la tablette en paysage (jusqu a 1024 px). */
@media (max-width:1024px), (pointer:coarse){
  html,body{height:100%;overflow-x:hidden}
  body{height:100dvh;line-height:1.55}
  /* Mobile : la liste couvre l ecran. Une bande de conversation visible derriere
     n est pas lisible et capte les touchers a cote de la cible. */
  .side{position:absolute;left:var(--actw);top:0;bottom:0;z-index:20;width:calc(100% - var(--actw));max-width:none;
        box-shadow:none}   /* la barre d activite reste visible a gauche */
  .exrow{padding:8px 10px}
  body:not(.sideopen) .side{display:none}
  .sidex{display:flex;align-items:center;justify-content:center}
  /* en mobile, l ouverture prime sur le masquage memorise du bureau */
  body.sideopen .side{display:flex !important}
  body.sideopen .scrim{display:block}
  .scrim{display:none;position:absolute;inset:0;z-index:15;background:rgba(0,0,0,.5)}
  .sh{padding:calc(8px + env(safe-area-inset-top,0px)) 10px 8px 16px;min-height:44px}
  /* bouton de deconnexion : zone tactile de 40 px, sinon le doigt le manque */
  .side .sh .close{width:44px;height:44px;margin:0 -6px 0 auto;flex:none;touch-action:manipulation}
  .side .sh .close svg{width:22px;height:22px}
  .searchwrap{padding:6px 12px 10px}
  .search{padding:11px 12px}
  .convs{padding:0 8px 14px}
  .conv{padding:13px 12px;gap:10px}
  .conv .bul{width:8px;height:8px}
  .tab{padding:0 calc(10px * var(--fs,1)) 4px;height:calc(26px + 16px * var(--fs,1))}
  .tab .bul{width:9px;height:9px}
  .newtab{height:calc(22px + 16px * var(--fs,1));padding:0 14px}
  .msgs{padding:10px 16px 10px 12px}
  .msg{line-height:2.4;margin-bottom:12px;--demi:1.2em}   /* --demi : centre de la 1re ligne = moitie de l interligne (2,4 -> 1,2em) */
  .user{padding:12px 14px}
  .refl .rc{max-height:96px}
  .composer{padding:6px}   /* meme marge des 4 cotes */
  .sabas{padding:6px}
  .box{padding:7px 8px}
  textarea{line-height:1.5}
  .ctl{flex-wrap:nowrap;gap:6px;margin-top:5px;min-width:0}
  .ctl select{flex:1 1 0;width:0;min-width:0;max-width:100%;padding:8px 5px;
              border:1px solid var(--border);color:var(--text);overflow:hidden}
  .fastbtn{flex:0 0 auto;padding:8px 10px;}
  /* Le compteur "N en attente" a ete retire : plus rien a loger entre le
     bouton fast et l envoi. Sans espaceur, ce sont les menus (flex:1) qui
     recuperent la largeur -- precieux en mobile. */
  .spacer{display:block;margin-left:auto}
  .send{width:calc(40px * var(--fs,1));height:calc(40px * var(--fs,1));flex:0 0 auto}
  .jt{width:88px;height:88px}
  .jt .jx{width:30px;height:30px;}
  .plusbtn{width:calc(40px * var(--fs,1));height:calc(40px * var(--fs,1));}
  .stopbtn{width:calc(40px * var(--fs,1));height:calc(40px * var(--fs,1));margin-right:8px}
  .stopbtn .carre{width:calc(14px * var(--fs,1));height:calc(14px * var(--fs,1));border-radius:3px}
}

/* Tactile : pas de :hover colle apres un appui, et aucun fond natif sur les X */
@media (pointer:coarse){
  .tab .x:hover, .side .close:hover, .newtab:hover, .fastbtn:hover, select:hover{
    background:none !important; background-color:transparent !important;
  }
}
/* Boutons de fermeture : une seule definition pour le X du panneau
   et le X des onglets, afin qu ils soient strictement identiques. */
.side .close, .tab .x{
  color:var(--text); font-family:var(--ui); font-size:calc(13px * var(--fs,1)); font-weight:600;
  letter-spacing:.5px; line-height:1; text-transform:none;
  display:flex; align-items:center; justify-content:center;
  width:18px; height:18px; padding:0; margin:0; flex:none;
  background:none !important; background-color:transparent !important;
  border:none !important; box-shadow:none !important; border-radius:3px;
  cursor:pointer; -webkit-appearance:none; appearance:none;
  -webkit-tap-highlight-color:transparent;
}
.side .close:hover, .tab .x:hover{ color:var(--text); }
/* icone vectorielle : sa taille suit le bouton, aucune dependance a une police */
.side .close svg{width:16px;height:16px;display:block}

.sh .close{margin-left:auto}
.connbadge{display:none;background:#5a2d22;color:#ffd9cc;font-size:calc(13px * var(--fs,1));padding:6px 14px;text-align:center}
body.offline .connbadge{display:block}
.tab.busy .bul{background:var(--accent);opacity:1;animation:p 1.2s infinite}
/* ---- cartes interactives : question, plan, permission ---- */
.card{background:#191A1B;border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:20px}
.card.plan{border-color:var(--accent)}
.card .ch{color:var(--accent);font-size:calc(12px * var(--fs,1));font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px}
.card .btn.sec{background:transparent;color:var(--text);border:1px solid var(--border)}
.card .btn:disabled{opacity:.4;cursor:default}
.card pre{white-space:pre-wrap;word-break:break-word;background:#0e0f10;border:1px solid var(--border);border-radius:8px;padding:12px;
  max-height:50vh;overflow:auto;font:calc(13px * var(--fs,1))/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:0 0 12px}
.card .done{color:var(--text);font-size:calc(12px * var(--fs,1));margin-top:8px}
.msg.planblock .ch{color:var(--accent);font-size:calc(12px * var(--fs,1));font-weight:600;letter-spacing:.5px;text-transform:uppercase;margin-bottom:6px}
@media (max-width:1024px), (pointer:coarse){
  .card .btn{padding:11px 16px;}
}
.tab.waiting .bul{background:var(--accent);opacity:1;animation:none}
/* ---- panneau d approbation (remplace la barre du bas, style VS Code) ---- */
.asker{display:none;padding:10px 26px 14px;flex:0 1 auto;min-width:0;min-height:0;overflow-y:auto;max-height:72vh;-webkit-overflow-scrolling:touch}
body.asking .asker{display:block}
body.asking .composer{display:none}
.asker .box{background:#191A1B;border:1px solid #3a3a3a;border-radius:8px;padding:14px 16px 10px}
.asker .at{font-weight:700;font-size:calc(14px * var(--fs,1));color:var(--text);display:flex;align-items:center;justify-content:space-between}
.asker .at .chev{color:var(--text);font-size:calc(12px * var(--fs,1))}
.asker .at .ax{width:32px;height:32px;flex:none;display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--text);font-size:calc(22px * var(--fs,1));line-height:1;cursor:pointer;border-radius:6px;margin:-6px -6px -6px auto;touch-action:manipulation}
.asker .at .ax:hover{color:var(--text);background:#26282a}
.asker .as{color:var(--text);font-size:calc(12px * var(--fs,1));margin:3px 0 10px}
.asker .aq{color:var(--text);font-weight:600;margin:10px 0 6px}
.asker .ao{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#1f2021;border:1px solid #3a3a3a;
  border-radius:6px;padding:8px 11px;margin-bottom:6px;color:var(--text);font:inherit;font-weight:600;cursor:pointer;
  -webkit-appearance:none;appearance:none}
.asker .ao:hover,.asker .ao.sel{border-color:#7a7a7a;background:#26282a}
.asker .ao .n{color:var(--text);font-weight:400;font-size:calc(12px * var(--fs,1));min-width:10px}
.asker .ao .od{color:var(--text);font-weight:400;font-size:calc(12px * var(--fs,1));margin-left:auto;text-align:right}
.asker .ai{width:100%;background:#1f2021;border:1px solid #3a3a3a;border-radius:6px;color:var(--text);padding:9px 11px;
  font:inherit;outline:none;margin-top:2px}
.asker .ai:focus{border-color:#7a7a7a}
.asker .ai::placeholder{color:rgba(255,255,255,.55)}
.asker .ah{color:var(--text);font-size:calc(12px * var(--fs,1));margin-top:8px}
.asker pre{white-space:pre-wrap;word-break:break-word;background:#0e0f10;border:1px solid var(--border);border-radius:6px;
  padding:10px;max-height:28vh;overflow:auto;font:calc(12px * var(--fs,1))/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;margin:0 0 10px}
@media (max-width:1024px), (pointer:coarse){
  .asker{padding:8px 12px calc(12px + env(safe-area-inset-bottom,0px));max-height:64vh}
  .asker .ao{padding:12px 12px;}
  .asker .ai{padding:12px}
  .asker .at .ax{width:44px;height:44px;}
}
/* nouvelle reponse non lue : VERT */
.tab.unread .bul{background:#3fb950;opacity:1}
/* ---- rendu markdown ---- */
.msg.assistant p{margin:0 0 10px}
.msg.assistant p:last-child{margin-bottom:0}
.msg.assistant h1,.msg.assistant h2,.msg.assistant h3,.msg.assistant h4{margin:14px 0 8px;line-height:1.3;color:var(--text)}
.msg.assistant h1{font-size:1.35em}.msg.assistant h2{font-size:1.2em}
.msg.assistant h3{font-size:1.08em}.msg.assistant h4{font-size:1em}
.msg.assistant ul,.msg.assistant ol{margin:0 0 10px;padding-left:22px}
.msg.assistant li{margin:3px 0}
.msg.assistant code{background:#1f2021;border:1px solid var(--border);border-radius:4px;padding:1px 5px;
  font:.92em ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.msg.assistant pre.cb{background:#0e0f10;border:1px solid var(--border);border-radius:8px;padding:11px 13px;overflow-x:auto;margin:0 0 10px;position:relative}
.msg.assistant pre.cb code{background:none;border:none;padding:0;font-size:calc(12.5px * var(--fs,1));line-height:1.5}
.msg.assistant blockquote{margin:0 0 10px;padding:2px 0 2px 12px;border-left:3px solid var(--border);color:var(--text)}
.msg.assistant table{border-collapse:collapse;margin:0 0 10px;display:block}
.msg.assistant th,.msg.assistant td{border:1px solid var(--border);padding:6px 10px;text-align:left}
.msg.assistant th{background:#1f2021;font-weight:600}
.msg.assistant hr{border:none;border-top:1px solid var(--border);margin:12px 0}
.msg.assistant a{color:var(--accent);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.msg.assistant strong{color:var(--text)}
.msg.assistant{white-space:normal}
.msg.sysnote{color:#e8b98a;background:#2a1f1a;border:1px solid #5a3d2a;border-radius:8px;padding:9px 12px;font-size:calc(13px * var(--fs,1))}

/* poignee de redimensionnement du panneau des conversations (bureau) */
.resizer{width:5px;flex:none;cursor:col-resize;background:transparent;margin-left:-1px;margin-right:-4px;position:relative;z-index:5}
.resizer:hover, body.resizing .resizer{background:var(--accent)}
body.resizing{cursor:col-resize;user-select:none}
body.nosidebar .resizer{display:none}
@media (max-width:1024px), (pointer:coarse){ .resizer{display:none} }

.buildtag{font-size:calc(10px * var(--fs,1));opacity:.45;font-weight:400;margin-left:4px}

/* Mode conversation. Classe PARLEBTN et non "conv" : `.conv` designe deja un
   element de la liste des conversations, le bouton en heritait tout le style. */
.parlebtn{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);
  padding:2px 8px;cursor:pointer;display:none;align-items:center;justify-content:center}
.parlebtn svg{display:block}
.parlebtn:hover{color:var(--text)}
.parlebtn.on{color:var(--accent);border-color:var(--accent)}
.parletat{display:none;align-items:center;gap:8px;font:calc(12px * var(--fs,1)) var(--ui);color:var(--text);padding:4px 2px 6px}
@media (max-width:1024px), (pointer:coarse){
  .parlebtn{flex:0 0 auto;min-width:calc(40px * var(--fs,1));height:calc(40px * var(--fs,1));padding:0 10px}
}
/* Volume de la voix : visible seulement en conversation (meme regle que l etat) */
.volbloc{display:none;align-items:center;gap:10px;font:calc(12px * var(--fs,1)) var(--ui);color:var(--text);padding:0 2px 6px}
.volbloc input[type=range]{flex:1;min-width:120px;accent-color:var(--accent)}
@media (max-width:1024px), (pointer:coarse){ .volbloc input[type=range]{height:28px} }
/* Mode conversation : la saisie au clavier disparait, on parle. Le champ reste
   present dans la page (le texte transcrit y transite avant l envoi). */
body.parlemode #input, body.parlemode .jointes{display:none}
body.parlemode .box{padding-top:6px}
/* Reglages : un bouton dans la barre, un panneau au-dessus de la saisie */
.regbtn,.ctxbtn{background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text);
  padding:2px 6px;cursor:pointer;display:flex;align-items:center;gap:5px;font:calc(12px * var(--fs,1)) var(--ui)}
.regbtn:hover,.ctxbtn:hover{color:var(--text)}
.ctxbtn.plein{color:#e5934b;border-color:#e5934b}
.regpan{display:none;border:1px solid var(--border);border-radius:10px;padding:12px 14px;box-shadow:0 8px 28px rgba(0,0,0,.45);max-width:calc(340px * var(--fs,1));background:var(--input);position:fixed;top:50%;left:50%;right:auto;bottom:auto;margin:0;transform:translate(-50%,-50%);width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow-y:auto;z-index:70}   /* largeur max, centree a l ecran ; pleine largeur sur telephone */
.regpan.ouvert{display:block}
.regpan label{align-items:center;gap:12px;font:calc(13px * var(--fs,1)) var(--ui);color:var(--text);padding:7px 0;display:grid;grid-template-columns:40% 60%;justify-content:stretch}
.regpan select{flex:0 1 60%}
/* Reglage de la grosseur du texte : un pas a la fois, avec la taille reelle
   affichee. Les bornes desactivent le bouton au lieu de ne rien faire en silence. */
.stepper{display:flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:6px;
  background:var(--input);overflow:hidden}
.stepper button{background:transparent;border:0;color:var(--text);cursor:pointer;line-height:1;padding:0;width:calc(26px * var(--fs,1));height:calc(21px * var(--fs,1));font-size:calc(14px * var(--fs,1))}
.stepper button:hover:not(:disabled){background:rgba(255,255,255,.08)}
.stepper button:disabled{color:var(--text);opacity:.4;cursor:default}
#fsval{text-align:center;color:var(--text);font:calc(13px * var(--fs,1)) var(--ui);border-left:1px solid var(--border);border-right:1px solid var(--border);padding:0 6px;line-height:26px;min-width:calc(26px * var(--fs,1))}
.regtitre{display:flex;align-items:center;justify-content:space-between;
  font:600 calc(14px * var(--fs,1)) var(--ui);color:var(--text);padding-bottom:6px;border-bottom:1px solid var(--border);margin-bottom:4px}
.regx{background:transparent;border:0;color:var(--text);font-size:calc(22px * var(--fs,1));line-height:1;cursor:pointer;
  width:40px;height:40px}
@media (max-width:1024px), (pointer:coarse){
  .regbtn,.ctxbtn{min-height:calc(40px * var(--fs,1));padding:0 10px;}
  .regpan label{padding:10px 0}
  .regpan select{min-height:40px}
}

/* Boutons du bas : ils grossissent avec le reglage de texte,
   icones comprises (leur taille HTML est fixe, le CSS la remplace). */
.regbtn svg,.parlebtn svg{width:calc(17px * var(--fs,1));height:calc(17px * var(--fs,1))}
.ctxbtn svg{display:block;width:calc(20px * var(--fs,1));height:calc(20px * var(--fs,1))}

/* ---- Plans : mis en forme, plein ecran, onglet a part ---- */
.msg.planblock{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:10px 12px;background:#161718}
.planchef{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.planchef > span:first-child{margin-right:auto}
.plannote{color:var(--text);font-weight:400;text-transform:none;letter-spacing:0;font-size:calc(12px * var(--fs,1))}
.planbtn{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:6px;cursor:pointer;
  padding:3px 9px;font-size:calc(12px * var(--fs,1));text-transform:none;letter-spacing:0;font-weight:500}
.planbtn:hover{background:rgba(255,255,255,.08)}
.plancorps{margin:6px 0 0}
/* surligneur jaune transparent, sans barre */
.plancorps .neuf{background:none;box-shadow:none}
.plancorps pre.neuf{background:rgba(255,230,0,.18)}
.plancorps mark.fluo{background:rgba(255,230,0,.12);color:inherit;padding:1px 3px;border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
details.plansec{margin:4px 0}
details.plansec > summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;gap:6px}
details.plansec > summary::-webkit-details-marker{display:none}
details.plansec > summary::before{content:"\25B8";color:var(--text);font-size:.8em;transition:transform .15s}
details.plansec[open] > summary::before{transform:rotate(90deg)}
details.plansec > summary > h1, details.plansec > summary > h2{display:inline;margin:6px 0}
#planlecteur{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column}
/* regle barre-grille (tache 683) : la barre d icones reste au-dessus du plan plein ecran, le plan commence apres elle */
body.planouvert .actbar{z-index:61}#planlecteur:not(.danstab){left:var(--actw)}
body.planouvert{overflow:hidden}
.plhaut{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);
  font-weight:700;color:var(--accent);flex:none}
.plhaut > span:first-child{margin-right:auto}
.plx{background:transparent;border:0;color:var(--text);font-size:calc(26px * var(--fs,1));line-height:1;cursor:pointer;width:40px;height:40px}
.plx:hover{color:var(--text)}
/* Sous-agent : ligne Agent cliquable, transcript en lecture plein ecran, toute la largeur */
.msg.outil.sa{cursor:pointer}
.msg.outil.sa .on{text-decoration:underline;text-underline-offset:3px}
#salecteur{position:fixed;inset:0;z-index:60;background:var(--bg);display:flex;flex-direction:column}
#salecteur.danstab{position:absolute;left:0;right:0;bottom:0;z-index:20}
#salecteur.danstab .plhaut{display:none}
#salecteur .samsgs{flex:1;min-height:0}
.sabas{padding:8px;flex:none;min-width:0}
.sabas .saplace{color:#8C8C8C;padding:4px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sabas .saetatbas{display:flex;align-items:center;gap:calc(6px * var(--fs,1));min-width:0;color:#8C8C8C;font-size:calc(13px * var(--fs,1));white-space:nowrap;overflow:hidden}
.sabas .saetatbas .bul{flex:none;width:calc(7px * var(--fs,1));height:calc(7px * var(--fs,1));border-radius:50%}
.sabas .sajauge{cursor:default}
.sabas .sajauge .sapct{font-size:min(calc(12px * var(--fs,1)), calc(var(--btnb) * .36))}
.eqcarte{margin-top:calc(6px * var(--fs,1));font-size:calc(13px * var(--fs,1))}
.eqcarte > summary{cursor:pointer;color:#8C8C8C}
.eqcorps{margin-top:calc(6px * var(--fs,1));display:flex;flex-direction:column;gap:calc(8px * var(--fs,1))}
.eqtache,.eqchantier{border-left:calc(2px * var(--fs,1)) solid var(--border);padding-left:calc(8px * var(--fs,1))}
.eqtete{display:flex;gap:calc(8px * var(--fs,1));align-items:baseline;flex-wrap:wrap;margin-bottom:calc(2px * var(--fs,1))}
.eqid{font-weight:600}
.eqetat{font-size:calc(12px * var(--fs,1));color:#8C8C8C}
.eqetat[data-etat="PRET"]{color:#4EC9B0}
.eqetat[data-etat="BLOQUE"],.eqetat[data-etat="QUESTION"]{color:#D7BA7D}
.eqligne{display:flex;gap:calc(8px * var(--fs,1));align-items:baseline;flex-wrap:wrap}
.eqlib{color:#8C8C8C;min-width:calc(90px * var(--fs,1))}
.eqval{overflow-wrap:anywhere;flex:1 1 calc(220px * var(--fs,1));min-width:0}   /* etroit : la valeur passe sous son libelle */
a.eqval{color:var(--accent,#3794ff)}
.eqval.eqlong{max-height:calc(96px * var(--fs,1));overflow:hidden;cursor:pointer;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.eqval.eqlong.deplie{max-height:none;-webkit-mask-image:none;mask-image:none}
.eqerreur{color:#F48771}
.eqabsente,.eqplus{color:#8C8C8C}
.tab.satab .lbl{font-style:italic}
.groupeligne.saligne{padding-left:calc(22px * var(--fs,1))}
.groupeligne.saligne .lbl{font-style:italic}
#salecteur .plhaut > span:first-child{margin-right:0}
#salecteur .satitre{margin-right:auto;color:var(--text);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#salecteur .saetat{color:#8C8C8C;font-weight:400;font-size:calc(13px * var(--fs,1))}
.sacorps .saitem{margin-bottom:calc(10px * var(--fs,1));font-size:calc(14px * var(--fs,1))}
.sacorps .saitem pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,Consolas,monospace;font-size:calc(12.5px * var(--fs,1))}
.sacorps .sa-consigne{border-left:3px solid var(--accent);padding-left:calc(10px * var(--fs,1))}
.sacorps .sa-outil{display:flex;gap:6px;color:#8C8C8C}
.sacorps .sa-outil .on{color:var(--text);font-weight:600;flex:none}
.sacorps .sa-outil.sa{cursor:pointer}
.sacorps .sa-outil.sa .on{text-decoration:underline;text-underline-offset:3px}
.sacorps .sa-sortie pre{color:#8C8C8C;max-height:calc(240px * var(--fs,1));overflow:auto;background:var(--bg)}
.sacorps .saerr pre{color:#e06c6c}
.plcorps{flex:1;overflow-y:auto;padding:12px 16px;width:100%;box-sizing:border-box}   /* toute la largeur, plein ecran et onglet */
.plbas{display:flex;gap:10px;justify-content:center;padding:10px;border-top:1px solid var(--border);flex:none}
.plbas .btn{background:var(--accent);color:#1f1f1f;border:none;border-radius:8px;padding:10px 20px;font:inherit;font-weight:600;cursor:pointer}
.plbas .btn.sec{background:transparent;color:var(--text);border:1px solid var(--border)}
body.planpage .plbas{position:fixed;left:0;right:0;bottom:0;z-index:5;background:var(--bg);flex-wrap:wrap}
body.planpage.plrepond .plcorps{padding-bottom:90px}   /* le dernier passage ne passe pas sous les boutons */
.plbas[hidden], .plbas [hidden]{display:none}
/* la page du plan defile normalement : la conversation bloque html et body (overflow:hidden) */
html.planpage, html.planpage body{height:auto !important;min-height:100%;overflow:auto !important}
body.planpage{display:block}
body.planpage .plcorps{overflow:visible}
@media print{ body.planpage .plhaut .planbtn{display:none} body.planpage{background:#fff;color:#000} body.planpage .plancorps, body.planpage .plancorps *{color:#000 !important} body.planpage mark.fluo{background:#fff176} }

/* ---- Usage du forfait, en haut des Reglages ---- */
.usagebloc{padding:6px 0 8px;border-bottom:1px solid var(--border);margin-bottom:4px}
.usageligne{display:grid;grid-template-columns:8.5ch 1fr 5.5ch;grid-template-areas:"nom barre pct" ". reset reset";
  align-items:center;column-gap:10px;row-gap:1px;padding:3px 0;font-size:calc(12px * var(--fs,1));color:var(--text)}
.usagenom{grid-area:nom;color:var(--text)}
.usagebarre{grid-area:barre;height:6px;border-radius:3px;background:rgba(255,255,255,.08);overflow:hidden}
.usageplein{display:block;height:100%;background:var(--accent);border-radius:3px}   /* orange */
.usagepct{grid-area:pct;color:var(--text);min-width:40px;text-align:right}
.usagereset{grid-area:reset;font-size:calc(12px * var(--fs,1))}
.usageligne.eleve .usageplein{background:#c9a13b}
.usageligne.critique .usageplein{background:#d9534f}
.usageligne.critique .usagepct{color:#ff7b72;font-weight:600}

#bandeauver{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(96px * var(--fs,1));z-index:70;background:var(--accent);color:#1f1f1f;border:0;border-radius:18px;padding:8px 16px;font:600 calc(13px * var(--fs,1)) var(--ui);cursor:pointer;box-shadow:0 4px 16px rgba(0,0,0,.4)}

/* plan replie dans la conversation : carte compacte, cliquable -> plein ecran */
.msg.planreplie{cursor:pointer}
.msg.planreplie:hover{background:#1c1d1f}
.plantitre{color:var(--text);font-weight:600;margin:6px 0 2px;font-size:calc(14px * var(--fs,1))}
.planouvrir{color:var(--text);font-size:calc(12px * var(--fs,1))}
/* Boutons du bas : TOUS la meme taille et icone centree. Regle placee en
   dernier pour primer sur les tailles individuelles plus haut. Le bouton du contexte
   peut s elargir pour son pourcentage, jamais retrecir. */
@media (max-width:1024px), (pointer:coarse){ :root{--btnbase:calc(40px * var(--fs,1))} }
/* Plafond selon la largeur : texte agrandi -> les boutons grossissent jusqu a remplir la barre, jamais
   au-dela. 8 boutons + le pourcentage du contexte (environ 0,85 bouton) = 9 ; 70px = ecarts + marges du contexte. */
.ctl > button{--btnb:min(var(--btnbase), calc((100cqw - 70px) / 9))}
.ctl .ctxbtn #ctxpct{font-size:min(calc(12px * var(--fs,1)), calc(var(--btnb) * .36))}
.ctl .plusbtn,.ctl .regbtn,.ctl .ctxbtn,.ctl .parlebtn,.ctl .stopbtn,.ctl .send{
  box-sizing:border-box;height:var(--btnb);min-height:var(--btnb);width:var(--btnb);min-width:var(--btnb);
  padding:0;margin:0;display:flex;align-items:center;justify-content:center;line-height:1;flex:0 0 auto}
.ctl .stopbtn{background:transparent;border:1px solid var(--border);color:var(--text)}
.ctl .stopbtn .carre{background:currentColor;opacity:.45}
.ctl .stopbtn.montre{background:#c94f4f;border-color:#c94f4f;color:#fff;cursor:pointer}
.ctl .stopbtn.montre .carre{opacity:1}
.ctl .stopbtn:disabled{cursor:default}
.ctl .ctxbtn{width:auto;padding:0 6px;gap:4px}
.ctl .plusbtn{font-size:calc(20px * var(--fs,1))}
.ctl .send{font-size:calc(17px * var(--fs,1))}
.ctl .regbtn svg,.ctl .parlebtn svg,.ctl .ctxbtn svg{width:calc(var(--btnb) * .6);height:calc(var(--btnb) * .6);display:block;flex:none}
.ctl .ctxbtn:has(#ctxpct:empty){width:var(--btnb);padding:0;gap:0}
.ctl .ctxbtn #ctxpct:empty{display:none}
.exenf{position:relative}
.exenf::before{content:"";position:absolute;top:0;bottom:0;left:var(--gx);border-left:1px solid rgba(255,255,255,.14);pointer-events:none}
/* Explorateur : elements masques */
#explo:not(.voircaches) .excache{display:none}
#explo.voircaches .excache > .exrow{opacity:.45}
#exmenu{position:fixed;z-index:80;background:#252526;border:1px solid #454545;border-radius:6px;padding:4px;box-shadow:0 4px 16px rgba(0,0,0,.5);display:flex;flex-direction:column;min-width:calc(180px * var(--fs,1))}
#exmenu button{background:none;border:0;color:var(--text);text-align:left;padding:calc(6px * var(--fs,1)) calc(10px * var(--fs,1));font:inherit;font-size:calc(13px * var(--fs,1));border-radius:4px;cursor:pointer}
#exmenu button:hover{background:#04395e}
/* Reglages : fond gris comme la zone d ecriture (le #1d1f25 tirait sur le bleu),
   et chaque controle aligne a GAUCHE sur une meme colonne (selecteurs, Fast, grosseur du texte). */
.regpan label > select{width:100%}
.regpan label > .stepper,.regpan label > .fastbtn{justify-self:start}
/* Grosseur du texte : hauteur qui suit le texte, comme les selecteurs. */
@media (max-width:1024px), (pointer:coarse){ .stepper button{height:calc(28px * var(--fs,1));width:calc(32px * var(--fs,1))} }
/* Barre d activite : icone Parametres en bas, bulle au survol */
.actbtn.bas{margin-top:auto}
@media (hover:hover){
  .actbtn[data-tip]:hover::after{content:attr(data-tip);position:absolute;left:calc(100% + 8px);top:50%;transform:translateY(-50%);
    background:#252526;border:1px solid #454545;color:var(--text);padding:4px 8px;border-radius:4px;font:calc(12px * var(--fs,1)) var(--ui);
    white-space:nowrap;pointer-events:none;z-index:100;box-shadow:0 2px 8px rgba(0,0,0,.4)}
}
/* Vues : recherche, plans, taches, usage */
.vliste{flex:1;min-height:0;overflow-y:auto;padding:0 6px 10px}
.vjour{color:var(--text);font-size:calc(12px * var(--fs,1));padding:10px 8px 4px;text-transform:uppercase;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vrow .ico{width:calc(16px * var(--fs,1));height:calc(16px * var(--fs,1));flex:none}
.vrow.deux{display:flex;flex-direction:column;gap:4px;padding:10px 8px;margin-bottom:2px;border-radius:4px;cursor:pointer;min-width:0}
.vrow.deux:hover{background:var(--hover)}
.vrow.deux .l1{display:flex;align-items:center;gap:6px;min-width:0}
.vrow.deux .t{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:calc(13px * var(--fs,1))}
.vrow.deux .l2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(12px * var(--fs,1));color:#B4B4B4}
.badge{flex:none;font-size:calc(12px * var(--fs,1));padding:1px 6px;border-radius:8px;border:1px solid var(--border);color:var(--text)}
.badge.attente{color:#E5C07B;border-color:#8a7440}
.badge.ok{color:#89D185;border-color:#4d7a4a}
.rgroupe{margin-bottom:6px}
.rtitre{display:flex;align-items:center;gap:6px;padding:6px 8px 3px;cursor:pointer;border-radius:4px;min-width:0}
.rtitre:hover{background:var(--hover)}
.rtitre .t{flex:1 1 0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(13px * var(--fs,1));font-weight:600}
.rtitre .n{flex:none;font-size:calc(12px * var(--fs,1));background:rgba(255,255,255,.1);border-radius:8px;padding:0 6px;color:var(--text)}
.rextrait{padding:0 8px 0 18px;margin:3px 0 5px;font-size:calc(12px * var(--fs,1));color:var(--text);cursor:pointer;border-radius:4px;line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.rextrait:hover{background:var(--hover);color:var(--text)}
.rextrait.moi{color:var(--text)}
.rextrait mark{background:rgba(217,119,87,.35);color:inherit;border-radius:2px}
.msg.trouve{outline:2px solid var(--accent);outline-offset:4px;border-radius:4px;transition:outline-color 1s}
.tcompte{color:var(--text);font-size:calc(12px * var(--fs,1));padding:0 8px 6px}
.tache{display:flex;gap:8px;align-items:flex-start;padding:4px 8px;font-size:calc(13px * var(--fs,1));line-height:1.45}
.tache .tic{flex:none;width:1.1em;text-align:center;color:var(--text)}
.tache.completed .t{color:var(--text);text-decoration:line-through}
.tache.completed .tic{color:#89D185}
.tache.in_progress .tic{color:var(--accent)}
.tache.in_progress .t{color:var(--text);font-weight:600}
/* Vue Usage, plein ecran (fenetre de Parametres) : jauges puis grilles des jetons, toute la largeur */
#pcontenu .usagebloc{border-bottom:0;padding:0 0 calc(8px * var(--fs,1));margin-bottom:0}
.usagepage{gap:calc(10px * var(--fs,1))}
.usagepage .usageligne{grid-template-columns:calc(90px * var(--fs,1)) 1fr calc(56px * var(--fs,1));font-size:calc(13px * var(--fs,1))}
.usagejetons{display:flex;flex-direction:column;gap:calc(8px * var(--fs,1));width:100%}
.usagesous{display:flex;flex-direction:column;gap:calc(2px * var(--fs,1))}
.usagetitre{margin-top:calc(14px * var(--fs,1));padding-bottom:calc(4px * var(--fs,1));border-bottom:1px solid var(--border)}
.usagetab{width:100%;overflow-x:auto;background:var(--bg)}
.usagetab table{width:100%;border-collapse:collapse;font-size:calc(13px * var(--fs,1))}
.usagetab th,.usagetab td{padding:calc(5px * var(--fs,1)) calc(8px * var(--fs,1));border-bottom:1px solid var(--border);text-align:left;vertical-align:top}
.usagetab th{color:var(--muted);font-weight:600;white-space:nowrap}
.usagetab td.n,.usagetab th.n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.usagetab tr.usageconv{cursor:pointer}.usagetab tr.usageconv:hover td{background:#1f2021}
.usagetab td.usagebarrecase{width:40%}
/* Cartes de chiffres communes (vue Postes) : tailles en px * --fs */
.tabcartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(160px * var(--fs,1)),1fr));gap:calc(10px * var(--fs,1));width:100%;margin-top:calc(6px * var(--fs,1))}
.tabcarte{background:var(--input);border:1px solid var(--border);border-radius:calc(8px * var(--fs,1));padding:calc(10px * var(--fs,1)) calc(12px * var(--fs,1));display:flex;flex-direction:column;gap:calc(4px * var(--fs,1))}
.tabclib{color:var(--muted);font-size:calc(12px * var(--fs,1))}
.tabcval{font-size:calc(22px * var(--fs,1));font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}
.tabform{gap:calc(6px * var(--fs,1));width:100%}
/* Vue Postes (eq 2196) : pastille de sante, problemes, grilles pleine largeur ; reprend les cartes de chiffres communes */
.pospage{gap:calc(10px * var(--fs,1));width:100%}
.pospastille{display:inline-block;padding:calc(2px * var(--fs,1)) calc(8px * var(--fs,1));border-radius:calc(10px * var(--fs,1));font-size:calc(12px * var(--fs,1));font-weight:600;background:var(--input);color:var(--muted)}
.pospastille[data-niveau="ok"]{background:#1f3d2a;color:#7fd39a}
.pospastille[data-niveau="avert"]{background:#4a3a14;color:#f0c674}
.pospastille[data-niveau="alerte"]{background:#4d1f1c;color:#f48771}
.posprob{color:var(--muted);font-size:calc(12px * var(--fs,1));margin-top:calc(3px * var(--fs,1));white-space:normal}
.posprobs{margin:0;padding-left:calc(20px * var(--fs,1));display:flex;flex-direction:column;gap:calc(4px * var(--fs,1));font-size:calc(13px * var(--fs,1))}
.posprobs li[data-niveau="alerte"]{color:#f48771}
.posprobs li[data-niveau="avert"]{color:#f0c674}
.tabcarte[data-niveau="alerte"] .tabcval{color:#f48771}
.tabcarte[data-niveau="avert"] .tabcval{color:#f0c674}
.tabcarte[data-niveau="ok"] .tabcval{color:#7fd39a}
.usagetab tr[data-niveau="alerte"] td{color:#f48771}
.usagetab tr[data-niveau="avert"] td{color:#f0c674}
.posclic{cursor:pointer}
.posclic:hover td{background:var(--input)}
.posfiltre{width:100%;box-sizing:border-box;font-size:calc(13px * var(--fs,1))}
.poslog{width:100%}
.posentete{display:flex;align-items:center;gap:calc(6px * var(--fs,1));margin:0}
.posmenu[data-niveau="alerte"]::before,.posmenu[data-niveau="avert"]::before,.posmenu[data-niveau="ok"]::before{content:"";display:inline-block;width:calc(8px * var(--fs,1));height:calc(8px * var(--fs,1));border-radius:50%;margin-right:calc(6px * var(--fs,1));vertical-align:middle}
.posmenu[data-niveau="alerte"]::before{background:#f48771}
.posmenu[data-niveau="avert"]::before{background:#f0c674}
.posmenu[data-niveau="ok"]::before{background:#7fd39a}
/* Parametres > Skills > Metier (lot L12, eq 2188) : pleine largeur, tailles par --fs */
.mtform,.mtzone,.mtpart{display:flex;flex-direction:column;gap:calc(6px * var(--fs,1));width:100%;box-sizing:border-box}
.mtform .agchamp,.mtzone .agchamp{width:100%;box-sizing:border-box;font-size:calc(13px * var(--fs,1))}
.mttexte{min-height:calc(260px * var(--fs,1));resize:vertical;font:calc(12.5px * var(--fs,1))/1.6 var(--mono,monospace);white-space:pre-wrap}
.mtligne{display:flex;flex-direction:column;gap:calc(4px * var(--fs,1));margin-bottom:calc(8px * var(--fs,1))}
.mtligne .pbas{margin-top:calc(4px * var(--fs,1))}
.tabmaj{margin:0}
/* Vue Recherche (eq 2177) : champ et resultats pleine largeur, cartes et pastilles rondes sans contour ; tailles en px * --fs */
.rechpage{gap:calc(10px * var(--fs,1));width:100%}
.rechligne{display:flex;gap:calc(8px * var(--fs,1));align-items:center;flex-wrap:wrap;width:100%}
.rechligne .rechq{flex:1 1 calc(260px * var(--fs,1));min-width:0;box-sizing:border-box;font-size:calc(14px * var(--fs,1));padding:calc(8px * var(--fs,1)) calc(12px * var(--fs,1));border:0;border-radius:calc(18px * var(--fs,1))}
.rechligne .rechsource{flex:0 0 auto;font-size:calc(13px * var(--fs,1));padding:calc(7px * var(--fs,1)) calc(10px * var(--fs,1));border:0;border-radius:calc(18px * var(--fs,1))}
.rechligne .rechbtn{border-radius:calc(18px * var(--fs,1));padding:calc(7px * var(--fs,1)) calc(16px * var(--fs,1))}
.rechzone{display:flex;flex-direction:column;gap:calc(8px * var(--fs,1));width:100%}
.rechentete{display:flex;align-items:center;justify-content:space-between;gap:calc(8px * var(--fs,1));flex-wrap:wrap}
.rechentete .rechclaude{border-radius:calc(18px * var(--fs,1))}
.rechres{background:var(--input);border:0;border-radius:calc(12px * var(--fs,1));padding:calc(10px * var(--fs,1)) calc(14px * var(--fs,1));display:flex;flex-direction:column;gap:calc(4px * var(--fs,1));min-width:0}
.rechtete{display:flex;align-items:center;gap:calc(8px * var(--fs,1));min-width:0}
.rechbadge{flex:0 0 auto;font-size:calc(11px * var(--fs,1));padding:calc(2px * var(--fs,1)) calc(9px * var(--fs,1));border-radius:calc(10px * var(--fs,1));background:rgba(255,255,255,.08);color:var(--muted);white-space:nowrap}
.rechtitre{font-size:calc(14px * var(--fs,1));font-weight:600;color:var(--text);text-decoration:none;min-width:0;overflow-wrap:anywhere}
a.rechtitre:hover{color:var(--accent);text-decoration:underline}
.rechmeta{font-size:calc(11px * var(--fs,1));color:var(--muted);overflow-wrap:anywhere}
.rechextrait{font-size:calc(13px * var(--fs,1));line-height:1.5;color:var(--text);overflow-wrap:anywhere}
.rechextrait mark{background:rgba(255,190,80,.28);color:inherit;border-radius:calc(3px * var(--fs,1));padding:0 calc(2px * var(--fs,1))}
.rechbas{display:flex;justify-content:flex-end}.rechbas .btn{border-radius:calc(14px * var(--fs,1));font-size:calc(12px * var(--fs,1));padding:calc(3px * var(--fs,1)) calc(12px * var(--fs,1))}
.rechetat{display:flex;flex-direction:column;gap:calc(8px * var(--fs,1));width:100%}
.rechcarte{border:0;border-radius:calc(12px * var(--fs,1))}
.rechsrc{display:flex;flex-direction:column;gap:calc(2px * var(--fs,1));background:var(--input);border-radius:calc(12px * var(--fs,1));padding:calc(8px * var(--fs,1)) calc(12px * var(--fs,1))}
.rechsrcnom{font-weight:600;font-size:calc(13px * var(--fs,1))}
.rechdossiers{width:100%;box-sizing:border-box;font-family:var(--mono,monospace);font-size:calc(13px * var(--fs,1));border:0;border-radius:calc(10px * var(--fs,1));resize:vertical}
.rechcases{display:flex;gap:calc(14px * var(--fs,1));flex-wrap:wrap;font-size:calc(13px * var(--fs,1))}
.rechcase{display:flex;align-items:center;gap:calc(6px * var(--fs,1));cursor:pointer}
.usagebarreh{display:inline-block;height:calc(8px * var(--fs,1));background:var(--accent);border-radius:2px;vertical-align:middle}
/* Fond OPAQUE sur les zones qui defilent : sans fond, Chrome lisse le texte en gris au lieu du
   lissage ClearType en couleur, et le blanc parait terne (VS Code : 191,191,191 mais plus net). */
.convs,.explo,.vliste{background:var(--side)}
/* Onglets facon VS Code : barre #191A1B, onglets
   inactifs #2A2A2B, onglet ouvert = couleur de la conversation et soude a elle (aucune bordure). */
.tab:hover{background:#323233}
.tab.on,.tab.on:hover{background:var(--bg)}
.tabs .newtab{align-self:center}
@media (max-width:1024px), (pointer:coarse){ .tabs{padding:6px 4px 0} }
/* Mode plan = BLEU partout ou l orange signale l action : bouton d envoi et
   point de l onglet ouvert, comme la bordure de la zone de saisie. */
body.modeplan .send{background:#3794ff}
body.modeplan .tab.on .bul,body.modeplan .tab.on.busy .bul{background:#3794ff}
/* Taches : titre de la conversation en evidence */
#tach .vjour{font-size:calc(14px * var(--fs,1));font-weight:600;text-transform:none;letter-spacing:0;padding:12px 8px 6px}
/* Ligne de temps facon VS Code : un point gris devant chaque
   element de Claude (vert pour les outils), une ligne fine qui relie les elements qui se suivent,
   coupee par les messages de l utilisateur ; plus d air entre les elements. */
.msg.assistant,.msg.outil,.msg.refl,.msg.think{position:relative;padding-left:calc(24px * var(--fs,1));margin-bottom:calc(14px * var(--fs,1))}
.msg.assistant::before,.msg.outil::before,.msg.refl::before,.msg.think::before{content:"";position:absolute;left:calc(5px * var(--fs,1));
  top:calc(var(--demi,1.3em) - 3.5px * var(--fs,1));width:calc(7px * var(--fs,1));height:calc(7px * var(--fs,1));border-radius:50%;background:#8C8C8C;z-index:1}
.msg.outil::before{background:#6aa84f}
.msg.refl{border-left:0;padding-top:0;padding-bottom:0}
/* Claude travaille : le point de la ligne de temps CLIGNOTE en orange (comme l ancien indicateur) */
.msg.think::before{content:"\2722";background:none;width:auto;height:auto;border-radius:0;left:calc(2px * var(--fs,1));top:50%;margin-top:-0.62em;
  line-height:1.2em;font-size:1.05em;color:var(--accent);animation:etoile 1.2s steps(1) infinite}
/* etoile de VS Code qui change de forme pendant que Claude travaille */
@keyframes etoile{0%{content:"\00B7"}16%{content:"\2722"}33%{content:"\2733"}50%{content:"\2736"}66%{content:"\273B"}83%{content:"\273D"}}
.msg.think span:last-child{font-weight:600}
.msg.assistant::after,.msg.outil::after,.msg.refl::after,.msg.think::after{content:"";position:absolute;left:calc(8px * var(--fs,1));width:1px;top:var(--demi,1.3em);bottom:0;background:#3A3B3C;z-index:0}
/* ligne CONTINUE : un element precede d un autre part du haut ; suivi d un autre, elle traverse l espace jusqu au suivant */
:is(.msg.assistant,.msg.outil,.msg.refl,.msg.think) + :is(.msg.assistant,.msg.outil,.msg.refl,.msg.think)::after{top:0}
:is(.msg.assistant,.msg.outil,.msg.refl,.msg.think):has(+ :is(.msg.assistant,.msg.outil,.msg.refl,.msg.think))::after{bottom:calc(-14px * var(--fs,1))}
.user{margin:calc(18px * var(--fs,1)) 0}   /* apres la regle mobile .msg : cette marge doit primer */
/* ordinateur : plus de marge a gauche et a droite dans la conversation */
@media (min-width:1025px) and (pointer:fine){ .msgs{padding:calc(32px * var(--fs,1))} }
/* texte des messages plus FIN : Segoe UI Semilight (350) sous Windows ; le gras reste gras */
.msg.user,.msg.assistant,.msg.assistant p,.msg.assistant li{font-weight:300}
/* Thinking et description des outils en GRIS, comme VS Code (mesure sur sa capture : #8C8C8C) */
.msg.refl .rh{background:none;border:0;padding:0;margin:0;font:inherit;font-size:calc(13px * var(--fs,1));text-transform:none;letter-spacing:0;opacity:1;color:#8C8C8C;cursor:pointer;display:inline}
.msg.refl .rh:disabled{cursor:default;color:#8C8C8C}
.msg.refl .rc{display:none;color:#8C8C8C;max-height:none;-webkit-mask-image:none;mask-image:none;margin-top:4px}
.msg.refl.ouvert .rc{display:block}
.msg.outil .ordesc{color:#8C8C8C}
.msg.outil,.msg.refl{font-size:calc(13px * var(--fs,1))}
/* point ORANGE pour les reponses de Claude (gris = Thinking, vert = outils) */
.msg.assistant::before{background:var(--accent)}
/* gras FIXE : avec un texte en Light (300), "bolder" ne donnait que 400 -> le gras ne ressortait plus */
.msg strong,.msg b,.msg th,.msg.assistant h1,.msg.assistant h2,.msg.assistant h3,.msg.assistant h4,.msg.outil .on{font-weight:600}
/* indicateur "Reflexion..." : hors de la ligne de temps, comme VS Code (pas de trait vers lui ni sous lui) */
.msg.think::after{display:none}
:is(.msg.assistant,.msg.outil,.msg.refl):has(+ .msg.think)::after{bottom:0}
.msg.think{margin-top:calc(6px * var(--fs,1))}
.msg.think .thinknote{font-weight:400;opacity:.6;font-size:calc(12px * var(--fs,1));margin-top:calc(2px * var(--fs,1))}   /* note d attente : avant le premier contenu du tour */
.suivibtn.on{color:var(--accent);border-color:var(--accent)}
/* boutons du bas : tous des carres VISIBLES de meme taille (les boutons a contour transparent paraissaient plus petits que Stop et Envoyer, pleins) */
.ctl .plusbtn,.ctl .regbtn,.ctl .ctxbtn,.ctl .parlebtn{background:var(--input)}
/* pas de barre de defilement HORIZONTALE dans la conversation (code et grilles defilent dans leur bloc) */
.msg.assistant pre,.msg.assistant table{max-width:100%;overflow-x:auto}
/* poignee de defilement au doigt (telephone) : ASPECT de la barre de Chrome (fine, grise, visible
   pendant le defilement seulement) mais attrapable : zone tactile de 28 px tant qu elle est visible */
#pouce{position:fixed;width:28px;z-index:30;display:flex;justify-content:flex-end;padding-right:3px;box-sizing:border-box;
  touch-action:none;opacity:.55;transition:opacity .4s}   /* TOUJOURS visible, plus clair en defilant */
#pouce span{width:4px;height:100%;border-radius:2px;background:rgba(255,255,255,.38);transition:width .15s}
#pouce.visible,#pouce.actif{opacity:1;transition:opacity .1s}
#pouce.actif span{width:7px;background:rgba(255,255,255,.55)}
/* espace entre les lettres du texte des messages ; code non touche */
.msg.user,.msg.assistant,.msg.outil,.msg.refl{letter-spacing:.03em}
/* etat d un message envoye pendant un tour (eq 2344) : En attente, puis Livré */
.msg.user[data-etat]::after{content:attr(data-etat);display:block;margin-top:calc(4px * var(--fs,1));font-size:calc(11px * var(--fs,1));opacity:.6;text-align:right;white-space:nowrap}
.msg code,.msg pre{letter-spacing:0}
/* Onglet ouvert bien visible : texte des inactifs attenue (tab.inactiveForeground
   VS Code), onglet ouvert en blanc avec un trait d accent en haut (tab.activeBorderTop). Le survol ne
   s applique qu a la souris : sur ecran tactile il restait colle sur un onglet non ouvert. */
body.modeplan .tab.on{box-shadow:inset 0 2px 0 #3794ff}
@media (hover:none){ .tab:hover{background:#2A2A2B} }
.tab:not(.on) .x{color:#9D9D9D}
.tab:not(.on) .x:hover{color:#FFFFFF}
/* Plan dans la zone de son onglet, plus par-dessus toute la fenetre */
#planlecteur.danstab{position:absolute;left:0;right:0;bottom:0;z-index:20}
/* Commentaire dans le plan plein ecran : zone de texte sur toute la largeur, boutons dessous */
#planlecteur .plbas{flex-wrap:wrap}
#planlecteur .plcom{order:-1;flex:1 0 100%;box-sizing:border-box;background:var(--input);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px 10px;font:inherit;font-size:calc(14px * var(--fs,1));resize:vertical;min-height:calc(44px * var(--fs,1))}
#planlecteur .plcom:focus{outline:none;border-color:var(--accent)}
#planlecteur .plbas .btn:disabled{opacity:.45;cursor:default}
/* Trace d un plan deja repondu : cliquable pour le relire */
.card.plan.rouvrable{cursor:pointer}
.card.plan.rouvrable:hover{border-color:var(--accent)}
/* Chaque onglet en mode plan garde son point BLEU, ouvert ou non ; une reponse non lue reste verte */
.tab.plan .bul,.tab.plan.busy .bul,.tab.plan.waiting .bul{background:#3794ff;opacity:1}
.tab.plan.unread .bul{background:#3fb950}
/* Images generees par Claude dans les reponses */
.genimg{display:block;margin:10px 0;width:fit-content}
.genimg img{display:block;max-width:100%;max-height:70vh;border-radius:8px;border:1px solid var(--border)}
/* bouton joindre : icone de televersement au lieu du + */
.plusbtn svg{width:calc(16px * var(--fs,1));height:calc(16px * var(--fs,1));display:block;margin:auto}
.plushaut{display:block;margin:0 auto calc(14px * var(--fs,1));padding:8px 14px;background:var(--input);color:var(--text);border:1px solid #3A3B3C;border-radius:8px;font:inherit;font-size:calc(13px * var(--fs,1));cursor:pointer}
.agtete{padding:6px 10px}.agtete select{width:100%;background:var(--input);color:var(--text);border:1px solid #3A3B3C;border-radius:6px;padding:6px 8px;font:inherit}
.agbloc{display:flex;flex-direction:column;gap:6px;border-bottom:1px solid #232425;padding:0 0 6px 0}   /* une ligne entre chaque agent ; nom aligne sur la vue Routines */
.agconvs .conv.nonlu .bul{background:var(--accent)}.agconvs .conv.nonlu .t{font-weight:600}.agchamp{background:var(--input);color:var(--text);border:1px solid #3A3B3C;border-radius:6px;padding:6px 8px;font:inherit}
textarea.agtexte{background:var(--input);color:var(--text);border:1px solid #3A3B3C;border-radius:8px;padding:8px;font:calc(13px * var(--fs,1)) var(--mono,monospace);min-height:12em;max-height:none;resize:vertical}
.agchamp:focus,textarea.agtexte:focus{border-color:var(--accent);outline:none}
.agtete2{padding-top:0}
.sh .agplus{margin-left:auto;background:none;border:0;color:var(--text);font-size:calc(22px * var(--fs,1));line-height:1;padding:0 6px;cursor:pointer}.sh .agplus:hover{color:var(--accent)}
.agfen{position:fixed;inset:0;z-index:65;background:var(--bg);display:flex}.agfen[hidden]{display:none}
/* correctif barre-vues : ordinateur, la fenetre (Usage, Connecteurs, Parametres, Aide) couvre la zone de contenu seulement ;
   barre d activite et panneau de gauche restent visibles et cliquables (infobulles de la barre au-dessus) ; telephone inchange */
.agfen{left:calc(var(--actw) + var(--sidew,280px))}body.nosidebar .agfen{left:var(--actw)}
body:has(#agfen:not([hidden])) .actbar{z-index:66}
/* correctif barre-telephone (taches 380/382) : au telephone la barre d icones reste visible en permanence ; la fenetre commence apres elle,
   la barre passe au-dessus et defile en hauteur si l ecran est trop court pour ses icones */
@media (max-width:1024px), (pointer:coarse){ .agfen,body.nosidebar .agfen{left:var(--actw)} body:has(#agfen:not([hidden])) .actbar{z-index:66}
  .actbar{overflow-y:auto;overflow-x:hidden;scrollbar-width:none;padding-top:calc(8px + env(safe-area-inset-top,0px));padding-bottom:calc(8px + env(safe-area-inset-bottom,0px));flex-shrink:0}
  .actbar::-webkit-scrollbar{display:none} }
.pnav{width:calc(260px * var(--fs,1));flex:none;background:var(--side);border-right:1px solid var(--border);display:flex;flex-direction:column;min-height:0}
.pnavhaut,.pmainhaut{display:flex;align-items:center;gap:6px;min-height:calc(44px * var(--fs,1));padding:6px 10px}.pnavhaut .t{font-weight:600;font-size:calc(14px * var(--fs,1))}
.pretour{background:none;border:0;color:var(--muted);font-size:calc(26px * var(--fs,1));line-height:1;padding:0 8px 2px;border-radius:6px;cursor:pointer}.pretour:hover{color:var(--text);background:#1f2021}
#pmenu{flex:1;overflow:auto;padding:0 8px 16px}
.psec{color:var(--muted);font-size:calc(12px * var(--fs,1));text-transform:uppercase;letter-spacing:.05em;padding:14px 10px 4px}
.pitem{display:flex;align-items:center;gap:calc(8px * var(--fs,1));width:100%;text-align:left;background:none;border:0;border-radius:6px;color:var(--text);font:inherit;font-size:calc(14px * var(--fs,1));padding:7px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pitem:hover{background:#1f2021}.pitem.on{background:#2A2B2C;font-weight:600}.pitem.psous{padding-left:26px;color:var(--muted)}.pitem.psous.on{color:var(--text)}.pitem.pnouveau{color:var(--muted)}
.pmain{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}.pmainhaut{padding-left:24px}.pmain .pretour{display:none}
.pfil{color:var(--muted);font-size:calc(12px * var(--fs,1));letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#pcontenu{flex:1;min-height:0;overflow:auto;padding:0 24px 32px;display:flex;flex-direction:column}
.ptitre{font-size:calc(18px * var(--fs,1));font-weight:600;margin:4px 0 16px}
.pcorps{display:flex;flex-direction:column;gap:8px}.pcorps.plein{flex:1;min-height:0}.pcorps.plein textarea.pmd{flex:1;min-height:50vh;resize:none;font-family:var(--ui);font-size:calc(13px * var(--fs,1));line-height:2.6;padding:8px 12px}
.eqchamp{display:flex;flex-direction:column;gap:4px;padding:10px 0;border-bottom:1px solid #232425}.eqrligne{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.eqrligne .eqnb{width:calc(120px * var(--fs,1))}.eqrligne.eqtexte{align-items:flex-start}.eqrligne .eqtx{flex:1 1 100%;width:100%;min-height:5em;box-sizing:border-box}.equnite{color:var(--muted);font-size:calc(13px * var(--fs,1))}.eqerr{color:#e5534b;font-size:calc(13px * var(--fs,1))}.eqerr:empty{display:none}.eqsoustitre{margin-top:14px}.eqjauges{font-size:calc(13px * var(--fs,1))}
.plib{font-weight:600;font-size:calc(13px * var(--fs,1))}.pnote{color:var(--muted);font-size:calc(12px * var(--fs,1))}.pbas{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px}
.pcarte{display:flex;flex-direction:column;gap:8px;border:1px solid #2A2B2C;border-radius:8px;padding:12px;margin-bottom:8px}.pcarte.pneuve{border-style:dashed}.pcarte textarea.agtexte{min-height:8em}
.pcartehaut{display:flex;align-items:center;gap:10px}
.pmcp{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:calc(14px * var(--fs,1));cursor:pointer}.pmcpliste{display:flex;flex-direction:column;padding-left:22px}.pmcpliste.off{opacity:.45}
.prtrang{display:flex;gap:8px;align-items:center;margin-bottom:10px}.prtrang .prtsel{margin-bottom:0;flex:1;min-width:0}
.prtplus{flex:none;width:calc(38px * var(--fs,1));height:calc(38px * var(--fs,1));background:var(--input);color:var(--text);border:1px solid #3A3B3C;border-radius:6px;font-size:calc(22px * var(--fs,1));line-height:1;cursor:pointer}.prtplus:hover{border-color:var(--accent);color:var(--accent)}
.prtsel{width:100%;background:var(--input);color:var(--text);border:1px solid #3A3B3C;border-radius:6px;padding:8px 10px;font:inherit;font-size:calc(14px * var(--fs,1));margin-bottom:10px}
.pcarte.prtplein{flex:1;min-height:0;margin-bottom:0}.pcarte.prtplein textarea.pmd{flex:1;min-height:40vh;resize:none;max-height:none;font-family:var(--ui);font-size:calc(13px * var(--fs,1));line-height:2.6;padding:8px 12px}.pcartehaut .pctitre{flex:1;min-width:0;font-weight:600}
.agfen .btn{padding:6px 12px;font:inherit;font-size:calc(13px * var(--fs,1));cursor:pointer}
.agfen .btn,.agfen .btn.agprim,.agfen .btn.del,.agfen .btn.sec{background:var(--input);border:1px solid var(--border);border-radius:6px;color:var(--text)}.agfen .btn:hover{background:rgba(255,255,255,.08);border-color:var(--accent)}.agfen .btn.agprim{font-weight:600}   /* Parametres : meme style que les boutons de la barre de saisie */
@media (max-width:1024px), (pointer:coarse){ .pcarte.prtplein textarea.pmd{line-height:2.4} .pcorps.plein textarea.pmd{line-height:2.4} .pnav{width:100%;border-right:0} .agfen.pdetail .pnav{display:none} .agfen:not(.pdetail) .pmain{display:none} .pmain .pretour{display:inline-block} .pmainhaut{padding-left:6px} #pcontenu{padding:0 12px 24px} .pitem{padding:11px 12px;} .pitem.psous{padding-left:28px} .pcarte{padding:10px} }
.rtrang{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 12px 10px 16px;border-bottom:1px solid #232425}.rtrang .t{flex-basis:100%;min-width:0;overflow-wrap:anywhere}
.rtlancer{display:flex;align-items:center;gap:6px;background:var(--input);color:var(--text);border:1px solid #3A3B3C;border-radius:8px;padding:6px 12px;font:inherit;font-size:calc(13px * var(--fs,1));cursor:pointer;white-space:nowrap}.rtlancer:hover{border-color:var(--accent)}.rtlancer svg{width:16px;height:16px}
.rtinter{position:relative;display:inline-block;width:40px;height:22px;flex:none;cursor:pointer}.rtinter input{opacity:0;width:0;height:0;position:absolute}
.rtglis{position:absolute;inset:0;background:#3A3B3C;border-radius:22px;transition:background .15s}.rtglis::before{content:"";position:absolute;width:18px;height:18px;left:2px;top:2px;background:#f5f5f5;border-radius:50%;transition:transform .15s}
.rtinter input:checked + .rtglis{background:var(--accent)}.rtinter input:checked + .rtglis::before{transform:translateX(18px)}
.rtetat{color:var(--muted);font-size:calc(12px * var(--fs,1));width:4.8em}.rtplus{background:none;border:0;color:var(--muted);font-size:calc(18px * var(--fs,1));cursor:pointer;padding:0 4px}.rtplus:hover{color:var(--text)}
/* Bouton Copier des blocs de code : icone comme VS Code (feuilles ; crochet apres la copie) */
.cbcopie{position:absolute;top:6px;right:6px;width:calc(28px * var(--fs,1));height:calc(28px * var(--fs,1));display:flex;align-items:center;justify-content:center;padding:0;background:#1f2021;color:var(--muted);border:1px solid var(--border);border-radius:6px;cursor:pointer;z-index:1}
.cbcopie svg{width:calc(16px * var(--fs,1));height:calc(16px * var(--fs,1))}.cbcopie .ic-ok{display:none}.cbcopie.ok .ic-copie{display:none}.cbcopie.ok .ic-ok{display:block}
.cbcopie:hover,.cbcopie.ok{color:var(--text);border-color:var(--accent)}
@media (max-width:1024px), (pointer:coarse){ .cbcopie{width:calc(36px * var(--fs,1));height:calc(36px * var(--fs,1))} .cbcopie svg{width:calc(18px * var(--fs,1));height:calc(18px * var(--fs,1))} }

/* ---- Ecran du mode parle : plein ecran, rond qui suit la voix, gros boutons ----
   Couleurs neutres (blanc/gris) ; boutons = style de la barre de saisie (var(--input), var(--border)). */
.parleecran{position:fixed;inset:0;z-index:200;background:var(--bg);color:var(--text);display:flex;flex-direction:column;
  align-items:stretch;padding:calc(12px * var(--fs,1)) calc(16px * var(--fs,1)) calc(20px * var(--fs,1));gap:calc(12px * var(--fs,1));font-family:var(--ui)}
.parleecran[hidden]{display:none}
.pehaut{display:flex;align-items:center;justify-content:space-between}
.petitre{font-size:calc(15px * var(--fs,1));font-weight:600;opacity:.8}
.pecentre{flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(22px * var(--fs,1));min-height:0}
.peorbe{--orbe:min(38vmin, calc(230px * var(--fs,1)));width:var(--orbe);height:var(--orbe);margin:calc(var(--orbe) * .28);flex:none;border-radius:50%;
  background:radial-gradient(circle at 38% 34%, #ffffff 0%, #d9d9d9 38%, #8a8a8a 100%);
  transform:scale(1);transition:transform 90ms linear, opacity .3s, filter .3s;will-change:transform}
.parleecran[data-etat="reflexion"] .peorbe{animation:pepulse 1.4s ease-in-out infinite}
.parleecran[data-etat="muet"] .peorbe{opacity:.35;filter:grayscale(1)}
@keyframes pepulse{0%,100%{transform:scale(.92)}50%{transform:scale(1.04)}}
.peetat{font-size:calc(20px * var(--fs,1));font-weight:600;min-height:1.4em;text-align:center}
.pesous{display:flex;flex-direction:column;gap:calc(8px * var(--fs,1));text-align:center;min-height:calc(70px * var(--fs,1))}
.pesous[hidden]{display:none}
.petoi{font-size:calc(15px * var(--fs,1));opacity:.65}
.peclaude{font-size:calc(19px * var(--fs,1));line-height:1.4}
.pebas{display:grid;grid-template-columns:repeat(auto-fit, minmax(calc(130px * var(--fs,1)), 1fr));gap:calc(10px * var(--fs,1))}
.pebtn{background:var(--input);border:1px solid var(--border);border-radius:calc(12px * var(--fs,1));color:var(--text);
  font:600 calc(17px * var(--fs,1)) var(--ui);min-height:calc(64px * var(--fs,1));padding:0 calc(14px * var(--fs,1));cursor:pointer}
.pebtn:hover{background:rgba(255,255,255,.08)}
.pebtn:disabled{opacity:.35;cursor:default}
.pebtn.actif{border-color:#fff}
.pequitter{min-height:calc(44px * var(--fs,1))}
.pevol{display:flex;align-items:center;gap:calc(10px * var(--fs,1));font-size:calc(14px * var(--fs,1))}
.pevol input[type=range]{flex:1;min-width:0;accent-color:#fff;height:calc(28px * var(--fs,1))}

/* Vue Agents : un bloc par agent (nom + bouton +, conversations dessous) */
.agtetenom{display:flex;align-items:center;gap:6px;font-size:calc(14px * var(--fs,1));font-weight:600;text-transform:none;letter-spacing:0;padding:12px 8px 4px}
.agtetenom span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.agtetenom .agplus{background:none;border:0;color:var(--text);font-size:calc(22px * var(--fs,1));line-height:1;padding:0 6px;cursor:pointer}
.agtetenom .agplus:hover{color:var(--accent)}
.agtetenom span.agpartage{flex:0 0 auto;font-size:calc(11px * var(--fs,1));font-weight:400;opacity:.75;border:1px solid currentColor;border-radius:8px;padding:0 6px;white-space:nowrap}
.ptdiff{white-space:pre-wrap;word-break:break-word;font:calc(12px * var(--fs,1))/1.45 ui-monospace,SFMono-Regular,Menlo,monospace;max-height:50vh;overflow:auto;margin:6px 0;padding:8px;border-radius:6px;background:rgba(127,127,127,.1)}
.ptdiff .plus{color:#1a7f37;background:rgba(26,127,55,.1)}.ptdiff .moins{color:#cf222e;background:rgba(207,34,46,.1)}.ptdiff .pos{opacity:.6}
.agdesc{color:var(--muted);font-size:calc(12px * var(--fs,1));padding:0 8px 6px;overflow-wrap:anywhere}
.agtete2[hidden],#agplus[hidden]{display:none}

/* Rond d etat, partout pareil : gris repos, rouge qui pulse = travaille (demandes 162, 170), vert fixe = chaud dans les onglets,
   bleu = il t attend, vert = reponse non lue. L onglet ouvert se voit par son surlignage.
   Aucun contour autour d un rond, quel que soit l etat : la couleur seule dit l etat. */
.bul{box-shadow:none !important}
.bul:not([data-etat]),.bul[data-etat=""]{background:#6e7681 !important;opacity:.6 !important;animation:none !important}
.bul[data-etat="busy"]{background:#f85149 !important;animation:p 1.2s infinite !important}
.bul[data-etat="chaud"]{background:#3fb950 !important;opacity:1 !important;animation:none !important}   /* voyants : processus vivant au repos */
.bul[data-etat="waiting"]{background:#3794ff !important;opacity:1 !important;animation:none !important}
.bul[data-etat="unread"]{background:#3fb950 !important;opacity:1 !important;animation:none !important}
/* Vue Plans : une ligne entre chaque plan */
#plans .vrow.deux{border-bottom:1px solid #232425;border-radius:0;margin-bottom:0}

/* Taches : une ligne entre chaque tache ; Plans et Taches : une ligne au-dessus du premier */
/* Taches de toutes les conversations : une ligne en haut et en bas de chaque conversation */
#tach .tconv{border-top:1px solid #232425;padding-bottom:8px}
#tach .tconv:last-child{border-bottom:1px solid #232425}
#tach .tconvtitre{cursor:pointer}
#tach .tconvtitre:hover{text-decoration:underline}
#plans .vrow.deux:first-child{border-top:1px solid #232425}
/* Taches vide : ligne en haut et en bas du message, comme les rangees */
#tach .empty{border-top:1px solid #232425;border-bottom:1px solid #232425;padding:10px 8px;margin:0}

/* Suppression en lot : barre Selectionner / Supprimer (N) / Annuler, cases a cocher */
.selbar{display:flex;gap:6px;padding:4px 8px 6px}
.selbtn{background:var(--input);border:1px solid var(--border);border-radius:6px;color:var(--text);font:calc(12px * var(--fs,1)) var(--ui);padding:4px 10px;cursor:pointer}
.selbtn:hover{background:rgba(255,255,255,.08)}
.selbtn:disabled{opacity:.4;cursor:default}
.selbtn[hidden]{display:none}
.conv .selcb{flex:none;margin:0 4px 0 0;width:calc(16px * var(--fs,1));height:calc(16px * var(--fs,1));accent-color:#fff}
.conv.selmode .act{display:none !important}
/* Routines : nom d agent comme dans la vue Agents (14 px, 17 px sur telephone, gras, pas en majuscules) */
#routines .rtagent{font-size:calc(14px * var(--fs,1));font-weight:600;text-transform:none;letter-spacing:0;padding:12px 8px 4px}

/* ---- Parametres > Connecteurs ---- */
.conliste{display:flex;flex-direction:column;margin-top:10px;border-top:1px solid #3d3f42}
.conetape{border-bottom:1px solid #232425}
.conhaut{display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;padding:12px 4px}
.connum{flex:none;width:calc(24px * var(--fs,1));height:calc(24px * var(--fs,1));border-radius:50%;background:var(--input);display:flex;align-items:center;justify-content:center;font-size:calc(12px * var(--fs,1));color:var(--muted,#9da0a6)}
.conetape.fait .connum{background:#3fb950;border-color:#3fb950;color:#0d1117;font-weight:700}
.contitre{flex:1;font-size:calc(14px * var(--fs,1));font-weight:600;color:var(--text)}
.conetat{flex:none;font-size:calc(12px * var(--fs,1));color:var(--muted,#9da0a6)}
.conetape.fait .conetat{color:#3fb950}
.concorps{padding:6px 4px 14px calc(34px * var(--fs,1));display:flex;flex-direction:column;font-size:calc(13px * var(--fs,1));gap:10px;line-height:1.55}
.context{color:var(--text);line-height:1.5}
.conol{margin:0;padding-left:4px;list-style:none;display:flex;flex-direction:column;line-height:1.5;color:var(--text);gap:8px}
.conlien{color:var(--accent);text-decoration:none;font-weight:600;word-break:break-word}
.conlien:hover{text-decoration:underline}
.conlignes{padding:2px 0}
.concopie{display:flex;flex-direction:column;gap:4px;background:var(--input);border:1px solid var(--border);border-radius:6px;padding:8px}
.concopie pre{margin:0;white-space:pre-wrap;word-break:break-all;font-size:calc(12px * var(--fs,1));max-height:160px;overflow:auto;color:var(--text)}
.conlib{font-size:calc(12px * var(--fs,1));color:var(--muted,#9da0a6)}
.conres{font-size:calc(13px * var(--fs,1));word-break:break-word;line-height:1.55;padding:2px 0}
.conres.ok{color:#3fb950}.conres.ko{color:#f85149}.conres.neutre{color:var(--muted,#9da0a6);padding:10px 0}
.conmanque{font-size:calc(12px * var(--fs,1));color:var(--muted,#9da0a6);max-height:160px;overflow:auto;word-break:break-all}
.consec{margin-top:8px;font-size:calc(12px * var(--fs,1));font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--muted,#9da0a6)}
.contout{font-weight:600}
.confic{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.condepot{flex:1;min-width:140px;border:1px dashed var(--border);border-radius:6px;padding:10px;text-align:center;color:var(--muted,#9da0a6);font-size:calc(12px * var(--fs,1))}
.condepot.sur{border-color:var(--accent);color:var(--text)}
.condet summary{cursor:pointer;color:var(--muted,#9da0a6);font-size:calc(12px * var(--fs,1));padding:4px 0}
.conaide{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed #2c2d2f}
.conaide .btn{align-self:flex-start}
.concorps[hidden]{display:none}
.concorps textarea.conq{min-height:0;height:calc(58px * var(--fs,1));max-height:calc(58px * var(--fs,1));resize:vertical;font-family:inherit}
.conrang:hover{background:#1b1c1d}
.conrang .conetat.ok{color:#3fb950}
.conx{flex:none;background:none;border:0;color:var(--muted,#9da0a6);font-size:calc(18px * var(--fs,1));line-height:1;padding:4px 8px;border-radius:6px;cursor:pointer}
.conx:hover{color:var(--text);background:#232425}
.conlienbtn{background:none;border:0;color:var(--accent);font-size:calc(13px * var(--fs,1));padding:4px 0;cursor:pointer}
.agfen.modecon .agtete{display:none}
.pongl{display:flex;gap:4px;padding:6px 10px 2px}.pong{flex:1;min-width:0;background:none;border:1px solid var(--inputborder);border-radius:6px;color:var(--muted);font:inherit;font-size:calc(13px * var(--fs,1));padding:6px 8px;cursor:pointer}.pong:hover{background:var(--hover)}.pong.on{background:var(--input);color:var(--text);border-color:var(--accent)}
.agfen.modecon .pongl{display:none}#pciezone[hidden]{display:none}
@media (max-width:1024px), (pointer:coarse){ .pong{padding:10px 8px} }
.conbanniere{border:1px solid #d29922;background:rgba(210,153,34,.08);border-radius:8px;padding:12px 14px;margin:10px 0;display:flex;flex-direction:column;gap:6px;font-size:calc(13px * var(--fs,1))}
.conbtitre{font-weight:700;color:#e3b341;font-size:calc(14px * var(--fs,1))}
.conbligne{color:var(--text);line-height:1.45}
.conbfaire{font-weight:600;margin-top:4px}
.conetape.passee .contitre,.conetape.passee .conetat,.conetape.passee .connum{color:var(--muted,#9da0a6);opacity:.7}
.concode{display:flex;flex-direction:column;gap:6px}
.concode pre{font-size:calc(22px * var(--fs,1));letter-spacing:3px;font-weight:700}

/* Aide des connecteurs : fenetre par-dessus l assistant */
.conaidefen{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.conaidefen[hidden]{display:none}
.conaideboite{background:var(--bg,#181818);border:1px solid var(--border);border-radius:10px;width:min(720px,100%);height:min(80vh,760px);display:flex;flex-direction:column;box-shadow:0 10px 40px rgba(0,0,0,.6)}
.conaidehaut{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid #232425;font-weight:600;font-size:calc(14px * var(--fs,1));color:var(--text)}
.conaidehaut span{flex:1}
.conaidemsgs{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--bg,#181818)}
.conaidemsg{font-size:calc(13px * var(--fs,1));line-height:1.5;color:var(--text);word-break:break-word}
.conaidemsg.user{align-self:flex-end;background:var(--input);border:1px solid var(--border);border-radius:8px;padding:8px 10px;max-width:85%;white-space:pre-wrap}
.conaidemsg.attente{color:var(--muted,#9da0a6);font-style:italic}
.conaidebas{display:flex;gap:8px;padding:10px;border-top:1px solid #232425;align-items:flex-end}
.conaidebas textarea{flex:1;min-height:0;resize:none;background:var(--input);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:8px;font:inherit;font-size:calc(13px * var(--fs,1))}
@media (max-width:1024px), (pointer:coarse){ .conaidefen{padding:0} .conaideboite{width:100%;height:100%;border-radius:0} }
/* texte a copier dans une phrase de l assistant (meme icone que les blocs de code) */
.concc{display:inline-flex;align-items:center;gap:4px;vertical-align:middle;margin:1px 2px;max-width:100%;min-width:0}
.concc code{background:var(--input);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-size:calc(12px * var(--fs,1));min-width:0;overflow-wrap:anywhere;word-break:break-all}
.concc .cbcopie{position:static;width:calc(24px * var(--fs,1));height:calc(24px * var(--fs,1));flex:none}
.consous{padding-left:28px;list-style:none;display:flex;flex-direction:column;width:100%;gap:6px;margin:6px 0 2px}
.consous li{line-height:1.5}
/* bouton "fait" au debut de chaque ligne d instruction */
.conol li,.consous li{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap}
.conol li > .contxt,.consous li > .contxt{flex:1;min-width:0}
.confait{flex:none;width:calc(20px * var(--fs,1));height:calc(20px * var(--fs,1));margin-top:1px;border:1px solid var(--border);border-radius:5px;background:var(--input);color:#0d1117;font-weight:700;font-size:calc(13px * var(--fs,1));line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.confait:hover{border-color:#3fb950}
.confait.on{background:#3fb950;border-color:#3fb950}
.lignefaite > .contxt{color:var(--muted,#9da0a6)}
@media (max-width:1024px), (pointer:coarse){ .confait{width:calc(26px * var(--fs,1));height:calc(26px * var(--fs,1))} }
.conol li.contitregr>.contxt{padding-left:calc(28px * var(--fs,1))}
.rtrang.rtouvrable{cursor:pointer}.rtrang.rtouvrable:hover{background:var(--hover,#1c1d1f)}
/* copie : bouton toujours visible */
.concopie pre.cb{position:relative;margin:0;min-height:calc(44px * var(--fs,1));padding:calc(10px * var(--fs,1)) calc(48px * var(--fs,1)) calc(10px * var(--fs,1)) 8px;font-size:calc(14px * var(--fs,1));box-sizing:border-box}
.concopie pre.cb .cbcopie{position:absolute;top:calc(6px * var(--fs,1));right:calc(6px * var(--fs,1));color:var(--text);border-color:var(--accent)}
.conaidejointes{display:flex;gap:8px;flex-wrap:wrap;padding:8px 10px 0;border-top:1px solid #232425}.conaidejointes[hidden]{display:none}
.conaidej{position:relative;display:inline-block}.conaidej img{height:calc(64px * var(--fs,1));border-radius:6px;border:1px solid var(--border);display:block}.conaidej .conx{position:absolute;top:-6px;right:-6px}
.conaidemsg img.jointe{display:block;max-width:100%;max-height:240px;margin-top:6px;border-radius:6px}
.conaidebas .plusbtn{flex:none}
.confini{display:flex;flex-direction:column;gap:4px;margin:10px 0;padding:12px 14px;border:1px solid #2ea043;border-radius:8px;background:rgba(46,160,67,.12);color:var(--text);font-size:calc(14px * var(--fs,1))}.confini b{color:#3fb950;font-size:calc(15px * var(--fs,1))}
.btn.congris,button.congris{opacity:.45}
/* sante des connexions */
#actcon{position:relative}
/* point d alerte en ::before : ::after est l infobulle de l icone (les deux se melangeaient au survol) */
#actcon.conalerte::before,#actcon.conavert::before{content:"";position:absolute;top:4px;right:4px;width:calc(9px * var(--fs,1));height:calc(9px * var(--fs,1));border-radius:50%;background:#f85149}
#actcon.conavert::before{background:#d29922}
.conrang .conetat.ko{color:#f85149}.conrang .conetat.avert{color:#d29922}
.consante{display:flex;flex-direction:column;margin:6px 0 10px;gap:6px}
.consante.probleme{padding:10px 12px;border:1px solid #f85149;border-radius:8px;background:rgba(248,81,73,.08)}
.consante .conlienbtn{align-self:flex-start}
.conjournal{margin-top:14px;border-top:1px solid #232425;padding-top:8px}.conjournal summary{cursor:pointer;color:var(--muted,#9da0a6);font-size:calc(13px * var(--fs,1))}
.conjligne{display:flex;gap:10px;border-bottom:1px solid #1f2021;font-size:calc(13px * var(--fs,1));color:var(--text);padding:6px 0}.conjligne.ko .conjtexte{color:#f85149}.conjquand{flex:none;color:var(--muted,#9da0a6);min-width:calc(110px * var(--fs,1))}.conjtexte{flex:1;word-break:break-word}
.conresume{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;background:var(--input);gap:0;padding:6px 16px;margin:10px 0}
.conresligne{display:flex;gap:10px;border-bottom:1px solid #3d3f42;padding:12px 0;align-items:flex-start;min-width:0}.conrespastille{flex:none;width:calc(20px * var(--fs,1));height:calc(20px * var(--fs,1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(12px * var(--fs,1));background:#2ea043;color:#fff;margin-top:2px}.conrespastille.ko{background:#f85149}.conrespastille.avert{background:#d29922}
.conrestexte{display:flex;flex-direction:column;flex:1;min-width:0;overflow-wrap:anywhere}.conresqui{font-weight:600;color:var(--text);font-size:calc(15px * var(--fs,1))}.conressuppr{flex:none;font-size:calc(12px * var(--fs,1));align-self:center}.conressuppr.arme{border-color:#f85149;color:#f85149}
.conresdroits summary{cursor:pointer;color:var(--accent,#58a6ff);font-size:calc(12px * var(--fs,1))}.conresliste{font-size:calc(12px * var(--fs,1));color:var(--muted,#9da0a6);line-height:1.6;margin:4px 0;padding-left:18px;list-style:disc}
.conrang .conretirer{flex:none;align-self:center;font-size:calc(12px * var(--fs,1));grid-column:2;grid-row:1 / span 2;justify-self:end}.conrang .conretirer.arme{border-color:#f85149;color:#f85149}
/* aeration connecteurs */
.conrang{line-height:1.5;border-bottom:1px solid #3d3f42;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:2px;align-items:center;padding:12px 6px}
.conresdet{margin-top:3px;line-height:1.5;color:#a9a9a9;font-size:calc(13px * var(--fs,1))}
.conresligne:last-child{border-bottom:none}
.pfillien{color:var(--accent,#58a6ff);text-decoration:none;cursor:pointer}.pfillien:hover{text-decoration:underline}
/* rangee connexion en grille */
.conrang .contitre,.conrang .conetat{grid-column:1;max-width:none}
@media (max-width:520px){ .conrang .conretirer{grid-column:1;grid-row:auto;justify-self:start;margin-top:6px} }
.conresdroits{margin-top:6px;margin-bottom:2px}
.conmode{align-items:flex-start;margin:4px 0}.conmode small{color:var(--muted,#9da0a6)}
/* espacement standard de la fenetre Parametres / Connecteurs : une seule echelle, 6 / 10 / 16 px, interligne 1,55 */
#agfen{line-height:1.55}
#agfen .pnote{line-height:1.55;margin:6px 0}
#agfen .pnote.perr{color:#f48771;white-space:pre-wrap}
#agfen .plib{margin:10px 0 6px}
#agfen .pbas{margin-top:10px;gap:8px}
#agfen .consec{margin:16px 0 6px}
#agfen label.pmcp{padding:3px 0;line-height:1.45}
.concases{display:flex;flex-direction:column;gap:6px}
.conzone{display:flex;flex-direction:column;gap:6px}
.conresume > .consec{margin:10px 0 2px}
.conresbas{margin:6px 0 16px}
/* lisibilite connecteurs : hierarchie claire -- titres blancs et plus gros, details gris plus petits, etape ouverte sur fond distinct */
.conpage{max-width:none;font-size:calc(14px * var(--fs,1))}
.contitreconn{margin:6px 0;font-size:calc(19px * var(--fs,1));font-weight:700;color:var(--text)}
.conpage .consec{font-weight:700;letter-spacing:.5px;margin-top:24px}
.conhaut .contitre{font-size:calc(15px * var(--fs,1));font-weight:600;color:var(--text)}
.conhaut .conetat{font-size:calc(13px * var(--fs,1))}
.conetape:not(.fait) .conhaut .contitre{color:#ffffff}
.conetape.fait .conhaut .contitre{color:#cfcfcf}
.concorps:not([hidden]){background:#17181a;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;padding:12px 14px 14px 18px;margin:0 0 12px calc(30px * var(--fs,1));font-size:calc(14px * var(--fs,1));color:var(--text)}
.concorps .pnote{color:#a9a9a9;font-size:calc(13px * var(--fs,1))}
.conrang .contitre{flex:1;font-size:calc(15px * var(--fs,1));font-weight:600}
.conrang .conetat{flex:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:calc(13px * var(--fs,1))}
.conpage .plib{font-size:calc(13px * var(--fs,1));font-weight:400}
/* regle de couleur des Connecteurs : titres en blanc, texte en gris */
.conpage,.conpage .concorps:not([hidden]),.conpage .contxt,.conpage .conres.neutre,.conpage .conresdet,.conpage .pnote,.conpage .plib,.conpage .conetat,.conpage .conjtexte{color:#b3b3b3}
.conpage .contitreconn,.conpage .contitre,.conpage .conresqui,.conpage .consec,.conpage .contxt b,.conpage .confini b,.conpage h2,.conpage h3{color:#ffffff}
.conpage .conetat.ok,.conpage .conetape.fait .conetat{color:#3fb950}.conpage .conetat.ko{color:#f85149}.conpage .conetat.avert{color:#d29922}
.conpage .consec:first-child{margin-top:4px}.conpage .contitreconn{margin-top:18px}.conpage .conresume > .consec{margin-top:10px}

/* champ sous sa ligne d action */
.conav{margin-top:6px}
.conav .concopie,.conav .confic{margin:0}
.conav .agchamp{margin-top:2px}

/* selection : le cadre (onglets, barres, panneau, boutons) ne se selectionne jamais ; seulement le texte
   des messages, de la saisie et des pages. Glisser depuis un message n attrape plus toute la page. */
.actbar,.side,.tabs,.ctl,.resizer,.connbadge,.pnav,.pmainhaut{-webkit-user-select:none;user-select:none}
#msgs,#input,#pcontenu,#conaidemsgs{-webkit-user-select:text;user-select:text}

/* mode plan : le ROND de l onglet est bleu (qu il travaille ou non), pas le fond ; non lu reste vert */
.tab.plan .bul[data-etat="busy"],.tab.plan .bul:not([data-etat]),.tab.plan .bul[data-etat=""],.conv.plan .bul[data-etat="busy"],.conv.plan .bul:not([data-etat]),.conv.plan .bul[data-etat=""]{background:#3794ff !important;opacity:1 !important}

/* ---- Onglets editeur (Monaco dans une iframe du meme site, editeur.html) ---- */
.edzone{position:absolute;left:0;right:0;bottom:0;top:0;z-index:12;background:#1e1e1e;display:flex;min-width:0}
.edzone[hidden]{display:none}
.edzone iframe{flex:1;display:block;width:100%;height:100%;border:0;min-width:0}
body.edvue #planlecteur.danstab,body.edvue #pouce,body.edvue .regpan{display:none !important}
.tab.edtab .edico{display:flex;flex:none}
.tab.edtab .ico{width:calc(14px * var(--fs,1));height:calc(14px * var(--fs,1));flex:none}
.tab.edtab .x .pt{display:none;width:8px;height:8px;border-radius:50%;background:currentColor}
.tab.edtab.sale .x .pt{display:block}
.tab.edtab.sale .x .cr{display:none}
@media (hover:hover){ .tab.edtab.sale .x:hover .pt{display:none} .tab.edtab.sale .x:hover .cr{display:inline} }
#edconf{position:fixed;inset:0;z-index:85;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.edcboite{background:#252526;border:1px solid #454545;border-radius:8px;padding:16px;width:min(calc(460px * var(--fs,1)),100%);box-shadow:0 10px 40px rgba(0,0,0,.6);display:flex;flex-direction:column;gap:14px;min-width:0}
.edctxt{font-size:calc(14px * var(--fs,1));line-height:1.5;overflow-wrap:anywhere}
.edcbtns{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.edcbtns .btn{border-radius:6px;padding:calc(7px * var(--fs,1)) calc(14px * var(--fs,1));font:inherit;font-size:calc(13px * var(--fs,1));cursor:pointer;border:1px solid var(--border);background:var(--input);color:var(--text)}
.edcbtns .btn.prim{background:#0078D4;border-color:#0078D4}
@media (max-width:1024px), (pointer:coarse){ .edcbtns .btn{min-height:40px} }
#exmenu hr{border:0;border-top:1px solid #454545;margin:4px 2px}
#explo .exbloc.excoupe>.exrow{opacity:.5}
#explo .exrenom{flex:1;min-width:0;background:#3c3c3c;color:var(--text);border:1px solid #007fd4;border-radius:2px;font:inherit;font-size:inherit;padding:0 3px;outline:none;user-select:text}
#exmenu button.danger{color:#f48771}
#agpoub{position:fixed;inset:0;z-index:85;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.conv.agterminees .agpoub{flex:none;background:none;border:none;outline:none;box-shadow:none;padding:0;margin-left:calc(2px * var(--fs,1));width:calc(20px * var(--fs,1));height:calc(20px * var(--fs,1));font-size:calc(13px * var(--fs,1));line-height:1;color:inherit;cursor:pointer;font-family:var(--ui)}
.conv.agterminees .agpoub:hover,.conv.agterminees .agpoub:focus{background:none;outline:none;box-shadow:none;color:var(--text)}
#citchoix{position:fixed;inset:0;z-index:85;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px}
.citliste{display:flex;flex-direction:column;gap:4px;max-height:min(60vh,calc(420px * var(--fs,1)));overflow-y:auto;min-width:0}
.citc{background:var(--input);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:calc(8px * var(--fs,1)) calc(12px * var(--fs,1));font:inherit;font-size:calc(13px * var(--fs,1));text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:none}
.citc:hover,.citc:focus-visible{background:#04395e;outline:none}
.citc.on{border-color:#0078D4}
.citc.neuf{color:#3794ff}
@media (max-width:1024px), (pointer:coarse){ .citc{min-height:44px} }
/* ---- Terminal (xterm.js dans une iframe du meme site, terminal.html) ---- */
.tab.tmtab .tmico{display:flex;flex:none}
.tab.tmtab .tmico svg{width:calc(14px * var(--fs,1));height:calc(14px * var(--fs,1))}
/* bouton Nouveau terminal = bouton Lancer des routines (.rtlancer) ; seule la place change */
.tmneuf{align-self:flex-start;margin:8px 12px 6px 16px}
.tmneuf:disabled{opacity:.5;cursor:default}
/* suppression en cours (grisee jusqu a la liste a jour) ; alerte flottante des erreurs sans onglet */
.conv.suppr{opacity:.35;pointer-events:none}
#alerte{position:fixed;left:16px;right:16px;bottom:calc(96px * var(--fs,1));margin:0 auto;width:fit-content;box-sizing:border-box;z-index:120;background:#3a1a1a;color:#ffd9cc;border:1px solid #f85149;border-radius:8px;padding:10px 16px;font-size:calc(14px * var(--fs,1));box-shadow:0 4px 16px rgba(0,0,0,.5);cursor:pointer}
#alerte[hidden]{display:none}
/* Division d ecran (ordinateur) : volet droit #droite, sa barre d onglets et sa zone ; barre de reglage #dsep */
.droite{flex:1 1 0;display:flex;flex-direction:column;min-width:calc(240px * var(--fs,1));min-height:0;overflow:hidden;background:#1e1e1e;position:relative}
.droite[hidden],.dsep[hidden]{display:none}
.dcorps{flex:1;position:relative;min-height:0;min-width:0}
.droite .edzone{top:0}
body.divise .main{min-width:calc(320px * var(--fs,1))}
.dsep{width:4px;flex:none;cursor:col-resize;background:#2b2b2b;position:relative;z-index:13}
.dsep:hover,body.dsepglisse .dsep{background:var(--accent)}
body.glisse iframe{pointer-events:none}
body.glisse{user-select:none;-webkit-user-select:none}
.dzdepot{position:fixed;z-index:60;pointer-events:none;background:rgba(55,148,255,.18);border:2px solid rgba(55,148,255,.75);border-radius:4px;box-sizing:border-box}
.dzdepot[hidden]{display:none}
.dzfantome{position:fixed;z-index:61;pointer-events:none;background:#2A2A2B;color:#FFFFFF;border:1px solid #3794ff;border-radius:4px;padding:calc(3px * var(--fs,1)) calc(8px * var(--fs,1));font-size:calc(12px * var(--fs,1));white-space:nowrap;box-shadow:0 4px 12px rgba(0,0,0,.5)}
/* Ordre des onglets : trait d insertion dans la barre, onglet d origine estompe ; appui long au doigt sans selection ni menu */
.ordretrait{position:fixed;z-index:61;pointer-events:none;width:calc(2px * var(--fs,1));background:#3794ff;border-radius:1px}
.ordretrait[hidden]{display:none}
.tab.ordresrc{opacity:.45}
.tabs .tab{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
/* Image agrandie par-dessus la page (zoomImage) */
.zoomimg{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;cursor:zoom-out;padding:8px;box-sizing:border-box}
.zoomimg img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
/* Fenetre de connexion du compte Claude */
.conclaude{position:fixed;inset:0;z-index:9000;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:16px;box-sizing:border-box}
.conclaude .ccboite{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:calc(18px * var(--fs,1));width:100%;box-sizing:border-box}
.conclaude .cctitre{font-size:calc(17px * var(--fs,1));font-weight:600;margin-bottom:10px}
.conclaude .cctexte{font-size:calc(14px * var(--fs,1));line-height:1.5;margin-bottom:14px}
.conclaude .ccboutons{display:flex;gap:10px;flex-wrap:wrap}
.conclaude .ccbloc{border-top:1px solid var(--border);padding:12px 0;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.conclaude .ccsous{font-weight:600;font-size:calc(14px * var(--fs,1))}
.conclaude input{width:100%;box-sizing:border-box;padding:8px;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:calc(14px * var(--fs,1))}
.conclaude .ccerr{color:#e5534b;font-size:calc(13px * var(--fs,1))}
.conclaude .ccerr{white-space:pre-wrap;overflow-wrap:anywhere}
.conclaude .cccase{display:flex;flex-direction:column;align-items:flex-start;gap:8px;width:100%}
.conclaude .cccase[hidden]{display:none}
.conclaude .cccase label{font-size:calc(14px * var(--fs,1));font-weight:600}
.conclaude .ccok{color:#3fb950;font-weight:600}

/* Aide : fonction montree (contour 2 s, sans halo) et fiches */
.aidevoir{outline:calc(2px * var(--fs,1)) solid var(--accent,#3794ff);outline-offset:calc(2px * var(--fs,1))}
.aideitem{padding:calc(10px * var(--fs,1)) 0;border-bottom:1px solid rgba(255,255,255,.08)}
.aidenom{font-weight:600}
.aideou{opacity:.7;font-size:.92em;margin-top:calc(2px * var(--fs,1))}
.aidequoi{margin-top:calc(4px * var(--fs,1))}
.aidemontre{margin-top:calc(6px * var(--fs,1))}
.aidecherche{width:100%;margin:0 0 calc(8px * var(--fs,1)) 0}

/* Message recu d une autre session Claude */
.msg.croise{border-left:calc(3px * var(--fs,1)) solid var(--muted);padding-left:calc(10px * var(--fs,1));opacity:.95}
.croisede{font-size:.85em;opacity:.7;margin-bottom:calc(4px * var(--fs,1))}
/* replie sur une ligne comme un outil : boule, titre (1re ligne), expediteur en gris ; deplie au clic */
.msg.outil.croise{display:block;border-left:0;padding-left:calc(24px * var(--fs,1));opacity:1}
.msg.outil.croise::before{background:var(--muted)}
.msg.outil.croise .crtete{display:flex;align-items:baseline;gap:8px;min-width:0;cursor:pointer}
.msg.outil.croise .crtete .on{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg.outil.croise .crtete .ordesc{flex:0 1000 auto}
.msg.outil.croise .crtete .ordesc.crde{flex:0 0 auto}
.msg.outil.croise .crtete{overflow:hidden}
.msg.outil.croise.vide .crtete{cursor:default}
.msg.outil.croise .crcorps{display:none;margin-top:calc(4px * var(--fs,1))}
.msg.outil.croise.ouvert .crcorps{display:block}

/* Onglets : nom au complet, jamais coupe ; la barre defile a l horizontale */
/* Telephone et tablette : le x de fermeture reste colle au bord droit de l ecran, visible meme avec un nom long */
@media (pointer:coarse){.tab .x{position:sticky;right:0;z-index:1;background:inherit !important;background-color:inherit !important}}

/* Groupes d onglets : maitre (compteur), menu des enfants au survol, cible du glisser */
.tab .role{flex:none;padding:0 calc(5px * var(--fs,1));border-radius:calc(8px * var(--fs,1));background:#3a4a6b;color:var(--text,#fff);font-size:.75em;line-height:1.6;white-space:nowrap}
.tab .nbgroupe{flex:none;min-width:calc(16px * var(--fs,1));padding:0 calc(4px * var(--fs,1));border-radius:calc(8px * var(--fs,1));background:#2d2f33;color:var(--text,#fff);font-size:.8em;text-align:center;cursor:pointer}
.tab .nbgroupe[data-etat="waiting"]{background:#3794ff}
/* voyants (demande 171) : bulles chiffrees du groupe, grise = arretes, verte = chauds, rouge qui clignote = au travail */
.tab .nbgroupe:has(.nbb){background:none;padding:0;display:inline-flex;gap:calc(2px * var(--fs,1))}
.tab .nbgroupe[data-etat="waiting"]:has(.nbb){background:#3794ff;padding:0 calc(2px * var(--fs,1))}
.tab .nbgroupe .nbb{min-width:calc(14px * var(--fs,1));padding:0 calc(3px * var(--fs,1));border-radius:calc(8px * var(--fs,1));background:#6e7681;color:#fff;text-align:center}
.tab .nbgroupe .nbb[data-etat="chaud"]{background:#3fb950}
.tab .nbgroupe .nbb[data-etat="busy"]{background:#f85149}   /* bulles-fixes (tache 1702) : couleur fixe, le rond et la fleche clignotent */
.tab .nbgroupe:empty{display:none}   /* onglet-vide (tache 1702) : bulles toutes a 0 = aucune place reservee */
.tab.enfant{border-left:calc(2px * var(--fs,1)) solid #3794ff}
.tab.grouper{outline:calc(2px * var(--fs,1)) dashed #3794ff;outline-offset:-2px}
.groupemenu{position:fixed;z-index:60;min-width:min(calc(260px * var(--fs,1)), 96vw);max-width:96vw;overflow-y:auto;overscroll-behavior:contain;background:#1f2023;border:1px solid #33363b;border-radius:6px;padding:4px;box-shadow:0 6px 18px rgba(0,0,0,.45)}
.groupeligne{display:flex;align-items:center;gap:calc(8px * var(--fs,1));padding:calc(6px * var(--fs,1)) calc(8px * var(--fs,1));border-radius:4px;cursor:pointer;font-size:calc(13px * var(--fs,1))}
.groupeligne:hover,.groupeligne.on{background:#2a2c30}
.groupeligne .lbl{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.groupeligne .bul{width:7px;height:7px;border-radius:50%;flex:none}
.groupesortir{background:none;border:1px solid #3a3d42;color:var(--muted,#aaa);border-radius:4px;font-size:.85em;padding:1px 6px;cursor:pointer}
.groupeligne .x{opacity:.7;padding:0 4px}
/* Groupes nommes d onglets et menus de la barre */
.tab.groupe{font-style:italic}
.tab.groupe.gon{color:var(--text)}
#exmenu button:disabled{opacity:.45;cursor:default;background:none}
.saisienom{position:fixed;z-index:90;width:calc(260px * var(--fs,1));box-sizing:border-box;background:#1e1e1e;color:var(--text);
  border:1px solid var(--accent);border-radius:4px;padding:0 calc(8px * var(--fs,1));font:inherit;font-size:calc(13px * var(--fs,1))}
/* pastille-sous-agent : sous-agent en cours = rouge (pulse, demande 162), fini ou arrete = gris ; pastille « ↳N » de l onglet de sa conversation */
.saligne .bul[data-etat="busy"],.sabas .bul[data-etat="busy"],.tab .nbgroupe.sanb[data-etat="busy"]{background:#f85149 !important}
.tab .nbgroupe.sanb.on{outline:1px solid var(--accent,#d97757)}
/* sous-agents-groupe : ligne repliee « ↳ N sous-agents » sous une conversation (liste d un groupe d onglets, colonne des agents) */
.groupeligne.sapli{color:#8C8C8C;padding-left:calc(22px * var(--fs,1))}
/* sous-agents-menu : fleche en caractere ▸ / ▾ */
/* onglets-regle : fleche d une conversation seule qui a des sous-agents (menu de ses sous-agents) */
/* onglets-fleche-ligne : fleche des sous-agents au bout de la ligne de la conversation (menu du groupe, colonne) */
.saflc{flex:none;padding:0 calc(8px * var(--fs,1));color:#8C8C8C;font-size:calc(20px * var(--fs,1));cursor:pointer;line-height:1}   /* fleche-directeur : 12 -> 15 px ; fleche-plus-grosse : 15 -> 20 px */
/* onglet-largeur (tache 1721) : regle unique de l onglet = largeur du contenu, un seul ecart (gap de .tab) entre rond, nom, D, bulles, fleche et x.
   Fleche : triangle CSS de 6 x 7 px * --fs (meme taille que le caractere ▸ chez l usager), le caractere reste dans le DOM mais n est plus dessine ;
   zone de clic 11 x 15 px * --fs par padding + marge negative (largeur de l onglet inchangee). X : boite de la largeur de son trait (.6em). */
.tab .safl,.tab .saflc.grfl{flex:none;box-sizing:content-box;width:calc(6px * var(--fs,1));height:calc(7px * var(--fs,1));padding:calc(4px * var(--fs,1)) calc(2.5px * var(--fs,1));margin:calc(-4px * var(--fs,1)) calc(-2.5px * var(--fs,1));font-size:0;line-height:0;position:relative;z-index:1}
.tab .safl::before,.tab .saflc.grfl::before{content:"";position:absolute;left:calc(2.5px * var(--fs,1));top:calc(4px * var(--fs,1));width:calc(6px * var(--fs,1));height:calc(7px * var(--fs,1));background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%)}
.tab .safl.ouvert::before,.tab .saflc.grfl.bas::before{clip-path:polygon(0 14%,100% 14%,50% 86%)}
.tab .x{width:.6em;position:relative}
.tab .x::after{content:"";position:absolute;top:0;bottom:0;left:calc(-2.5px * var(--fs,1));right:calc(-10px * var(--fs,1))}   /* zone de clic du x : jusqu au bord de l onglet */
@media (pointer:coarse){.tab .x{position:sticky}}
.tab .role + .nbgroupe{margin-left:calc(-3px * var(--fs,1))}   /* D-collee (tache 1710) : D -> bulles = 2 px * --fs, ecart entre bulles (gap 5 - 3) */
.saflc:hover,.saflc.ouvert{color:var(--text,#fff)}.saflc[data-etat="busy"]{color:#f85149;animation:p 1.2s infinite}.saflc[data-etat="chaud"]{color:#3fb950}
.tab .safl{color:#8C8C8C;cursor:pointer}   /* fleche-directeur : 11 -> 15 px ; fleche-plus-grosse : 15 -> 20 px */
.tab .safl:hover,.tab .safl.ouvert{color:var(--text,#fff)}.tab .safl[data-etat="busy"]{color:#f85149;animation:p 1.2s infinite}.tab .safl[data-etat="chaud"]{color:#3fb950}
.groupemenu.samenu .saplis .groupeligne.saligne{padding-left:calc(10px * var(--fs,1))}
.groupeligne.sapli .fl{flex:none;width:1em;text-align:center;font-size:calc(11px * var(--fs,1))}
.groupeligne.sapli .bul[data-etat="busy"]{background:#f85149 !important;animation:p 1.2s infinite !important}
.saplis[hidden],.agsabloc[hidden]{display:none}
.saplis .groupeligne.saligne{padding-left:calc(36px * var(--fs,1))}
/* correctif menu-taches : demandes et taches de l equipe dans le menu Taches ; compteur des avis masques sur l icone */
#tacheq{font-size:calc(13px * var(--fs,1));line-height:1.45}
#tacheq[hidden]{display:none}
.mtsec{color:var(--text);font-size:calc(14px * var(--fs,1));font-weight:600;padding:calc(12px * var(--fs,1)) calc(8px * var(--fs,1)) calc(6px * var(--fs,1))}
.mtdem,.mtch{border-top:1px solid #232425;padding:calc(6px * var(--fs,1)) 0}
.mtdemtete{display:flex;gap:calc(8px * var(--fs,1));align-items:baseline;padding:0 calc(8px * var(--fs,1))}
.mtphrase{font-weight:600;overflow-wrap:anywhere;min-width:0;flex:1}
.mtdemmeta{padding:0 calc(8px * var(--fs,1))}
.mtdemtaches{margin:calc(4px * var(--fs,1)) 0 0 calc(12px * var(--fs,1));border-left:calc(2px * var(--fs,1)) solid #232425}
.mtchtitre{color:#8C8C8C;font-size:calc(12px * var(--fs,1));padding:calc(4px * var(--fs,1)) calc(8px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;overflow-wrap:anywhere}
.mtt{padding:calc(5px * var(--fs,1)) calc(8px * var(--fs,1));cursor:pointer;border-radius:calc(4px * var(--fs,1))}
.mtt:hover{background:rgba(255,255,255,.05)}
.mttete{display:flex;gap:calc(8px * var(--fs,1));align-items:baseline}
.mtsujet{overflow-wrap:anywhere;min-width:0;flex:1}
.mtetat{flex:none;font-size:calc(11px * var(--fs,1));padding:calc(1px * var(--fs,1)) calc(6px * var(--fs,1));border-radius:calc(8px * var(--fs,1));background:#3a3d41;color:#CCCCCC}
.mtetat[data-etat="en_cours"],.mtetat[data-dem="en_cours"]{background:#1d3a5c;color:#9CDCFE}
.mtetat[data-etat="PRET"],.mtetat[data-dem="en_service"]{background:#1e3d33;color:#4EC9B0}
.mtetat[data-etat="BLOQUE"]{background:#4b2420;color:#F48771}
.mtetat[data-etat="QUESTION"],.mtetat[data-dem="decision"]{background:#47391c;color:#D7BA7D}
.mtmeta{color:#8C8C8C;font-size:calc(12px * var(--fs,1));margin-top:calc(2px * var(--fs,1));overflow-wrap:anywhere}
.mtnote{color:var(--text);font-size:calc(12px * var(--fs,1));margin-top:calc(2px * var(--fs,1));overflow-wrap:anywhere;white-space:pre-wrap;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mtt.ouvert .mtnote{display:block;-webkit-line-clamp:unset}
.mtdet{margin-top:calc(6px * var(--fs,1));display:flex;flex-direction:column;gap:calc(4px * var(--fs,1));border-left:calc(2px * var(--fs,1)) solid var(--border);padding-left:calc(8px * var(--fs,1));cursor:auto;font-size:calc(12px * var(--fs,1))}
.mtdet .eqval{white-space:pre-wrap}
.mtpli > summary{cursor:pointer;color:#8C8C8C;font-size:calc(12px * var(--fs,1));padding:calc(4px * var(--fs,1)) calc(8px * var(--fs,1))}
.mtvide{padding:calc(4px * var(--fs,1)) calc(8px * var(--fs,1));font-size:calc(12px * var(--fs,1))}
#acttach .actnb{position:absolute;top:calc(2px * var(--fs,1));right:0;min-width:calc(14px * var(--fs,1));height:calc(14px * var(--fs,1));padding:0 calc(3px * var(--fs,1));border-radius:calc(7px * var(--fs,1));background:#3794ff;color:#FFFFFF;font-size:calc(10px * var(--fs,1));line-height:calc(14px * var(--fs,1));text-align:center;pointer-events:none}
#acttach .actnb[hidden]{display:none}
/* correctif tableau-taches : menu Taches en tableau plein ecran (fenetre en mode taches : sans menu de gauche, toute la largeur) */
#agfen:has(#pcontenu > .tbpage) .pnav{display:none}
#agfen:has(#pcontenu > .tbpage) .pmain{display:flex}
#agfen:has(#pcontenu > .tbpage) .pmain .pretour{display:inline-block}
#agfen:has(#pcontenu > .tbpage) .pfil{font-size:calc(14px * var(--fs,1));font-weight:600;color:var(--text);letter-spacing:0}
#pcontenu:has(> .tbpage){overflow:hidden;padding-bottom:0}
.tbpage{flex:1;min-height:0;display:flex;flex-direction:column;width:100%;font-size:calc(13px * var(--fs,1))}
.tbhaut{display:flex;flex-wrap:wrap;align-items:center;gap:calc(10px * var(--fs,1));padding-bottom:calc(10px * var(--fs,1));border-bottom:1px solid var(--border)}
.tbfiltres{display:flex;flex-wrap:wrap;align-items:center;gap:calc(6px * var(--fs,1))}
.tbfiltres .tbseg{padding:calc(4px * var(--fs,1)) calc(12px * var(--fs,1));font-size:calc(13px * var(--fs,1));border-radius:calc(14px * var(--fs,1))}
.tbfiltres .tbseg.on{background:#2A2B2C;color:var(--text);font-weight:600}
.tbfiltres select{font-size:calc(13px * var(--fs,1));padding:calc(4px * var(--fs,1)) calc(8px * var(--fs,1))}
.tbinfo{color:var(--muted);font-size:calc(12px * var(--fs,1));flex:1;min-width:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbhaut .tbfermer{flex:none;font-size:calc(13px * var(--fs,1))}
.tbcorps{flex:1;min-height:0;display:flex;gap:calc(12px * var(--fs,1));width:100%}
.tbzone{flex:1;min-width:0;overflow:auto;padding:0 0 calc(32px * var(--fs,1))}
.tbtab{width:100%;border-collapse:collapse;table-layout:fixed;font-size:calc(13px * var(--fs,1))}
.tbtab col.tbcdem{width:20%}.tbtab col.tbctache{width:25%}.tbtab col.tbcetat{width:calc(96px * var(--fs,1))}.tbtab col.tbcqui{width:14%}.tbtab col.tbcou{width:auto}.tbtab col.tbcmaj{width:calc(110px * var(--fs,1))}
.tbtab thead th{position:sticky;top:0;z-index:1;background:var(--bg);color:var(--muted);font-weight:600;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:calc(8px * var(--fs,1)) calc(8px * var(--fs,1)) calc(6px * var(--fs,1));border-bottom:1px solid var(--border)}
.tbtab td{padding:calc(6px * var(--fs,1)) calc(8px * var(--fs,1));border-bottom:1px solid #232425;vertical-align:top;overflow:hidden}
.tbtab tbody.tbgrp{border-top:calc(2px * var(--fs,1)) solid var(--border)}
.tbtab tr.tbl{cursor:pointer}
.tbtab tr.tbl:hover td:not(.tbdem),.tbtab tr.tbl:focus-visible td:not(.tbdem){background:#1f2021;outline:none}
.tbtab tr.tbl.sel td:not(.tbdem){background:#24282d}
.tbtab tr.tbl.pret td:not(.tbdem){color:var(--muted)}
.tbtab tr.tbvide{cursor:default}
.tbtab td.tbdem{cursor:pointer;background:var(--side);border-right:1px solid #232425}
.tbtab td.tbdem:hover,.tbtab td.tbdem:focus-visible{background:#1f2021;outline:none}
.tbtab td.tbdem.sel{background:#24282d}
.tbtab td.tbdemvide{cursor:default}.tbtab td.tbdemvide:hover{background:var(--side)}
.tbphrase{font-weight:600;color:var(--text);margin-top:calc(4px * var(--fs,1));overflow-wrap:anywhere}
.tbsujet{display:block;color:var(--text);overflow-wrap:anywhere}
.tbtab tr.tbl.pret .tbsujet{color:var(--muted)}
.tbsous{display:block;color:var(--muted);font-size:calc(11px * var(--fs,1));margin-top:calc(2px * var(--fs,1));overflow-wrap:anywhere}
.tbtab td.tbou{white-space:nowrap;text-overflow:ellipsis}
.tbtab td.tbmaj{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums}
.tbtab td.tbqui{overflow-wrap:anywhere}
.tbtab td.tbmot{color:var(--muted);font-style:italic}
.tbtab tr.tbch th{text-align:left;color:var(--muted);font-weight:600;font-size:calc(12px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;padding:calc(12px * var(--fs,1)) calc(8px * var(--fs,1)) calc(4px * var(--fs,1));background:var(--bg)}
.tbetat{display:inline-block;white-space:nowrap;font-size:calc(11px * var(--fs,1));line-height:1.4;padding:calc(1px * var(--fs,1)) calc(8px * var(--fs,1));border-radius:calc(9px * var(--fs,1));background:#3a3d41;color:#CCCCCC}
.tbetat[data-etat="en_cours"],.tbetat[data-dem="en_cours"]{background:#1d3a5c;color:#9CDCFE}
.tbetat[data-etat="PRET"],.tbetat[data-dem="en_service"]{background:#1e3d33;color:#4EC9B0}
.tbetat[data-etat="BLOQUE"]{background:#4b2420;color:#F48771}
.tbetat[data-etat="QUESTION"],.tbetat[data-dem="decision"]{background:#47391c;color:#D7BA7D}
.tbetat[data-dem="recue"]{background:#3a2d4d;color:#C5A5F0}
.tbpli{margin-top:calc(18px * var(--fs,1))}
.tbpli > summary{cursor:pointer;color:var(--muted);font-weight:600;font-size:calc(13px * var(--fs,1));padding:calc(6px * var(--fs,1)) 0}
.tbrien{padding:calc(24px * var(--fs,1)) 0}
.tbdet{flex:none;width:calc(440px * var(--fs,1));overflow:auto;border-left:1px solid var(--border);padding:calc(10px * var(--fs,1)) calc(4px * var(--fs,1)) calc(32px * var(--fs,1)) calc(14px * var(--fs,1));display:flex;flex-direction:column;gap:calc(6px * var(--fs,1))}
.tbdet[hidden]{display:none}
.tbdettete{display:flex;align-items:flex-start;gap:calc(8px * var(--fs,1))}
.tbdettitre{flex:1;min-width:0;font-weight:600;font-size:calc(15px * var(--fs,1));overflow-wrap:anywhere}
.tbdetx{flex:none;background:none;border:0;color:var(--muted);font-size:calc(22px * var(--fs,1));line-height:1;padding:0 calc(6px * var(--fs,1));border-radius:calc(6px * var(--fs,1));cursor:pointer}
.tbdetx:hover{color:var(--text);background:#1f2021}
.tbdetcorps{display:flex;flex-direction:column;gap:calc(6px * var(--fs,1))}
.tbdetetat{display:flex;align-items:center;gap:calc(8px * var(--fs,1))}.tbdetetat .tbsous{margin:0}
.tbdetcorps .eqval{white-space:pre-wrap;overflow-wrap:anywhere}
.tbdetliste{display:flex;flex-direction:column;gap:calc(4px * var(--fs,1));margin-top:calc(6px * var(--fs,1))}
.tbdetlien{display:block;text-align:left;background:none;border:0;border-radius:calc(6px * var(--fs,1));color:var(--text);font:inherit;font-size:calc(13px * var(--fs,1));padding:calc(4px * var(--fs,1)) calc(6px * var(--fs,1));cursor:pointer;overflow-wrap:anywhere}
.tbdetlien:hover{background:#1f2021}
@media (max-width:1024px), (pointer:coarse){
  #pcontenu:has(> .tbpage){padding:0 calc(8px * var(--fs,1))}
  .tbinfo{flex-basis:100%;text-align:left}
  .tbzone{overflow:auto}
  .tbtab{min-width:calc(760px * var(--fs,1))}
  .tbdet{position:fixed;inset:0;z-index:70;width:auto;background:var(--bg);border-left:0;padding:calc(12px * var(--fs,1))}
}

/* correctif taches-bash : menu Taches en lignes repliees comme les lignes d outil Bash (pastille, titre, gris, heure) */
.tbzone.tbliste{display:block;padding:calc(10px * var(--fs,1)) 0 calc(32px * var(--fs,1));font-size:calc(13px * var(--fs,1));letter-spacing:.03em}
.tbreplier{flex:none;font-size:calc(13px * var(--fs,1))}
.tbsec{margin:0 0 calc(18px * var(--fs,1))}
.tbsectitre{color:var(--muted);font-weight:600;font-size:calc(12px * var(--fs,1));text-transform:uppercase;letter-spacing:.04em;margin:calc(4px * var(--fs,1)) 0 calc(8px * var(--fs,1))}
.tbo .tbsectitre{margin-top:calc(10px * var(--fs,1))}
.tbo{position:relative;padding-left:calc(24px * var(--fs,1));margin-bottom:calc(8px * var(--fs,1));min-width:0}
.tbo::before{content:"";position:absolute;left:calc(5px * var(--fs,1));top:calc(6.5px * var(--fs,1));width:calc(7px * var(--fs,1));height:calc(7px * var(--fs,1));border-radius:50%;background:#8C8C8C;z-index:1}
.tbo.ouvert::after{content:"";position:absolute;left:calc(8px * var(--fs,1));width:1px;top:calc(20px * var(--fs,1));bottom:0;background:#3A3B3C}
.tbotete{display:flex;align-items:baseline;gap:calc(8px * var(--fs,1));min-width:0;cursor:pointer;line-height:calc(20px * var(--fs,1));border-radius:calc(4px * var(--fs,1))}
.tbotete:hover,.tbotete:focus-visible{background:#1f2021;outline:none}
.tbotete .on{color:var(--text);font-weight:600;flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbotete .ordesc{color:#8C8C8C;flex:0 1000 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbotete .tboh{margin-left:auto;flex:none;padding-left:calc(8px * var(--fs,1));color:#8C8C8C;font-size:calc(12px * var(--fs,1));font-variant-numeric:tabular-nums;white-space:nowrap}
.tbo.pret > .tbotete .on{color:#AFAFAF;font-weight:500}
.tbocorps{display:none;margin-top:calc(6px * var(--fs,1))}
.tbo.ouvert > .tbocorps{display:flex;flex-direction:column;gap:calc(8px * var(--fs,1))}
.tbo.tbd > .tbotete .on,.tbo.tbfin > .tbotete .on{font-size:calc(14px * var(--fs,1))}
.tbo.tbvu > .tbotete{background:#24282d}
.tbo[data-etat="a_faire"]::before{background:#8C8C8C}
.tbo[data-etat="en_cours"]::before{background:#3794ff}
.tbo[data-etat="PRET"]::before{background:#6aa84f}
.tbo[data-etat="BLOQUE"]::before{background:#F48771}
.tbo[data-etat="QUESTION"]::before{background:#D7BA7D}
.tbo[data-dem="recue"]::before{background:#C5A5F0}
.tbo[data-dem="en_cours"]::before{background:#3794ff}
.tbo[data-dem="en_service"]::before{background:#6aa84f}
.tbo[data-dem="decision"]::before{background:#D7BA7D}
.tbo.tbfin::before{background:#5a5d61}
.tbev{min-width:0}
.tbevtete{display:flex;align-items:baseline;gap:calc(8px * var(--fs,1));color:#8C8C8C;font-size:calc(12px * var(--fs,1));min-width:0}
.tbevlib{font-weight:600;color:#CCCCCC;min-width:0;overflow-wrap:anywhere}
.tbevh{flex:none;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbevtexte{margin-top:calc(3px * var(--fs,1));white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text);background:#1b1c1d;border:1px solid #2b2c2d;border-radius:calc(6px * var(--fs,1));padding:calc(6px * var(--fs,1)) calc(10px * var(--fs,1));line-height:1.45}
.tbev.note .tbevtexte{background:none;border:0;padding:0 0 0 calc(10px * var(--fs,1));border-left:calc(2px * var(--fs,1)) solid #3A3B3C;border-radius:0}
.tbev.rendu .tbevlib{color:#4EC9B0}
.tbev.quest .tbevlib{color:#D7BA7D}
.tbev .eqligne{margin-top:calc(4px * var(--fs,1))}
.tbreplien{display:block;width:100%;text-align:left;background:none;border:0;border-radius:calc(4px * var(--fs,1));color:var(--text);font:inherit;font-size:calc(13px * var(--fs,1));padding:calc(3px * var(--fs,1)) calc(6px * var(--fs,1)) calc(3px * var(--fs,1)) calc(18px * var(--fs,1));cursor:pointer;position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbreplien::before{content:"";position:absolute;left:calc(5px * var(--fs,1));top:50%;margin-top:calc(-3.5px * var(--fs,1));width:calc(7px * var(--fs,1));height:calc(7px * var(--fs,1));border-radius:50%;background:#8C8C8C}
.tbreplien[data-etat="en_cours"]::before{background:#3794ff}.tbreplien[data-etat="PRET"]::before{background:#6aa84f}
.tbreplien[data-etat="BLOQUE"]::before{background:#F48771}.tbreplien[data-etat="QUESTION"]::before{background:#D7BA7D}
.tbreplien:hover{background:#1f2021}
.tbplus{margin-left:calc(24px * var(--fs,1))}
@media (max-width:1024px), (pointer:coarse){
  .tbotete{flex-wrap:wrap}
  .tbotete .on{flex-basis:100%;white-space:normal;overflow-wrap:anywhere}
  .tbotete .tboh{margin-left:0;padding-left:0}
}

input[type=number]{color-scheme:dark}
/* vue Agents (tache 339) : nom de la file d un Gestionnaire en gris ; autres conversations de l agent a part, sous un trait */
.conv .agfile{color:#8C8C8C}
.agautres{height:0;margin:calc(6px * var(--fs,1)) 0;border-top:calc(1px * var(--fs,1)) solid var(--border)}
/* correctif taches-espace : debut */
.tbzone.tbliste{padding:calc(12px * var(--fs,1)) 0 calc(64px * var(--fs,1));font-size:calc(14px * var(--fs,1));letter-spacing:0}
.tbsec{margin:0 0 calc(56px * var(--fs,1))}
.tbsectitre{font-size:calc(13px * var(--fs,1));color:#B5B5B5;margin:calc(8px * var(--fs,1)) 0 calc(20px * var(--fs,1));letter-spacing:.06em}
.tbo .tbsectitre{margin-top:calc(16px * var(--fs,1))}
.tbo{padding-left:calc(28px * var(--fs,1));margin-bottom:calc(20px * var(--fs,1))}
.tbo.tbd,.tbo.tbfin{margin-bottom:calc(36px * var(--fs,1))}
.tbo::before{top:calc(17px * var(--fs,1));left:calc(6px * var(--fs,1));width:calc(9px * var(--fs,1));height:calc(9px * var(--fs,1))}
.tbo.ouvert::after{left:calc(10px * var(--fs,1));top:calc(34px * var(--fs,1))}
.tbotete{padding:calc(9px * var(--fs,1)) calc(10px * var(--fs,1));line-height:calc(26px * var(--fs,1));gap:calc(12px * var(--fs,1))}
.tbotete .on{font-size:calc(14px * var(--fs,1))}
.tbotete .ordesc{color:#B5B5B5;font-size:calc(13px * var(--fs,1))}
.tbotete .tboh{color:#B5B5B5;font-size:calc(13px * var(--fs,1))}
.tbo.pret > .tbotete .on{color:#D0D0D0}
.tbo.tbd > .tbotete .on,.tbo.tbfin > .tbotete .on{font-size:calc(15px * var(--fs,1))}
.tbo.ouvert > .tbocorps{gap:calc(16px * var(--fs,1))}
.tbocorps{margin-top:calc(10px * var(--fs,1))}
.tbocorps .tbo{margin-left:calc(22px * var(--fs,1))}
.tbocorps .tbo:last-child{margin-bottom:calc(8px * var(--fs,1))}
.tbev{padding:calc(2px * var(--fs,1)) 0}
.tbevtete{font-size:calc(13px * var(--fs,1));color:#B5B5B5;gap:calc(12px * var(--fs,1))}
.tbevtexte{margin-top:calc(8px * var(--fs,1));padding:calc(12px * var(--fs,1)) calc(14px * var(--fs,1));line-height:1.6;font-size:calc(14px * var(--fs,1))}
.tbev.note .tbevtexte{padding:calc(4px * var(--fs,1)) 0 calc(4px * var(--fs,1)) calc(14px * var(--fs,1))}
.tbev .eqligne{margin-top:calc(8px * var(--fs,1))}
.tbreplien{padding:calc(8px * var(--fs,1)) calc(10px * var(--fs,1)) calc(8px * var(--fs,1)) calc(28px * var(--fs,1));margin-bottom:calc(6px * var(--fs,1));font-size:calc(14px * var(--fs,1))}
@media (max-width:720px){
  .tbotete{padding:calc(10px * var(--fs,1)) calc(8px * var(--fs,1))}
  .tbocorps .tbo{margin-left:calc(14px * var(--fs,1))}
}
/* correctif taches-espace : fin */
/* correctif taches-detail : debut */
/* espacement : environ 1,5 fois celui d avant taches-espace (lignes aerees mais compactes) */
.tbzone.tbliste{padding:calc(10px * var(--fs,1)) 0 calc(40px * var(--fs,1))}
.tbsec{margin:0 0 calc(27px * var(--fs,1))}
.tbsectitre{margin:calc(6px * var(--fs,1)) 0 calc(12px * var(--fs,1))}
.tbo .tbsectitre{margin-top:calc(14px * var(--fs,1))}
.tbo{padding-left:calc(26px * var(--fs,1));margin-bottom:calc(10px * var(--fs,1))}
.tbo.tbd,.tbo.tbfin{margin-bottom:calc(14px * var(--fs,1))}
.tbo::before{top:calc(11px * var(--fs,1));left:calc(6px * var(--fs,1));width:calc(9px * var(--fs,1));height:calc(9px * var(--fs,1))}
.tbo.ouvert::after{left:calc(10px * var(--fs,1));top:calc(27px * var(--fs,1))}
.tbotete{padding:calc(5px * var(--fs,1)) calc(8px * var(--fs,1));line-height:calc(22px * var(--fs,1));gap:calc(10px * var(--fs,1))}
.tbo.ouvert > .tbocorps{gap:calc(12px * var(--fs,1))}
.tbocorps{margin-top:calc(8px * var(--fs,1))}
.tbocorps .tbo{margin-left:calc(16px * var(--fs,1))}
.tbocorps .tbo:last-child{margin-bottom:calc(4px * var(--fs,1))}
.tbev{padding:calc(1px * var(--fs,1)) 0}
.tbevtexte{margin-top:calc(5px * var(--fs,1));padding:calc(9px * var(--fs,1)) calc(12px * var(--fs,1))}
.tbreplien{padding:calc(5px * var(--fs,1)) calc(8px * var(--fs,1)) calc(5px * var(--fs,1)) calc(24px * var(--fs,1));margin-bottom:calc(3px * var(--fs,1))}
/* detail deplie : en tete en francais simple */
.tbresume{display:flex;flex-direction:column;gap:calc(6px * var(--fs,1));padding:calc(12px * var(--fs,1)) calc(16px * var(--fs,1));background:#1b1c1d;border-radius:calc(8px * var(--fs,1));min-width:0}
.tbrbut{font-size:calc(18px * var(--fs,1));font-weight:600;line-height:1.4;color:var(--text);overflow-wrap:anywhere;margin-bottom:calc(2px * var(--fs,1))}
.tbrligne{display:flex;align-items:baseline;gap:calc(10px * var(--fs,1));font-size:calc(15px * var(--fs,1));line-height:1.5;min-width:0}
.tbrlib{flex:none;color:#B5B5B5;min-width:calc(90px * var(--fs,1))}
.tbrval{flex:1 1 auto;min-width:0;color:var(--text);overflow-wrap:anywhere}
.tbrligne.vide .tbrval{color:#8C8C8C}
.tbretat .tbrval{position:relative;padding-left:calc(16px * var(--fs,1));font-weight:600}
.tbretat .tbrval::before{content:"";position:absolute;left:0;top:50%;margin-top:calc(-4.5px * var(--fs,1));width:calc(9px * var(--fs,1));height:calc(9px * var(--fs,1));border-radius:50%;background:#8C8C8C}
.tbretat .tbrval[data-etat="en_cours"]::before{background:#3794ff}
.tbretat .tbrval[data-etat="PRET"]::before{background:#6aa84f}
.tbretat .tbrval[data-etat="BLOQUE"]::before{background:#F48771}
.tbretat .tbrval[data-etat="QUESTION"]::before{background:#D7BA7D}
.tbrquest .tbrlib{color:#D7BA7D}
/* notes d avancement : liste horodatee, une par ligne */
.tbsect{min-width:0}
.tbsectlib{font-size:calc(13px * var(--fs,1));font-weight:600;color:#CCCCCC;margin:0 0 calc(6px * var(--fs,1))}
.tbnotes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:calc(4px * var(--fs,1))}
.tbnote{display:flex;align-items:baseline;gap:calc(12px * var(--fs,1));font-size:calc(14px * var(--fs,1));line-height:1.5;min-width:0;padding:calc(2px * var(--fs,1)) 0 calc(2px * var(--fs,1)) calc(10px * var(--fs,1));border-left:calc(2px * var(--fs,1)) solid #3A3B3C}
.tbnoteh{flex:none;color:#8C8C8C;font-size:calc(13px * var(--fs,1));font-variant-numeric:tabular-nums;white-space:nowrap}
.tbnotet{flex:1 1 auto;min-width:0;color:var(--text);overflow-wrap:anywhere}
/* Detail technique : replie par defaut */
.tbtech{min-width:0}
.tbtechbt{display:inline-flex;align-items:center;gap:calc(6px * var(--fs,1));background:none;border:0;color:#B5B5B5;font:inherit;font-size:calc(13px * var(--fs,1));font-weight:600;padding:calc(4px * var(--fs,1)) calc(8px * var(--fs,1)) calc(4px * var(--fs,1)) 0;cursor:pointer;border-radius:calc(4px * var(--fs,1))}
.tbtechbt::before{content:"\25B8";font-size:calc(11px * var(--fs,1));line-height:1}
.tbtech.ouvert > .tbtechbt::before{content:"\25BE"}
.tbtechbt:hover,.tbtechbt:focus-visible{color:var(--text);outline:none}
.tbtechcorps{display:none}
.tbtech.ouvert > .tbtechcorps{display:flex;flex-direction:column;gap:calc(10px * var(--fs,1));margin-top:calc(6px * var(--fs,1));padding:calc(14px * var(--fs,1)) calc(20px * var(--fs,1));background:#1b1c1d;border:1px solid #2b2c2d;border-radius:calc(8px * var(--fs,1));min-width:0}
.tbtechmeta{color:#8C8C8C;font-size:calc(13px * var(--fs,1));overflow-wrap:anywhere}
.tbtechlib{font-size:calc(13px * var(--fs,1));font-weight:600;color:#CCCCCC;margin-top:calc(4px * var(--fs,1))}
.tbtexte{display:flex;flex-direction:column;gap:calc(10px * var(--fs,1));font-size:calc(14px * var(--fs,1));line-height:1.6;color:var(--text);overflow-wrap:anywhere;min-width:0}
.tbpara{display:flex;flex-direction:column;gap:calc(3px * var(--fs,1))}
.tbtexte ol,.tbtexte ul{margin:0;padding-left:calc(24px * var(--fs,1));display:flex;flex-direction:column;gap:calc(6px * var(--fs,1))}
.tbtexte li{display:list-item}
.tbtexte li > .tbphr + .tbphr{margin-top:calc(3px * var(--fs,1))}
.tbtexte .tbphr{min-width:0}
.tbtech .eqligne{margin-top:calc(2px * var(--fs,1))}
@media (max-width:720px){
  .tbotete{padding:calc(6px * var(--fs,1)) calc(8px * var(--fs,1))}
  .tbocorps .tbo{margin-left:calc(10px * var(--fs,1))}
  .tbresume{padding:calc(10px * var(--fs,1)) calc(12px * var(--fs,1))}
  .tbrligne{flex-direction:column;gap:0}
  .tbrlib{min-width:0;font-size:calc(13px * var(--fs,1))}
  .tbtech.ouvert > .tbtechcorps{padding:calc(12px * var(--fs,1)) calc(14px * var(--fs,1))}
}
/* correctif taches-detail : fin */
/* lot page-outils-agents : Parametres > Agents > Outils et Variables, Parametres > Site */
.psec2{font-weight:600;margin:calc(16px * var(--fs,1)) 0 calc(4px * var(--fs,1));font-size:calc(14px * var(--fs,1))}
.pskills.off,.poutils .off{opacity:.45}
.pcat{margin:2px 0 2px 22px}
.pcat > summary{cursor:pointer;padding:5px 0;font-size:calc(14px * var(--fs,1))}
.pcatplat > .pcattete{padding:5px 0;font-size:calc(14px * var(--fs,1))}
.svarfige{opacity:.85}
textarea.eqbloc{width:100%;box-sizing:border-box;min-height:24em}
.pcatn{margin-left:8px;opacity:.6;font-size:calc(12px * var(--fs,1))}
#agfen label.pskill{align-items:flex-start;padding-left:18px}
.pskill i{display:block;opacity:.65;font-style:normal;font-size:calc(12px * var(--fs,1))}
.pvar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0}
.pvarnom{flex:0 0 calc(220px * var(--fs,1));min-width:0}.pvarval{flex:1 1 calc(240px * var(--fs,1));min-width:0}
.pvarinfo{flex-basis:100%;opacity:.6;font-size:calc(12px * var(--fs,1))}.pvarinfo:empty{display:none}
.svar{padding:8px 0;border-bottom:1px solid var(--border)}
.svartete{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.svardesc,.svarvig,.svarprochain{opacity:.75;font-size:calc(13px * var(--fs,1))}
.svarval{word-break:break-all}.svar input.agchamp{margin-top:4px;width:100%;box-sizing:border-box}
.svarprochain .btn{margin-left:8px}
/* Parametres > Site > Reseau ZeroTier et Flotte (eq 2139) : champs et cles en pleine largeur */
.rfchamp,textarea.rfcode{width:100%;box-sizing:border-box}
textarea.rfcode{font-family:var(--mono,ui-monospace,monospace);font-size:calc(12px * var(--fs,1));line-height:1.4;resize:vertical;word-break:break-all}
.rfval,.rfadr{font-family:var(--mono,ui-monospace,monospace);font-size:calc(13px * var(--fs,1));word-break:break-all}
.rfessai[data-ok="1"]{color:var(--ok,#3a8a4a);opacity:1}.rfessai[data-ok="0"]{color:var(--err,#c0392b);opacity:1}
/* lot page-outils-agents : fin */

/* Onglet Skills de Parametres (tache 612) : pages de skillmap aux couleurs et a la police de claude-web */
.skcorps{gap:10px}
.sktuiles{display:flex;flex-wrap:wrap;gap:10px}
.sktuile{flex:1 1 180px;text-align:left;background:var(--input);border:1px solid var(--border);border-radius:8px;color:var(--text);font:inherit;padding:12px;cursor:pointer}
.sktuile:hover{background:var(--hover)}
.sktt{font-weight:600}.skgros{font-size:calc(28px * var(--fs,1));font-weight:600;margin:4px 0}
.sknav{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.agfen .btn.skuser.on{border-color:var(--accent);color:var(--accent)}
.skcartes{display:flex;flex-wrap:wrap;gap:8px}
.skcarte{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:8px;padding:8px 12px;min-width:110px;font-size:calc(12px * var(--fs,1));color:var(--muted)}
.skcarte b{font-size:calc(20px * var(--fs,1));color:var(--text)}
.skcarte.skhi b{color:#f06b6b}.skcarte.skmd b{color:#e8a33c}.skcarte.sklo b{color:#d6c95a}.skcarte.skok b{color:#6cc36c}
.skfiltres{display:flex;flex-wrap:wrap;gap:6px}.skfiltres .agchamp{width:auto;flex:1 1 150px;min-width:0}
.sktoc ul{list-style:none;margin:4px 0;padding:0;columns:2 220px}
.sktoc li{display:flex;align-items:center;gap:6px;padding:1px 0;break-inside:avoid}
.sktocl{display:flex;flex-wrap:wrap;gap:4px 12px}
.sklien{background:none;border:0;padding:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;text-decoration:underline;text-decoration-color:var(--border)}
.sklien:hover{color:var(--accent)}
.skn{color:var(--muted);font-weight:400;font-size:calc(12px * var(--fs,1))}
.skcat{font-size:calc(15px * var(--fs,1));font-weight:600;margin:14px 0 4px}
.skplie{cursor:pointer;user-select:none}.skplie::before{content:"\25B8\00a0"}.skplie.skouvert::before{content:"\25BE\00a0"}
.skrepli{display:none!important}
.sktabw{overflow-x:auto;max-width:100%}
.sktab{width:100%;border-collapse:collapse;font-size:calc(12.5px * var(--fs,1))}
.sktab th{text-align:left;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border);padding:5px 6px;white-space:nowrap}
.sktab td{border-bottom:1px solid #222324;padding:5px 6px;vertical-align:top}
.sktab tr[hidden]{display:none}
.sknom{min-width:160px}.skdesc{min-width:220px;max-width:460px;white-space:pre-wrap;word-break:break-word}
.skpath{color:var(--muted);font-size:calc(11.5px * var(--fs,1));word-break:break-all}
.skwarn{color:#e8a33c;font-weight:700;margin-left:4px}
.skscope{border:1px solid var(--border);border-radius:10px;padding:1px 7px;white-space:nowrap}
.skbadge{display:inline-block;border-radius:10px;padding:1px 7px;font-size:calc(11.5px * var(--fs,1));white-space:nowrap;border:1px solid}
.skbadge.skhi{color:#f06b6b;border-color:#f06b6b}.skbadge.skmd{color:#e8a33c;border-color:#e8a33c}.skbadge.sklo{color:#d6c95a;border-color:#d6c95a}
.skbadge.skok{color:#6cc36c;border-color:#6cc36c}.skbadge.sknm{color:var(--muted);border-color:var(--border)}
.skitems{margin:4px 0;padding-left:16px}
.skcases{display:flex;flex-wrap:wrap;gap:4px}
.skshr{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--border);border-radius:6px;padding:1px 6px;font-size:calc(11.5px * var(--fs,1));cursor:pointer;white-space:nowrap}
.skshr.own{border-style:dashed}.skshr.busy{opacity:.5}.skshr.err{border-color:#f06b6b;color:#f06b6b}
.skkv{display:grid;grid-template-columns:110px 1fr;gap:6px;font-size:calc(12.5px * var(--fs,1))}
.skkv > span{color:var(--muted)}.skkv code{white-space:pre-wrap;word-break:break-all}
.skdeux{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px}
.sklead{margin:0;color:var(--text)}
/* carte des skills et de leurs liens (lot L06) */
.skcbarre{align-items:center}
.skcseuls{display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.skcleg{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:calc(12px * var(--fs,1))}
.skcleg i{display:inline-block;width:calc(18px * var(--fs,1));height:2px}.skcleg-out{background:var(--accent)}.skcleg-in{background:#6aa7e8}
.skczoom{display:inline-flex;gap:4px;margin-left:auto}
.skcartew{overflow:auto;width:100%;height:70vh;border:1px solid var(--border);border-radius:8px;background:var(--bg);cursor:grab}
.skcsvg{display:block;width:100%;height:auto}
.skcli{stroke:#5a5d61;stroke-width:.6;opacity:.45}
.skcli.skcout{stroke:var(--accent);stroke-width:1.6;opacity:1}.skcli.skcin{stroke:#6aa7e8;stroke-width:1.6;opacity:1}
.skcsvg.sel .skcli:not(.skcout):not(.skcin){opacity:.07}
.skcno{cursor:pointer}.skchit{fill:transparent}
.skcno text{fill:var(--text);font-size:11px;display:none;pointer-events:none}
.skcno.skcfort text,.skcsvg.skcz .skcno text,.skcno.skcsel text,.skcno.skcvois text{display:inline}
.skcsvg.sel .skcno:not(.skcsel):not(.skcvois){opacity:.3}
.skcno.skcsel text{font-weight:700;fill:var(--accent)}
.skcoff{opacity:.08!important}.skcno.skcoff text{display:none}
.skcnom{display:flex;align-items:center;gap:8px}
.skcliste{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}.skcliste .plib{width:100%}
.skjump{cursor:pointer}.skjump.skhit{background:var(--sel)}
.skerr{color:#f06b6b}
.skvarsec{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.sked{border:1px solid var(--border);border-radius:8px;overflow:hidden}
.skedbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--border)}
.skedbar code{flex:1 1 200px;word-break:break-all;font-size:calc(12px * var(--fs,1))}
.skmsg{color:var(--muted);font-size:calc(12px * var(--fs,1))}
.skedcorps{display:flex;height:60vh}
.skgut{white-space:pre;text-align:right;color:var(--muted);padding:8px 6px;overflow:hidden;font:calc(12.5px * var(--fs,1))/1.6 var(--mono,monospace);user-select:none;min-width:34px}
textarea.sktexte{flex:1;resize:none;border:0;outline:none;background:var(--input);color:var(--text);padding:8px;font:calc(12.5px * var(--fs,1))/1.6 var(--mono,monospace);white-space:pre;overflow:auto}

/* Parametres > Partage > Agents, menu simplifie (eq 2058) : pleine largeur, ronds sans contour */
#agfen .ptcarte{width:100%;box-sizing:border-box;background:var(--input);border:0;border-radius:calc(16px * var(--fs,1));padding:calc(16px * var(--fs,1)) calc(18px * var(--fs,1));margin:0 0 calc(14px * var(--fs,1))}
#agfen .ptetiq{color:var(--muted);font-size:calc(12px * var(--fs,1));margin:0 0 calc(8px * var(--fs,1))}
#agfen .ptligne{display:flex;flex-wrap:wrap;gap:calc(8px * var(--fs,1));align-items:center;margin:0 0 calc(12px * var(--fs,1))}
#agfen .ptrond{border:0;border-radius:999px;padding:calc(8px * var(--fs,1)) calc(14px * var(--fs,1));background:var(--border);color:var(--text);font:inherit;font-size:calc(13px * var(--fs,1));cursor:pointer}
#agfen .ptrond.on{background:var(--accent);color:#111;font-weight:600}
#agfen .btn.ptgo{border:0;border-radius:999px;padding:calc(11px * var(--fs,1)) calc(22px * var(--fs,1));background:var(--accent);color:#111;font-weight:700;font-size:calc(14px * var(--fs,1))}
#agfen .btn.ptgo:disabled{opacity:.5;cursor:default}
#agfen .ptetat{display:flex;justify-content:space-between;align-items:center;gap:calc(10px * var(--fs,1));padding:calc(10px * var(--fs,1)) 0;border-top:1px solid var(--border);flex-wrap:wrap}
#agfen .ptetat:first-of-type{border-top:0}
#agfen .ptpill{border-radius:999px;padding:calc(4px * var(--fs,1)) calc(10px * var(--fs,1));font-size:calc(12px * var(--fs,1));background:var(--border);color:var(--muted)}
#agfen .ptpill.ok{background:rgba(63,178,127,.18);color:#3fb27f}
#agfen .btn.ptretirer{border:0;background:none;color:#f48771;font-size:calc(13px * var(--fs,1))}
/* Vue Sauvegardes (eq 2155) : page pleine largeur de la fenetre de Parametres, tailles en calc(px * --fs) */
.saupage{width:100%}
.saubloc{display:flex;flex-direction:column;gap:calc(4px * var(--fs,1));font-size:calc(13px * var(--fs,1));line-height:1.5}
.sauligne{font-size:calc(13px * var(--fs,1));line-height:1.5}.sauligne.sauok{color:#3fb27f}.sauligne.perr{color:#f48771}.sauligne.sauencours{color:var(--accent)}
.saubarre{display:flex;flex-wrap:wrap;align-items:center;gap:calc(8px * var(--fs,1));padding:calc(6px * var(--fs,1)) 0}
.saubarre a.btn{text-decoration:none}
.saumsg{white-space:pre-wrap}.saumsg:empty{display:none}
.saureg{display:flex;flex-direction:column;gap:calc(8px * var(--fs,1));font-size:calc(13px * var(--fs,1))}
.saureg label{display:flex;align-items:center;gap:calc(8px * var(--fs,1));cursor:pointer}
.saulib{min-width:calc(200px * var(--fs,1));color:var(--muted)}
.saureg select{font-size:calc(13px * var(--fs,1));padding:calc(3px * var(--fs,1)) calc(6px * var(--fs,1));background:var(--input,var(--bg));color:inherit;border:1px solid var(--border);border-radius:6px}
.saucherche{flex:1 1 calc(240px * var(--fs,1));min-width:0}
.sauchemin{font-size:calc(13px * var(--fs,1));color:var(--muted)}
.saudossier{background:none;border:0;padding:0;color:var(--accent);cursor:pointer;font:inherit;text-align:left}
.sautab td .btn{font-size:calc(12px * var(--fs,1));padding:calc(2px * var(--fs,1)) calc(10px * var(--fs,1))}
@media (max-width:1024px), (pointer:coarse){ .saulib{min-width:0;flex-basis:100%} .sautab td .btn{min-height:40px} }
/* Vue Rapports (eq 2132) : page pleine largeur de la fenetre de Parametres, tailles en calc(px * --fs) */
/* eq 2360 : choix de compagnie et en-tetes d agent des Rapports, rond rouge cumule a droite */
.raptete,.agfen.modecon .agtete.raptete{display:flex;align-items:center;gap:calc(6px * var(--fs,1))}.raptete select{flex:1;min-width:0}
.agtetenom span.raprond{flex:none;font-weight:600;overflow:visible}
.rapitem{display:flex;align-items:center;gap:calc(6px * var(--fs,1))}
.raprond{flex:none;margin-left:auto;min-width:calc(18px * var(--fs,1));height:calc(18px * var(--fs,1));line-height:calc(18px * var(--fs,1));border-radius:50%;background:#d93025;color:#fff;text-align:center;font-size:calc(11px * var(--fs,1));font-weight:600;padding:0 calc(3px * var(--fs,1));box-sizing:border-box}
.rappage{width:100%;gap:0}
.rapbarre{position:sticky;top:0;z-index:2;background:var(--bg);display:flex;flex-wrap:wrap;align-items:center;gap:calc(6px * var(--fs,1)) calc(14px * var(--fs,1));padding:calc(8px * var(--fs,1)) 0;border-bottom:1px solid var(--border);margin-bottom:calc(4px * var(--fs,1))}
.rapbarre .rapgo:disabled{opacity:.45;cursor:default}
.rapcout{color:var(--muted);font-size:calc(12px * var(--fs,1));line-height:1.5}
.rapetat{color:var(--muted);font-size:calc(12px * var(--fs,1));flex-basis:100%}.rapetat.perr{color:#f48771}
.rapsec{margin:calc(16px * var(--fs,1)) 0 calc(4px * var(--fs,1));padding-bottom:calc(4px * var(--fs,1));border-bottom:calc(2px * var(--fs,1)) solid var(--border);font-size:calc(14px * var(--fs,1))}
.rapit{padding:calc(10px * var(--fs,1)) 0;border-bottom:1px solid var(--border);font-size:calc(13px * var(--fs,1));line-height:1.5}
.rapq{display:flex;gap:calc(10px * var(--fs,1));align-items:flex-start}
.rapn{flex:none;min-width:calc(28px * var(--fs,1));text-align:center;font-weight:700;background:var(--accent);color:#1f1f1f;border-radius:6px;padding:0 calc(5px * var(--fs,1))}
.rapsub{margin:calc(5px * var(--fs,1)) 0 0 calc(38px * var(--fs,1));padding-left:calc(16px * var(--fs,1));color:var(--muted);font-size:calc(12px * var(--fs,1))}
.rapreco,.rapc,.rapst,.raprep,.rapch,.raplib{margin:calc(6px * var(--fs,1)) 0 0 calc(38px * var(--fs,1))}
.rapreco{background:rgba(46,139,87,.14);border-radius:6px;padding:calc(4px * var(--fs,1)) calc(8px * var(--fs,1))}
.rapst,.raprep{padding:calc(4px * var(--fs,1)) calc(8px * var(--fs,1));border-radius:6px;border-left:calc(4px * var(--fs,1)) solid #888;background:rgba(127,127,127,.12)}
.rapst b,.raprep b{font-size:calc(11px * var(--fs,1));letter-spacing:.04em}
.rapst-fait{border-color:#2e8b57;background:rgba(46,139,87,.12)}.rapst-attente{border-color:#d9822b;background:rgba(217,130,43,.14)}.rapst-partiel{border-color:#c9a227;background:rgba(201,162,39,.14)}.rapst-question{border-color:#c0392b;background:rgba(192,57,43,.12)}.rapst-discuter{border-color:#7d5ba6;background:rgba(125,91,166,.12)}
.raprep{border-color:var(--accent);background:rgba(127,127,127,.10)}
.rapch,.raplib{display:flex;flex-wrap:wrap;gap:calc(6px * var(--fs,1));align-items:flex-start}
.rapch .btn{border-radius:999px}.rapch .btn.on{background:var(--accent);color:#1f1f1f;border-color:var(--accent)}.rapch .btn.rapdisc{border-style:dashed}
.raplib textarea.agchamp{flex:1 1 calc(240px * var(--fs,1));min-width:0;resize:vertical;font-size:calc(13px * var(--fs,1));line-height:1.5;max-height:none}
.raplib .rapann{margin-left:auto}
.raptraites{margin-top:calc(16px * var(--fs,1))}.raptraites summary{cursor:pointer;font-weight:600;font-size:calc(14px * var(--fs,1));padding:calc(4px * var(--fs,1)) 0}
@media (max-width:1024px), (pointer:coarse){ .rapreco,.rapc,.rapst,.raprep,.rapch,.raplib{margin-left:0} .rapsub{margin-left:calc(8px * var(--fs,1))} .rapch .btn,.raplib .btn{min-height:40px} .raplib .rapann{margin-left:0} }
/* Vue Campagnes (eq 2182) : page pleine largeur de la fenetre de Parametres, tailles en calc(px * --fs), ronds sans contour */
.campage{width:100%;gap:calc(8px * var(--fs,1))}
.camform{display:flex;flex-direction:column;gap:calc(6px * var(--fs,1));width:100%}
.camform .agchamp{width:100%;box-sizing:border-box;font-size:calc(13px * var(--fs,1))}
textarea.camcorps{min-height:calc(220px * var(--fs,1));resize:vertical;font-family:inherit;line-height:1.5}
textarea.camliste{min-height:calc(110px * var(--fs,1));resize:vertical;font-family:var(--mono,monospace);font-size:calc(12px * var(--fs,1))}
.camsuivi{display:flex;flex-direction:column;gap:calc(6px * var(--fs,1));width:100%}
.campills{display:flex;flex-wrap:wrap;gap:calc(6px * var(--fs,1))}
.campill{display:inline-block;border:0;border-radius:999px;padding:calc(3px * var(--fs,1)) calc(10px * var(--fs,1));font-size:calc(12px * var(--fs,1));background:var(--border);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.campill.cam-brouillon{background:rgba(86,156,214,.18);color:#569cd6}
.campill.cam-envoye{background:rgba(63,178,127,.18);color:#3fb27f}
.campill.cam-erreur{background:rgba(244,135,113,.18);color:#f48771}
.campill.cam-exclu,.campill.cam-desinscrit{background:rgba(206,145,120,.18);color:#ce9178}
.campill.cam-reponse{background:rgba(197,134,192,.18);color:#c586c0}
.camligne{font-size:calc(13px * var(--fs,1));line-height:1.5}.camligne.camencours{color:var(--accent)}.camligne.perr{color:#f48771}
.camok{color:#3fb27f}
.cambarre{gap:calc(8px * var(--fs,1))}
.camcase{display:inline-flex;align-items:center;gap:calc(6px * var(--fs,1));font-size:calc(13px * var(--fs,1));cursor:pointer}
.camdest,.camexcl{width:100%;overflow-x:auto}
.camdest td .btn,.camexcl td .btn{font-size:calc(12px * var(--fs,1));padding:calc(2px * var(--fs,1)) calc(10px * var(--fs,1));margin-right:calc(4px * var(--fs,1))}
.camapercu{display:flex;flex-direction:column;gap:calc(6px * var(--fs,1));width:100%}
.camentete{display:flex;flex-direction:column;gap:calc(2px * var(--fs,1))}
.camlib{display:inline-block;min-width:calc(70px * var(--fs,1));color:var(--muted)}
.camtexte{white-space:pre-wrap;word-break:break-word;font-size:calc(13px * var(--fs,1));line-height:1.55;background:var(--input,var(--bg));border-radius:calc(8px * var(--fs,1));padding:calc(10px * var(--fs,1)) calc(12px * var(--fs,1))}
.camreg{display:flex;flex-direction:column;gap:calc(8px * var(--fs,1));font-size:calc(13px * var(--fs,1))}
.camlibr{min-width:calc(200px * var(--fs,1));color:var(--muted)}
.camreg select{font-size:calc(13px * var(--fs,1));padding:calc(3px * var(--fs,1)) calc(6px * var(--fs,1));background:var(--input,var(--bg));color:inherit;border:1px solid var(--border);border-radius:6px}
@media (max-width:1024px), (pointer:coarse){ .camlibr{min-width:0;flex-basis:100%} .camdest td .btn,.camexcl td .btn,.cambarre .btn{min-height:40px} }
/* Vue Transcription (eq 2175) : depot d un audio, texte horodate avec locuteurs, resume ; meme page pleine largeur que Rapports */
.tritem{display:flex;align-items:center;gap:calc(6px * var(--fs,1))}
.trpastille{flex:none;margin-left:auto;min-width:calc(18px * var(--fs,1));height:calc(18px * var(--fs,1));line-height:calc(18px * var(--fs,1));border-radius:999px;border:none;color:#fff;text-align:center;font-size:calc(10px * var(--fs,1));font-weight:600;padding:0 calc(5px * var(--fs,1));box-sizing:border-box}
.trpastille.trp-cours{background:#1a73e8}.trpastille.trp-err{background:#d93025}
.trpage{width:100%;gap:0}
.trsans{margin:calc(12px * var(--fs,1)) 0;padding:calc(12px * var(--fs,1)) calc(14px * var(--fs,1));border-radius:calc(8px * var(--fs,1));background:rgba(217,130,43,.14);display:flex;flex-direction:column;align-items:flex-start;gap:calc(8px * var(--fs,1));font-size:calc(13px * var(--fs,1))}
.trsanst{font-weight:600}
.trzone{margin:calc(12px * var(--fs,1)) 0 calc(8px * var(--fs,1));padding:calc(28px * var(--fs,1)) calc(16px * var(--fs,1));border:calc(2px * var(--fs,1)) dashed var(--border);border-radius:calc(10px * var(--fs,1));text-align:center;cursor:pointer;outline:none}
.trzone:hover,.trzone:focus-visible,.trzone.on{border-color:var(--accent);background:rgba(127,127,127,.08)}
.trzt{font-size:calc(14px * var(--fs,1));font-weight:600;word-break:break-word}.trzs{margin-top:calc(4px * var(--fs,1));color:var(--muted);font-size:calc(12px * var(--fs,1))}
.trlib{display:flex;flex-wrap:wrap;gap:calc(8px * var(--fs,1));align-items:center}
.trlib input.agchamp{flex:1 1 calc(240px * var(--fs,1));min-width:0;font-size:calc(13px * var(--fs,1))}
.tretat{margin-top:calc(8px * var(--fs,1));color:var(--muted);font-size:calc(12px * var(--fs,1))}.tretat.perr{color:#f48771}
.trbarre{margin:calc(6px * var(--fs,1)) 0;height:calc(6px * var(--fs,1));border-radius:999px;background:rgba(127,127,127,.2);overflow:hidden}
.trrempli{height:100%;width:0;border-radius:999px;background:var(--accent);transition:width .3s}
.trbarreh a.btn{text-decoration:none;display:inline-flex;align-items:center;padding:calc(4px * var(--fs,1)) calc(10px * var(--fs,1));font-size:calc(13px * var(--fs,1))}
.trbarreh a.btn.trinactif{opacity:.45;pointer-events:none}
.trbarreh .btn:disabled{opacity:.45;cursor:default}
.trbarreh .trsup{margin-left:auto}
.trprog{margin:calc(8px * var(--fs,1)) 0}
.trresume{white-space:pre-wrap;font-size:calc(13px * var(--fs,1));line-height:1.55;padding:calc(10px * var(--fs,1)) calc(12px * var(--fs,1));border-radius:calc(8px * var(--fs,1));background:rgba(46,139,87,.12)}
.trtexte{font-size:calc(13px * var(--fs,1));line-height:1.55}
.trseg{display:flex;gap:calc(10px * var(--fs,1));align-items:baseline;padding:calc(3px * var(--fs,1)) 0}
.trh{flex:none;min-width:calc(52px * var(--fs,1));color:var(--muted);font-size:calc(11px * var(--fs,1));font-variant-numeric:tabular-nums}
.trc{flex:1;min-width:0}.trt{white-space:pre-wrap;word-break:break-word}
.trloc{display:inline-block;margin:calc(4px * var(--fs,1)) 0 calc(2px * var(--fs,1));padding:0 calc(8px * var(--fs,1));border-radius:999px;border:none;font-size:calc(11px * var(--fs,1));font-weight:600;color:#1f1f1f}
.trl0{background:#8ab4f8}.trl1{background:#f6ae2d}.trl2{background:#81c995}.trl3{background:#f28b82}.trl4{background:#c58af9}.trl5{background:#78d9ec}
.trtour{margin:calc(6px * var(--fs,1)) 0 calc(2px * var(--fs,1)) calc(62px * var(--fs,1));color:var(--muted);font-size:calc(11px * var(--fs,1));font-style:italic}
@media (max-width:1024px), (pointer:coarse){ .trlib .btn,.trbarreh .btn{min-height:40px} .trbarreh .trsup{margin-left:0} .trh{min-width:calc(44px * var(--fs,1))} .trtour{margin-left:0} }

/* Voir mon ecran : panneau noVNC au-dessus de la conversation, toute la largeur de la zone principale */
.ecranbtn.on{color:var(--accent);border-color:var(--accent)}
.ecranpan{flex:0 0 60%;min-height:calc(220px * var(--fs,1));width:100%;display:flex;flex-direction:column;background:var(--bg);border-bottom:1px solid var(--border)}
.ecranpan[hidden]{display:none}
.ectete{display:flex;flex-wrap:wrap;align-items:center;gap:calc(6px * var(--fs,1));padding:calc(6px * var(--fs,1)) calc(10px * var(--fs,1));font:calc(13px * var(--fs,1)) var(--ui)}
.ecbtn,.ecchoix,.ecform input{background:var(--hover);color:var(--text);border:none;outline:none;box-shadow:none;border-radius:calc(6px * var(--fs,1));
  padding:calc(5px * var(--fs,1)) calc(10px * var(--fs,1));font:calc(13px * var(--fs,1)) var(--ui)}
.ecbtn{cursor:pointer;flex:none}
.ecbtn:hover{background:rgba(255,255,255,.14)}
.ecbtn.ecfort{background:var(--accent);color:#fff}
.ecbtn:disabled{opacity:.5;cursor:default}
.ecbtn[hidden],.ecchoix[hidden]{display:none}
.ecchoix{min-width:0;flex:0 1 auto}
.ecetat{flex:1;min-width:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ecetat.err{color:#e07a7a}
.ecform{display:flex;flex-wrap:wrap;align-items:flex-end;gap:calc(8px * var(--fs,1));padding:0 calc(10px * var(--fs,1)) calc(8px * var(--fs,1))}
.ecform[hidden]{display:none}
.ecform label{display:flex;flex-direction:column;gap:calc(3px * var(--fs,1));font:calc(12px * var(--fs,1)) var(--ui);color:var(--muted)}
.ecform #ecport{width:calc(90px * var(--fs,1))}
.ecvue{flex:1;min-height:0;width:100%;position:relative;overflow:hidden;background:#000}
@media (max-width:1024px), (pointer:coarse){
  .ecranpan{flex-basis:50%}
  .ecbtn,.ecchoix,.ecform input{min-height:calc(36px * var(--fs,1))}
}

/* Vue Recherche : onglets Conversations et Documents (eq 2291) */
.rechongl{display:flex;gap:calc(4px * var(--fs,1));padding:calc(2px * var(--fs,1)) calc(10px * var(--fs,1)) calc(6px * var(--fs,1))}
.rechong{flex:1;min-width:0;background:none;border:1px solid var(--inputborder);border-radius:calc(6px * var(--fs,1));color:var(--muted);font:inherit;font-size:calc(13px * var(--fs,1));padding:calc(5px * var(--fs,1)) calc(8px * var(--fs,1));cursor:pointer}
.rechong:hover{background:var(--hover)}.rechong.on{background:var(--input);color:var(--text);border-color:var(--accent)}
.rechconv{display:flex;flex-direction:column;flex:1;min-height:0}.rechconv[hidden],.rechdocs[hidden]{display:none}
.rechdocs{padding:0 calc(10px * var(--fs,1)) calc(10px * var(--fs,1))}
.rechdocs .rechligne .rechq{flex-basis:100%}

.pic{display:inline-flex;flex:none;align-items:center;justify-content:center}.pic svg{width:calc(18px * var(--fs,1));height:calc(18px * var(--fs,1))}.ptxt{min-width:0;overflow:hidden;text-overflow:ellipsis}.pong{display:inline-flex;align-items:center;justify-content:center;gap:calc(6px * var(--fs,1))}.pong .pic svg{width:calc(16px * var(--fs,1));height:calc(16px * var(--fs,1))}
