.g-check-list{list-style:none;margin:10px 0 0 31px;padding:0}
.g-check-list li{display:flex;gap:9px;align-items:flex-start;padding:5px 0;font-size:12px;line-height:1.7;color:var(--sub);overflow-wrap:anywhere}
.tk{flex-shrink:0;width:15px;height:15px;margin-top:2px;border-radius:50%;display:grid;place-items:center;font-size:9px;font-weight:700;line-height:1}
/* Page d'une mission (maquette approuvée par l'opérateur le 16/10) : une seule zone défile (#gStream) sous la barre
   haute ; le titre, la progression du plan, la conversation, puis le rail de droite qui passe dessous sur un téléphone.
   Les couleurs de la maquette sont des jetons de la page ; les variables partagées de l'application y prennent la même
   palette, pour que les composants communs (boutons, lignes, puces) s'y accordent. Polices : Instrument Sans et
   JetBrains Mono, sur cette page seulement (le reste de l'application garde la sienne). */
.g-page{--fond:#F6F6F3;--carte:#FFFFFF;--encre:#17171C;--encre-2:#2B2B33;--doux:#5C5C66;--pale:#6B6B75;--icone:#8A8A94;
 --filet:#E7E7E2;--filet-2:#EFEFEA;--gris:#F0F0EC;--gris-2:#E2E2DD;--vide:#D9D9D3;--code:#F6F6F3;--repli:#FAFAF8;
 --accent-m:#4F43D1;--accent-fond:#EEF0FF;--accent-fonce:#3B31A8;--accent-halo:#DCDDFB;--sur-accent:#FFFFFF;
 --succes:#1E7A46;--succes-fond:#E3F5EA;--ecrit:#8A5A00;--ecrit-fond:#FFF4E0;--ecrit-marque:#E0A42B;--echec:#B3261E;--echec-fond:#FDECEA;
 --ombre-carte:0 8px 28px rgba(79,67,209,.10);
 --bg:var(--fond);--surface:var(--carte);--soft:var(--code);--hover:var(--gris);--ink:var(--encre);--sub:var(--doux);--muted:var(--doux);
 --line:var(--filet);--line-strong:var(--vide);--accent:var(--accent-m);--accent-hover:var(--accent-fonce);--accent-soft:var(--accent-fond);
 --accent-faint:var(--repli);--green:var(--succes);--green-bg:var(--succes-fond);--amber:var(--ecrit);--amber-bg:var(--ecrit-fond);
 --red:var(--echec);--red-bg:var(--echec-fond);
 --font:'Instrument Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Consolas,monospace;
 position:relative;height:100%;min-height:0;width:100%;max-width:none;margin:0;padding:0;display:flex;flex-direction:column;
 overflow:hidden;overflow:clip;background:var(--fond);color:var(--encre);font-family:var(--font);font-size:15px;line-height:1.5;
 -webkit-font-smoothing:antialiased;animation:none}
[data-theme=dark] .g-page{--fond:#111216;--carte:#1A1B21;--encre:#F1F1F4;--encre-2:#DCDCE3;--doux:#B4B4C0;--pale:#9C9CAA;--icone:#7E7E8C;
 --filet:#2C2D35;--filet-2:#26272E;--gris:#24252C;--gris-2:#30313A;--vide:#3A3B45;--code:#15161B;--repli:#1E1F25;
 --accent-m:#9D95F5;--accent-fond:#26244A;--accent-fonce:#C9C4FF;--accent-halo:#3A3770;--sur-accent:#17171C;
 --succes:#7FD4A2;--succes-fond:#16301F;--ecrit:#F0C46A;--ecrit-fond:#33280F;--ecrit-marque:#E0A42B;--echec:#FF9B92;--echec-fond:#3A1916;
 --ombre-carte:0 8px 28px rgba(0,0,0,.35)}
.g-page [hidden]{display:none!important}
.g-page p{margin:0}
.g-page .muted{color:var(--doux)}
.g-page .tiny{font-size:13px;line-height:1.5}
.g-page .small{font-size:14px;line-height:1.55}
.g-page code{font-family:var(--mono)}
/* Les règles communes « .g-event details » (11 px, gris) ne valent pas ici : chaque repli dit sa propre taille. */
.g-page .g-event details{margin-top:0}
.g-page .g-event details>summary{font-size:14px;color:var(--encre)}
.g-trait{flex-shrink:0;display:inline-block;vertical-align:middle}
.g-page :is(button,summary,a,textarea,input,select):focus-visible{outline:2px solid var(--accent-m);outline-offset:2px}
.g-stream:focus-visible,.g-inspector-body:focus-visible{outline:2px solid var(--accent-m);outline-offset:-3px}

