  /* ================================================================
     DÉCIDER — L'ATELIER DE DÉCISION
     Le seul univers où l'on PRODUIT : des vues, des analyses, une note.
     Références assumées (captures Nemar 28/07) :
       fusedash  → la structure : atelier + analyste à droite
       DataBox   → style ÉDITION : grande valeur, sparkline, SOURCE en pied
       analytics → style COCKPIT : sombre, halo
       Power BI  → style TERMINAL : dense, mono, data-first

     ⚠ LA FENÊTRE NOIRE (amendement Nemar 28/07)
     « les rectangles où il y a les graphiques, on les laisse noirs, même
     avec le fond clair ». C'est le PUITS appliqué à l'échelle de la tuile :
     la carte reste du papier, la zone de tracé est un instrument. Un
     graphique n'est pas du texte — il ne se grave pas, il s'éclaire.
     Le basculeur « Fond des vues » (html[data-fond="papier"]) permet de
     comparer avec la version tout-papier avant de trancher.
     ================================================================ */

  /* ---------- l'établi ---------- */
  .dwrap{display:grid;grid-template-columns:minmax(0,1fr) 322px;gap:var(--gap);align-items:start;}
  @media(max-width:1080px){.dwrap{grid-template-columns:1fr;}}

  /* ---------- le générateur ---------- */
  .dgen{border:1px solid var(--brd);border-radius:var(--rad);overflow:hidden;
    background:color-mix(in srgb,var(--s1) var(--glass),transparent);box-shadow:var(--relief);}
  .dgen .pad{padding:20px var(--pad);}
  .dgen-rangs{display:flex;flex-direction:column;gap:9px;}
  .dgen-rang{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
  .dgen-lb{font-family:var(--ui),monospace;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--ink3);width:82px;flex:none;}
  .dgen-rang button{font-family:var(--ui),monospace;font-size:9.5px;letter-spacing:.05em;color:var(--ink2);
    background:transparent;border:1px solid var(--brd);border-radius:99px;padding:6px 11px;
    cursor:pointer;transition:.2s var(--e);}
  .dgen-rang button:hover{border-color:var(--accT);color:var(--accT);}
  .dgen-rang button.on{background:var(--accT);color:#fff;border-color:var(--accT);}
  .dgen-rang button:disabled{opacity:.26;cursor:not-allowed;}
  html[data-theme="light"][data-univers="explorer"] .dgen-rang button.on{color:#1a1206;}

  /* le périmètre — séparateur franc : au-dessus on choisit, ici on restreint */
  .dgen-per{margin-top:14px;padding-top:14px;border-top:1px dashed var(--brd);}
  .dgen-per .dgen-rang button.on{background:var(--warn);border-color:var(--warn);color:#fff;}
  .dgen-crumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:10px;min-height:22px;}
  .dgen-crumb .cr{font-family:var(--ui),monospace;font-size:9px;letter-spacing:.05em;
    color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);
    background:color-mix(in srgb,var(--warn) 10%,transparent);
    border-radius:99px;padding:4px 9px;display:inline-flex;align-items:center;gap:6px;}
  .dgen-crumb .cr b{cursor:pointer;opacity:.7;} .dgen-crumb .cr b:hover{opacity:1;}
  .dgen-crumb .vide{font-family:var(--ui),monospace;font-size:9px;color:var(--ink3);letter-spacing:.04em;}

  .dgen-go{display:flex;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap;}
  .dgen-go button{font-family:var(--ui),monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;
    font-weight:600;color:#fff;background:var(--accT);border:1px solid var(--accT);border-radius:10px;
    padding:10px 20px;cursor:pointer;transition:.22s var(--e);}
  .dgen-go button:hover{transform:translateY(-2px);box-shadow:0 6px 18px -6px var(--accT);}
  .dgen-go .apercu{font-family:var(--ui),monospace;font-size:9.5px;color:var(--ink3);letter-spacing:.03em;}

  /* basculeur de fond — n'existe qu'en clair, là où la question se pose */
  .dfond{display:none;align-items:center;gap:5px;margin-left:auto;}
  html[data-theme="light"] .dfond{display:inline-flex;}
  .dfond span{font-family:var(--ui),monospace;font-size:8px;letter-spacing:.14em;
    text-transform:uppercase;color:var(--ink3);margin-right:3px;}
  .dfond button{font-family:var(--ui),monospace;font-size:9px;letter-spacing:.05em;color:var(--ink2);
    background:transparent;border:1px dashed var(--brd);border-radius:99px;padding:5px 10px;cursor:pointer;}
  .dfond button.on{background:var(--ink1);color:var(--s0);border-style:solid;border-color:var(--ink1);}

  /* ---------- le plan de travail ---------- */
  .dgrille{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gap);
    grid-auto-flow:dense;margin-top:var(--gap);}
  .dtile{position:relative;border:1px solid var(--brd);border-radius:var(--rad);overflow:hidden;
    background:color-mix(in srgb,var(--s1) var(--glass),transparent);box-shadow:var(--relief);
    display:flex;flex-direction:column;transition:border-color .3s var(--e);animation:dpose .5s var(--e);}
  @keyframes dpose{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
  .dtile:hover{border-color:color-mix(in srgb,var(--accT) 38%,var(--brd));}
  .sp-3{grid-column:span 3;} .sp-4{grid-column:span 4;} .sp-6{grid-column:span 6;} .sp-12{grid-column:span 12;}
  @media(max-width:1080px){.sp-3{grid-column:span 6;}.sp-4{grid-column:span 6;}}
  @media(max-width:680px){.sp-3,.sp-4,.sp-6{grid-column:span 12;}}

  .dt-h{display:flex;align-items:center;gap:8px;padding:12px 15px 0;}
  .dt-k{font-family:var(--ui),monospace;font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;
    color:var(--ink3);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .dt-k i{font-style:normal;color:var(--accT);}
  .dt-a{display:flex;gap:3px;flex:none;}
  .dt-a button{width:24px;height:24px;border-radius:7px;border:1px solid transparent;background:transparent;
    color:var(--ink3);font-size:11px;line-height:1;cursor:pointer;transition:.16s var(--e);}
  .dt-a button:hover{color:var(--accT);border-color:var(--brd);}
  .dt-t{font-family:var(--dsp),serif;font-weight:var(--dw);font-size:calc(15px*var(--fs));
    letter-spacing:-.01em;line-height:1.25;padding:6px 15px 2px;}
  .dt-per{font-family:var(--ui),monospace;font-size:8px;letter-spacing:.08em;color:var(--warn);
    padding:0 15px 2px;}
  .dt-b{padding:12px 15px 8px;flex:1;min-height:0;}
  .dt-b svg{display:block;width:100%;height:auto;overflow:visible;}
  .dt-f{font-family:var(--ui),monospace;font-size:8px;color:var(--ink3);letter-spacing:.05em;
    padding:8px 15px 11px;border-top:1px solid var(--brd2);display:flex;justify-content:space-between;
    gap:8px;flex-wrap:wrap;margin-top:auto;}

  /* ================================================================
     LA FENÊTRE NOIRE — en clair, la zone de tracé reste un instrument.
     On redonne les jetons sombres à .dt-b uniquement : l'en-tête, le
     titre et le pied restent sur le papier. La carte devient une page
     avec une fenêtre ouverte sur la machine.
     ================================================================ */
  html[data-theme="light"]:not([data-fond="papier"]) .dt-b{
    --s1:#0A0A0B;--s2:#141416;--s3:#1D1D20;
    --brd:rgba(255,255,255,.13);--brd2:rgba(255,255,255,.07);
    --ink1:#FFFFFF;--ink2:rgba(255,255,255,.66);--ink3:rgba(255,255,255,.40);
    --accT:var(--acc);--okT:var(--ok);
    background:#050506;border-radius:12px;margin:4px 12px 10px;padding:14px 14px 12px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05);}
  /* dans la fenêtre noire, plus de gravure : la lumière redevient possible */
  html[data-theme="light"]:not([data-fond="papier"]) .dt-b .dt-rang .fl{
    background:var(--acc)!important;outline:0!important;}

  /* barres horizontales — en papier, les aplats deviennent HACHURES (gravure) */
  .dt-rangs{display:flex;flex-direction:column;gap:8px;}
  .dt-rang{display:grid;grid-template-columns:minmax(72px,38%) 1fr auto;gap:9px;align-items:center;}
  .dt-rang .l{font-size:calc(11px*var(--fb));color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .dt-rang .tr{height:11px;background:var(--s2);border:1px solid var(--brd2);border-radius:3px;overflow:hidden;}
  .dt-rang .fl{display:block;height:100%;background:var(--accT);border-radius:2px;transition:width .9s var(--e);}
  html[data-theme="light"] .dt-rang .fl{background:repeating-linear-gradient(45deg,
    var(--accT) 0 2px,transparent 2px 5px);outline:1px solid var(--accT);outline-offset:-1px;}
  .dtile[data-st="cockpit"] .dt-rang .fl{background:var(--accT)!important;outline:0!important;}
  .dt-rang .v{font-family:var(--ui),monospace;font-size:10.5px;color:var(--ink1);text-align:right;white-space:nowrap;}

  /* KPI — DataBox : grande valeur + sparkline + source */
  .dt-kpi .val{font-family:var(--dsp),serif;font-weight:var(--dw);font-size:calc(34px*var(--fs));
    letter-spacing:-.03em;line-height:1;color:var(--accT);}
  .dt-kpi .sous{font-family:var(--ui),monospace;font-size:9px;color:var(--ink3);margin-top:5px;letter-spacing:.04em;}
  .dt-kpi svg{margin-top:10px;}

  .dt-b table{width:100%;border-collapse:collapse;font-family:var(--ui),monospace;font-size:11px;}
  .dt-b th{text-align:left;font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);
    font-weight:500;padding:7px 8px;border-bottom:1px solid var(--brd);}
  .dt-b td{padding:7px 8px;border-bottom:1px solid var(--brd2);color:var(--ink2);}
  .dt-b td.n{text-align:right;color:var(--ink1);}
  .dt-b tr{cursor:pointer;}
  .dt-b tbody tr:hover td{background:color-mix(in srgb,var(--accT) 13%,transparent);color:var(--ink1);}

  .dt-leg{display:flex;flex-direction:column;gap:7px;justify-content:center;}
  .dt-leg div{display:flex;align-items:center;gap:8px;font-size:calc(11px*var(--fb));color:var(--ink2);cursor:pointer;}
  .dt-leg div:hover{color:var(--ink1);}
  .dt-leg i{width:10px;height:10px;border-radius:3px;flex:none;}
  .dt-leg em{font-style:normal;margin-left:auto;font-family:var(--ui),monospace;font-size:10px;color:var(--ink1);}
  .dt-duo{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:center;}

  /* ---------- LES TROIS STYLES — fonds diversifiés ---------- */
  /* COCKPIT — noir profond, halo : l'instrument, partout et toujours */
  .dtile[data-st="cockpit"]{--s1:#0A0A0B;--s2:#141416;--s3:#1D1D20;
    --brd:rgba(255,255,255,.12);--brd2:rgba(255,255,255,.07);
    --ink1:#FFFFFF;--ink2:rgba(255,255,255,.62);--ink3:rgba(255,255,255,.38);
    --accT:var(--acc);--okT:var(--ok);--glass:100%;--relief:none;
    background:radial-gradient(120% 100% at 50% 0%,#0E0E11,#050506 62%);
    border-color:rgba(255,255,255,.12);}
  .dtile[data-st="cockpit"] .dt-b{background:transparent!important;margin:0!important;
    padding:12px 15px 8px!important;box-shadow:none!important;border-radius:0!important;}
  .dtile[data-st="cockpit"] .dt-t{text-shadow:0 0 22px color-mix(in srgb,var(--acc) 35%,transparent);}
  .dtile[data-st="cockpit"]:after{content:'';position:absolute;inset:0;pointer-events:none;
    background:radial-gradient(90% 60% at 50% 0%,color-mix(in srgb,var(--acc) 9%,transparent),transparent 70%);}
  /* ÉDITION — la carte DataBox : papier, source en avant, fenêtre noire */
  .dtile[data-st="edition"] .dt-f{color:var(--ink2);}
  .dtile[data-st="edition"] .dt-f b{font-weight:600;color:var(--accT);}
  /* TERMINAL — Power BI : dense, mono, ardoise */
  .dtile[data-st="terminal"]{border-radius:6px;}
  .dtile[data-st="terminal"] .dt-t{font-family:var(--ui),monospace;font-weight:600;
    font-size:12px;letter-spacing:.02em;text-transform:uppercase;}
  .dtile[data-st="terminal"] .dt-kpi .val{font-family:var(--ui),monospace;font-weight:600;letter-spacing:-.01em;}
  .dtile[data-st="terminal"] .dt-rang .l{font-family:var(--ui),monospace;font-size:10px;}
  html[data-theme="light"]:not([data-fond="papier"]) .dtile[data-st="terminal"] .dt-b{
    background:#0C1016;border-radius:4px;}

  /* ================================================================
     RUBY — LE CAHIER D'ANALYSE (refonte : ce n'était pas un chatbot)
     Pas de bulles, pas de conversation qui défile : un cahier de
     constats numérotés, sourcés, chacun ouvrable en vue. Ruby écrit
     dans la marge du dossier — elle ne « discute » pas.
     ================================================================ */
  .rb{position:sticky;top:78px;border:1px solid var(--brd);border-radius:var(--rad);overflow:hidden;
    background:color-mix(in srgb,var(--s1) var(--glass),transparent);box-shadow:var(--relief);
    display:flex;flex-direction:column;max-height:calc(100vh - 100px);}
  .rb-tete{display:flex;align-items:center;gap:10px;padding:15px 16px;border-bottom:1px solid var(--brd);}
  .rb-gem{width:15px;height:15px;flex:none;background:#FF3B2E;
    clip-path:polygon(50% 0,100% 38%,50% 100%,0 38%);
    filter:drop-shadow(0 0 8px rgba(255,59,46,.6));}
  .rb-nom{font-family:var(--dsp),serif;font-weight:var(--dw);font-size:calc(13px*var(--fs));letter-spacing:.05em;}
  .rb-role{font-family:var(--ui),monospace;font-size:8px;color:var(--ink3);letter-spacing:.1em;
    text-transform:uppercase;margin-top:2px;}
  .rb-cpt{margin-left:auto;text-align:right;}
  .rb-cpt b{font-family:var(--dsp),serif;font-weight:var(--dw);font-size:calc(17px*var(--fs));
    color:var(--accT);line-height:1;display:block;}
  .rb-cpt span{font-family:var(--ui),monospace;font-size:7.5px;letter-spacing:.12em;
    text-transform:uppercase;color:var(--ink3);}
  .rb-corps{overflow-y:auto;padding:0;scrollbar-width:thin;flex:1;}

  /* le constat — une note de marge, pas un message */
  .rb-c{padding:13px 16px;border-bottom:1px solid var(--brd2);position:relative;
    transition:background .2s var(--e);animation:rbpose .4s var(--e);}
  @keyframes rbpose{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}
  .rb-c:hover{background:color-mix(in srgb,var(--ink1) 3%,transparent);}
  .rb-c .num{font-family:var(--ui),monospace;font-size:8px;letter-spacing:.14em;color:var(--ink3);
    display:flex;align-items:center;gap:7px;margin-bottom:6px;}
  .rb-c .num i{font-style:normal;width:5px;height:5px;border-radius:50%;background:#FF3B2E;flex:none;}
  .rb-c .num em{font-style:normal;margin-left:auto;text-transform:uppercase;letter-spacing:.1em;}
  .rb-c .ti{font-family:var(--dsp),serif;font-weight:var(--dw);font-size:calc(12.5px*var(--fs));
    letter-spacing:-.005em;margin-bottom:4px;}
  .rb-c .tx{font-size:calc(11.5px*var(--fb));color:var(--ink2);line-height:1.55;}
  .rb-c .tx b{color:var(--ink1);font-weight:600;}
  .rb-c .src{font-family:var(--ui),monospace;font-size:7.5px;color:var(--ink3);letter-spacing:.04em;margin-top:7px;}
  .rb-c .voir{display:inline-block;margin-top:8px;font-family:var(--ui),monospace;font-size:8.5px;
    letter-spacing:.1em;text-transform:uppercase;color:var(--accT);cursor:pointer;
    border-bottom:1px solid color-mix(in srgb,var(--accT) 45%,transparent);padding-bottom:2px;
    transition:.2s var(--e);}
  .rb-c .voir:hover{border-bottom-color:var(--accT);letter-spacing:.13em;}

  .rb-sec{font-family:var(--ui),monospace;font-size:8px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink3);padding:13px 16px 7px;border-bottom:1px solid var(--brd2);
    background:color-mix(in srgb,var(--ink1) 3%,transparent);}
  .rb-pistes{display:flex;flex-wrap:wrap;gap:5px;padding:11px 16px 13px;border-bottom:1px solid var(--brd2);}
  .rb-piste{font-family:var(--ui),monospace;font-size:8.5px;letter-spacing:.04em;color:var(--ink2);
    border:1px solid var(--brd);border-radius:5px;padding:5px 9px;cursor:pointer;transition:.18s var(--e);}
  .rb-piste:hover{border-color:#FF3B2E;color:#FF3B2E;}

  /* la barre de commande — on INTERROGE un dossier, on ne « chatte » pas */
  .rb-pied{border-top:1px solid var(--brd);padding:12px 14px;display:flex;flex-direction:column;gap:9px;}
  .rb-cmd{display:flex;align-items:center;gap:8px;border:1px solid var(--brd);border-radius:8px;
    background:var(--s2);padding:0 10px;transition:.2s var(--e);}
  .rb-cmd:focus-within{border-color:#FF3B2E;}
  .rb-cmd .chev{font-family:var(--ui),monospace;font-size:11px;color:#FF3B2E;flex:none;}
  .rb-cmd input{flex:1;min-width:0;font-family:var(--ui),monospace;font-size:10.5px;
    color:var(--ink1);background:transparent;border:0;padding:10px 0;outline:none;}
  .rb-cmd input::placeholder{color:var(--ink3);}
  .rb-note{font-family:var(--ui),monospace;font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--accT);background:var(--accQ);border:1px solid color-mix(in srgb,var(--accT) 40%,transparent);
    border-radius:8px;padding:10px 12px;cursor:pointer;text-align:left;transition:.22s var(--e);}
  .rb-note:hover{transform:translateX(3px);border-color:var(--accT);}
  .rb-gf{font-family:var(--ui),monospace;font-size:7.5px;color:var(--ink3);line-height:1.6;letter-spacing:.02em;}

  /* ---------- LA NOTE DE DÉCISION ---------- */
  .dnote .dt-t{font-size:calc(19px*var(--fs));padding-top:2px;}
  .dnote .en{font-family:var(--ui),monospace;font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--ink3);display:flex;gap:14px;flex-wrap:wrap;padding:0 15px;margin-top:2px;}
  html[data-theme="light"]:not([data-fond="papier"]) .dnote .dt-b{background:transparent!important;
    margin:0!important;padding:12px 15px 8px!important;box-shadow:none!important;
    --ink1:#16130F;--ink2:rgba(22,19,15,.76);--ink3:rgba(22,19,15,.54);--accT:var(--accL);}
  .dnote h6{font-family:var(--kick),sans-serif;font-size:9px;letter-spacing:.18em;text-transform:uppercase;
    color:var(--ink1);border-bottom:1px solid var(--brd);padding-bottom:5px;margin:14px 0 8px;font-weight:700;}
  .dnote .sec{font-size:calc(12px*var(--fb));color:var(--ink2);line-height:1.6;}
  .dnote .sec b{color:var(--ink1);}
  .dnote .ligne{display:grid;grid-template-columns:1fr auto auto;gap:12px;padding:6px 0;
    border-bottom:1px solid var(--brd2);align-items:baseline;}
  .dnote .ligne .g{font-family:var(--ui),monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;}
  .dnote .g.go{color:var(--okT);} html[data-theme="dark"] .dnote .g.go{color:var(--ok);}
  .dnote .g.wait{color:var(--warn);} .dnote .g.no{color:var(--ink3);}
  .dnote .m{font-family:var(--ui),monospace;font-size:10.5px;color:var(--ink1);}

  /* ---------- le bouton d'insertion, dans Instruire et le réseau ---------- */
  button.vers{width:24px;height:22px;border-radius:6px;border:1px solid var(--brd);background:transparent;
    color:var(--ink3);font-size:11px;line-height:1;cursor:pointer;transition:.18s var(--e);}
  button.vers:hover{color:var(--warn);border-color:var(--warn);transform:translate(1px,-1px);}
  .rzo-carte .vers-at{width:100%;margin-top:9px;font-family:var(--ui),monospace;font-size:9px;
    letter-spacing:.1em;text-transform:uppercase;color:var(--warn);cursor:pointer;
    background:color-mix(in srgb,var(--warn) 10%,transparent);
    border:1px solid color-mix(in srgb,var(--warn) 45%,transparent);
    border-radius:8px;padding:8px 10px;transition:.2s var(--e);}
  .rzo-carte .vers-at:hover{transform:translateX(3px);border-color:var(--warn);}