@layer modules{
  /* ── Studio (vue projet plein cadre) ── */
  body.in-detail .col-report{display:none}
  body.in-detail .col-profile{display:none}
  body.in-detail .split{grid-template-columns:1fr}
  .studio{max-width:none}
  .studio-head{display:flex;align-items:center;gap:var(--sp-14);margin-bottom:var(--sp-18);padding-bottom:var(--sp-18);
    border-bottom:1px solid var(--line)}
  .studio-head .picon{width:46px;height:46px;border-radius:var(--radius);flex:none;
    box-shadow:var(--elev-1)}
  .sh-txt{flex:1;min-width:0}
  .sh-name{font-size:var(--fs-lg);font-weight:var(--fw-bold);display:flex;align-items:center;gap:var(--sp-8);flex-wrap:wrap;letter-spacing:-.015em;line-height:1.1}
  .ptarget{display:flex;align-items:center;gap:var(--sp-6) var(--sp-14);flex-wrap:wrap;margin-top:var(--sp-4);margin-bottom:var(--sp-10)}
  .ptarget .phost+.phost{position:relative}
  .ptarget .phost+.phost::before{content:'';position:absolute;left:-8px;top:50%;width:3px;height:3px;
    border-radius:50%;background:var(--mut2);transform:translateY(-50%);opacity:.5}
  a.phost{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);
    color:var(--mut);text-decoration:none;transition:color .15s}
  a.phost:hover{color:var(--accent)}
  a.phost svg.ic{width:11px;height:11px;flex:none;opacity:.55}
  a.phost:hover svg.ic{opacity:1}
  .phost.none{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-sm);color:var(--mut2);font-style:italic}
  /* Rangée de compléments actifs : puces teintées, lift au survol */
  .studio-head .pplugs{gap:var(--sp-6)}
  /* Ici la teinte RESTE : une seule ligne de compléments, dans l'en-tête d'UNE
     création, ne concurrence aucune liste. Le fond teinté est reposé
     localement depuis que `.pplug` se tient en gris dans les rangées de
     l'accueil (la couleur y arrive au survol, par `--pc`). */
  .studio-head .pplug{width:25px;height:25px;border-radius:var(--radius);cursor:default;
    background:color-mix(in srgb,currentColor 14%,transparent);
    box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 20%,transparent);
    transition:transform .12s,box-shadow .12s,border-color .12s}
  .studio-head .pplug:hover{transform:translateY(-1px);
    box-shadow:var(--elev-1);
    border-color:color-mix(in srgb,currentColor 50%,var(--line2))}
  /* Actions d'en-tête (Cockpit / partager / éditer) */
  .sh-acts .mini{padding:var(--sp-6) var(--sp-12);font-size:var(--fs-sm);font-weight:var(--fw-medium);border-radius:var(--radius)}
  .sh-acts .mini.live-btn{padding-left:var(--sp-10)}

  /* ── Panneau latéral de sections (remplace la barre d'onglets) ── */
  .studio-body{display:grid;grid-template-columns:204px minmax(0,1fr);gap:var(--sp-22);align-items:start}
  /* Même DA que le panneau des Paramètres (.set-nav) : carte flottante sans
     filet (l'ombre suffit à la détacher du fond), pastille pleine sur l'item
     actif plutôt qu'une teinte - une seule recette de navigation latérale.
     Qualifié par `.studio-body` : `.snav` tout court est AUSSI le nom de la
     nav sociale de l'accueil (19-social.css, filet + fond carte assumés là-bas)
     - homonymie fortuite. Sans le qualificatif, celle-ci gagnait la cascade
     (chargée après) et réintroduisait le filet qu'on vient d'enlever ici. */
  .studio-body .snav{position:sticky;top:80px;display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-10);
    background:var(--bg2);border:0;border-radius:var(--radius);box-shadow:var(--elev-1)}
  .sni{display:flex;align-items:center;gap:var(--sp-8);width:100%;text-align:left;background:transparent;
    border:none;border-radius:var(--radius);padding:var(--sp-6) var(--sp-8);color:var(--txt);font-weight:var(--fw-regular);font-size:var(--fs-sm)}
  .sni:hover{background:var(--line2);border-color:transparent;color:var(--txt)}
  .sni.on{background:var(--accent);color:var(--on-solid);font-weight:var(--fw-regular)}
  .sni svg.ic{width:15px;height:15px;color:var(--mut2)}
  .sni.on svg.ic{color:var(--on-solid)}
  .sni .sni-l{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sni .sni-pic{display:inline-flex;flex:none}
  .sni .sni-pic svg.ic{color:currentColor}
  .snav-grp{margin-top:var(--sp-4)}
  .snav-grp summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:var(--sp-6);
    font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--mut2);text-transform:uppercase;letter-spacing:.07em;
    padding:var(--sp-6) var(--sp-8) var(--sp-4);user-select:none}
  .snav-grp summary::-webkit-details-marker{display:none}
  .snav-grp summary:hover{color:var(--mut)}
  .snav-car{margin-left:auto;display:inline-flex;transition:transform .15s}
  .snav-car svg.ic{width:11px;height:11px}
  .snav-grp[open] .snav-car{transform:rotate(90deg)}
  .snav-foot{margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--line2)}
  .snav-sep{height:1px;background:var(--line2);margin:var(--sp-8) var(--sp-6) var(--sp-4)}
  @media(max-width:760px){
    .studio-body{grid-template-columns:1fr}
    .snav{position:static;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--sp-2)}
    /* <details> ignore display:contents → groupe rendu en rangée de ses entrées */
    .snav-grp{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2);margin:0}
    .snav-grp summary{display:none}
    .sni{width:auto}
    .snav-foot{margin:0;padding:0;border:0;display:flex}
    .snav-sep{display:none}
  }

  /* Segment Éditeur / Render - toggle (réutilisé par les modes du CDC) */
  .tab-seg{display:inline-flex;align-items:center;gap:var(--sp-2);align-self:center;margin:0 var(--sp-4) var(--sp-4);padding:var(--sp-2);
    background:var(--card2);border:1px solid var(--line);border-radius:var(--radius)}
  .tab-seg.on{border-color:var(--accent)}
  .seg-btn{background:transparent;border:none;border-radius:var(--radius-sm);padding:var(--sp-4) var(--sp-12);color:var(--mut);
    font-weight:var(--fw-medium);white-space:nowrap;transition:background .12s,color .12s}
  .seg-btn:hover{color:var(--txt)}
  .seg-btn.on{background:var(--accent);color:var(--on-solid)}
  .tabpane{min-height:300px}

  /* Carte « environnement local » - compacte (config + CTA, pas une cible de déploiement) */
  .local-card{background:var(--card2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-8) var(--sp-10);margin-bottom:var(--sp-16)}
  .lc-top{display:flex;align-items:center;gap:var(--sp-8);min-width:0}
  .lc-url{color:var(--link);font-size:var(--fs-sm);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42%}
  .lc-url:hover{text-decoration:underline} .lc-url.muted{color:var(--mut2)}
  .lc-git{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-xs);color:var(--mut);font-family:var(--font-mono);white-space:nowrap}
  .lc-git svg.ic{width:13px;height:13px;color:var(--mut)} .lc-branch{color:var(--txt)}
  .lc-dirty{color:var(--warn);font-weight:var(--fw-strong)}
  .lc-status{font-size:var(--fs-xs);font-weight:var(--fw-strong);color:var(--mut2);white-space:nowrap}
  .lc-status.ok{color:var(--ok)} .lc-status.err{color:var(--err)} .lc-status.warn{color:var(--warn)}
  .lc-acts{display:flex;gap:var(--sp-4);flex:none}
  .lc-meta{margin-top:var(--sp-6);font-size:var(--fs-xs);color:var(--mut2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  @media(max-width:620px){ .lc-url{max-width:none} .lc-git,.lc-status{display:none} }
  .ov-sec{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--mut);text-transform:uppercase;letter-spacing:.05em;margin:var(--sp-2) 0 var(--sp-8)}
  /* Vue d'ensemble - tuiles de stats + accès rapide */
  .ov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:var(--sp-10)}
  .ov-tile{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);text-align:left;
    background:var(--card2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-10) var(--sp-12);
    cursor:pointer;transition:border-color .12s,background .12s}
  .ov-tile.static{cursor:default}
  button.ov-tile:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,var(--card2))}
  .ovt-ic{color:var(--mut)} .ovt-ic svg.ic{width:17px;height:17px;display:block}
  button.ov-tile:hover .ovt-ic{color:var(--accent)}
  .ovt-n{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--txt);line-height:1.15}
  .ovt-l{font-size:var(--fs-xs);color:var(--mut)}
  /* Mockups d'appareils */
  .ov-devices{display:grid;grid-template-columns:1fr 156px;gap:var(--sp-12);align-items:end;margin-bottom:var(--sp-2)}
  @media(max-width:700px){.ov-devices{grid-template-columns:1fr}}
  .ovd-browser{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card2)}
  .ovd-chromebar{display:flex;align-items:center;gap:var(--sp-6);background:var(--bg2);border-bottom:1px solid var(--line);padding:var(--sp-6) var(--sp-10);min-height:32px}
  .ovd-dot{width:9px;height:9px;border-radius:50%;flex:none;background:var(--line2)}
  .ovd-dot:nth-child(1){background:#ff5f57}.ovd-dot:nth-child(2){background:#febc2e}.ovd-dot:nth-child(3){background:#28c840}
  .ovd-addr{flex:1;font-size:var(--fs-2xs);font-family:var(--font-mono);color:var(--mut2);background:var(--bg);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .ovd-screen{background:var(--bg2);position:relative;overflow:hidden}
  .ovd-screen.dsk{height:210px}
  .ovd-screen img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}
  .ovd-skel{position:absolute;inset:0;display:flex;flex-direction:column;gap:var(--sp-8);padding:var(--sp-14);background:var(--bg2)}
  .ovd-skel-bar{height:9px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--line2) 70%,var(--bg2));animation:ov-pulse 1.5s ease-in-out infinite}
  .ovd-skel-bar.w80{width:80%}.ovd-skel-bar.w55{width:55%}.ovd-skel-bar.w35{width:35%}.ovd-skel-bar.w70{width:70%}
  @keyframes ov-pulse{0%,100%{opacity:.4}50%{opacity:1}}
  .ovd-nosnap{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);color:var(--mut2);font-size:var(--fs-xs)}
  .ovd-nosnap svg.ic{width:26px;height:26px;opacity:.25}
  .ovd-right{display:flex;flex-direction:column;gap:var(--sp-10)}
  .ovd-tablet{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card2)}
  .ovd-tb-top{height:18px;background:var(--bg2);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}
  .ovd-cam{width:5px;height:5px;border-radius:50%;background:var(--line2)}
  .ovd-tb-screen{height:115px;background:var(--bg2);overflow:hidden;position:relative}
  .ovd-tb-bot{height:10px;background:var(--bg2);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center}
  .ovd-hbar{width:26px;height:3px;border-radius:var(--radius-xs);background:var(--line2)}
  .ovd-phone{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:var(--card2)}
  .ovd-ph-top{height:15px;background:var(--bg2);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center}
  .ovd-island{width:22px;height:6px;border-radius:var(--radius-xs);background:var(--line2)}
  .ovd-ph-screen{height:115px;background:var(--bg2);overflow:hidden;position:relative}
  .ovd-ph-bot{height:12px;background:var(--bg2);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:center}
  /* ── Env rows compactes ── */
  .ov-env-rows{background:var(--card2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
  .ov-env-row2{position:relative;display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-8) var(--sp-12) var(--sp-8) var(--sp-14);min-width:0;
    transition:background .12s}
  .ov-env-row2:hover{background:color-mix(in srgb,var(--accent) 4%,var(--card2))}
  .ov-env-row2+.ov-env-row2{border-top:1px solid var(--line)}
  .ov-env-row2::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;
    background:var(--erst,transparent)}
  .ov-env-row2[data-state=ok],.ov-env-row2[data-state=local]{--erst:var(--ok)}
  .ov-env-row2[data-state=warn]{--erst:var(--warn)}
  .ov-env-row2[data-state=muted]{--erst:var(--line2)}
  .ov-er-name{font-size:var(--fs-md);font-weight:var(--fw-strong);color:var(--txt);white-space:nowrap;flex:none}
  .ov-er-url{font-size:var(--fs-xs);font-family:var(--font-mono);color:var(--mut2);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1;text-decoration:none}
  .ov-er-url:not(.muted):hover{color:var(--accent);text-decoration:underline}
  .ov-er-st{font-size:var(--fs-xs);font-weight:var(--fw-strong);white-space:nowrap;flex:none}
  .ov-er-st.ok{color:var(--ok)}.ov-er-st.warn{color:var(--warn)}.ov-er-st.muted{color:var(--mut2)}
  /* Pastille de statut de déploiement */
  .ov-er-pill{display:inline-flex;align-items:center;gap:var(--sp-6);flex:none;white-space:nowrap;
    font-size:var(--fs-xs);font-weight:var(--fw-strong);padding:var(--sp-2) var(--sp-10);border-radius:var(--radius-pill);
    color:var(--mut2);background:var(--line2)}
  .ov-er-pill i{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
  .ov-er-pill.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 13%,transparent)}
  .ov-er-pill.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}
  .ov-er-pill.muted{color:var(--mut);background:var(--line2)}
  .ov-er-acts{display:flex;align-items:center;gap:var(--sp-4);flex:none;margin-left:auto}
  .ov-er-acts .mini.icon-only{padding:var(--sp-4);width:28px;height:28px;justify-content:center}
  /* Action de ligne : jamais un aplat d'accent. Une liste de quatre
     environnements affichait quatre boutons violets pleins - l'œil ne savait
     plus où se poser. L'accent teinté garde l'affordance et rend le plein
     violet à ce qui est vraiment principal (le CTA de la page). */
  .ov-er-acts .mini.primary{background:color-mix(in srgb,var(--accent) 13%,transparent);
    border-color:color-mix(in srgb,var(--accent) 30%,transparent);color:var(--accent)}
  .ov-er-acts .mini.primary:hover{background:var(--accent);border-color:var(--accent);color:var(--on-solid)}
  /* Statut local (rempli par localPing) en pastille discrète - le libellé i18n porte déjà la puce ● */
  #lc-status.lc-status{flex:none;display:inline-flex;align-items:center;gap:var(--sp-4);white-space:nowrap;
    font-size:var(--fs-xs);font-weight:var(--fw-strong);padding:var(--sp-2) var(--sp-10);border-radius:var(--radius-pill);background:var(--line2)}
  #lc-status.lc-status.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 13%,transparent)}
  #lc-status.lc-status.err{color:var(--err);background:color-mix(in srgb,var(--err) 13%,transparent)}
  #lc-status.lc-status.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 14%,transparent)}
  /* En-tête de section avec étiquette d'état */
  .ov-sec-row{display:flex;align-items:center;gap:var(--sp-10);margin:0 0 var(--sp-8)}
  .ov-sec-row .ov-sec{margin:0}
  .ov-sec-tag{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-2xs);font-weight:var(--fw-strong);
    padding:var(--sp-2) var(--sp-8);border-radius:var(--radius-pill);letter-spacing:.01em;text-transform:none}
  .ov-sec-tag i{width:5px;height:5px;border-radius:50%;background:currentColor}
  .ov-sec-tag.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}
  .ov-sec-tag.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 13%,transparent)}
  .ov-sec-tag.muted{color:var(--mut);background:var(--line2)}
  /* ── Plugin widgets ── */
  .ov-plug-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:var(--sp-8)}
  .ov-plug-widget{display:flex;flex-direction:column;align-items:center;gap:var(--sp-6);
    padding:var(--sp-14) var(--sp-10) var(--sp-12);background:var(--card2);border:1px solid var(--line);
    border-radius:var(--radius);cursor:pointer;text-align:center;
    transition:border-color .15s,background .15s}
  .ov-plug-widget:hover{border-color:var(--pw-col,var(--accent));
    background:color-mix(in srgb,var(--pw-col,var(--accent)) 8%,var(--card2))}
  .ov-pw-ic{width:36px;height:36px;display:flex;align-items:center;justify-content:center;
    border-radius:var(--radius);background:color-mix(in srgb,var(--pw-col,var(--accent)) 14%,transparent);
    color:var(--pw-col,var(--accent))}
  .ov-pw-ic svg.ic{width:18px;height:18px}
  .ov-pw-name{font-size:var(--fs-xs);font-weight:var(--fw-strong);color:var(--txt);line-height:1.3;
    max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ov-pw-badge{font-size:var(--fs-2xs);font-weight:var(--fw-strong);color:var(--ok);
    background:color-mix(in srgb,var(--ok) 13%,transparent);padding:var(--sp-1) var(--sp-6);border-radius:var(--radius-modal)}

  /* ── Overview widget cards ── */
  .ov-widgets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-10)}
  .ovw-card{background:var(--card2);border:1px solid var(--line);border-radius:var(--radius);min-height:132px;
    display:flex;flex-direction:column;overflow:hidden}
  .ovw-head{display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-10) var(--sp-12) var(--sp-8);
    border-bottom:1px solid var(--line)}
  .ovw-ic{width:28px;height:28px;display:flex;align-items:center;justify-content:center;
    border-radius:var(--radius);background:color-mix(in srgb,var(--wc,var(--accent)) 15%,transparent);
    color:var(--wc,var(--accent));flex:none}
  .ovw-ic svg.ic{width:15px;height:15px}
  .ovw-title{font-size:var(--fs-sm);font-weight:var(--fw-strong);color:var(--txt);flex:1;min-width:0;
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ovw-open{padding:var(--sp-2) var(--sp-4);margin-left:auto;flex:none;color:var(--mut)}
  .ovw-body{padding:var(--sp-10) var(--sp-12);flex:1;display:flex;flex-direction:column;gap:var(--sp-6);font-size:var(--fs-sm)}
  .ovw-foot{padding:var(--sp-8) var(--sp-12);border-top:1px solid var(--line);display:flex;gap:var(--sp-6);flex-wrap:wrap}
  .ovw-foot:empty{display:none}
  /* ── Mini-composer du widget Copilote (chat direct dans la Vue d'ensemble) ── */
  .ov-widgets-grid .ovw-card[id^="ovw-copilote-"]{grid-column:1/-1;order:-1}
  .cwm{display:flex;flex-direction:column;gap:var(--sp-8)}
  .cwm-chips{display:flex;flex-wrap:wrap;gap:var(--sp-6)}
  .cwm-chips:empty{display:none}
  .cwm-chip{display:inline-flex;align-items:center;gap:var(--sp-6);max-width:170px;padding:var(--sp-2) var(--sp-4);
    border:1px solid var(--line);border-radius:var(--radius);background:var(--bg2);font-size:var(--fs-xs)}
  .cwm-chip img{width:22px;height:22px;border-radius:var(--radius-sm);object-fit:cover;flex:none;background:var(--card)}
  .cwm-chip-ico{width:22px;height:22px;border-radius:var(--radius-sm);display:grid;place-items:center;flex:none;background:var(--card);color:var(--mut)}
  .cwm-chip-ico svg.ic{width:12px;height:12px}
  .cwm-chip-n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--txt)}
  .cwm-chip-x{border:0;background:transparent;color:var(--mut);font-size:var(--fs-base);line-height:var(--lh-flat);cursor:pointer;padding:0 var(--sp-1);flex:none}
  .cwm-chip-x:hover{color:var(--txt)}
  .cwm-input{width:100%;box-sizing:border-box;resize:none;border:1px solid var(--line);border-radius:var(--radius);
    background:var(--bg);color:var(--txt);padding:var(--sp-8) var(--sp-10);min-height:48px;max-height:140px;overflow-y:auto;
    font:13px/1.5 ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    transition:border-color .12s,box-shadow .12s}
  .cwm-input:focus{outline:none;border-color:var(--accent);
    box-shadow:var(--focus)}
  .cwm-input::placeholder{color:var(--mut2)}
  .cwm-bar{display:flex;align-items:center;gap:var(--sp-6)}
  .cwm-hint{font-size:var(--fs-2xs);color:var(--mut2);user-select:none;letter-spacing:.01em}
  .cwm-clip{display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:var(--radius);
    border:1px solid var(--line);background:var(--card);color:var(--mut);cursor:pointer;transition:all .12s}
  .cwm-clip:hover{color:var(--txt);border-color:var(--mut2);background:var(--line2)}
  .cwm-clip svg.ic{width:16px;height:16px}
  .cwm-grow{flex:1}
  .cwm-send{display:grid;place-items:center;width:32px;height:32px;padding:0;border-radius:var(--radius);
    border:1px solid var(--accent);background:var(--accent);color:var(--on-solid);cursor:pointer;transition:all .12s}
  .cwm-send:hover{background:var(--accent-h);border-color:var(--accent-h)}
  .cwm-send:disabled{opacity:.5;cursor:default}
  .cwm-send svg{width:17px;height:17px;display:block}

  /* ── Widgets Réseaux sociaux & Figma : état connexion / vignettes ── */
  /* État vide : CTA de connexion centré */
  .ovw-connect{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
    text-align:center;gap:var(--sp-2);padding:var(--sp-6) var(--sp-4) var(--sp-2)}
  .ovw-connect-ic{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--radius);margin-bottom:var(--sp-4);
    background:color-mix(in srgb,var(--cc,var(--accent)) 14%,transparent);color:var(--cc,var(--accent))}
  .ovw-connect-ic svg{width:22px;height:22px;display:block}
  .ovw-connect-t{font-size:var(--fs-sm);font-weight:var(--fw-strong);color:var(--txt);margin:0}
  .ovw-connect-d{font-size:var(--fs-xs);color:var(--mut);margin:0;line-height:1.45}
  .ovw-connect-btn{margin-top:var(--sp-10)}
  .ovw-connect-btn svg{vertical-align:-.15em}
  /* Bouton de connexion aux couleurs de la marque (--cc), ex. bleu Facebook */
  .ovw-connect-btn.brand{background:var(--cc);border-color:var(--cc);color:var(--on-solid)}
  .ovw-connect-btn.brand:hover{filter:brightness(1.07)}
  .ovw-connect-btn.brand svg{color:var(--on-solid)}
  .ovw-foot .mini svg{vertical-align:-.15em}
  /* Dernière publication (socialmedia) */
  .ovw-last{display:flex;align-items:center;gap:var(--sp-8);width:100%;text-align:left;padding:var(--sp-6);
    border:1px solid var(--line);border-radius:var(--radius);background:var(--card);cursor:pointer;
    transition:border-color .12s,background .12s}
  .ovw-last:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--card))}
  .ovw-thumb{position:relative;width:46px;height:46px;flex:none;border-radius:var(--radius);overflow:hidden;
    background:var(--bg2);display:grid;place-items:center}
  .ovw-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .ovw-thumb-fb{display:none;color:var(--mut2)}
  .ovw-thumb-fb svg.ic{width:18px;height:18px}
  .ovw-thumb.noimg img{display:none}
  .ovw-thumb.noimg .ovw-thumb-fb{display:block}
  .ovw-last-meta{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
  .ovw-last-net{display:flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-2xs);font-weight:var(--fw-strong);color:var(--mut)}
  .ovw-last-net i{width:7px;height:7px;border-radius:50%;flex:none}
  .ovw-last-txt{font-size:var(--fs-sm);color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* KPIs version compacte */
  .ovw-kpis-sm .ovw-kpi strong{font-size:var(--fs-base)}
  .ovw-kpis-sm .ovw-kpi span{font-size:var(--fs-2xs)}
  /* Vignettes Figma */
  .ovw-fig-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6)}
  .ovw-fig-thumb{display:flex;flex-direction:column;gap:0;padding:0;border:1px solid var(--line);
    border-radius:var(--radius);overflow:hidden;background:var(--card);cursor:pointer;text-align:left;transition:border-color .12s}
  .ovw-fig-thumb:hover{border-color:var(--accent)}
  .ovw-fig-thumb img{width:100%;height:56px;object-fit:cover;display:block;background:var(--bg2)}
  .ovw-fig-ph{height:56px;display:grid;place-items:center;color:var(--mut2);background:var(--bg2);font-size:var(--fs-lg)}
  .ovw-fig-name{font-size:var(--fs-2xs);color:var(--txt);padding:var(--sp-4) var(--sp-6) var(--sp-4);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* Modal détail publication */
  .ovp-media{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:var(--sp-6);margin-bottom:var(--sp-10)}
  .ovp-media img{width:100%;border-radius:var(--radius);display:block}
  .ovp-text{font-size:var(--fs-md);line-height:1.6;color:var(--txt);white-space:pre-wrap;margin:0}
  .ovp-tags{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-8)}
  .ovp-tags span{font-size:var(--fs-xs);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);padding:var(--sp-2) var(--sp-8);border-radius:var(--radius-pill)}
  .ovp-foot{margin-top:var(--sp-10);font-size:var(--fs-xs);color:var(--mut);font-variant-numeric:tabular-nums}
  /* Skeleton loader */
  .ovw-loading .ovw-body{justify-content:center}
  .ovw-skel{height:10px;border-radius:var(--radius-sm);background:var(--line2);
    animation:ovw-pulse 1.4s ease-in-out infinite;width:80%}
  .ovw-skel-s{width:55%;margin-top:var(--sp-4)}
  @keyframes ovw-pulse{0%,100%{opacity:.35}50%{opacity:.8}}
  /* Widget content */
  .ovw-kpis{display:flex;gap:0;margin:0 -2px}
  .ovw-kpi{flex:1;text-align:center;padding:var(--sp-4) var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-1)}
  .ovw-kpi strong{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--txt);line-height:var(--lh-flat)}
  .ovw-kpi span{font-size:var(--fs-2xs);color:var(--mut);font-weight:var(--fw-medium)}
  .ovw-kpi-warn strong{color:var(--warn)}.ovw-kpi-ok strong{color:var(--ok)}
  .ovw-evlist{display:flex;flex-direction:column;gap:var(--sp-4)}
  .ovw-ev{display:flex;align-items:baseline;gap:var(--sp-4);font-size:var(--fs-sm)}
  .ovw-ev-d{font-size:var(--fs-2xs);font-weight:var(--fw-bold);color:var(--mut);flex:none;font-family:var(--font-mono)}
  .ovw-ev-ic{font-size:var(--fs-2xs);color:var(--mut2);flex:none}
  .ovw-ev-t{color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
  .ovw-badge{font-size:var(--fs-2xs);font-weight:var(--fw-strong);padding:var(--sp-1) var(--sp-8);border-radius:var(--radius-modal);flex:none}
  .ovw-badge.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 12%,transparent)}
  .ovw-badge.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 12%,transparent)}
  .ovw-hint{font-size:var(--fs-xs);color:var(--mut);margin:0}.ovw-hint.warn{color:var(--warn)}
  .ovw-desc{font-size:var(--fs-sm);color:var(--mut);margin:0;line-height:var(--lh-normal)}
  .ovw-empty{font-size:var(--fs-sm);color:var(--mut2);font-style:italic;margin:0}
  .ovw-methods{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-2)}
  .ovw-method{font-size:var(--fs-2xs);font-weight:var(--fw-bold);padding:var(--sp-1) var(--sp-6);border-radius:var(--radius-xs);font-family:var(--font-mono)}
  .ovw-method-get{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
  .ovw-method-post{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}
  .ovw-method-put,.ovw-method-patch{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}
  .ovw-method-delete{background:color-mix(in srgb,var(--err) 15%,transparent);color:var(--err)}

  /* ── Vue d'ensemble : split view ── */
  /* `1fr` vaut minmax(auto,1fr) : une URL longue dans la barre d'aperçu
     imposait sa largeur minimale et poussait toute la colonne hors du canal.
     minmax(0,1fr) autorise la colonne à se réduire, l'ellipse fait le reste. */
  .ov-split{display:grid;grid-template-columns:minmax(0,500px) minmax(0,1fr);gap:var(--sp-20);min-height:0;align-items:start}
  @media(max-width:960px){.ov-split{grid-template-columns:1fr}}
  .ov-left{display:flex;flex-direction:column;gap:var(--sp-14);min-width:0}
  .ov-right{position:sticky;top:16px;min-width:0}
  .ov-sec{font-size:var(--fs-xs);font-weight:var(--fw-bold);color:var(--mut);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--sp-8)}
  /* KPI cards */
  .ovk-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-8)}
  .ovk-card{background:var(--card2);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-12) var(--sp-14);
    display:flex;flex-direction:column;gap:var(--sp-2);text-align:left;cursor:default;transition:border-color .12s}
  button.ovk-card{cursor:pointer} button.ovk-card:hover{border-color:var(--accent)}
  .ovk-val{font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--txt)}
  .ovk-val.accent{color:var(--accent)} .ovk-val.warn{color:var(--warn)} .ovk-val.muted{color:var(--mut)}
  .ovk-label{font-size:var(--fs-xs);color:var(--mut);font-weight:var(--fw-medium)}
  .ovk-sub{font-size:var(--fs-xs);color:var(--mut2);margin-top:var(--sp-1)}
  .ovk-score{font-size:var(--fs-lg);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}
  .ovk-score.ovk-ok{color:var(--ok)} .ovk-score.ovk-warn{color:var(--warn)} .ovk-score.ovk-err{color:var(--err)}
  /* Statut env explicite */
  .ovk-card-wide{grid-column:1/-1}
  .ovk-envst-list{display:flex;flex-direction:column;gap:var(--sp-4)}
  .ovk-envst-row{display:flex;align-items:center;gap:var(--sp-6)}
  .ovk-dot{width:7px;height:7px;border-radius:50%;flex:none}
  .ovk-dot-ok{background:var(--ok)} .ovk-dot-warn{background:var(--warn)} .ovk-dot-muted{background:var(--mut2)}
  .ovk-envst-name{font-weight:var(--fw-bold);font-size:var(--fs-md);flex:none}
  .ovk-envst-lbl{font-size:var(--fs-sm);font-weight:var(--fw-medium)}
  .ovk-envst-lbl.ok{color:var(--ok)} .ovk-envst-lbl.warn{color:var(--warn)} .ovk-envst-lbl.muted{color:var(--mut2)}
  /* Carte env+comp fusionnée */
  .ovk-merged-val{display:flex;align-items:baseline;gap:var(--sp-4);font-size:var(--fs-lg);font-weight:var(--fw-bold);line-height:var(--lh-tight);color:var(--txt)}
  .ovk-merged-sep{font-size:var(--fs-base);font-weight:var(--fw-regular);color:var(--mut2)}
  /* Compléments chips */
  .ov-plug-chips{display:flex;flex-wrap:wrap;gap:var(--sp-6)}
  .ov-plug-chip{display:inline-flex;align-items:center;gap:var(--sp-6);padding:var(--sp-4) var(--sp-12);border-radius:var(--radius-pill);
    font-size:var(--fs-sm);font-weight:var(--fw-strong);border:1px solid var(--line);background:var(--card2);cursor:pointer;
    color:var(--txt);transition:border-color .12s,background .12s}
  .ov-plug-chip:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card2))}
  .ov-plug-chip svg.ic{width:14px;height:14px}
  /* Render iframe droite */
  .ovr-panel{background:var(--card2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column}
  .ovr-topbar{background:var(--bg2);border-bottom:1px solid var(--line);padding:var(--sp-8) var(--sp-10);display:flex;flex-direction:column;gap:var(--sp-6)}
  .ovr-chromebar{display:flex;align-items:center;gap:var(--sp-6)}
  .ovr-addr{flex:1;font-size:var(--fs-2xs);font-family:var(--font-mono);color:var(--mut2);background:var(--bg);border-radius:var(--radius-sm);padding:var(--sp-2) var(--sp-8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .ovr-env-toggle{display:flex;gap:var(--sp-4);flex-wrap:wrap}
  .ovr-env-btn{font-size:var(--fs-xs);padding:var(--sp-2) var(--sp-10);border-radius:var(--radius-pill);border:1px solid var(--line);background:none;cursor:pointer;color:var(--mut);transition:all .12s}
  .ovr-env-btn.on{background:var(--accent);border-color:var(--accent);color:var(--on-solid);font-weight:var(--fw-strong)}
  .ovr-env-btn:hover:not(.on){border-color:var(--accent);color:var(--accent)}
  /* ── Aperçu mobile : un téléphone, coupé par le bas du poste ──────────
     Le poste laisse dépasser l'appareil : on le voit posé sur la page plutôt
     qu'enfermé dans une vignette. `overflow:hidden` fait la coupe, la hauteur
     du poste décide donc de ce qu'on montre. */
  .ovr-stage{position:relative;background:transparent;overflow:hidden;
    height:clamp(320px,58vh,560px);display:flex;justify-content:center;
    padding-inline:6px;container-type:inline-size}
  .ovr-phone{
    /* Points logiques d'un iPhone moderne : le rendu voit vraiment 393 px de
       large, comme un appareil réel, et l'échelle n'est qu'un zoom optique. */
    --sw:393px; --sh:852px; --bezel:10px;
    /* Jamais plus large que son poste. En unités de CONTENEUR, pas en `%` :
       `--pw` sert à calculer l'échelle (`--s`), et un pourcentage dans une
       division n'est pas résoluble - le facteur devenait invalide et le rendu
       tombait à 30 px de large. `cqw` est une longueur, elle se divise. */
    --pw:240px;
    --s:calc((var(--pw) - var(--bezel)*2)/var(--sw));
    position:relative;flex:none;width:var(--pw);
    height:calc(var(--sh)*var(--s) + var(--bezel)*2);
    /* Décalé : l'appareil n'est pas au garde-à-vous au centre. */
    margin-top:var(--sp-14);transform:translateX(4px) rotate(1.2deg);
    border-radius:calc(54px*var(--s) + var(--bezel));
    padding:var(--bezel);
    /* Châssis titane : deux dégradés croisés, une arête claire en haut à
       gauche, une ombre longue et basse comme un objet posé. */
    background:
      linear-gradient(147deg,#f0f1f3 0%,#a9adb4 14%,#5c6067 38%,#3d4046 52%,#6f747c 74%,#c9cdd3 92%,#8b9097 100%);
    box-shadow:
      0 2px 1px rgba(255,255,255,.42) inset,
      0 -2px 2px rgba(0,0,0,.30) inset,
      0 34px 60px -22px rgba(0,0,0,.62),
      0 8px 18px -8px rgba(0,0,0,.45)}
  /* Largeur réelle : bornée par le poste. Déclarée APRÈS le repli `--pw:240px`
     (même spécificité : c'est l'ordre qui tranche). */
  @supports (width:1cqw){ .ovr-phone{--pw:min(268px,100cqw)} }
  html[data-theme=light] .ovr-phone{box-shadow:
      0 2px 1px rgba(255,255,255,.5) inset,0 -2px 2px rgba(0,0,0,.22) inset,
      0 28px 48px -22px rgba(31,35,40,.38),0 6px 14px -8px rgba(31,35,40,.28)}
  /* Boutons latéraux : ils tiennent le volume de l'objet, sinon le cadre
     ressemble à un simple rectangle arrondi. */
  .ovr-phone>span[class^=ovr-btn]{position:absolute;background:
      linear-gradient(180deg,#9aa0a7,#5d6169 40%,#43464c);border-radius:var(--radius-xs)}
  .ovr-btn-silence{left:-2px;top:calc(96px*var(--s));width:3px;height:calc(30px*var(--s));}
  .ovr-btn-vol-up{left:-2px;top:calc(150px*var(--s));width:3px;height:calc(62px*var(--s));}
  .ovr-btn-vol-dn{left:-2px;top:calc(224px*var(--s));width:3px;height:calc(62px*var(--s));}
  .ovr-btn-power{right:-2px;top:calc(186px*var(--s));width:3px;height:calc(96px*var(--s));}
  /* L'écran : noir sous le rendu, pour que le blanc d'une page ne fuie pas
     dans le rayon des coins pendant le chargement. */
  .ovr-screen{position:relative;width:100%;height:100%;overflow:hidden;background:#000;
    border-radius:calc(54px*var(--s));
    box-shadow:0 0 0 1px rgba(0,0,0,.65),0 0 0 2px rgba(255,255,255,.06) inset}
  .ovr-island{position:absolute;z-index:3;top:calc(11px*var(--s));left:50%;transform:translateX(-50%);
    width:calc(124px*var(--s));height:calc(35px*var(--s));border-radius:var(--radius-pill);background:#000;
    box-shadow:0 0 0 .5px rgba(255,255,255,.10)}
  .ovr-home{position:absolute;z-index:3;bottom:calc(8px*var(--s));left:50%;transform:translateX(-50%);
    width:calc(140px*var(--s));height:calc(5px*var(--s));border-radius:var(--radius-pill);
    background:rgba(255,255,255,.55);mix-blend-mode:difference}
  .ovr-skel{position:absolute;inset:0;overflow:hidden;background:var(--bg2);
    display:flex;align-items:center;justify-content:center;pointer-events:none;
    transition:opacity .35s ease;opacity:1}
  .ovr-skel::after{content:'Chargement de l\2019 aper\E7 u\2026';color:var(--mut2);font-size:var(--fs-sm);font-weight:var(--fw-medium)}
  .ovr-skel-shine{position:absolute;inset:0;
    background:linear-gradient(105deg,transparent 30%,color-mix(in srgb,var(--line2) 60%,transparent) 50%,transparent 70%);
    transform:translateX(-100%);animation:ovr-shine 1.6s ease-in-out infinite}
  @keyframes ovr-shine{to{transform:translateX(100%)}}
  .ovr-iframe.loaded+.ovr-skel,.ovr-iframe.loaded~.ovr-skel{opacity:0}
  .ovr-iframe{position:absolute;z-index:1;top:0;left:0;border:none;display:block;background:transparent;
    width:var(--sw);height:var(--sh);transform-origin:top left;transform:scale(var(--s))}
  .ovr-iframe.loaded{background:var(--bg2)}
  .ovr-nourl{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;gap:var(--sp-10);color:var(--mut);font-size:var(--fs-base)}
  .ovr-nourl-ic svg.ic{width:40px;height:40px;opacity:.3}
  /* Env row compact */
  .ov-env-row{display:flex;align-items:center;gap:var(--sp-8);background:var(--card2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-6) var(--sp-10);min-width:0;overflow:hidden}
  .ov-env-name{font-weight:var(--fw-strong);font-size:var(--fs-md);white-space:nowrap;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
  .ov-env-st{font-size:var(--fs-xs);font-weight:var(--fw-strong);white-space:nowrap;flex:none}
  .ov-env-st.ok{color:var(--ok)}.ov-env-st.warn{color:var(--warn)}.ov-env-st.muted{color:var(--mut2)}

  /* ── Onglet Utilisateurs (maquette collaboration) ── */
  .users{max-width:780px}
  .badge.soon{color:var(--accent);border-color:var(--accent);text-transform:uppercase;font-weight:var(--fw-bold);letter-spacing:.04em;flex:none}
  .usr-banner{display:flex;gap:var(--sp-10);align-items:flex-start;background:color-mix(in srgb,var(--accent) 7%,var(--card2));
    border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-10) var(--sp-12);font-size:var(--fs-md);color:var(--mut);line-height:var(--lh-normal);margin-bottom:var(--sp-16)}
  .usr-banner b{color:var(--txt);font-weight:var(--fw-strong)}
  .usr-head{display:flex;align-items:center;gap:var(--sp-8);margin-bottom:var(--sp-10)} .usr-head b{font-size:var(--fs-base)}
  .usr-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
  .usr-row{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-10) var(--sp-12)}
  .usr-row+.usr-row{border-top:1px solid var(--line2)}
  .usr-row.preview{opacity:.6}
  .usr-av{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;color:var(--on-solid);font-weight:var(--fw-bold);font-size:var(--fs-md)}
  .usr-id{display:flex;flex-direction:column;min-width:0;flex:1}
  .usr-name{font-weight:var(--fw-strong);font-size:var(--fs-md)}
  .usr-mail{font-size:var(--fs-xs);color:var(--mut);font-family:var(--font-mono)}
  .usr-role{font-size:var(--fs-xs);color:var(--mut);border:1px solid var(--line);border-radius:var(--radius-pill);padding:var(--sp-2) var(--sp-8);white-space:nowrap}
  .usr-envs{display:flex;gap:var(--sp-4);flex-wrap:wrap} .usr-envs .etag{font-size:var(--fs-2xs);padding:var(--sp-2) var(--sp-6)}
  .usr-soon{font-size:var(--fs-2xs);color:var(--accent);border:1px dashed var(--accent);border-radius:var(--radius-sm);padding:var(--sp-1) var(--sp-6);white-space:nowrap}
  .usr-roles{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8)}
  @media(max-width:620px){ .usr-roles{grid-template-columns:1fr} }
  .usr-role-card{background:var(--card2);border:1px solid var(--line2);border-radius:var(--radius-sm);padding:var(--sp-8) var(--sp-10)}
  .usr-role-n{display:block;font-weight:var(--fw-strong);font-size:var(--fs-sm);margin-bottom:var(--sp-2)}
  .usr-role-d{display:block;font-size:var(--fs-xs);color:var(--mut);line-height:1.45}

  /* Onglet Agents (profils d'agents) */
  .agt-row{align-items:center}
  .agt-mission{font-size:var(--fs-xs);color:var(--mut);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .agt-eng{display:inline-flex;align-items:center;gap:var(--sp-4)}
  .agt-eng-dot{width:7px;height:7px;border-radius:50%;flex:none}
  .agt-last{font-size:var(--fs-2xs);white-space:nowrap;font-variant-numeric:tabular-nums}
  .badge.b-ok{color:var(--ok);border-color:var(--ok)}
  .badge.b-na{color:var(--warn);border-color:var(--warn)}
  .badge.b-off{color:var(--mut);border-color:var(--line)}
  .agt-acts{display:flex;align-items:center;gap:var(--sp-4);flex:none}
  .agt-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card2);color:var(--mut);cursor:pointer}
  .agt-icon:hover{color:var(--txt);border-color:var(--mut)}
  .agt-icon.danger:hover{color:var(--err);border-color:var(--err)}
  .agt-icon svg{width:15px;height:15px}
  .agt-toggle{width:36px;height:20px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--card2);position:relative;cursor:pointer;flex:none;padding:0}
  .agt-toggle::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--mut);transition:all .15s}
  .agt-toggle.on{background:color-mix(in srgb,var(--accent) 30%,transparent);border-color:var(--accent)}
  .agt-toggle.on::after{left:18px;background:var(--accent)}
  /* Case « appliquer automatiquement » (modale d'agent) */
  .agt-auto{display:flex;gap:var(--sp-10);align-items:flex-start;margin-top:var(--sp-4);padding:var(--sp-10) var(--sp-12);border:1px solid var(--line);
    border-radius:var(--radius);background:var(--card2);cursor:pointer}
  .agt-auto input{margin-top:var(--sp-2);flex:none;width:16px;height:16px;accent-color:var(--accent);cursor:pointer}
  .agt-auto>span{display:flex;flex-direction:column;gap:var(--sp-2)}
  .agt-auto b{font-size:var(--fs-md)} .agt-auto .desc{font-size:var(--fs-xs);color:var(--mut);line-height:1.45;margin:0}
  /* Sélecteur d'autonomie (segmenté) */
  .agt-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-8)}
  .agt-seg-opt{display:flex;gap:var(--sp-8);align-items:flex-start;min-width:0;padding:var(--sp-10) var(--sp-10);border:1px solid var(--line);border-radius:var(--radius);
    background:var(--card2);cursor:pointer;transition:border-color .14s,background .14s}
  .agt-seg-opt:hover{border-color:var(--mut)}
  .agt-seg-opt.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--card2))}
  .agt-seg-opt input{margin-top:var(--sp-2);flex:none;width:auto;min-width:0;accent-color:var(--accent)}
  .agt-seg-opt>span{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}
  .agt-seg-opt b{font-size:var(--fs-sm)}
  .agt-seg-opt small{font-size:var(--fs-xs);color:var(--mut);line-height:1.4}
  .agt-seg-opt.dis{opacity:.55;cursor:not-allowed}
  .agt-seg-opt.dis:hover{border-color:var(--line)}
  @media (max-width:560px){ .agt-seg{grid-template-columns:1fr} }
  /* Puces de la ligne d'agent (autonome / web) */
  .agt-auto-chip{font-size:var(--fs-2xs);font-weight:var(--fw-strong);text-transform:uppercase;letter-spacing:.5px;padding:var(--sp-2) var(--sp-6);border-radius:var(--radius-pill);
    color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);
    background:color-mix(in srgb,var(--accent) 10%,transparent);white-space:nowrap;flex:none}
  .agt-auto-chip.web{color:#0ea5e9;border-color:color-mix(in srgb,#0ea5e9 40%,transparent);background:color-mix(in srgb,#0ea5e9 10%,transparent)}
  /* Configuration avancée (sources + outils) */
  .agt-adv{margin-top:var(--sp-6);border:1px solid var(--line);border-radius:var(--radius);background:var(--card2);overflow:hidden}
  .agt-adv>summary{cursor:pointer;padding:var(--sp-10) var(--sp-12);font-size:var(--fs-sm);font-weight:var(--fw-strong);color:var(--txt);list-style:none;user-select:none}
  .agt-adv>summary::-webkit-details-marker{display:none}
  .agt-adv>summary::before{content:"▸";display:inline-block;margin-right:var(--sp-6);color:var(--mut);transition:transform .15s}
  .agt-adv[open]>summary::before{transform:rotate(90deg)}
  .agt-adv-body{padding:var(--sp-4) var(--sp-12) var(--sp-12);display:flex;flex-direction:column;gap:var(--sp-12);border-top:1px solid var(--line2)}
  .agt-adv-body .agt-auto{background:var(--bg2)}
  .agt-src-row{margin-bottom:var(--sp-8);padding-bottom:var(--sp-8);border-bottom:1px dashed var(--line2)}
  .agt-src-row:last-of-type{border-bottom:0}
  .agt-src-main{display:flex;gap:var(--sp-6);align-items:center}
  .agt-src-main .agt-src-kind{flex:none;width:130px}
  .agt-src-main .agt-src-label{flex:0 1 110px;min-width:0}
  .agt-src-main .agt-src-value{flex:1 1 auto;min-width:0}
  .agt-src-row input,.agt-src-row select{padding:var(--sp-6) var(--sp-8);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg2);color:var(--txt);font:12.5px inherit;outline:none}
  .agt-src-row input:focus,.agt-src-row select:focus{border-color:var(--accent)}
  .agt-src-test{flex:none}
  .agt-src-sub{display:flex;align-items:center;gap:var(--sp-10);margin-top:var(--sp-4);padding-left:var(--sp-2);min-height:16px}
  .agt-src-fetch{display:inline-flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-xs);color:var(--mut);cursor:pointer;flex:none}
  .agt-src-fetch input{width:auto;accent-color:var(--accent)}
  .agt-src-res{font-size:var(--fs-xs);color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .agt-src-res.ok{color:var(--ok)} .agt-src-res.err{color:var(--err)}
  /* Galerie de recettes d'agents */
  .agt-tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:var(--sp-10)}
  .agt-tpl{display:flex;align-items:flex-start;gap:var(--sp-10);text-align:left;padding:var(--sp-12);border:1px solid var(--line);
    border-radius:var(--radius);background:var(--card2);color:var(--txt);cursor:pointer;transition:border-color .14s,transform .14s,box-shadow .14s;position:relative}
  .agt-tpl:hover{border-color:var(--accent);transform:translateY(-1px);box-shadow:var(--elev-2)}
  .agt-tpl-ic{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--radius);color:var(--on-solid);flex:none}
  .agt-tpl-ic svg{width:18px;height:18px}
  .agt-tpl-meta{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;flex:1}
  .agt-tpl-name{font-size:var(--fs-md);font-weight:var(--fw-strong);line-height:var(--lh-tight)}
  .agt-tpl-desc{font-size:var(--fs-xs);color:var(--mut);line-height:1.4}
  .agt-tpl-tags{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-top:var(--sp-2)}
  .agt-tpl-model,.agt-tpl-auto{font-size:var(--fs-2xs);padding:var(--sp-2) var(--sp-6);border-radius:var(--radius-pill);border:1px solid var(--line);color:var(--mut2);white-space:nowrap}
  .agt-tpl-auto{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
  .agt-tpl-go{font-size:var(--fs-xs);color:var(--accent);align-self:center;white-space:nowrap;opacity:0;transition:opacity .14s}
  .agt-tpl:hover .agt-tpl-go{opacity:1}
  /* Tiroir d'exécution d'un agent */
  .agt-back{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:60;opacity:0;transition:opacity .18s}
  .agt-back.on{opacity:1}
  .agt-drawer{position:fixed;top:0;right:0;height:100%;width:min(660px,96vw);background:var(--bg);
    border-left:1px solid var(--line);z-index:61;display:flex;flex-direction:column;transform:translateX(102%);
    transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:var(--elev-2)}
  .agt-drawer.on{transform:none}
  /* Header */
  .agt-drawer-head{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-12) var(--sp-14);border-bottom:1px solid var(--line2);flex-shrink:0}
  .agt-dh-badge{width:36px;height:36px;border-radius:var(--radius);display:grid;place-items:center;font-size:var(--fs-lg);flex-shrink:0}
  .agt-dh-info{flex:1;min-width:0}
  .agt-dh-info .name{font-size:var(--fs-base);font-weight:var(--fw-strong);line-height:var(--lh-tight);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .agt-dh-info .sub{font-size:var(--fs-xs);color:var(--mut);display:flex;align-items:center;gap:var(--sp-4);margin-top:var(--sp-2)}
  .agt-dh-dot{width:6px;height:6px;border-radius:50%;background:var(--mut2);flex-shrink:0;transition:background .2s}
  .agt-dh-dot.run{background:var(--ok);animation:agt-pulse 1.3s infinite}
  @keyframes agt-pulse{0%,100%{opacity:1}50%{opacity:.22}}
  .agt-head-actions{display:flex;align-items:center;gap:var(--sp-4);flex-shrink:0}
  .agt-hbtn{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius);border:1px solid var(--line);
    background:var(--card2);color:var(--mut);cursor:pointer;transition:color .12s,border-color .12s}
  .agt-hbtn:hover{color:var(--txt);border-color:var(--mut)}
  .agt-hbtn.danger:hover{color:var(--err);border-color:var(--err)}
  .agt-hbtn:disabled{opacity:.35;pointer-events:none}
  .agt-hbtn svg{width:14px;height:14px}
  /* Mission (collapsible) */
  .agt-mission-wrap{overflow:hidden;max-height:0;transition:max-height .22s ease;border-bottom:0px solid var(--line2)}
  .agt-mission-wrap.open{max-height:220px;border-bottom-width:1px}
  .agt-run-mission{font-size:var(--fs-sm);color:var(--mut);padding:var(--sp-10) var(--sp-14) var(--sp-12);background:var(--card2);line-height:1.55;max-height:200px;overflow:auto}
  .agt-run-mission-meta{font-size:var(--fs-xs);color:var(--mut2);margin-bottom:var(--sp-6);padding-bottom:var(--sp-6);border-bottom:1px solid var(--line2)}
  /* Log */
  .agt-run-log{flex:1;overflow-y:auto;padding:var(--sp-14) var(--sp-16);display:flex;flex-direction:column;gap:var(--sp-10);background:var(--bg2)}
  /* Commandes (mode Exécution - Lot 4) */
  .agt-run-cmds{border-top:1px solid var(--line);padding:var(--sp-10) var(--sp-14);max-height:46%;overflow:auto;background:var(--card2)}
  .agt-cmd-l{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--txt);word-break:break-all;flex:1}
  .agt-cmd-out{margin:var(--sp-8) 0 0;padding:var(--sp-8) var(--sp-10);background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    font:11.5px/1.5 ui-monospace,Menlo,monospace;color:var(--mut);max-height:160px;overflow:auto;white-space:pre-wrap}
  .agt-cmd-bar{display:flex;gap:var(--sp-8);margin-top:var(--sp-8)}
  .agt-run-props{border-top:1px solid var(--line);padding:var(--sp-10) var(--sp-14) var(--sp-12);max-height:44%;overflow:auto;background:var(--card2)}
  .agt-run-props-h{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.7px;color:var(--mut2);margin-bottom:var(--sp-8)}
  /* Zone saisie - même structure que le Pilote */
  .agt-run-inwrap{padding:var(--sp-10) var(--sp-12) var(--sp-12);border-top:1px solid var(--line);flex-shrink:0;background:var(--bg)}
  .agt-chat-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg2);overflow:hidden;transition:border-color .12s,box-shadow .12s}
  .agt-chat-wrap:focus-within{border-color:var(--accent);box-shadow:var(--focus)}
  /* Chips PJ - dans le wrap */
  .agt-attach-strip{display:flex;flex-wrap:wrap;gap:var(--sp-6);padding:var(--sp-8) var(--sp-8) var(--sp-2)}
  .agt-attach-strip:empty{display:none;padding:0}
  .agt-attach-chip{display:inline-flex;align-items:center;gap:var(--sp-4);padding:var(--sp-4) var(--sp-8) var(--sp-4) var(--sp-6);border-radius:var(--radius);
    background:var(--card);border:1px solid var(--line);font-size:var(--fs-sm);color:var(--txt);max-width:210px}
  .agt-attach-chip .ch-ico{font-size:var(--fs-md);line-height:var(--lh-flat);flex-shrink:0}
  .agt-attach-chip .ch-nm{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
  .agt-attach-chip .ch-rm{cursor:pointer;background:transparent;border:0;color:var(--mut);flex-shrink:0;font-size:var(--fs-base);line-height:var(--lh-flat);padding:0 var(--sp-2)}
  .agt-attach-chip .ch-rm:hover{color:var(--txt)}
  #agt-run-input{display:block;width:100%;border:0;background:transparent;resize:none;color:var(--txt);
    font:14px/1.55 inherit;padding:var(--sp-10) var(--sp-12) var(--sp-2);min-height:26px;max-height:150px;overflow-y:auto}
  #agt-run-input::placeholder{font-family:inherit;color:var(--mut2)}
  #agt-run-input:focus{outline:none}
  .agt-chat-main{display:flex;align-items:center;gap:var(--sp-4);padding:0 var(--sp-6) var(--sp-6)}
  .agt-chat-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:var(--radius);
    border:1px solid transparent;background:transparent;color:var(--mut);cursor:pointer;flex-shrink:0}
  .agt-chat-btn:hover{background:var(--card2);color:var(--txt);border-color:var(--line)}
  .agt-chat-btn input{display:none}
  .agt-chat-btn svg{width:15px;height:15px;display:block}
  .agt-chat-send{margin-left:auto}
  #agt-run-send{width:30px;height:30px;display:flex;align-items:center;justify-content:center;padding:0;
    border-radius:var(--radius);border:0;cursor:pointer;background:var(--accent);color:var(--on-solid);flex-shrink:0}
  #agt-run-send:hover{background:var(--accent-h,var(--accent))}
  #agt-run-send:disabled{opacity:.5;cursor:default}
  #agt-run-send.is-empty{opacity:.35;pointer-events:none}
  #agt-run-send svg{width:17px;height:17px;display:block}
  .agt-build-bar{align-items:center} .agt-build-bar select{flex:1;min-width:0}
  .agt-fw-bar{flex-direction:column;align-items:stretch;gap:var(--sp-8)}
  .agt-fw-row{display:flex;align-items:center;gap:var(--sp-8)}
  .agt-fw-file{display:inline-flex;align-items:center;gap:var(--sp-6);flex:none;cursor:pointer;padding:var(--sp-8) var(--sp-10);border:1px dashed var(--line);border-radius:var(--radius);color:var(--mut);font-size:var(--fs-sm);white-space:nowrap}
  .agt-fw-file:hover{border-color:var(--accent);color:var(--txt)} .agt-fw-file input{display:none} .agt-fw-file svg{width:15px;height:15px}
  .agt-fw-count{font-size:var(--fs-xs);color:var(--accent);white-space:nowrap}
  .agt-fw-row #agt-fw-hint{flex:1;min-width:0}
  .agt-fw-bar #agt-run-gen{align-self:flex-end}

  /* Onglet Compléments (extensions / plug-ins) */
  .plugins{max-width:780px}
  .cmp-head{display:flex;align-items:center;gap:var(--sp-10);margin-bottom:var(--sp-10)} .cmp-head b{font-size:var(--fs-base)}
  .cmp-count{font-size:var(--fs-xs);color:var(--mut);border:1px solid var(--line);border-radius:var(--radius-pill);padding:var(--sp-2) var(--sp-8);white-space:nowrap}
  .cmp-list{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
  .cmp-card{display:flex;align-items:center;gap:var(--sp-12);padding:var(--sp-12) var(--sp-12)}
  .cmp-card+.cmp-card{border-top:1px solid var(--line2)}
  .cmp-card.off{opacity:.62}
  .cmp-ic{width:36px;height:36px;border-radius:var(--radius);flex:none;display:grid;place-items:center;font-size:var(--fs-lg);
    background:var(--card2);border:1px solid var(--line2)}
  .cmp-ic svg.ic{width:21px;height:21px;stroke-width:1.8}
  .cmp-meta{flex:1;min-width:0}
  .cmp-l1{display:flex;align-items:baseline;gap:var(--sp-8);flex-wrap:wrap}
  .cmp-name{font-weight:var(--fw-strong);font-size:var(--fs-md)}
  .cmp-ver{font-size:var(--fs-xs);color:var(--mut);font-family:var(--font-mono)}
  .cmp-by{font-size:var(--fs-xs);color:var(--mut2)}
  .cmp-desc{font-size:var(--fs-sm);color:var(--mut);line-height:1.45;margin-top:var(--sp-2)}
  .cmp-toggle{position:relative;flex:none;width:38px;height:22px;border-radius:var(--radius-pill);border:1px solid var(--line);
    background:var(--card2);cursor:pointer;padding:0;transition:background .15s,border-color .15s}
  .cmp-toggle.on{background:var(--accent);border-color:var(--accent)}
  .cmp-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--on-solid);
    box-shadow:var(--elev-1);transition:transform .15s}
  .cmp-toggle.on .cmp-knob{transform:translateX(16px)}
  .cmp-cfg{flex:none}
  .cmp-rm{flex:none}
  .cmp-rm:hover{color:var(--err);border-color:var(--err)}
  .cmp-empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-12);text-align:center;
    border:1px dashed var(--line);border-radius:var(--radius-sm);padding:var(--sp-34) var(--sp-20);color:var(--mut);font-size:var(--fs-md)}
  .cmp-empty-ic svg{width:34px;height:34px;color:var(--mut2)}
  .cmp-loading{display:flex;align-items:center;justify-content:center;gap:var(--sp-10);padding:var(--sp-34) var(--sp-20);color:var(--mut);font-size:var(--fs-md)}
  .cmp-spin{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:rvspin .7s linear infinite}
  /* A11.4 - mini tableau de bord dépense API (pane moteur Claude) */
  .cs-spend{border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--sp-10) var(--sp-12);background:var(--card2,var(--bg2))}
  .cs-spend-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-12);font-size:var(--fs-md);padding:var(--sp-2) 0}
  .cs-spend-row span{color:var(--mut)}
  .cs-spend-row strong{font-variant-numeric:tabular-nums}
  .cs-bar{height:6px;border-radius:var(--radius-pill);background:var(--line);overflow:hidden;margin:var(--sp-4) 0 var(--sp-6)}
  .cs-bar i{display:block;height:100%;background:var(--accent);border-radius:var(--radius-pill);transition:width .3s}


  /* ── Livrables d'agents (Lot 3) : liste dans la modale MX ── */
  .agt-rep-list{display:flex;flex-direction:column;gap:var(--sp-8)}
  .agt-rep{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-8) var(--sp-10);border:1px solid var(--line);border-radius:var(--radius);background:var(--card)}
  .agt-rep-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--sp-2);text-align:left;background:none;border:0;padding:0;cursor:pointer;color:inherit}
  .agt-rep-main:hover .agt-rep-ttl{color:var(--accent)}
  .agt-rep-ttl{font-weight:var(--fw-strong);font-size:var(--fs-md)}
  .agt-rep-when{color:var(--mut);font-weight:var(--fw-regular)}
  .agt-rep-sub{font-size:var(--fs-sm);color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .agt-rep-st{font-size:var(--fs-xs);padding:var(--sp-2) var(--sp-8);border-radius:var(--radius-pill);background:var(--line);color:var(--mut);white-space:nowrap}
  .agt-rep-st.ok{background:color-mix(in srgb,var(--ok) 18%,transparent);color:var(--ok)}
  .agt-rep-st.off{background:color-mix(in srgb,var(--mut) 18%,transparent);color:var(--mut)}
  .agt-rep-st.draft{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
  .agt-rep-acts{display:flex;gap:var(--sp-4);flex-shrink:0}
  .agt-rep-view .mini{margin-bottom:var(--sp-10)}
  .agt-rep-doc{border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-14);max-height:60vh;overflow:auto;background:var(--bg)}
  .agt-rep-json{white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono);font-size:var(--fs-sm);margin:0}

  /* ── Skills : bibliothèque & attache (S0) ── */
  .agt-skill-box{display:flex;flex-direction:column;gap:var(--sp-6);max-height:220px;overflow:auto;margin-top:var(--sp-4)}
  .agt-skill-pick{display:flex;align-items:flex-start;gap:var(--sp-8);padding:var(--sp-6) var(--sp-8);border:1px solid var(--line);border-radius:var(--radius);cursor:pointer}
  .agt-skill-pick:hover{border-color:var(--accent)}
  .agt-skill-pick input{width:auto;margin-top:var(--sp-2);flex:none}
  .agt-skill-pick span{display:flex;flex-direction:column;gap:var(--sp-1);min-width:0}
  .agt-skill-pick small{color:var(--mut);font-size:var(--fs-sm)}
  .agt-skill-manage{float:right;margin-top:-2px}
  .agt-skill-tags{display:flex;flex-wrap:wrap;gap:var(--sp-4);justify-content:flex-end;max-width:40%}
  .agt-skill-tag{font-size:var(--fs-xs);padding:var(--sp-1) var(--sp-6);border-radius:var(--radius-pill);background:var(--line);color:var(--mut)}

  /* ── Skills : compteur d'usage (S4) ── */
  .agt-skill-uses{font-size:var(--fs-xs);color:var(--mut);white-space:nowrap;flex-shrink:0}

  /* ── Équipes : aperçu de l'ordre du pipeline (T2) ── */
  .agt-team-order{white-space:normal;line-height:1.7}

  /* ── Coquille unifiée Agents + Factory ── */
  .agt-fx-root{display:flex;flex-direction:column;min-height:0;height:100%}
  .agt-fx-bar{display:flex;gap:var(--sp-2);padding:var(--sp-10) var(--sp-16) 0;border-bottom:1px solid var(--line);background:var(--card2,var(--bg));flex:none}
  .agt-fx-tab{padding:var(--sp-6) var(--sp-16);border-radius:var(--radius) var(--radius) 0 0;border:1px solid transparent;border-bottom:none;font-size:var(--fs-md);font-weight:var(--fw-medium);color:var(--mut);background:none;cursor:pointer;display:flex;align-items:center;gap:var(--sp-6);transition:color .15s,background .15s}
  .agt-fx-tab svg{width:15px;height:15px;opacity:.7}
  .agt-fx-tab:hover{color:var(--txt);background:var(--line)}
  .agt-fx-tab.on{color:var(--txt);background:var(--bg,var(--card));border-color:var(--line);margin-bottom:-1px}
  .agt-fx-tab.on svg{opacity:1}
  #aft-agents,#aft-factory{flex:1;overflow:auto;min-height:0}

  /* ══ Agent Editor Drawer ══════════════════════════════════════════════════ */
  .agt-edit-overlay{position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:1900}
  .agt-edit-drawer{position:fixed;right:0;top:0;height:100vh;width:680px;max-width:96vw;
    background:var(--bg,var(--card));border-left:1.5px solid var(--line);z-index:1901;
    display:flex;flex-direction:column;transform:translateX(100%);
    transition:transform .24s cubic-bezier(.22,1,.36,1);box-shadow:var(--elev-2)}
  .agt-edit-drawer.open{transform:translateX(0)}
  .agt-ed-head{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-14) var(--sp-18);
    border-bottom:1px solid var(--line);flex-shrink:0}
  .agt-ed-back{display:flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-sm);color:var(--mut);
    background:none;border:none;cursor:pointer;padding:var(--sp-4) var(--sp-8);border-radius:var(--radius-sm)}
  .agt-ed-back:hover{background:var(--line);color:var(--txt)}
  .agt-ed-name{flex:1;font-size:var(--fs-base);font-weight:var(--fw-strong);background:none;border:none;
    color:var(--txt);padding:var(--sp-4) var(--sp-8);border-radius:var(--r,8px);outline:none;min-width:0}
  .agt-ed-name:focus{background:var(--line)}
  .agt-ed-body{flex:1;overflow-y:auto;padding:18px 20px 60px;display:flex;flex-direction:column;gap:var(--sp-20)}
  .agt-ed-sec{font-size:var(--fs-2xs);font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);text-transform:uppercase;
    color:var(--mut);margin-bottom:var(--sp-10);display:flex;align-items:center;gap:var(--sp-8)}
  .agt-ed-sec::after{content:'';flex:1;height:1px;background:var(--line)}
  .agt-ed-foot{padding:var(--sp-12) var(--sp-18);border-top:1px solid var(--line);
    display:flex;gap:var(--sp-8);justify-content:flex-end;flex-shrink:0}

  /* Visual card pickers - type */
  .agt-type-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-6)}
  .agt-type-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-4);padding:var(--sp-10) var(--sp-4) var(--sp-8);
    border:1.5px solid var(--line);border-radius:var(--r,8px);cursor:pointer;
    background:none;color:var(--txt);font-size:var(--fs-xs);line-height:var(--lh-tight);text-align:center;transition:all .13s}
  .agt-tc-icon{font-size:var(--fs-lg);line-height:var(--lh-flat)}
  .agt-type-card.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
  .agt-type-card:hover:not(.on){border-color:var(--mut)}

  /* Engine pills */
  .agt-eng-pills{display:flex;gap:var(--sp-6);flex-wrap:wrap}
  .agt-eng-pill{display:flex;align-items:center;gap:var(--sp-8);padding:var(--sp-6) var(--sp-16);
    border:1.5px solid var(--line);border-radius:var(--radius-pill);cursor:pointer;
    background:none;color:var(--txt);font-size:var(--fs-md);font-weight:var(--fw-medium);transition:all .13s}
  .agt-eng-pill.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
  .agt-eng-pill:hover:not(.on){border-color:var(--mut)}

  /* Model cards */
  .agt-model-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-6);margin-top:var(--sp-10)}
  .agt-model-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-10) var(--sp-4) var(--sp-8);
    border:1.5px solid var(--line);border-radius:var(--r,8px);cursor:pointer;
    background:none;color:var(--txt);text-align:center;transition:all .13s}
  .agt-mc-icon{font-size:var(--fs-lg);line-height:var(--lh-flat)}
  .agt-model-card b{font-size:var(--fs-xs)}
  .agt-model-card small{font-size:var(--fs-2xs);color:var(--mut);line-height:1.3}
  .agt-model-card.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
  .agt-model-card:hover:not(.on){border-color:var(--mut)}

  /* Output kind cards */
  .agt-out-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-8)}
  .agt-out-card{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-12);
    border:1.5px solid var(--line);border-radius:var(--r,8px);cursor:pointer;
    background:none;color:var(--txt);text-align:left;transition:all .13s}
  .agt-oc-icon{font-size:var(--fs-lg);line-height:var(--lh-flat)}
  .agt-out-card b{font-size:var(--fs-md)}
  .agt-out-card small{font-size:var(--fs-xs);color:var(--mut);line-height:var(--lh-snug)}
  .agt-out-card.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
  .agt-out-card:hover:not(.on){border-color:var(--mut)}

  /* Perm cards */
  .agt-perm-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-8)}
  .agt-perm-card{display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-12);
    border:1.5px solid var(--line);border-radius:var(--r,8px);cursor:pointer;
    background:none;color:var(--txt);text-align:left;transition:all .13s}
  .agt-pc-icon{font-size:var(--fs-lg);line-height:var(--lh-flat)}
  .agt-perm-card b{font-size:var(--fs-md)}
  .agt-perm-card small{font-size:var(--fs-xs);color:var(--mut);line-height:var(--lh-snug)}
  .agt-perm-card.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
  .agt-perm-card:hover:not(.on){border-color:var(--mut)}

  /* Source rows v2 (chip strip) */
  #agt_sources{display:flex;flex-direction:column;gap:var(--sp-8)}
  .agt-src-row{border:1px solid var(--line);border-radius:var(--r,8px);padding:var(--sp-10) var(--sp-12);
    display:flex;flex-direction:column;gap:var(--sp-8);background:var(--bg1,var(--card))}
  .agt-src-head{display:flex;align-items:flex-start;gap:var(--sp-8)}
  .agt-src-kind-strip{display:flex;gap:var(--sp-4);flex-wrap:wrap;flex:1}
  .agt-src-kind-chip{padding:var(--sp-2) var(--sp-10);border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--fs-xs);
    cursor:pointer;background:none;color:var(--mut);white-space:nowrap;transition:all .12s;line-height:1.6}
  .agt-src-kind-chip.on{background:var(--accent);color:var(--on-solid);border-color:var(--accent)}
  .agt-src-kind-chip:hover:not(.on){color:var(--txt);border-color:var(--txt)}
  .agt-src-inputs{display:flex;gap:var(--sp-8);align-items:flex-start}
  .agt-src-label-in{width:130px!important;flex:0 0 130px!important}
  .agt-src-val-wrap{flex:1;min-width:0}
  .agt-src-val-wrap input,.agt-src-val-wrap select{width:100%;box-sizing:border-box}
  .agt-src-footer{display:flex;align-items:center;gap:var(--sp-8)}
  .agt-src-footer .agt-src-fetch{flex:1;display:flex;align-items:center;gap:var(--sp-6);
    font-size:var(--fs-sm);color:var(--mut);cursor:pointer}
  .agt-src-footer .agt-src-fetch input{accent-color:var(--accent);width:auto}
  .agt-src-res{font-size:var(--fs-xs)}

  /* CRON box */
  .agt-cron-box{background:var(--bg1,var(--card));border:1px solid var(--line);
    border-radius:var(--r,8px);padding:var(--sp-12) var(--sp-14);display:flex;flex-direction:column;gap:var(--sp-10)}
  .agt-cron-row{display:flex;align-items:center;gap:var(--sp-10)}
  .agt-cron-label{font-size:var(--fs-md);font-weight:var(--fw-medium);flex:1}
  .agt-cron-intervals{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-2)}
  .agt-cron-chip{padding:var(--sp-4) var(--sp-12);border:1px solid var(--line);border-radius:var(--radius-pill);font-size:var(--fs-sm);
    cursor:pointer;background:none;color:var(--txt);transition:all .12s}
  .agt-cron-chip.on{background:var(--accent);color:var(--on-solid);border-color:var(--accent)}
  .agt-cron-chip:hover:not(.on){border-color:var(--mut)}

  /* Tool / capability toggle cards */
  .agt-tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8)}
  .agt-tool-card{display:flex;align-items:center;gap:var(--sp-10);padding:var(--sp-10) var(--sp-12);
    border:1.5px solid var(--line);border-radius:var(--r,8px);cursor:pointer;
    background:none;color:var(--txt);text-align:left;transition:all .13s;width:100%}
  .agt-tool-tog{width:32px;height:18px;border-radius:var(--radius-pill);background:var(--line);flex-shrink:0;
    position:relative;transition:background .15s}
  .agt-tool-tog::after{content:'';position:absolute;left:2px;top:2px;width:14px;height:14px;
    background:var(--on-solid);border-radius:50%;transition:left .15s;box-shadow:var(--elev-1)}
  .agt-tool-card.on .agt-tool-tog{background:var(--accent)}
  .agt-tool-card.on .agt-tool-tog::after{left:16px}
  .agt-tool-card b{font-size:var(--fs-md)}
  .agt-tool-card small{font-size:var(--fs-xs);color:var(--mut);display:block}

  /* Skill grid inside drawer */
  .agt-skill-grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);max-height:160px;overflow-y:auto}

  /* Factory visual upgrades */
  .fx-rev-cards,.fx-exceed-cards{display:flex;gap:var(--sp-8);margin-top:var(--sp-4)}
  .fx-rev-card,.fx-exceed-card{flex:1;display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-10) var(--sp-12);
    border:1.5px solid var(--line);border-radius:var(--r,8px);cursor:pointer;
    background:none;color:var(--txt);text-align:left;transition:all .13s}
  .fx-rev-card b,.fx-exceed-card b{font-size:var(--fs-sm)}
  .fx-rev-card small,.fx-exceed-card small{font-size:var(--fs-2xs);color:var(--mut)}
  .fx-rev-card.on,.fx-exceed-card.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent)}
  .fx-rev-card:hover:not(.on),.fx-exceed-card:hover:not(.on){border-color:var(--mut)}
  .fx-budget-row{display:flex;align-items:center;gap:var(--sp-12);margin-top:var(--sp-4)}
  .fx-budget-row input[type=range]{flex:1;accent-color:var(--accent)}
  .fx-budget-val{font-weight:var(--fw-bold);font-size:var(--fs-base);min-width:56px;text-align:right;color:var(--accent)}
  .fx-trig-chips{display:flex;gap:var(--sp-4);flex-wrap:wrap;margin-top:var(--sp-6)}
  .fx-cron-custom{margin-top:var(--sp-6)}

  /* ══ Éditeur de texte riche - WYSIWYG Word-level (52-edition-text.js) ══ */
  .etx{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--bg)}
  .etx-bar{background:var(--card);border-bottom:1px solid var(--line);flex:none;
    overflow-x:auto;scrollbar-width:none}
  .etx-bar::-webkit-scrollbar{display:none}
  .etx-toolbar{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-6);white-space:nowrap;min-width:max-content}
  .etx-sep{width:1px;height:20px;background:var(--line);margin:0 var(--sp-4);flex:none}
  .etx-btn{background:none;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;
    padding:var(--sp-2) var(--sp-6);font-size:var(--fs-sm);color:var(--txt);min-width:28px;height:26px;
    display:inline-flex;align-items:center;justify-content:center;
    transition:background .1s,border-color .1s;vertical-align:middle}
  .etx-btn:hover{background:var(--hover,color-mix(in srgb,var(--accent) 10%,transparent));border-color:var(--line)}
  .etx-btn.on{background:color-mix(in srgb,var(--accent) 18%,transparent);border-color:var(--accent);color:var(--accent)}
  .etx-sel{background:var(--input,var(--card2));border:1px solid var(--line);border-radius:var(--radius-sm);
    color:var(--txt);font-size:var(--fs-sm);padding:var(--sp-2) var(--sp-6);height:26px;cursor:pointer;outline:none}
  .etx-sel:focus{border-color:var(--accent)}

  .etx-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;
    background:var(--bg2,#f8f8f8)}
  .dark .etx-body{background:var(--bg)}
  .etx-editor{flex:1;min-height:400px;max-width:840px;width:100%;margin:var(--sp-24) auto;
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    padding:var(--sp-40) var(--sp-56);font-size:var(--fs-base);line-height:1.75;color:var(--txt);
    outline:none;box-shadow:var(--elev-1);word-break:break-word}
  .etx-editor:empty:before{content:attr(data-placeholder);color:var(--mut);pointer-events:none}
  .etx-editor h1{font-size:2em;font-weight:var(--fw-bold);line-height:var(--lh-tight);margin:.5em 0}
  .etx-editor h2{font-size:1.5em;font-weight:var(--fw-bold);line-height:1.25;margin:.6em 0}
  .etx-editor h3{font-size:1.25em;font-weight:var(--fw-strong);line-height:1.3;margin:.7em 0}
  .etx-editor h4{font-size:1.1em;font-weight:var(--fw-strong);margin:.8em 0}
  .etx-editor h5,.etx-editor h6{font-size:1em;font-weight:var(--fw-strong);margin:.8em 0}
  .etx-editor p{margin:.4em 0}
  .etx-editor blockquote{border-left:3px solid var(--accent);margin:1em 0;padding:.4em 1em;
    color:var(--mut);background:color-mix(in srgb,var(--accent) 6%,transparent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}
  .etx-editor pre.etx-pre,.etx-editor pre{background:var(--card2);border:1px solid var(--line);border-radius:var(--radius-sm);
    padding:var(--sp-14) var(--sp-18);font-family:var(--font-mono);font-size:var(--fs-md);overflow-x:auto;margin:.8em 0}
  .etx-editor code{background:var(--card2);border-radius:var(--radius-xs);padding:var(--sp-1) var(--sp-4);font-family:var(--font-mono);font-size:.9em}
  .etx-editor pre code{background:none;padding:0}
  .etx-editor a{color:var(--accent);text-decoration:underline}
  .etx-editor img{max-width:100%;border-radius:var(--radius-sm);margin:.4em 0}
  .etx-editor hr{border:none;border-top:2px solid var(--line);margin:1.4em 0}
  .etx-editor table.etx-tbl{border-collapse:collapse;width:100%;margin:.8em 0;font-size:var(--fs-base)}
  .etx-editor table.etx-tbl th,.etx-editor table.etx-tbl td{border:1px solid var(--line);padding:var(--sp-6) var(--sp-12);text-align:left}
  .etx-editor table.etx-tbl th{background:var(--card2);font-weight:var(--fw-strong)}
  .etx-editor table.etx-tbl tr:nth-child(even) td{background:color-mix(in srgb,var(--card2) 50%,transparent)}
  .etx-editor ul,.etx-editor ol{padding-left:1.8em;margin:.4em 0}
  .etx-editor li{margin:.2em 0}

  .etx-source{flex:1;width:100%;max-width:840px;margin:var(--sp-24) auto;height:100%;min-height:400px;
    background:var(--card2);border:1px solid var(--line);border-radius:var(--radius);
    padding:var(--sp-24);font-family:var(--font-mono);font-size:var(--fs-md);color:var(--txt);
    resize:none;outline:none;line-height:1.6}

  .etx-footer{display:flex;align-items:center;gap:var(--sp-12);padding:var(--sp-4) var(--sp-14);font-size:var(--fs-sm);
    color:var(--mut);background:var(--card);border-top:1px solid var(--line);flex:none}
  .etx-word-count,.etx-char-count{opacity:.75}
  .etx-foot-btn{background:none;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;
    padding:var(--sp-2) var(--sp-10);font-size:var(--fs-sm);color:var(--txt);transition:background .1s}
  .etx-foot-btn:hover{background:var(--card2)}

  /* Plein écran */
  .etx-fs{position:fixed!important;inset:0!important;z-index:1200!important;
    width:100vw!important;height:100vh!important;border-radius:0!important}
  .etx-fs .etx-editor{border-radius:0;border:none;max-width:900px;height:calc(100vh - 88px)}

  /* Responsive */
  @media(max-width:760px){
    .etx-editor{padding:var(--sp-20) var(--sp-18);margin:var(--sp-12) var(--sp-8)}
    .etx-source{margin:var(--sp-12) var(--sp-8)}
  }

}