/* La barre haute : fil d'Ariane, état en pastille, depuis quand, Pause et le menu. */
.g-topbar{flex-shrink:0;height:56px;display:flex;align-items:center;gap:16px;padding:0 40px;background:var(--carte);border-bottom:1px solid var(--filet);min-width:0}
.g-ariane{display:flex;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:500}
.g-back{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 4px;border-radius:8px;color:var(--doux);font-size:14px;font-weight:500;white-space:nowrap}
.g-back:hover{color:var(--encre)}
.g-ariane-sep{color:#B8B8B4}
.g-ariane-ici{color:var(--encre);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.g-etat{display:flex;align-items:center;gap:8px;min-width:0}
.g-heading-status{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:6px 12px;border-radius:999px;background:var(--gris);color:var(--doux);font-size:13px;font-weight:600;white-space:nowrap;min-width:0;max-width:100%}
.g-heading-status i{width:8px;height:8px;border-radius:50%;background:currentColor;flex-shrink:0}
.g-status-text{overflow:hidden;text-overflow:ellipsis}
.g-heading-status.work{background:var(--accent-fond);color:var(--accent-fonce)}
.g-heading-status.work i{background:var(--accent-m);box-shadow:0 0 0 4px var(--accent-halo);animation:g-pouls 1.6s ease-in-out infinite}
.g-heading-status.you,.g-heading-status.attenue{background:var(--ecrit-fond);color:var(--ecrit)}
.g-heading-status.you i,.g-heading-status.attenue i{background:var(--ecrit-marque)}
.g-heading-status.ok{background:var(--succes-fond);color:var(--succes)}
.g-heading-status.neutre i{background:var(--icone)}
/* 16/10 (audit des écrans, n° 1) : une mission arrêtée sur une erreur se voit comme telle. */
.g-heading-status.erreur{background:var(--red-bg);color:var(--red)}
.g-heading-status.erreur i{background:var(--red)}
.g-depuis{padding:6px 12px;border-radius:999px;background:var(--gris);color:var(--doux);font-size:13px;font-weight:500;white-space:nowrap}
.g-depuis:empty{display:none}
.g-bouton{flex-shrink:0;height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--filet);background:var(--carte);color:var(--encre);font-size:14px;font-weight:600;display:inline-flex;align-items:center;gap:8px}
.g-bouton:hover{background:var(--repli)}
.g-bouton:disabled{opacity:.55;cursor:not-allowed}
.g-more{position:relative;flex-shrink:0}
.g-more>summary{list-style:none;cursor:pointer;width:36px;height:36px;border-radius:10px;border:1px solid var(--filet);background:var(--carte);color:var(--encre);display:grid;place-items:center}
.g-more>summary::-webkit-details-marker{display:none}
.g-more>summary:hover{background:var(--repli)}
.g-more-menu{position:absolute;right:0;top:44px;width:270px;z-index:30;padding:6px;background:var(--carte);border:1px solid var(--filet);border-radius:12px;box-shadow:0 12px 32px rgba(23,23,28,.14);display:grid;gap:2px}
.g-more-menu .btn{justify-content:flex-start;gap:8px;min-height:40px;padding:8px 10px;border:0;border-radius:8px;background:transparent;box-shadow:none;color:var(--encre);font-size:14px;font-weight:500;text-align:left}
.g-more-menu .btn:hover{background:var(--gris)}
.g-page .g-more-menu .btn.danger{color:var(--echec);background:transparent}
.g-page .g-more-menu .btn.danger:hover{background:var(--echec-fond)}
.g-more-menu .btn:disabled{opacity:.5}
.g-verbosity[aria-pressed=true]{color:var(--accent-fonce)!important;background:var(--accent-fond)!important}
#gNotice{flex-shrink:0;width:min(1160px,calc(100% - 80px));margin:12px auto 0}
.g-notice{padding:10px 14px;border-radius:10px;background:var(--accent-fond);color:var(--accent-fonce);font-size:14px;line-height:1.5}
.g-notice.error{background:var(--echec-fond);color:var(--echec)}
.g-notice .toastlink{color:inherit}

/* La zone qui défile : titre, progression, conversation et rail. */
.g-stream{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scroll-padding-block:24px}
.g-wrap{width:100%;max-width:1240px;margin:0 auto;padding-left:40px;padding-right:40px}
.g-tete{padding-top:32px;display:flex;flex-direction:column;gap:16px}
.g-corps{padding-top:28px;padding-bottom:56px;display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start}
#gTitre{display:flex;flex-direction:column;gap:16px;min-width:0}
.g-titre{margin:0;font-size:32px;line-height:1.2;font-weight:700;letter-spacing:-.02em;color:var(--encre);overflow-wrap:anywhere}
.g-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 18px;color:var(--doux);font-size:14px}
.g-meta>span{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}
.g-meta-prod{color:var(--echec);font-weight:600}
#gAvancee{display:flex;flex-direction:column;gap:10px}
#gAvancee:empty{display:none}
.g-segments{display:grid;grid-template-columns:repeat(var(--n,1),minmax(0,1fr));gap:6px}
.g-segment{height:6px;border-radius:999px;background:var(--vide)}
.g-segment.done,.g-segment.run{background:var(--accent-m)}
.g-segment.fail{background:var(--echec)}
.g-avancee-texte{display:flex;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--doux)}
.g-avancee-texte strong{font-weight:600;color:var(--encre)}

/* La conversation. */
.g-conversation{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:20px}
.g-reading{display:flex;flex-direction:column;gap:20px;min-width:0}
#gEvents{display:flex;flex-direction:column;gap:20px;min-width:0}
#gEvents:empty{display:none}
#gAction{display:contents}
#gAction>div:empty{display:none}
#gAction>div{display:flex;flex-direction:column;gap:16px;min-width:0}
.g-event{margin:0;padding:0;min-width:0}
.g-event p{font-size:15px;line-height:1.5;margin:0;overflow-wrap:anywhere}
.g-moi,.g-groupe{display:flex;gap:14px;align-items:flex-start}
.g-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight:700;letter-spacing:.02em}
.g-avatar.moi{background:var(--encre);color:var(--carte)}
.g-avatar.agent{background:var(--accent-fond);color:var(--accent-m)}
.g-bulle{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.g-moi .g-bulle{gap:6px}
.g-qui{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 10px;font-size:13px;color:var(--doux)}
.g-qui strong{font-size:13px;font-weight:600;color:var(--encre)}
.g-qui time{font-size:13px;color:var(--doux)}
.g-ecrit{color:var(--accent-fonce);font-weight:500}
.g-texte{color:var(--encre-2);white-space:pre-wrap}
.g-md{margin:0;color:var(--encre-2);font-size:15px;line-height:1.6;overflow-wrap:anywhere}
.g-md p{font-size:inherit;line-height:inherit;margin:0 0 10px;color:inherit;white-space:normal}
.g-md p:last-child{margin-bottom:0}
.g-md :is(h2,h3,h4,h5,h6){font-size:16px;line-height:1.4;letter-spacing:-.01em;margin:16px 0 8px;color:var(--encre)}
.g-md :is(h2,h3,h4,h5,h6):first-child{margin-top:0}
.g-md ul,.g-md ol{margin:0 0 10px;padding-left:22px}
.g-md li{margin:4px 0}
.g-md code{font:13px/1.5 var(--mono);background:var(--gris);border-radius:5px;padding:1px 5px}
.g-md strong{font-size:inherit;color:var(--encre);font-weight:650}
.g-md u{text-decoration-color:var(--accent-m);text-underline-offset:3px}
.g-md mark{background:var(--ecrit-fond);color:var(--ecrit);border-radius:4px;padding:1px 4px}
.g-md a{color:var(--accent-m);text-decoration:underline;text-underline-offset:3px}
.g-md a:hover{color:var(--accent-fonce)}
.g-md blockquote{margin:12px 0;padding:2px 0 2px 16px;border-left:3px solid var(--vide);color:var(--doux)}
.g-code{margin:12px 0;padding:10px 12px;overflow:auto;border-radius:8px;background:var(--code);border:1px solid var(--filet-2);font:12.5px/1.6 var(--mono);white-space:pre;color:var(--encre-2)}
.g-code code{border:0;background:transparent;border-radius:0;padding:0;font:inherit}
.g-table-wrap{overflow-x:auto;max-width:100%;margin:12px 0;border:1px solid var(--filet);border-radius:10px;background:var(--carte)}
.g-table{width:100%;border-collapse:collapse;table-layout:fixed;margin:0;font-size:14px}
.g-table th{text-align:left;font-weight:650;color:var(--doux);font-size:12px;padding:10px 12px;background:var(--repli);border-bottom:1px solid var(--filet)}
.g-table td{font-size:14px;line-height:1.55;color:var(--encre-2);padding:10px 12px;border-bottom:1px solid var(--filet-2);vertical-align:top;overflow-wrap:anywhere}
.g-table tbody tr:last-child td{border:0}
/* 14/10 : ce que l'agent écrit en direct — un curseur au bout du texte tant qu'il s'écrit. */
.g-pense.en-cours .g-md>:last-child::after{content:'▍';margin-left:2px;opacity:.6;animation:g-curseur 1s steps(2) infinite}
@keyframes g-curseur{50%{opacity:0}}

/* Les actions de l'agent : une ligne repliée dans une carte blanche ; dépliée, la commande exacte et sa sortie. */
.g-work-batch{min-width:0}
.g-work-items{display:flex;flex-direction:column;gap:10px}
.g-act-detail,.g-act-carte{border:1px solid var(--filet);border-radius:12px;background:var(--carte);overflow:hidden;min-width:0}
.g-act-detail>summary{list-style:none;cursor:pointer;display:block;border-radius:12px}
.g-act-detail>summary::-webkit-details-marker{display:none}
.g-act-detail>summary:hover{background:var(--repli)}
.g-act{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding:12px 14px;font-size:14px;line-height:1.45;color:var(--encre);min-width:0}
.g-act-mark{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:12px;font-weight:700;line-height:1;background:var(--gris);color:var(--doux)}
.g-act-mark i{width:8px;height:8px;border-radius:50%;background:var(--icone)}
.g-act.ok .g-act-mark{background:var(--succes-fond);color:var(--succes)}
.g-act.failed .g-act-mark{background:var(--echec-fond);color:var(--echec)}
.g-act.unknown .g-act-mark{background:var(--ecrit-fond);color:var(--ecrit)}
.g-act.run .g-act-mark{background:var(--accent-fond)}
.g-act.run .g-act-mark i{background:var(--accent-m);animation:g-respire 1.4s ease-in-out infinite}
.g-act-copy{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:2px}
.g-act-title{font-weight:500;overflow-wrap:anywhere}
.g-act.failed .g-act-title{color:var(--echec)}
.g-act-why{font-size:13px;line-height:1.5;color:var(--doux);overflow-wrap:anywhere}
.g-act-issue{font-size:13px;line-height:1.5;color:var(--encre-2);overflow-wrap:anywhere}
.g-act.failed .g-act-issue{color:var(--echec)}
.g-ecrit-sur{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;background:var(--ecrit-fond);color:var(--ecrit);font-size:12px;font-weight:600;white-space:nowrap}
.g-act-duree{font-size:13px;color:var(--doux);white-space:nowrap;font-variant-numeric:tabular-nums}
.g-act-expand{display:inline-flex;color:var(--icone);flex-shrink:0;transition:transform .15s}
.g-act-detail[open]>summary .g-act-expand{transform:rotate(180deg)}
.g-act-output{border-top:1px solid var(--filet-2);padding:12px 14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.g-commande-texte,.g-sortie{margin:0;max-height:320px;overflow:auto;padding:10px 12px;border-radius:8px;background:var(--code);color:var(--encre-2);font:12.5px/1.6 var(--mono);white-space:pre}
.g-sortie{white-space:pre-wrap;overflow-wrap:anywhere}
.g-act-note{font-size:14px;color:var(--encre-2);overflow-wrap:anywhere}
.g-act-note strong{font-weight:600;color:var(--encre)}
.g-act-faits{font-size:13px;color:var(--doux)}
/* 14/10 et 16/10 : un refus d'un garde-fou de DAAS (ou une lecture refusée avant « Appliquer ») est une ligne grise,
   pastille ✗ grise, jamais rouge ; la croix rouge reste pour un vrai échec. */
.g-act-detail.neutre,.g-act-carte.neutre{border-color:transparent;background:var(--gris);border-radius:10px}
.g-act-detail.neutre>summary:hover{background:var(--gris-2)}
.g-act-detail.neutre .g-act-output{border-top-color:var(--gris-2)}
.g-act-detail.neutre .g-act,.g-act-carte.neutre .g-act{padding:8px 14px}
.g-act.neutre .g-act-mark{background:var(--gris-2)}
.g-act.neutre .g-act-mark,.g-act.neutre .g-act-title{color:var(--muted)}
.g-act.neutre .g-act-title{font-weight:400}
.g-act.wait .g-act-title{color:var(--doux)}

/* Le séparateur d'étape, une décision prise, une ligne de DAAS, une note. */
.g-etape{display:flex;align-items:center;gap:12px;margin:0;padding:6px 0;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pale)}
.g-etape-nom{min-width:0;overflow-wrap:anywhere}
.g-etape-trait{flex:1;min-width:24px;height:1px;background:var(--filet)}
.g-etape-heure{font-weight:400;letter-spacing:0;text-transform:none;white-space:nowrap}
.g-decidee{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--filet);border-radius:12px;background:var(--carte);font-size:14px;color:var(--encre)}
.g-decidee-mark{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--accent-fond);color:var(--accent-m)}
.g-decidee.refus .g-decidee-mark{background:var(--gris-2);color:var(--doux)}
.g-decidee-texte{flex:1;min-width:0;overflow-wrap:anywhere}
.g-decidee-texte strong{font-weight:600}
.g-decidee-note{display:block;font-size:13px;color:var(--doux)}
.g-decidee time,.g-trace time{font-size:13px;color:var(--doux);white-space:nowrap}
.g-trace{display:flex;align-items:flex-start;gap:10px;margin:0;padding:8px 14px;border-radius:10px;background:var(--gris);color:var(--doux);font-size:14px;line-height:1.5}
.g-trace>svg{margin-top:3px}
.g-trace>span{flex:1;min-width:0;overflow-wrap:anywhere}
.g-trace strong{font-weight:600;color:var(--encre-2)}
.g-seule{padding-left:46px}
.g-note{display:flex;gap:14px;align-items:flex-start}
.g-note-mark{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;background:var(--gris);color:var(--doux)}
.g-note-corps{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px;padding:12px 14px;border:1px solid var(--filet);border-radius:12px;background:var(--carte)}
.g-note-tete{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--doux)}
.g-note-tete strong{font-weight:600;color:var(--encre)}
.g-note-corps>p{font-size:14px;color:var(--encre-2)}
.g-note-corps .g-md{font-size:14px}
.g-note-corps .taskmeta{font-size:13px;color:var(--doux)}

/* Les cartes qui attendent l'opérateur : la seule chose saillante de la page. Même cadre pour toutes. */
.g-carte,.g-page .g-event.g-action.g-carte{border:1.5px solid var(--accent-m);border-radius:14px;background:var(--carte);box-shadow:var(--ombre-carte);overflow:hidden;min-width:0;margin:0;padding:0}
.g-carte-tete{padding:16px 18px 0;display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
.g-pastille{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:var(--accent-fond);color:var(--accent-fonce);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.g-carte-nature{font-size:13px;color:var(--doux);overflow-wrap:anywhere}
.g-carte-corps{padding:12px 18px 16px;display:flex;flex-direction:column;gap:14px;color:var(--encre-2);font-size:15px;line-height:1.5;min-width:0}
.g-carte-titre{margin:0;font-size:18px;line-height:1.35;font-weight:700;letter-spacing:-.01em;color:var(--encre);overflow-wrap:anywhere}
.g-carte-corps>.g-md,.g-carte-corps .g-md{font-size:15px}
.g-puces{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.g-puces li{display:flex;gap:10px;align-items:flex-start;overflow-wrap:anywhere}
.g-puces li::before{content:'';flex-shrink:0;margin-top:8px;width:6px;height:6px;border-radius:50%;background:var(--accent-m)}
.g-etiquettes{display:flex;flex-wrap:wrap;gap:10px}
.g-etiquette{display:inline-flex;align-items:center;padding:5px 10px;border-radius:8px;background:var(--gris);color:var(--doux);font-size:13px;font-weight:600}
.g-etiquette.ecrit{background:var(--ecrit-fond);color:var(--ecrit)}
.g-commande{border:1px solid var(--filet);border-radius:10px;background:var(--repli);min-width:0}
.g-page .g-commande>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 12px;font-size:14px;font-weight:500;color:var(--encre);border-radius:10px}
.g-commande>summary::-webkit-details-marker{display:none}
.g-commande>summary .g-trait{color:var(--icone);transition:transform .15s}
.g-commande[open]>summary .g-trait{transform:rotate(90deg)}
.g-commande-corps{padding:4px 12px 12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.g-commande>.g-log{margin:0 12px 12px}
.g-page .g-log{margin:0;max-height:320px;overflow:auto;padding:10px 12px;border-radius:8px;background:var(--code);color:var(--encre-2);font:12.5px/1.6 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere}
.g-carte .g-log,.g-commande .g-log{white-space:pre;overflow-wrap:normal}
.g-motif{font-size:13px;color:var(--doux);margin-bottom:-8px}
.g-page .ganswer{width:100%;margin:0;padding:10px 12px;border:1px solid var(--filet);border-radius:10px;background:var(--carte);color:var(--encre);font-size:14px;line-height:1.5;resize:vertical}
.g-page .ganswer:focus{outline:none;border-color:var(--accent-m);box-shadow:0 0 0 3px var(--accent-fond)}
.g-page fieldset.goptions{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:8px}
.g-page .goption{min-height:44px;align-items:center;padding:10px 14px;border:1px solid var(--filet);border-radius:10px;background:var(--carte);font-size:15px;line-height:1.45}
.g-page .goption:has(input:checked){border-color:var(--accent-m);background:var(--accent-fond)}
.g-gestes{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-top:2px}
.g-gestes-note{flex:1 1 200px;text-align:right;font-size:13px;color:var(--pale)}
.g-page .btn{font-size:14px;min-height:40px;padding:8px 14px;border-radius:10px;border-color:var(--filet);font-weight:600}
/* Les boutons de contournement portent une phrase entière : ils s'enroulent, jamais ils ne coupent le texte (30/10). */
.g-page .btn.g-contourn{white-space:normal;text-align:left;height:auto;max-width:100%;overflow-wrap:anywhere;line-height:1.4}
.g-page .btn.sm{min-height:36px;padding:6px 12px;font-size:13px}
.g-page .btn.primary{background:var(--accent-m);border-color:var(--accent-m);color:var(--sur-accent);box-shadow:none}
.g-page .btn.primary:hover{background:var(--accent-fonce);border-color:var(--accent-fonce)}
.g-page .btn.danger{background:var(--echec-fond);border-color:transparent;color:var(--echec)}
.g-page .btn.g-oui,.g-page .btn.g-non,.g-carte .row.wrap .btn,.g-gardien .btn{min-height:44px;padding:0 18px;border-radius:11px;font-size:15px}
.g-page .btn.g-oui{font-weight:700}
.g-page .btn.g-non{background:var(--carte);border:1px solid var(--filet);color:var(--encre);box-shadow:none}
.g-page .btn.g-non:hover{background:var(--repli)}
.g-page .btn:disabled{opacity:.55;cursor:not-allowed}
.g-carte .row.wrap{gap:10px}
.g-dec{display:flex;flex-direction:column;gap:8px;min-width:0}
.g-dec-attente{padding:8px 14px;border-radius:10px;background:var(--gris);color:var(--doux);font-size:14px}
.g-page .mrows{gap:10px}
.g-page .mrow{gap:4px 12px}
.g-page .mrow .mlabel{flex-basis:130px;font-size:11px;font-weight:650;letter-spacing:.06em;color:var(--pale)}
.g-page .mrow .mvalue{font-size:14px;line-height:1.55;color:var(--encre-2)}
.g-page .mrow.warn .mvalue{color:var(--echec)}
.g-page .component{font-size:12.5px;padding:2px 8px;border-radius:6px;border-color:transparent;background:var(--gris);color:var(--encre-2)}
.g-source-group{padding:12px;border:1px solid var(--filet);border-radius:10px;background:var(--repli)}
.g-page .callout{font-size:14px;line-height:1.55;border-color:transparent;background:var(--gris);color:var(--encre-2)}
.g-page .field{margin:0;gap:6px;font-size:14px;color:var(--doux)}
.g-page .field input,.g-page .mandateprod input{min-height:44px;padding:10px 12px;border:1px solid var(--filet);border-radius:10px;background:var(--carte);color:var(--encre);font-size:15px}
.g-page .plan-etapes{margin:0;padding-left:22px}
.g-page .plan-etapes li{margin:4px 0}
.g-step-ask .mgoal{margin:0;padding:12px 14px;border-radius:10px;border:1px solid var(--filet);background:var(--repli);font-size:15px;line-height:1.6;color:var(--encre-2)}
.g-step-ask{display:flex;flex-direction:column;gap:14px}
.g-step-ask .mandategate{border-top:1px solid var(--filet);padding-top:14px;display:flex;flex-direction:column;gap:10px}
.g-step-ask .mandatecheck{margin:0;padding:0;border:0;font-size:15px;line-height:1.5;color:var(--encre)}
.g-page .mandateprod{font-size:14px;color:var(--doux)}
.g-step-do .g-md{font-size:15px}

/* Le dock : la ligne d'état en direct et le champ restent à l'écran au bas de la conversation pendant qu'on la lit
   (comme avant la maquette) ; arrivé au bout, ils sont à leur place, sous le dernier échange. */
.g-dock{position:sticky;bottom:0;z-index:6;display:flex;flex-direction:column;gap:12px;margin-top:-12px;padding:12px 0 16px;background:linear-gradient(to bottom,transparent,var(--fond) 16px)}
/* La ligne d'état en direct, au bas de la conversation. */
.g-activity-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 14px;padding:4px 0 0;min-width:0;font-size:14px;color:var(--doux)}
.g-live-mark{width:32px;height:32px;border-radius:50%;background:var(--accent-fond);display:flex;align-items:center;justify-content:center;gap:3px;flex-shrink:0}
.g-live-mark i{width:6px;height:6px;border-radius:50%;background:var(--accent-m);animation:g-points 1.2s infinite}
.g-live-mark i:nth-child(2){animation-delay:.2s}
.g-live-mark i:nth-child(3){animation-delay:.4s}
.g-activity-bar.offline .g-live-mark{background:var(--gris)}
.g-activity-bar.offline .g-live-mark i{background:var(--icone);animation:none}
.g-activity-copy{flex:1 1 220px;min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:0 4px}
.g-activity-text{color:var(--doux);overflow-wrap:anywhere}
.g-activity-time{color:var(--pale);font-variant-numeric:tabular-nums;white-space:nowrap}
.g-live-action{min-height:44px;padding:0 4px;font-size:14px;font-weight:600;color:var(--accent-m);white-space:nowrap}
.g-live-action:hover{color:var(--accent-fonce)}

/* Le champ où l'on écrit à l'agent. */
#gComposer{flex-shrink:0}
.g-composer{margin-top:8px;border:1px solid var(--filet);border-radius:16px;background:var(--carte);box-shadow:0 1px 2px rgba(23,23,28,.04);display:flex;flex-direction:column}
.g-composer:focus-within{border-color:var(--accent-m);box-shadow:0 0 0 3px var(--accent-fond)}
.g-composer textarea{display:block;width:100%;min-height:84px;max-height:260px;resize:vertical;margin:0;padding:16px 18px 8px;border:0;border-radius:16px 16px 0 0;background:transparent;box-shadow:none;color:var(--encre);font-size:15px;line-height:1.5}
.g-composer textarea:focus,.g-composer textarea:focus-visible{outline:none;box-shadow:none}
.g-composer textarea::placeholder{color:var(--pale)}
.g-composer-pied{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:8px 12px 12px 18px}
.g-composer-note{flex:1 1 200px;font-size:13px;color:var(--pale)}
.g-shortcut{font:12px var(--mono);color:var(--pale);white-space:nowrap}
.g-page .btn.g-envoyer{min-height:40px;padding:0 16px;border:0;border-radius:10px;background:var(--encre);color:var(--carte);font-size:14px;font-weight:700;gap:8px}
.g-page .btn.g-envoyer:hover{background:var(--encre-2)}
.g-composer:not(form){padding:16px 18px;gap:12px}
.g-composer:not(form)>p{font-size:14px;color:var(--doux)}
.g-composer:not(form) .row{margin:0;gap:10px;flex-wrap:wrap}
.g-composer:not(form) .btn{min-height:44px}
.g-composer+.g-composer{margin-top:10px}

/* Le rail : l'accès au suivi détaillé, puis quatre cartes lues dans la mission. */
.g-rail{flex:1 1 300px;max-width:340px;min-width:0;display:flex;flex-direction:column;gap:16px}
#gRailCartes{display:flex;flex-direction:column;gap:16px}
.g-carte-rail{border:1px solid var(--filet);border-radius:14px;background:var(--carte);padding:16px 18px;display:flex;flex-direction:column;gap:12px;min-width:0}
.g-carte-rail-tete{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.g-carte-rail-tete h2{margin:0;font-size:14px;font-weight:700;color:var(--encre)}
.g-carte-rail-tete span{font-size:12px;color:var(--pale);text-align:right}
.g-carte-rail :is(ol,ul){list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14px}
.g-carte-rail li{display:flex;gap:10px;align-items:flex-start;min-width:0;overflow-wrap:anywhere}
.g-rail-plan li{color:var(--doux)}
.g-rail-plan li.run{color:var(--encre);font-weight:600}
.g-rail-plan li.wait{color:var(--pale)}
.g-rail-plan li.muet,.g-rail-plan li.skip{color:var(--pale)}
.g-rail-plan-etat{font-size:.85em;color:var(--pale)}
.g-rail-verifs{gap:8px!important}
.g-rail-verifs li{color:var(--encre-2)}
.g-rail-verifs li.wait{color:var(--pale)}
.g-rond{width:18px;height:18px;margin-top:1px;border-radius:50%;border:2px solid var(--vide);box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-size:11px;font-weight:700;line-height:1}
.g-rond.petit{width:16px;height:16px;border-width:1.5px;margin-top:2px}
.g-rond.done{border:0;background:var(--succes-fond);color:var(--succes)}
.g-rond.fail{border:0;background:var(--echec-fond);color:var(--echec)}
.g-rond.run{border-color:var(--accent-m)}
.g-rond.run i{width:6px;height:6px;border-radius:50%;background:var(--accent-m)}
.g-carre{flex-shrink:0;margin-top:6px;width:8px;height:8px;border-radius:2px;background:var(--ecrit-marque)}
.g-rail-changes li{color:var(--encre-2)}
.g-rail-changes li.run .g-carre{background:var(--accent-m)}
.g-rail-changes li.fail .g-carre{background:var(--echec)}
.g-rail-changes li.unknown .g-carre{background:var(--icone)}
.g-rail-changes code,.g-rail-note code{font:13px var(--mono)}
.g-rail-note,.g-rail-vide{font-size:13px;color:var(--pale)}
.g-rail-machines li{align-items:center!important;flex-wrap:wrap;gap:4px 10px!important}
.g-rail-machines strong{font-weight:600;color:var(--encre)}
.g-rail-machines code{font:12.5px var(--mono);color:var(--pale)}
.g-point{width:8px;height:8px;border-radius:50%;background:var(--vide);flex-shrink:0}
.g-point.vu{background:var(--succes)}
.g-rail-quand{font-size:12px;color:var(--pale);white-space:nowrap}
.g-follow{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--filet);border-radius:12px;background:var(--carte);color:var(--accent-fonce);font-size:14px;font-weight:600;text-align:left}
.g-follow:hover{background:var(--repli)}
.g-follow.ouvert .g-trait{transform:rotate(180deg)}

/* Le suivi détaillé (actions, tests, sources, journal), dans le rail. */
.g-inspector{display:flex;flex-direction:column;min-width:0;border:1px solid var(--filet);border-radius:14px;background:var(--carte);overflow:hidden}
.g-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px 10px}
.g-eyebrow{display:block;margin-bottom:4px;font-size:11px;font-weight:650;letter-spacing:.08em;color:var(--pale)}
.g-inspector h2{margin:0;font-size:16px;letter-spacing:-.01em}
.g-icon-button{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;color:var(--doux)}
.g-icon-button:hover{background:var(--gris);color:var(--encre)}
.g-inspector-tabs{display:flex;gap:2px;padding:0 10px;border-bottom:1px solid var(--filet);flex-shrink:0}
.g-inspector-tabs button{flex:1;min-height:40px;padding:8px 4px;font-size:13px;color:var(--doux);border-bottom:2px solid transparent}
.g-inspector-tabs button[aria-pressed=true]{color:var(--accent-fonce);border-color:var(--accent-m);font-weight:600}
.g-inspector-body{padding:16px 18px;font-size:14px;min-width:0}
.g-inspector-intro h3{font-size:15px;margin:0 0 6px;font-weight:600}
.g-inspector-intro p{font-size:13px;color:var(--doux);line-height:1.6;margin:0 0 12px}
.g-inspector progress{display:block;appearance:none;width:100%;height:4px;border:0;border-radius:4px;overflow:hidden;background:var(--gris);accent-color:var(--accent-m);margin:12px 0 16px}
.g-inspector progress::-webkit-progress-bar{background:var(--gris)}
.g-inspector progress::-webkit-progress-value{background:var(--accent-m);border-radius:4px}
.g-inspector .tiny{font-size:12px}
.g-plan{list-style:none;padding:0;margin:0}
.g-plan li{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--filet-2);font-size:14px;line-height:1.55;color:var(--encre)}
.g-plan li:last-child{border:0}
.g-plan-mark{width:21px;height:21px;margin-top:1px;border:1px solid var(--vide);border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:11px;color:var(--doux)}
.g-plan .done .g-plan-mark{background:var(--succes-fond);color:var(--succes);border-color:transparent}
.g-plan .run .g-plan-mark{color:var(--accent-m);border:2px solid var(--accent-m)}
.g-plan .fail .g-plan-mark{background:var(--echec-fond);color:var(--echec);border-color:transparent}
.g-plan-state{display:block;font-size:12px;color:var(--doux);margin-top:2px}
.g-plan .run .g-plan-state{color:var(--accent-fonce)}
.g-plan-updated{font-size:12px;line-height:1.6;color:var(--doux);margin:14px 0}
.g-context-note{font-size:13px;line-height:1.6;padding:10px 12px;background:var(--ecrit-fond);border-radius:8px;color:var(--ecrit)}
.g-objective,.g-technical-history{border-top:1px solid var(--filet);margin-top:16px;padding-top:14px;font-size:13px;color:var(--doux)}
.g-objective>summary,.g-technical-history>summary{cursor:pointer;font-weight:600;min-height:32px}
.g-objective p{font-size:14px;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--encre-2)}
.g-technical-history .g-act-detail,.g-technical-history .g-act-carte{margin-top:8px}
.g-phase{border-bottom:1px solid var(--filet);padding:12px 0}
.g-phase>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;min-height:32px}
.g-phase>summary::-webkit-details-marker{display:none}
.g-phase>summary strong{font-size:14px}
.g-phase>summary:after{content:'+';font-size:16px;color:var(--doux)}
.g-phase[open]>summary:after{content:'−'}
.g-phase .g-event-mark{width:24px;height:24px;display:grid;place-items:center;background:var(--accent-fond);border-radius:8px;flex-shrink:0;color:var(--accent-m)}
.g-phase .g-event-mark .ico{width:14px;height:14px}
.g-phase-note{margin:8px 0 0;font-size:12px;line-height:1.6}
.g-phase-body{margin:12px 0 0}
.g-page .g-check-list{list-style:none;margin:10px 0 0;padding:0}
.g-page .g-check-list li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;font-size:13px;line-height:1.6;color:var(--encre);overflow-wrap:anywhere;border-bottom:1px solid var(--filet-2)}
.g-page .g-check-list li:last-child{border:0}
.g-page .tk{flex-shrink:0;width:16px;height:16px;margin-top:3px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700;line-height:1}
.tk.ok{background:var(--green-bg);color:var(--green)}
.tk.ko{background:var(--red-bg);color:var(--red)}
.tk.go{background:var(--accent-soft);border:2px solid var(--accent)}
.tk.wait{border:1px solid var(--line-strong)}
.g-line{width:100%}
.g-line>summary{display:flex;gap:9px;align-items:flex-start;cursor:pointer;list-style:none}
.g-line>summary::-webkit-details-marker{display:none}
.g-line .g-task-content{margin:10px 0 6px;border-left:2px solid var(--filet);padding-left:12px}
.g-line .kv{grid-template-columns:1fr;gap:4px;font-size:12px}
.g-line .kv dd{margin-bottom:6px;overflow-wrap:anywhere;text-align:left}
.g-step-empty{padding:12px 0;font-size:13px;color:var(--doux);line-height:1.6}
.g-page .cardlink{padding:12px;border-color:var(--filet);border-radius:10px}
.g-page .cardlink strong{font-size:14px}
.g-page .cardlink small{font-size:12px;color:var(--doux);overflow-wrap:anywhere}

/* Le compte rendu de l'agent, dans son groupe. */
.g-report .g-qui span{font-weight:600;color:var(--accent-fonce)}
.g-result{margin:0}
.g-result .g-md{margin-left:0;font-size:15px}
.g-report-more{margin-top:4px}
.g-page .g-report-more>summary{cursor:pointer;color:var(--doux);font-size:14px;min-height:32px}
.g-report-tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.g-report-tools .btn{min-height:36px;font-size:13px;padding:6px 12px;background:var(--gris);border-color:transparent;color:var(--encre-2)}
.g-sources{list-style:none;margin:10px 0 4px;padding:0}.g-sources li{padding:4px 0;font-size:15px}
/* Le bilan de sortie (spec du 2026-10-05, §8) : un encadré dans la page de mission. */
.g-bilan{border:1px solid var(--line);border-left:4px solid var(--amber);border-radius:12px;padding:14px 16px;margin:0;background:var(--surface);font-size:14px}
.g-bilan.regle,.g-bilan.information{border-left-color:var(--line-strong)}
.g-bilan-titre{display:block;margin-bottom:6px}
/* Le nom de la famille tel que le serveur l’écrit, sans capitales forcées : innerText et la copie suivent text-transform. */
.g-bilan-famille h4{margin:12px 0 4px;font-size:12px;letter-spacing:.04em}
.g-bilan-ligne{padding:8px 0;border-top:1px solid var(--line)}
.g-bilan-ligne.reglee .g-bilan-phrase{text-decoration:line-through;opacity:.75}

/* Le suivi du gardien reste en phrases, dans la mission : le cadre d'une carte qui attend l'opérateur. */
.g-gardien{border:1.5px solid var(--accent-m);border-radius:14px;padding:16px 18px;margin:0;background:var(--carte);box-shadow:var(--ombre-carte);font-size:15px}
.g-gardien h3{margin:0 0 10px}.g-remede{padding:12px 0;border-top:1px solid var(--filet-2)}
.g-remede:first-child{border-top:0;padding-top:0}
.g-remede p{margin:0 0 10px}.g-gardien summary{cursor:pointer;margin-top:12px}
.g-remede>p.tiny:first-child{display:inline-flex;padding:4px 10px;border-radius:999px;background:var(--accent-fond);color:var(--accent-fonce);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.g-leve{background:var(--green-bg);border-left:3px solid var(--green);border-radius:6px;padding:8px 12px}
.g-leve strong{color:var(--green)}
/* « Atténué » (14/10) : le constat tient encore — l’en-tête en ambre, jamais en vert, la liste à faire dessous. */
.g-attenue{background:var(--amber-bg);border-left:3px solid var(--amber);border-radius:6px;padding:8px 12px}
.g-attenue .g-md{margin-left:0}.g-attenue .g-md strong,.g-attenue>p>strong{color:var(--amber)}
.g-neutre{background:var(--soft);border-left:3px solid var(--muted);border-radius:6px;padding:8px 12px}
.g-neutre .g-md{margin-left:0}.g-neutre>p>strong{color:var(--muted)}

/* « Derniers échanges » : du nouveau est arrivé plus bas pendant qu'on lit plus haut. Juste au-dessus du dock. */
.g-latest{position:absolute;right:0;top:-40px;z-index:20;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;background:var(--encre);color:var(--carte);font-size:13px;font-weight:600;box-shadow:0 6px 20px rgba(23,23,28,.18)}

/* 14/10 : l'arrivée ne part plus d'une opacité nulle — un onglet en arrière-plan fige l'animation à sa première image, et le fil restait blanc. */
@keyframes g-arrive{from{transform:translateY(4px)}to{transform:none}}
.g-new{animation:g-arrive .16s ease-out}
body.reduce .g-new{animation:none}
@keyframes g-pouls{0%,100%{box-shadow:0 0 0 4px var(--accent-halo)}50%{box-shadow:0 0 0 2px var(--accent-halo)}}
@keyframes g-respire{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}
@keyframes g-points{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.g-new{animation:none}.g-act-expand,.g-commande>summary .g-trait{transition:none}.g-pense.en-cours .g-md>:last-child::after,.g-live-mark i,.g-act.run .g-act-mark i,.g-heading-status.work i{animation:none}.g-live-mark i{opacity:.7}}
body.reduce .g-live-mark i,body.reduce .g-act.run .g-act-mark i,body.reduce .g-heading-status.work i{animation:none}

/* Grand écran : le rail reste à côté de la conversation pendant qu'on la lit. */
@media(min-width:1240px){.g-rail{position:sticky;top:24px;max-height:calc(100dvh - 64px - 27px - 56px - 48px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}}
@media(max-width:1000px){.g-topbar{padding:0 24px}.g-wrap{padding-left:24px;padding-right:24px}#gNotice{width:calc(100% - 48px)}.g-rail{max-width:none;flex-basis:100%}}
/* Téléphone : tout s'empile, gouttières de 16 px, aucune barre horizontale. */
@media(max-width:720px){.g-topbar{padding:0 16px;gap:8px}.g-wrap{padding-left:16px;padding-right:16px}#gNotice{width:calc(100% - 32px)}
 .g-tete{padding-top:20px;gap:12px}.g-corps{padding-top:20px;padding-bottom:32px;gap:24px}.g-titre{font-size:26px}
 .g-ariane-sep,.g-ariane-ici,.g-depuis{display:none}.g-etat{flex:1 1 auto;justify-content:flex-end}
 .g-bouton{padding:0 10px}.g-bouton-texte{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
 .g-moi,.g-groupe,.g-note{gap:10px}.g-seule{padding-left:0}.g-gestes-note{text-align:left;flex-basis:100%}
 .g-carte-tete{padding:14px 14px 0}.g-carte-corps{padding:10px 14px 14px}.g-page .mrow .mlabel{flex-basis:100%}
 .g-composer-pied{padding-left:14px}.g-shortcut{display:none}.g-composer textarea{min-height:64px}}
/* Creation and mission list. */
.g-intro{padding:30px;background:linear-gradient(130deg,var(--accent-faint),var(--surface))}
.g-intro .heroemblem{margin:0 0 15px}
.g-intro p{max-width:760px;line-height:1.9;color:var(--sub);margin:12px 0 20px}
.g-advanced{border-top:1px solid var(--line);margin:18px 0;padding-top:14px}
.g-advanced>summary{cursor:pointer;font-size:12px;font-weight:550}
#agentDialog form{display:flex;flex-direction:column;min-height:0;overflow:hidden}
#agentDialog .dialogbody{flex:1}
#agentDialog textarea[name=scope]{min-height:330px;font-family:var(--mono);font-size:11px}
.g-missions{display:flex;flex-direction:column;gap:8px}
.g-mission{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:15px 18px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}
.g-mission:hover{background:var(--soft);border-color:var(--line-strong)}
.g-mission strong{display:block;font-size:13px;font-weight:620;margin-bottom:3px}
.g-mission-line{display:block;font-size:12px;color:var(--sub);margin-bottom:4px}
.g-mission-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--line-strong)}
.g-mission.yours{border-color:#d6ac5488;background:var(--amber-bg)}
.g-mission.yours .g-mission-dot{background:var(--amber);box-shadow:0 0 0 4px #d6ac5433}
.g-mission.yours .g-mission-line{color:var(--amber);font-weight:600}
.g-mission.yours.erreur .g-mission-dot{background:var(--red);box-shadow:0 0 0 4px #d9505033}
.g-mission.yours.erreur .g-mission-line{color:var(--red)}
.g-mission.live .g-mission-dot{background:var(--accent);animation:shimmer 1.6s ease-in-out infinite}
.g-mission.done .g-mission-dot{background:var(--green)}
.g-mission>.ico{color:var(--muted);flex-shrink:0}
.g-mission.done .g-mission-dot.off{background:var(--line-strong)}
/* La fenêtre « État de la mission » et ses blocs (hors de la page : elle garde la palette de l'application). */
.g-goal{font-size:14px;white-space:pre-wrap;line-height:1.8;color:var(--ink);margin:12px 0 20px}
.g-status-title{display:flex;align-items:center;gap:9px}
.g-status-detail>summary{cursor:pointer;font-size:13px;margin:12px 0}
#agentDialog .gstate{display:block}
#agentDialog .g-phase{border-bottom:1px solid var(--line);padding:14px 0}
#agentDialog .g-phase>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}
#agentDialog .g-phase .g-event-mark{width:28px;height:28px;display:grid;place-items:center;background:var(--accent-soft);border-radius:9px;color:var(--accent)}
#agentDialog .g-phase-body{margin:14px 0 0}
#agentDialog .g-md{font-size:14px;line-height:1.7}
.g-launch{border:1px solid var(--line-strong);border-radius:10px;padding:12px;margin-top:14px;background:var(--surface)}
.g-launch>summary{font-size:13px;font-weight:600;cursor:pointer;color:var(--accent)}
.g-launch .row{gap:8px;align-items:center;flex-wrap:wrap}
.g-cmd{display:block;width:100%;min-width:0;overflow-wrap:anywhere;white-space:normal;padding:8px 10px;border-radius:8px;background:var(--soft);border:1px solid var(--line);font:11px/1.7 var(--mono)}
/* 17/10 : le refus d'une fenêtre se lit à côté du bouton qui l'a déclenché, sur sa propre ligne du pied, et non plus en
   bas du corps, hors de vue. Sans machine cochée, la liste des machines s'encadre. Sous la liste, pourquoi une case
   s'est cochée d'elle-même (un nom de machine, un site, une application que l'objectif cite). */
#agentDialog .dialogfoot{flex-wrap:wrap}
#agentDialog #gModalError{flex-basis:100%;margin:0 0 4px;line-height:1.5;font-size:12px}
#agentDialog #gModalError:empty{display:none}
#agentDialog .targetchecks.g-manque{border-color:var(--red);box-shadow:0 0 0 3px var(--red-bg)}
#agentDialog .g-cochees .g-cochee{line-height:1.6}

/* Le tableau des missions (22/10) : À faire, En cours, Terminé ; chaque carte porte son identifiant. */
.g-tableau-outils{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:18px 0 12px}
.g-tableau-outils input{flex:0 1 340px;min-width:200px}
.g-tableau{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:start}
.g-colonne{background:var(--soft,#F0F4FA);border-radius:14px;padding:12px;min-height:240px;display:flex;flex-direction:column;gap:6px}
.g-colonne-tete{display:flex;align-items:center;gap:8px}
.g-colonne-tete h2{margin:0;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.g-colonne .g-missions{display:flex;flex-direction:column;gap:8px;margin-top:4px}
.g-colonne .g-mission{width:100%;box-sizing:border-box}
.g-vide{padding:18px 4px;text-align:center}
.g-refs{display:flex;gap:6px;margin-bottom:3px}
.g-ref{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--accent)}
.g-ref.inc{color:var(--red)}
.g-mission-dot.inc{background:var(--red)}
.g-incident{cursor:default;text-align:left}
.g-incident-gestes{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.g-mission[hidden]{display:none}
@media (max-width:1000px){.g-tableau{grid-template-columns:1fr}}

/* 28/10 : une commande libre non prouvée en lecture seule se dit en gris, sans l'alerte d'une écriture. */
.g-ecrit-sur.neutre{background:var(--hover,#f1f2f6);color:var(--muted,#71778b);font-weight:500}

/* 01/11 (prod) : couleur de criticité d'une carte d'incident du tableau — rouge, ambre, ou neutre. */
.g-incident.grav-red{border-color:#bb425266;background:var(--red-bg)}
.g-incident.grav-red .g-mission-dot{background:var(--red);box-shadow:0 0 0 4px #d9505033}
.g-incident.grav-amber{border-color:#d6ac5466;background:var(--amber-bg)}
.g-incident.grav-amber .g-mission-dot{background:var(--amber);box-shadow:0 0 0 4px #d6ac5433}
.g-incident.grav-outline .g-mission-dot{background:var(--muted)}
