/* ============================================================
     AESTELIER · SIGHTLINE — mock Wizard-of-Oz
     Tout est faux : les résultats sont curés à la main.
     Aucun backend, aucun moteur réel. But : provoquer une vraie réaction.
     POUR SWAPPER DE VRAIES IMAGES : voir le tableau RESULTS plus bas,
     champ `img` de chaque tuile (mettez l'URL d'une référence
     domaine public / opt-in). Sans `img`, un placeholder d'ambiance
     s'affiche.
     ============================================================ */

  :root{
    --ground:#1c1b19;        /* atelier sombre, moins noir que cinematic */
    --surface:#26231f;
    --paper:#302c25;
    --card:#2c2a25;
    --hair:#4a443a;          /* filets papier / atelier */
    --text:#f0ece3;          /* blanc cassé papier */
    --muted:#aaa092;         /* gris chaud */
    --muted-2:#756d62;
    --cold:#5fa3b4;          /* lumière froide — thème du produit */
    --cold-soft:#7fb8c6;
    --warm:#d8a35e;          /* chaud — réservé à l'action humaine */
    --warm-soft:#e6bd83;
    --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
    --mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  }

  *{box-sizing:border-box}
  html,body{margin:0;padding:0}
  body{
    background:var(--ground);
    color:var(--text);
    font-family:var(--sans);
    -webkit-font-smoothing:antialiased;
    line-height:1.5;
    min-height:100vh;
  }

  /* Soft studio wash over the whole ground */
  body::before{
    content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
    background:
      radial-gradient(1200px 600px at 70% -10%, rgba(216,163,94,.12), transparent 60%),
      radial-gradient(900px 500px at 10% 110%, rgba(95,163,180,.12), transparent 60%);
  }

  .wrap{position:relative;z-index:1;max-width:none;margin:0;padding:0 32px;transition:padding-right .3s ease}
  .wrap.board-mode footer{display:none}

  /* scrollbars fines, intégrées au thème (Firefox + WebKit) */
  *{scrollbar-width:thin;scrollbar-color:rgba(240,236,227,.20) transparent}
  ::-webkit-scrollbar{width:9px;height:9px}
  ::-webkit-scrollbar-track{background:transparent}
  ::-webkit-scrollbar-thumb{background:rgba(240,236,227,.16);border-radius:9px;border:2px solid transparent;background-clip:padding-box}
  ::-webkit-scrollbar-thumb:hover{background:rgba(240,236,227,.30);background-clip:padding-box}

  /* ---------- header ---------- */
  header{
    display:flex;align-items:center;justify-content:space-between;gap:24px;
    padding:22px 0 18px;border-bottom:1px solid var(--hair);flex-wrap:wrap;
  }
  .head-left{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
  .new-project-btn{
    font-family:var(--mono);font-size:15px;line-height:1;color:var(--cold-soft);
    border:1px solid rgba(95,163,180,.40);background:rgba(95,163,180,.08);border-radius:6px;
    width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
    cursor:pointer;transition:background .15s;
  }
  .new-project-btn:hover{background:rgba(95,163,180,.16)}
  .project-settings-btn{
    font-size:14px;line-height:1;color:var(--muted);
    border:1px solid var(--hair);background:transparent;border-radius:6px;
    width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
    cursor:pointer;transition:color .15s,border-color .15s;
  }
  .project-settings-btn:hover{color:var(--cold-soft);border-color:rgba(95,163,180,.45)}
  .project-lib-btn{
    display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;
    border:1px solid var(--hair);background:transparent;border-radius:6px;color:var(--muted);
    font-family:var(--mono);cursor:pointer;transition:color .15s,border-color .15s;
  }
  .project-lib-btn:hover{color:var(--cold-soft);border-color:rgba(95,163,180,.45)}
  .project-lib-btn.active{color:var(--text);border-color:rgba(95,163,180,.5);background:rgba(95,163,180,.08)}
  .project-lib-btn .plb-icon{font-size:13px;line-height:1}
  .project-lib-btn .plb-count{
    font-size:9px;color:var(--cold-soft);background:rgba(95,163,180,.14);
    border-radius:9px;padding:1px 6px;min-width:16px;text-align:center;
  }
  .project-bridge-btn{
    display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 11px;
    border:1px solid var(--hair);background:transparent;border-radius:6px;color:var(--muted);
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;cursor:pointer;transition:color .15s,border-color .15s,background .15s;
  }
  .project-bridge-btn:hover,.project-bridge-btn.active{
    color:var(--cold-soft);border-color:rgba(95,163,180,.45);background:rgba(95,163,180,.06);
  }
  /* Glyphe « cadres empilés » = board de références ; le cadre avant occulte celui de derrière. */
  .project-bridge-glyph{position:relative;display:inline-flex;width:15px;height:15px;flex:0 0 auto}
  .project-bridge-icon{width:15px;height:15px;display:block;color:currentColor}
  .project-bridge-icon .front{fill:var(--ground)}
  /* Badge d'état du compagnon : gris = hors ligne, teal = actif, ambre = PureRef introuvable. */
  .project-bridge-dot{
    position:absolute;right:-2px;bottom:-2px;width:6px;height:6px;border-radius:50%;
    background:var(--muted-2);box-shadow:0 0 0 1.5px var(--ground);transition:background .2s;
  }
  .project-bridge-btn[data-state="ready"]{border-color:rgba(95,163,180,.30)}
  .project-bridge-btn[data-state="ready"] .project-bridge-dot{background:var(--cold-soft)}
  .project-bridge-btn[data-state="missing"]{border-color:rgba(216,163,94,.32)}
  .project-bridge-btn[data-state="missing"] .project-bridge-dot{background:var(--warm)}
  /* Séparateurs fins qui découpent : [contexte projet] | [actions] | [+]. */
  .switcher-divider{width:1px;height:18px;background:var(--hair);flex:0 0 auto;margin:0 2px}
  .mark{
    font-family:var(--serif);font-size:25px;letter-spacing:.5px;font-weight:500;
    color:var(--text);background:transparent;border:0;padding:0;cursor:pointer;
  }
  .mark:hover{color:var(--cold-soft)}
  .mark:focus-visible{outline:2px solid var(--cold-soft);outline-offset:5px;border-radius:3px}
  .mark b{font-weight:600}
  .mark .dot{color:var(--cold);padding:0 6px}
  .creed{
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted);
    display:flex;gap:14px;align-items:center;flex-wrap:wrap;text-transform:lowercase;
  }
  .creed .sep{color:var(--muted-2)}
  .creed .no-gen{color:var(--cold-soft)}

  /* ---------- navbar (Intention / Références / Board) ---------- */
  .flow-nav{display:flex;align-items:center;gap:2px;align-self:center}
  .flow-step{
    display:inline-flex;align-items:center;gap:7px;
    font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
    color:var(--muted);background:transparent;border:0;
    border-bottom:1.5px solid transparent;padding:5px 13px 7px;cursor:pointer;
    transition:color .15s,border-color .15s;
  }
  .flow-step:hover:not(.active):not(.locked){color:var(--cold-soft)}
  .flow-step.active{color:var(--text);border-bottom-color:var(--cold)}
  .flow-step.locked{opacity:.4;cursor:not-allowed}
  .flow-count{
    font-size:9px;color:var(--cold-soft);background:rgba(95,163,180,.14);
    border-radius:9px;padding:1px 6px;min-width:16px;text-align:center;
  }
  footer .creed{flex:0 0 100%;margin-bottom:4px}

  /* ---------- entry / hero ---------- */
  .entry{padding:62px 0 40px;max-width:760px}
  .entry h1{
    font-family:var(--serif);font-weight:400;font-size:clamp(30px,5vw,46px);
    line-height:1.12;margin:0 0 6px;letter-spacing:.2px;
  }
  .entry h1 em{font-style:italic;color:var(--cold-soft)}
  .entry .sub{color:var(--muted);font-size:15px;margin:0 0 30px;max-width:560px}

  .field{
    position:relative;background:var(--paper);border:1px solid var(--hair);
    border-radius:3px;transition:border-color .25s ease;
  }
  .field:focus-within{border-color:var(--cold)}
  .field.drag-over{border-color:var(--cold);background:rgba(95,163,180,.045)}
  .field textarea{
    width:100%;background:transparent;border:0;resize:none;color:var(--text);
    font-family:var(--serif);font-size:21px;line-height:1.45;padding:20px 22px;
    min-height:118px;outline:none;
  }
  .field textarea::placeholder{color:var(--muted-2);font-style:italic}
  .intent-files{
    border-top:1px solid rgba(240,236,227,.07);padding:9px 10px 10px 18px;
    display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"hint actions" "files files" "sketch sketch";
    align-items:center;column-gap:9px;row-gap:0;
  }
  .intent-files.has-files,
  .intent-files:has(.intent-sketch:not([hidden])){row-gap:9px}
  .intent-file-hint{
    grid-area:hint;
    min-width:0;color:var(--muted-2);font-family:var(--mono);font-size:10px;
    letter-spacing:.05em;text-transform:uppercase;
  }
  .intent-files.has-files{grid-template-areas:"files actions" "sketch sketch"}
  .intent-files.has-files .intent-file-hint{display:none}
  .intent-file-actions{grid-area:actions;display:flex;align-items:center;justify-content:flex-end;gap:6px}
  .intent-tool-btn{
    width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;
    background:rgba(95,163,180,.08);border:1px solid rgba(95,163,180,.32);border-radius:5px;
    color:var(--cold-soft);font-family:var(--mono);font-size:18px;line-height:1;
    padding:0;cursor:pointer;transition:background .15s,border-color .15s,transform .1s;
  }
  .intent-tool-btn:hover{background:rgba(95,163,180,.15);border-color:rgba(95,163,180,.48)}
  .intent-tool-btn:active{transform:translateY(1px)}
  .intent-tool-btn:focus-visible{outline:2px solid var(--cold-soft);outline-offset:2px}
  .intent-file-list{
    grid-area:files;display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  }
  .intent-file-list:empty{display:none}
  .recall-files{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
  .intent-file-pill,.recall-file-pill{
    display:inline-flex;align-items:center;gap:7px;max-width:260px;
    border:1px solid rgba(240,236,227,.10);background:rgba(240,236,227,.035);border-radius:3px;
    color:var(--muted);font-family:var(--mono);font-size:10px;line-height:1.2;padding:6px 7px;
  }
  .intent-file-name,.recall-file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
  .intent-file-meta,.recall-file-meta{color:var(--muted-2);white-space:nowrap}
  .intent-file-remove{
    width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;
    background:transparent;border:0;color:var(--muted-2);cursor:pointer;padding:0;border-radius:2px;
  }
  .intent-file-remove:hover{color:var(--warm-soft);background:rgba(216,163,94,.10)}
  .intent-sketch{
    grid-area:sketch;border:1px solid rgba(240,236,227,.09);border-radius:5px;
    background:rgba(0,0,0,.10);padding:8px;display:flex;flex-direction:column;gap:8px;
  }
  .intent-sketch[hidden]{display:none}
  .intent-sketch canvas{
    width:100%;height:220px;display:block;border-radius:3px;background:#26231e;
    cursor:crosshair;touch-action:none;
  }
  .intent-sketch-actions{display:flex;justify-content:flex-end;gap:7px;flex-wrap:wrap}
  .sketch-ghost,.sketch-save{
    border-radius:3px;padding:7px 10px;font-family:var(--mono);font-size:10px;
    letter-spacing:.07em;text-transform:uppercase;cursor:pointer;
  }
  .sketch-ghost{background:transparent;border:1px solid rgba(240,236,227,.12);color:var(--muted)}
  .sketch-ghost:hover{color:var(--text);border-color:rgba(240,236,227,.22)}
  .sketch-save{background:rgba(216,163,94,.88);border:0;color:#1a1206}
  .sketch-save:hover{background:var(--warm-soft)}
  .sv-confirm:disabled{opacity:.45;cursor:not-allowed}

  .entry-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:18px;flex-wrap:wrap}
  .hint{font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.04em;max-width:430px}
  .hint b{color:var(--cold-soft);font-weight:500}

  .go{
    font-family:var(--mono);font-size:13px;letter-spacing:.08em;
    background:var(--warm);color:#1a1206;border:0;border-radius:3px;
    padding:13px 24px;cursor:pointer;transition:background .2s ease, transform .1s ease;
    text-transform:uppercase;
  }
  .go:hover{background:var(--warm-soft)}
  .go:disabled{opacity:.6;cursor:progress}
  .go:active{transform:translateY(1px)}
  .go:focus-visible{outline:2px solid var(--warm-soft);outline-offset:3px}
  .go .arr{margin-left:8px}

  /* ---------- exploration board (pistes inter-intentions) ---------- */
  .entry-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
  .lead-add{
    font-family:var(--mono);font-size:13px;letter-spacing:.06em;color:var(--cold-soft);
    background:rgba(95,163,180,.10);border:1px solid rgba(95,163,180,.45);border-radius:3px;
    padding:12px 18px;cursor:pointer;transition:background .15s;white-space:nowrap;
  }
  .lead-add:hover{background:rgba(95,163,180,.18)}
  .lead-add:focus-visible{outline:2px solid var(--cold-soft);outline-offset:3px}

  .explore-board{margin-top:34px}
  .eb-head{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
  .eb-head .eb-hint{text-transform:none;letter-spacing:.02em;color:var(--muted-2)}
  .lead-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}
  .lead-card{
    background:var(--surface);border:1px solid var(--hair);border-radius:5px;padding:14px;
    display:flex;flex-direction:column;gap:12px;transition:border-color .15s;
  }
  .lead-card:hover{border-color:var(--muted-2)}
  .lead-brief{font-family:var(--serif);font-size:15px;line-height:1.35;color:var(--text);min-height:40px}
  .lead-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
  .lead-thumb{aspect-ratio:1/1;border-radius:2px;background-size:cover;background-position:center;border:1px solid rgba(255,255,255,.05)}
  .lead-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto}
  .lead-deepen{
    font-family:var(--mono);font-size:11px;letter-spacing:.05em;color:#1a1206;text-transform:uppercase;
    background:var(--warm);border:0;border-radius:3px;padding:8px 13px;cursor:pointer;transition:background .15s;
  }
  .lead-deepen:hover{background:var(--warm-soft)}
  .lead-remove{
    width:28px;height:28px;border-radius:3px;cursor:pointer;font-size:15px;line-height:1;
    background:transparent;border:1px solid var(--hair);color:var(--muted);transition:all .15s;
  }
  .lead-remove:hover{color:var(--text);border-color:var(--muted)}

  /* ---------- working view ---------- */
  .work{display:none;padding:30px 0 34px}
  .work.on{display:block;animation:rise .5s ease both}
  .work[hidden]{display:none}

  /* ---------- Références : maître-détail (Mes recherches | Résultats) ---------- */
  .work-shell{display:flex;gap:26px;align-items:stretch;min-height:calc(100vh - 190px)}
  .search-rail{
    flex:0 0 260px;align-self:stretch;
    position:sticky;top:18px;
    max-height:calc(100vh - 40px);overflow:auto;overflow-x:hidden;
    border-right:1px solid var(--hair);padding-right:20px;
    transition:flex-basis .2s ease,padding .2s ease;
  }
  .rail-toggle{
    position:absolute;top:0;right:14px;width:22px;height:22px;border-radius:3px;
    display:inline-flex;align-items:center;justify-content:center;
    border:1px solid var(--hair);background:var(--surface);color:var(--muted);
    font-family:var(--mono);font-size:13px;line-height:1;cursor:pointer;transition:all .15s;z-index:2;
  }
  .rail-toggle:hover{color:var(--text);border-color:var(--muted)}
  .rail-collapsed-label{display:none}
  /* --- replié : fine bande cliquable --- */
  .search-rail.collapsed{flex-basis:34px;padding-right:0;overflow:visible}
  .search-rail.collapsed .rail-inner{display:none}
  .search-rail.collapsed .rail-toggle{right:6px}
  .search-rail.collapsed .rail-collapsed-label{
    display:block;writing-mode:vertical-rl;transform:rotate(180deg);
    margin-top:34px;padding:8px 4px;background:transparent;border:0;cursor:pointer;
    font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;
    color:var(--muted);transition:color .15s;
  }
  .search-rail.collapsed .rail-collapsed-label:hover{color:var(--cold-soft)}
  .search-rail-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:16px;padding-right:26px}
  .search-rail-head h2{
    font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;
    color:var(--muted);font-weight:500;margin:0;
  }
  .rail-new{
    display:block;width:100%;margin-bottom:14px;
    font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--cold-soft);
    border:1px solid rgba(95,163,180,.40);background:rgba(95,163,180,.08);border-radius:3px;
    padding:8px 10px;cursor:pointer;text-align:center;transition:background .15s;
  }
  .rail-new:hover{background:rgba(95,163,180,.16)}
  .search-rail .rail-list{display:flex;flex-direction:column;gap:12px}
  .rail-empty{font-family:var(--mono);font-size:10px;color:var(--muted-2);line-height:1.6}
  .work-main{flex:1;min-width:0}
  /* mode « nouvelle recherche » : brief composé en canvas centré */
  .work.mode-new .work-main{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    min-height:calc(100vh - 200px);
  }
  .work.mode-new #launcher{
    width:100%;max-width:660px;padding:0 0 40px;
  }
  .work.mode-loading .model-rail{display:none}
  .work.mode-loading .work-main{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    min-height:calc(100vh - 200px);
  }
  .search-loading{
    width:min(520px,100%);padding:36px 20px 44px;text-align:center;
    animation:rise .35s ease both;
  }
  .search-loading[hidden]{display:none}
  .search-loading-mark{
    position:relative;width:120px;height:72px;margin:0 auto 22px;
    display:flex;align-items:center;justify-content:center;gap:10px;
  }
  .search-loading-mark::before{
    content:"";position:absolute;inset:4px 0;border:1px solid rgba(95,163,180,.20);
    border-radius:50%;transform:rotate(-8deg);animation:scanOrbit 1.9s ease-in-out infinite;
  }
  .search-loading-mark span{
    width:12px;height:12px;border-radius:50%;background:var(--cold);
    opacity:.35;animation:searchDot 1.2s ease-in-out infinite;
  }
  .search-loading-mark span:nth-child(2){animation-delay:.16s}
  .search-loading-mark span:nth-child(3){animation-delay:.32s}
  .search-loading-title{
    font-family:var(--serif);font-size:24px;color:var(--text);margin-bottom:12px;
  }
  .search-loading-steps{
    display:flex;justify-content:center;gap:7px;flex-wrap:wrap;
    font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);
  }
  .search-loading-steps span{
    border:1px solid rgba(240,236,227,.09);border-radius:12px;padding:4px 9px;
    animation:stepGlow 1.8s ease-in-out infinite;
  }
  .search-loading-steps span:nth-child(2){animation-delay:.22s}
  .search-loading-steps span:nth-child(3){animation-delay:.44s}
  .art-card[data-id]{cursor:pointer;transition:border-color .15s,background .15s}
  .art-card[data-id]:not(.active):hover{border-color:var(--cold-soft);background:rgba(95,163,180,.04)}
  .art-card[data-id]:focus-visible{outline:2px solid var(--cold-soft);outline-offset:2px}
  .art-card.active{border-color:var(--cold);background:rgba(95,163,180,.06);cursor:default}
  .art-card.draft{border-style:dashed}
  .art-draft-badge,.art-active-tag{
    font-family:var(--mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;
    border-radius:9px;padding:1px 7px;margin-left:6px;vertical-align:middle;
  }
  .art-draft-badge{color:var(--warm-soft);border:1px solid rgba(216,163,94,.45)}
  .art-active-tag{color:var(--cold-soft);border:1px solid rgba(95,163,180,.45)}
  /* ---------- modèle : rail repliable, à gauche des références ---------- */
  .model-rail{
    flex:0 0 420px;align-self:stretch;position:sticky;top:18px;
    max-height:calc(100vh - 40px);overflow:auto;overflow-x:hidden;
    border-right:1px solid var(--hair);padding-right:20px;
    transition:flex-basis .2s ease,padding .2s ease;
  }
  .model-rail.collapsed{flex-basis:34px;padding-right:0;overflow:visible}
  .model-rail.collapsed .rail-inner{display:none}
  .model-rail.collapsed .rail-toggle{right:6px}
  .model-rail.collapsed .rail-collapsed-label{
    display:block;writing-mode:vertical-rl;transform:rotate(180deg);
    margin-top:34px;padding:8px 4px;background:transparent;border:0;cursor:pointer;
    font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;
    color:var(--cold-soft);transition:color .15s;
  }
  .model-rail.collapsed .rail-collapsed-label:hover{color:var(--text)}
  .work.mode-new .model-rail{display:none}   /* pas de modèle avant qu'une recherche existe */
  .model-rail-head{margin-bottom:10px;padding-right:26px}
  .model-rail-head h2{font-family:var(--mono);font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0 0 5px}
  .model-rail .model-apply{
    position:static;margin:16px 0 0;padding:0;background:none;border-top:0;
    display:flex;flex-direction:column;align-items:stretch;gap:9px;
  }
  .model-apply-actions{display:flex;gap:8px;align-items:stretch}
  .model-apply-actions #applySearch{flex:1}
  .ma-cancel{
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);
    background:transparent;border:1px solid var(--hair);border-radius:2px;padding:0 14px;cursor:pointer;white-space:nowrap;
  }
  .ma-cancel:hover{color:var(--text);border-color:var(--muted)}
  .ma-cancel[hidden]{display:none}

  @media (max-width:880px){
    .work-shell{flex-direction:column}
    .search-rail{
      flex:1 0 auto;width:100%;position:static;max-height:none;
      border-right:0;border-bottom:1px solid var(--hair);padding-right:0;padding-bottom:18px;
    }
    .search-rail .rail-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}
    .model-rail{
      flex:1 0 auto;width:100%;position:static;max-height:none;
      border-right:0;border-bottom:1px solid var(--hair);padding-right:0;padding-bottom:18px;
    }
    .model-rail.collapsed{flex-basis:auto}
    .model-rail.collapsed .rail-collapsed-label{writing-mode:horizontal-tb;transform:none;margin-top:0}
  }

  .recall{
    padding-bottom:14px;margin-bottom:20px;border-bottom:1px solid var(--hair);
  }
  .recall .quote{
    font-family:var(--serif);font-style:italic;font-size:16px;color:var(--muted);line-height:1.4;cursor:pointer;
    display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;transition:color .15s;
  }
  .recall .quote:hover{color:var(--text)}
  .recall.expanded .quote{-webkit-line-clamp:unset;color:var(--text)}
  .recall .quote::before{content:"« ";color:var(--cold)}
  .recall .quote::after{content:" »";color:var(--cold)}
  .recall-files{margin-top:12px}

  .axes{
    background:linear-gradient(180deg, rgba(240,236,227,.035), transparent 90%), var(--paper);
    border:1px solid var(--hair);border-radius:4px;padding:18px;
  }

  /* axes panel */
  .axes h2,.results h2{
    font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;
    color:var(--muted);margin:0 0 18px;font-weight:500;
  }
  .model-head h2{margin:0}
  .model-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}
  .model-meta{display:flex;flex-wrap:wrap;gap:7px;color:var(--muted-2);font-family:var(--mono);font-size:10px;letter-spacing:.05em}
  .model-meta span{border:1px solid rgba(240,236,227,.08);border-radius:2px;padding:3px 6px;background:rgba(240,236,227,.025)}
  .model-save{
    border:1px solid rgba(216,163,94,.45);background:rgba(216,163,94,.10);color:var(--warm-soft);
    border-radius:2px;padding:6px 9px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;
    cursor:pointer;white-space:nowrap;
  }
  .model-save:hover{background:rgba(216,163,94,.16)}
  .reading{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}
  .read-block{
    background:rgba(240,236,227,.025);border:1px solid rgba(240,236,227,.07);
    border-radius:6px;padding:12px 13px 14px;transition:border-color .15s, background .15s, box-shadow .15s;
  }
  .read-block.editing{
    background:rgba(216,163,94,.055);border-color:rgba(216,163,94,.35);box-shadow:0 0 0 1px rgba(216,163,94,.08) inset;
  }
  .read-block.pending-update{
    background:linear-gradient(180deg, rgba(216,163,94,.11), rgba(216,163,94,.04));
    border-color:rgba(216,163,94,.34);
    box-shadow:0 0 0 1px rgba(216,163,94,.07) inset;
  }
  .read-head{
    display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-bottom:10px;
  }
  .read-num{
    width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
    flex:0 0 auto;background:rgba(216,163,94,.13);color:var(--warm-soft);
    font-family:var(--mono);font-size:10px;
  }
  .read-title{
    font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);
  }
  .note{
    margin:0;color:var(--text);font-family:var(--serif);font-size:15.5px;line-height:1.32;
    min-height:22px;border-radius:3px;outline:none;
  }
  .note:focus{
    background:rgba(216,163,94,.08);box-shadow:0 0 0 4px rgba(216,163,94,.08);
  }
  .note[contenteditable="true"]{cursor:text}
  .note[contenteditable="false"]{cursor:default}
  .note[contenteditable="true"]:empty::before{content:attr(data-placeholder);color:var(--muted-2)}
  .part-tools{justify-self:end;display:flex;align-items:center;gap:5px}
  .part-action{
    border:1px solid rgba(240,236,227,.10);background:transparent;color:var(--muted);
    border-radius:3px;padding:4px 7px;font-family:var(--mono);font-size:9px;letter-spacing:.06em;
    cursor:pointer;text-transform:uppercase;
  }
  .part-action:hover{border-color:var(--muted);color:var(--text)}
  .part-action.commit{display:none;border-color:rgba(216,163,94,.45);color:var(--warm-soft);background:rgba(216,163,94,.09)}
  .part-action.cancel{display:none}
  .read-block.editing .part-action.edit{display:none}
  .read-block.editing .part-action.commit,
  .read-block.editing .part-action.cancel{display:inline-flex}
  .read-block .note{
    padding-left:30px;
  }
  .read-block.pending-update .note:focus{
    background:rgba(216,163,94,.08);box-shadow:0 0 0 4px rgba(216,163,94,.08);
  }
  .note-diff{
    color:var(--warm-soft);
    background:rgba(216,163,94,.10);
    border-radius:2px;
    padding:0 1px;
  }
  .axis{margin-bottom:20px}
  .axis .lab{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px}
  .axis .lab .name{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--text)}
  .axis .lab .val{font-family:var(--mono);font-size:11px;color:var(--cold-soft);text-align:right}
  .refine{margin:0}
  .refine-head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;
  }
  .refine-title{
    font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);
  }
  .refine-copy{
    margin:4px 0 0;max-width:620px;color:var(--muted);font-size:13px;line-height:1.45;
  }
  .refine-body{display:block}

  /* ---------- panel launchers (results header) ---------- */
  .results-head{display:flex;align-items:baseline;justify-content:flex-start;gap:18px;margin-bottom:4px;flex-wrap:wrap}
  .results-head h2{margin:0}
  .model-launch,.assistant-launch{
    border-radius:3px;padding:8px 12px;font-family:var(--mono);font-size:10px;letter-spacing:.07em;
    text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:background .15s;
    display:inline-flex;align-items:center;gap:7px;
  }
  .assistant-launch{border:1px solid rgba(216,163,94,.45);background:rgba(216,163,94,.10);color:var(--warm-soft)}
  .assistant-launch:hover{background:rgba(216,163,94,.16)}
  .assistant-launch:focus-visible{outline:2px solid var(--warm-soft);outline-offset:3px}
  .assistant-launch .arr{color:var(--warm-soft)}
  .model-launch{border:1px solid rgba(95,163,180,.45);background:rgba(95,163,180,.10);color:var(--cold-soft)}
  .model-launch:hover{background:rgba(95,163,180,.16)}
  .model-launch:focus-visible{outline:2px solid var(--cold-soft);outline-offset:3px}
  .model-launch .arr{color:var(--cold-soft)}

  /* ---------- drawers (left = model, right = assistant) ---------- */
  .drawer{position:fixed;inset:0;z-index:60;visibility:hidden;pointer-events:none}
  .drawer.on{visibility:visible;pointer-events:auto}
  .drawer-back{
    position:absolute;inset:0;background:rgba(8,10,11,.5);backdrop-filter:blur(2px);
    opacity:0;transition:opacity .28s ease;
  }
  .drawer.on .drawer-back{opacity:1}
  .drawer-panel{
    position:absolute;top:0;height:100%;width:min(440px,92vw);overflow:auto;
    background:var(--paper);padding:24px 24px 32px;transition:transform .3s ease;
  }
  .drawer-panel.right{right:0;border-left:1px solid var(--hair);box-shadow:-24px 0 70px rgba(0,0,0,.4);transform:translateX(100%)}
  .drawer-panel.left{left:0;border-right:1px solid var(--hair);box-shadow:24px 0 70px rgba(0,0,0,.4);transform:translateX(-100%);padding-bottom:0}

  /* ---------- assistant : fenêtre de chat flottante au-dessus de l'orbe ---------- */
  #assistantDrawer.on{pointer-events:none}                 /* le conteneur ne bloque pas les tuiles */
  #assistantDrawer .drawer-back{display:none}              /* pas de fond assombri */
  #assistantDrawer .drawer-panel{
    position:fixed;right:24px;bottom:90px;top:auto;left:auto;
    width:min(384px,calc(100vw - 48px));height:520px;min-width:320px;min-height:360px;
    max-width:calc(100vw - 48px);max-height:calc(100vh - 114px);overflow:auto;resize:none;
    border:1px solid var(--hair);border-radius:14px;
    box-shadow:0 20px 54px rgba(0,0,0,.5);pointer-events:auto;
    transform-origin:bottom right;transform:translateY(14px) scale(.97);opacity:0;
    transition:transform .2s ease,opacity .2s ease;
  }
  #assistantDrawer.on .drawer-panel{transform:translateY(0) scale(1);opacity:1}
  .assistant-resize{
    position:absolute;left:0;bottom:0;z-index:3;width:26px;height:26px;border-radius:0 7px 0 13px;
    border:1px solid rgba(216,163,94,.42);background:rgba(36,32,27,.96);cursor:nesw-resize;
    box-shadow:0 8px 18px rgba(0,0,0,.32);padding:0;
  }
  .assistant-resize::before,
  .assistant-resize::after{
    content:"";position:absolute;left:7px;bottom:7px;width:10px;height:1px;background:rgba(216,163,94,.75);
    transform:rotate(-45deg);transform-origin:left center;
  }
  .assistant-resize::after{left:11px;bottom:11px;width:8px}
  .assistant-resize:hover{border-color:var(--warm-soft);background:rgba(50,43,34,.98)}
  .assistant-resize:focus-visible{outline:2px solid var(--warm-soft);outline-offset:3px}

  /* orbe assistant : bulle persistante en bas à droite (mode résultats) */
  .assistant-orb{
    display:none;position:fixed;right:24px;bottom:24px;z-index:55;
    width:56px;height:56px;border-radius:50%;cursor:pointer;border:1px solid rgba(216,163,94,.5);
    background:radial-gradient(circle at 35% 30%, rgba(230,189,131,.95), rgba(216,163,94,.6) 55%, rgba(95,163,180,.42));
    box-shadow:0 8px 30px rgba(0,0,0,.4);
    align-items:center;justify-content:center;
    transition:transform .18s ease;animation:orbPulse 3.4s ease-in-out infinite;
  }
  body.results-mode .assistant-orb{display:inline-flex}
  .assistant-orb:hover{transform:scale(1.06)}
  .assistant-orb.active{animation:none}
  .orb-glyph{font-size:21px;color:#1a1206;line-height:1}
  .orb-label{
    position:absolute;right:68px;top:50%;white-space:nowrap;
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--warm-soft);
    background:var(--surface);border:1px solid var(--hair);border-radius:3px;padding:5px 9px;
    opacity:0;transform:translateY(-50%) translateX(6px);transition:opacity .18s ease,transform .18s ease;pointer-events:none;
  }
  .assistant-orb:hover .orb-label{opacity:1;transform:translateY(-50%) translateX(0)}
  .assistant-orb.active .orb-label{display:none}
  .send-board{
    display:none;position:fixed;right:94px;bottom:52px;z-index:55;cursor:pointer;
    transform:translateY(50%);
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#1a1206;
    background:var(--warm);border:0;border-radius:30px;padding:11px 15px;
    box-shadow:0 10px 30px rgba(0,0,0,.35);align-items:center;gap:8px;
    transition:background .15s,transform .1s;
  }
  body.results-mode .send-board:not([hidden]){display:inline-flex}
  body.assistant-open .send-board{display:none}
  .send-board:hover{background:var(--warm-soft)}
  .send-board:active{transform:translateY(calc(50% + 1px))}
  .send-board-mark{font-size:13px}
  @keyframes orbPulse{
    0%,100%{box-shadow:0 8px 30px rgba(0,0,0,.4),0 0 0 0 rgba(216,163,94,.34)}
    50%{box-shadow:0 8px 30px rgba(0,0,0,.4),0 0 0 11px rgba(216,163,94,0)}
  }
  /* tray des refs : masqué quand le chat de l'assistant est ouvert */
  body.assistant-open .tray-fab{display:none}
  .model-apply{
    position:sticky;bottom:0;z-index:1;margin:18px -24px 0;padding:14px 24px 22px;
    background:var(--paper);border-top:1px solid var(--hair);
    display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  }
  .model-apply-note{font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--muted-2)}
  .model-apply-note.pending{color:var(--warm-soft)}
  #applySearch:disabled{opacity:.4;cursor:not-allowed}

  /* ---------- exclusions (negative filter, not a model axis) ---------- */
  .exclusions{margin-top:18px;padding-top:16px;border-top:1px dashed var(--hair)}
  .excl-lead{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:var(--muted-2);line-height:1.5;margin-bottom:10px}
  .excl-block{border:1px solid rgba(216,163,94,.20);border-radius:5px;background:rgba(216,163,94,.04);padding:10px 11px}
  .excl-mark{background:rgba(216,163,94,.16);color:var(--warm-soft)}

  /* onglet Paramètres du modèle : fidélité, importance par axe, exclusions */
  .param-group{margin-bottom:4px}
  .model-importance{margin-top:18px;padding-top:16px;border-top:1px dashed var(--hair)}
  .mi-lead{font-family:var(--mono);font-size:9.5px;letter-spacing:.04em;color:var(--muted-2);line-height:1.5;margin-bottom:6px}

  /* ---------- model drawer: sticky topbar + tabs ---------- */
  #modelDrawer .drawer-panel{width:min(500px,94vw)}
  .drawer-topbar{
    position:sticky;top:0;z-index:2;margin:-24px -24px 0;padding:18px 24px 0;background:var(--paper);
  }
  .model-meta .sep{color:var(--muted-2)}
  .drawer-tabs{display:flex;border-bottom:1px solid var(--hair);margin-top:14px}
  .drawer-tab{
    background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);
    font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;
    padding:9px 2px;margin-right:18px;cursor:pointer;transition:color .15s,border-color .15s;
  }
  .drawer-tab:hover{color:var(--text)}
  .drawer-tab.on{color:var(--text);border-bottom-color:var(--cold)}
  .tab-panel{padding-top:14px}
  .tab-panel[hidden]{display:none}
  .model-actions{display:flex;justify-content:flex-end;margin-bottom:6px}

  /* ---------- history tree ---------- */
  .history-intro{font-family:var(--mono);font-size:10px;line-height:1.55;color:var(--muted-2);letter-spacing:.03em;margin:2px 0 16px}
  .history-tree{display:flex;flex-direction:column;gap:2px}
  .tree-children{margin-left:7px;padding-left:14px;border-left:1px solid var(--hair);display:flex;flex-direction:column;gap:2px;margin-top:2px}
  .tree-row{
    display:grid;grid-template-columns:auto 1fr;gap:9px;align-items:start;
    padding:8px 9px;border-radius:5px;border:1px solid transparent;cursor:pointer;transition:background .15s,border-color .15s;
  }
  .tree-row:hover{background:rgba(240,236,227,.04);border-color:rgba(240,236,227,.08)}
  .tree-row.inspected{background:rgba(95,163,180,.07);border-color:rgba(95,163,180,.34)}
  .t-dot{width:9px;height:9px;border-radius:50%;border:1px solid var(--muted-2);background:transparent;margin-top:3px}
  .tree-row.active .t-dot{background:var(--cold);border-color:var(--cold);box-shadow:0 0 0 3px rgba(95,163,180,.18)}
  .t-body{min-width:0}
  .t-head{font-family:var(--mono);font-size:11px;color:var(--text);display:flex;align-items:center;flex-wrap:wrap;gap:6px}
  .t-head b{color:var(--cold-soft);font-weight:500}
  .t-badge{font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:var(--warm-soft);border:1px solid rgba(216,163,94,.45);border-radius:2px;padding:1px 5px}
  .t-detail{font-family:var(--serif);font-style:italic;font-size:12.5px;color:var(--muted);line-height:1.3;margin-top:3px}
  .t-time{font-family:var(--mono);font-size:9px;color:var(--muted-2);margin-top:3px}

  /* ---------- history detail (consult + select) ---------- */
  .history-detail{margin-top:18px;border-top:1px solid var(--hair);padding-top:16px}
  .history-detail-empty{font-family:var(--mono);font-size:11px;color:var(--muted-2);line-height:1.5}
  .hd-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:7px}
  .hd-title{font-family:var(--mono);font-size:12px;color:var(--text)}
  .hd-title b{color:var(--cold-soft);margin-right:6px}
  .hd-meta{font-family:var(--mono);font-size:9px;color:var(--muted-2);letter-spacing:.04em}
  .hd-note{font-family:var(--serif);font-style:italic;font-size:13.5px;color:var(--muted);line-height:1.35;margin-bottom:12px}
  .hd-sections{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
  .hd-row{display:grid;grid-template-columns:118px 1fr;gap:10px;font-size:12.5px;line-height:1.35}
  .hd-row b{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500;padding-top:2px}
  .hd-row span{color:var(--text)}
  .use-pass{width:100%}
  .use-pass:disabled{opacity:.45;cursor:default}
  .drawer.on .drawer-panel{transform:translateX(0)}
  /* the model panel already provides the surface; flatten the nested card */
  .drawer-panel .axes{background:none;border:0;border-radius:0;padding:0}
  .drawer-close{
    flex:0 0 auto;width:32px;height:32px;border-radius:3px;cursor:pointer;font-size:20px;line-height:1;
    background:transparent;border:1px solid var(--hair);color:var(--muted);transition:all .15s;
  }
  .drawer-close:hover{color:var(--text);border-color:var(--muted)}
  @media (prefers-reduced-motion:reduce){
    .drawer-back,.drawer-panel{transition:none}
  }

  /* ---------- moodboard tray ---------- */
  .tray-fab{
    position:fixed;right:24px;bottom:90px;z-index:55;cursor:pointer;
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#1a1206;
    background:var(--warm);border:0;border-radius:30px;padding:11px 16px;
    box-shadow:0 10px 30px rgba(0,0,0,.35);display:inline-flex;align-items:center;gap:8px;transition:background .15s,transform .1s;
  }
  .tray-fab[hidden]{display:none}
  .tray-fab:hover{background:var(--warm-soft)}
  .tray-fab:active{transform:translateY(1px)}
  .tray-fab .tf-mark{font-size:13px}
  .tray{position:fixed;inset:0;z-index:65;visibility:hidden;pointer-events:none}
  .tray.on{visibility:visible;pointer-events:auto}
  .tray-back{position:absolute;inset:0;background:rgba(8,10,11,.5);backdrop-filter:blur(2px);opacity:0;transition:opacity .28s ease}
  .tray.on .tray-back{opacity:1}
  .tray-sheet{
    position:absolute;left:0;right:0;bottom:0;max-height:78vh;overflow:auto;
    background:var(--paper);border-top:1px solid var(--hair);box-shadow:0 -24px 70px rgba(0,0,0,.4);
    padding:20px 28px 28px;transform:translateY(100%);transition:transform .3s ease;
  }
  .tray.on .tray-sheet{transform:translateY(0)}
  .tray-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px;max-width:1124px;margin-left:auto;margin-right:auto}
  .tray-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
  .tray-title{margin:0;font-family:var(--serif);font-weight:500;font-size:22px;color:var(--text)}
  .tray-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:16px;
    max-width:1124px;margin:0 auto;
  }
  .tray-card{background:var(--card);border:1px solid var(--hair);border-radius:3px;overflow:hidden;display:flex;flex-direction:column}
  .tray-thumb{aspect-ratio:4/5;background-size:cover;background-position:center;position:relative}
  .tray-remove{
    position:absolute;top:7px;right:7px;width:24px;height:24px;border-radius:2px;cursor:pointer;
    background:rgba(10,14,16,.6);border:1px solid rgba(255,255,255,.14);color:var(--text);
    display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;backdrop-filter:blur(2px);transition:all .15s;
  }
  .tray-remove:hover{border-color:var(--warm);color:var(--warm-soft)}
  .tray-card .tc-meta{padding:9px 10px 10px;display:flex;flex-direction:column;gap:7px;flex:1}
  .tray-card .tc-why{display:flex;flex-wrap:wrap;gap:5px}
  .tray-card .tc-why .t{font-family:var(--mono);font-size:9px;color:var(--cold-soft);border:1px solid rgba(95,163,180,.28);border-radius:2px;padding:2px 5px}
  .tray-card .tc-attr{margin-top:auto;font-family:var(--mono);font-size:9px;color:var(--warm-soft);letter-spacing:.02em}
  .tray-empty{max-width:1124px;margin:0 auto;font-family:var(--mono);font-size:11px;color:var(--muted-2);padding:20px 0}
  .collect-grid{
    max-width:1124px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;
  }
  .collect-card{
    position:relative;border:1px solid rgba(240,236,227,.10);border-radius:3px;background:var(--card);
    overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:border-color .15s,opacity .15s;
  }
  .collect-card:has(input:not(:checked)){opacity:.55}
  .collect-card:has(input:checked){border-color:rgba(216,163,94,.58)}
  .collect-card.sent{opacity:.7;cursor:default}
  .collect-card.sent:has(input:checked){border-color:rgba(95,163,180,.5)}
  .collect-flag{font-family:var(--mono);font-size:9px;color:var(--cold-soft);border:1px solid rgba(95,163,180,.45)!important;border-radius:2px;padding:2px 5px;letter-spacing:.04em}
  .collect-card input{position:absolute;top:9px;right:9px;z-index:2;width:18px;height:18px;accent-color:var(--warm)}
  .collect-thumb{aspect-ratio:4/5;background-size:cover;background-position:center}
  .collect-meta{padding:9px 10px 10px;display:flex;flex-direction:column;gap:7px}
  .collect-note{font-family:var(--serif);font-size:13px;line-height:1.25;color:var(--text)}
  .collect-tags{display:flex;gap:5px;flex-wrap:wrap}
  .collect-tags span{font-family:var(--mono);font-size:9px;color:var(--cold-soft);border:1px solid rgba(95,163,180,.25);border-radius:2px;padding:2px 5px}
  .collect-actions{
    margin:16px 0 0;padding-top:16px;border-top:1px solid var(--hair);
    display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;
  }
  /* ---- popup d'envoi : liste vitrine centrée ---- */
  .collect-tray,.library-tray{display:flex;align-items:center;justify-content:center;padding:24px}
  .collect-tray .tray-sheet,.library-tray .tray-sheet{
    position:relative;left:auto;right:auto;bottom:auto;
    width:min(94vw,960px);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;
    background:var(--paper);border:1px solid var(--hair);border-radius:12px;
    box-shadow:0 30px 90px rgba(0,0,0,.55);padding:22px 24px;
    transform:translateY(14px) scale(.985);opacity:0;
    transition:transform .26s ease,opacity .26s ease;
  }
  .collect-tray.on .tray-sheet,.library-tray.on .tray-sheet{transform:none;opacity:1}
  .collect-tray .tray-head,.library-tray .tray-head{max-width:none;margin:0 0 14px}
  .collect-tray .collect-grid{max-width:none;margin:0;flex:1;min-height:0;overflow:auto;padding-right:4px}
  .collect-tray .collect-actions{max-width:none}
  .library-tray .library-grid{flex:1;min-height:0;overflow:auto;padding-right:4px}
  .collect-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
  .collect-search{
    flex:1;min-width:200px;padding:9px 12px;border-radius:6px;border:1px solid var(--hair);
    background:rgba(0,0,0,.2);color:var(--text);font-family:var(--mono);font-size:12px;letter-spacing:.02em;
  }
  .collect-search:focus{outline:none;border-color:rgba(95,163,180,.55)}
  .collect-search::placeholder{color:var(--muted-2)}
  .collect-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .collect-count{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.03em;white-space:nowrap}
  .collect-bulk-btn{
    padding:6px 10px;border-radius:4px;border:1px solid var(--hair);background:transparent;
    color:var(--cold-soft);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;
  }
  .collect-bulk-btn:hover{background:rgba(95,163,180,.12)}
  .collect-card input{opacity:0;cursor:pointer}
  .collect-check{
    position:absolute;top:9px;right:9px;z-index:3;width:20px;height:20px;border-radius:4px;
    display:flex;align-items:center;justify-content:center;font-size:12px;line-height:1;color:transparent;
    border:1px solid rgba(240,236,227,.32);background:rgba(8,10,11,.42);pointer-events:none;transition:all .15s;
  }
  .collect-card:has(input:checked) .collect-check{color:#0a0e10;background:var(--warm);border-color:var(--warm)}
  .collect-card.sent:has(input:checked) .collect-check{background:var(--cold-soft);border-color:var(--cold-soft)}
  /* ---- depuis la recherche : drawer du bas (comme avant), collecte courante ---- */
  .collect-tray.scope-search{display:block;padding:0}
  .collect-tray.scope-search .tray-sheet{
    position:absolute;left:0;right:0;bottom:0;top:auto;width:auto;max-width:none;max-height:78vh;
    display:block;overflow:auto;border:0;border-top:1px solid var(--hair);border-radius:0;
    box-shadow:0 -24px 70px rgba(0,0,0,.4);padding:20px 28px 28px;
    opacity:1;transform:translateY(100%);transition:transform .3s ease;
  }
  .collect-tray.scope-search.on .tray-sheet{transform:translateY(0)}
  .collect-tray.scope-search .collect-controls{display:none}
  .collect-tray.scope-search .tray-head{max-width:1124px;margin:0 auto 16px}
  .collect-tray.scope-search .collect-grid{max-width:1124px;margin:0 auto;overflow:visible}
  .collect-tray.scope-search .collect-actions{max-width:1124px;margin:18px auto 0}
  @media (prefers-reduced-motion:reduce){ .tray-back,.tray-sheet{transition:none} }
  #assistantDrawer .refine,
  #assistantDrawer .refine-body{
    height:100%;min-height:0;
  }
  #assistantDrawer .refine{display:flex;flex-direction:column}
  #assistantDrawer .refine-body{display:flex;flex-direction:column}
  .assistant-tools{
    display:flex;align-items:center;justify-content:flex-end;gap:7px;margin-top:8px;
  }
  .icon-action{
    position:relative;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
    border:1px solid rgba(240,236,227,.12);border-radius:6px;background:rgba(240,236,227,.025);
    color:var(--muted);font-family:var(--mono);font-size:13px;line-height:1;cursor:pointer;
    transition:background .15s,border-color .15s,color .15s,transform .1s;
  }
  .icon-action:hover{border-color:rgba(216,163,94,.48);background:rgba(216,163,94,.08);color:var(--warm-soft)}
  .icon-action:active{transform:translateY(1px)}
  .icon-action.primary{border-color:rgba(216,163,94,.44);background:rgba(216,163,94,.10);color:var(--warm-soft)}
  .icon-action::after{
    content:attr(data-tip);position:absolute;right:0;top:calc(100% + 7px);z-index:3;
    opacity:0;transform:translateY(-3px);pointer-events:none;white-space:nowrap;
    background:var(--surface);border:1px solid var(--hair);border-radius:4px;padding:5px 7px;
    color:var(--text);font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;
    box-shadow:0 10px 24px rgba(0,0,0,.28);transition:opacity .14s,transform .14s;
  }
  .icon-action:hover::after,
  .icon-action:focus-visible::after{opacity:1;transform:translateY(0)}
  .assistant-stage{flex:1 1 auto;min-height:150px;display:flex;min-width:0}
  .guide-context{
    margin:0 0 10px;border-left:2px solid rgba(216,163,94,.55);padding-left:9px;
    color:var(--muted);font-family:var(--serif);font-size:15px;line-height:1.35;
  }
  .guide-window{
    display:none;background:#332f28;border:1px solid rgba(216,163,94,.32);border-radius:8px;
    width:100%;overflow:auto;padding:14px;box-shadow:0 12px 35px rgba(0,0,0,.16);
  }
  .guide-window.on{display:block}
  .refine-body.guide-mode .thread{display:none}
  .refine-body.guide-mode .guide-window{display:block}
  .guide-window.confirm{border-color:rgba(95,163,180,.35);background:#2c302f}
  .guide-window p{margin:0;color:var(--text);font-family:var(--serif);font-size:18px;line-height:1.36}
  .guide-options{display:grid;grid-template-columns:1fr;gap:7px;margin-top:12px}
  .guide-option{
    width:100%;text-align:left;padding:10px 11px;border-radius:5px;background:rgba(240,236,227,.035);
    border:1px solid rgba(240,236,227,.10);color:var(--text);font-family:var(--mono);font-size:12px;line-height:1.25;
    cursor:pointer;
  }
  .guide-option:hover{border-color:rgba(216,163,94,.6);background:rgba(216,163,94,.10);color:var(--warm-soft)}
  .guide-option.selected{
    border-color:var(--warm);background:rgba(216,163,94,.16);color:var(--warm-soft);
    box-shadow:inset 0 0 0 1px rgba(216,163,94,.18);
  }
  .guide-controls{
    display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;
  }
  .guide-control-group{display:flex;gap:7px;flex-wrap:wrap}
  .guide-link{
    border:1px solid rgba(240,236,227,.12);background:transparent;color:var(--muted);
    border-radius:3px;padding:6px 9px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;
    cursor:pointer;text-transform:uppercase;
  }
  .guide-link:hover{border-color:var(--muted);color:var(--text)}
  .guide-link.danger{border-color:rgba(216,163,94,.35);color:var(--warm-soft)}
  .guide-link.danger:hover{background:rgba(216,163,94,.10);border-color:rgba(216,163,94,.6)}
  .guide-link.primary{border-color:rgba(216,163,94,.5);background:rgba(216,163,94,.10);color:var(--warm-soft)}
  .guide-link.primary:hover{background:rgba(216,163,94,.16)}
  .guide-link:disabled{opacity:.38;cursor:not-allowed}
  .guide-link:disabled:hover{border-color:rgba(240,236,227,.12);color:var(--muted);background:transparent}
  .thread{
    background:var(--paper);border:1px solid var(--hair);border-radius:8px;padding:10px;
    display:flex;flex:1 1 auto;min-height:0;flex-direction:column;gap:8px;overflow:auto;
  }
  .msg{
    max-width:86%;border:1px solid rgba(240,236,227,.08);border-radius:7px;padding:10px 11px;
    background:rgba(240,236,227,.025);
  }
  .msg.assistant{align-self:flex-start}
  .msg.user{align-self:flex-end;background:rgba(95,163,180,.08);border-color:rgba(95,163,180,.22)}
  .msg .who{
    margin-bottom:5px;font-family:var(--mono);font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:var(--warm-soft);
  }
  .msg.user .who{color:var(--cold-soft)}
  .msg p{margin:0;color:var(--text);font-family:var(--serif);font-size:16px;line-height:1.35}
  .progress{
    display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:0 0 11px;
  }
  .bar{height:4px;background:rgba(240,236,227,.08);border-radius:999px;overflow:hidden}
  .bar span{display:block;height:100%;background:var(--warm);border-radius:inherit}
  .step{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:var(--muted);white-space:nowrap}
  .msg .chips{margin-top:11px}
  .composer{
    display:block;flex:0 0 auto;margin-top:10px;
  }
  .composer-input-wrap{position:relative}
  .composer textarea{
    width:100%;min-height:68px;resize:none;background:var(--paper);border:1px solid var(--hair);
    border-radius:4px;color:var(--text);font-family:var(--serif);font-size:16px;line-height:1.35;padding:10px 11px 13px;outline:none;
  }
  .composer textarea:focus{border-color:rgba(216,163,94,.5)}
  .composer-resize{
    position:absolute;left:-5px;bottom:-5px;width:22px;height:22px;border-radius:6px 2px 6px 2px;
    border:1px solid rgba(216,163,94,.38);background:rgba(36,32,27,.96);cursor:nesw-resize;
    box-shadow:0 6px 14px rgba(0,0,0,.28);padding:0;
  }
  .composer-resize::before,
  .composer-resize::after{
    content:"";position:absolute;left:6px;bottom:6px;width:8px;height:1px;background:rgba(216,163,94,.72);
    transform:rotate(-45deg);transform-origin:left center;
  }
  .composer-resize::after{left:9px;bottom:9px;width:7px}
  .composer-resize:hover{border-color:var(--warm-soft)}
  .composer-resize:focus-visible{outline:2px solid var(--warm-soft);outline-offset:3px}
  .send{
    border:1px solid rgba(216,163,94,.45);background:rgba(216,163,94,.10);color:var(--warm-soft);
    border-radius:2px;padding:10px 12px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;
    cursor:pointer;text-transform:uppercase;
  }
  .send:hover{background:rgba(216,163,94,.16)}
  .send.primary{background:var(--warm);color:#1a1206;border-color:var(--warm)}

  .chips{display:flex;flex-wrap:wrap;gap:7px}
  .chip{
    font-family:var(--mono);font-size:11px;letter-spacing:.03em;padding:5px 10px;border-radius:2px;
    border:1px solid var(--hair);color:var(--muted);background:transparent;cursor:pointer;transition:all .15s;
  }
  .chip:hover{border-color:var(--muted);color:var(--text)}
  .chip.on{border-color:var(--cold);color:var(--cold-soft);background:rgba(95,163,180,.08)}
  .chip.human.on{border-color:var(--warm);color:var(--warm-soft);background:rgba(216,163,94,.10)}

  .palette{display:flex;gap:6px}
  .sw{width:26px;height:26px;border-radius:2px;border:1px solid rgba(255,255,255,.08)}

  /* results */
  .results{position:relative;min-height:300px}
  .results .count{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:18px;letter-spacing:.04em}
  .rank-basis{font-family:var(--mono);font-size:11px;line-height:1.5;color:var(--muted);letter-spacing:.02em;margin:0 0 6px}
  .rank-basis b{color:var(--cold-soft);font-weight:500}
  .rank-basis:empty{display:none}

  /* ---------- search direction: fidelity ↔ exploration ---------- */
  .search-panel{margin:2px 0 16px;display:flex;flex-direction:column;gap:8px}
  .sp-row{display:flex;align-items:center;gap:11px}
  .sp-label{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
  .sp-end{font-family:var(--mono);font-size:9px;letter-spacing:.04em;color:var(--muted-2);white-space:nowrap}
  .sp-slider{
    flex:1;min-width:120px;max-width:300px;-webkit-appearance:none;appearance:none;
    height:2px;border-radius:2px;background:var(--hair);outline:none;cursor:pointer;
  }
  .sp-slider::-webkit-slider-thumb{
    -webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;
    background:var(--cold);border:2px solid var(--ground);cursor:pointer;transition:background .15s;
  }
  .sp-slider::-moz-range-thumb{
    width:14px;height:14px;border-radius:50%;background:var(--cold);border:2px solid var(--ground);cursor:pointer;
  }
  .sp-slider:hover::-webkit-slider-thumb{background:var(--cold-soft)}
  .sp-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px rgba(95,163,180,.35)}
  .sp-caption{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--cold-soft);line-height:1.35;min-height:18px}
  /* importance par axe, repliée dans les détails (ne charge pas l'UI par défaut) */
  .sp-details > summary{
    font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
    cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;user-select:none;width:max-content;
  }
  .sp-details > summary::-webkit-details-marker{display:none}
  .sp-details > summary::before{content:"+";color:var(--cold-soft);font-size:12px;line-height:1}
  .sp-details[open] > summary::before{content:"–"}
  .sp-details > summary:hover{color:var(--text)}
  .sp-axes{display:flex;flex-direction:column;gap:7px;margin-top:11px}
  .spa-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .spa-name{font-family:var(--mono);font-size:11px;color:var(--text)}
  .spa-seg{display:inline-flex;border:1px solid var(--hair);border-radius:3px;overflow:hidden;flex:0 0 auto}
  .spa-seg button{
    background:transparent;border:0;border-right:1px solid var(--hair);color:var(--muted-2);
    font-family:var(--mono);font-size:9.5px;letter-spacing:.02em;padding:4px 9px;cursor:pointer;transition:all .15s;
  }
  .spa-seg button:last-child{border-right:0}
  .spa-seg button:hover{color:var(--text);background:rgba(240,236,227,.04)}
  .spa-seg button.on{color:var(--cold-soft);background:rgba(95,163,180,.14)}
  .spa-seg button.on[data-level="faible"]{color:var(--muted);background:rgba(240,236,227,.06)}
  .spa-seg button.on[data-level="fort"]{color:var(--warm-soft);background:rgba(216,163,94,.14)}
  .tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}
  .tile{
    background:var(--card);border:1px solid var(--hair);border-radius:3px;overflow:hidden;
    display:flex;flex-direction:column;animation:rise .45s ease both;
  }
  .thumb{
    aspect-ratio:4/5;width:100%;position:relative;background-size:cover;background-position:center;
  }
  .thumb .real{
    position:absolute;top:9px;left:9px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;
    text-transform:uppercase;color:var(--cold-soft);background:rgba(10,14,16,.62);
    padding:3px 7px;border-radius:2px;backdrop-filter:blur(2px);
  }
  .save{
    position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:2px;cursor:pointer;
    background:rgba(10,14,16,.55);border:1px solid rgba(255,255,255,.12);color:var(--text);
    display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;transition:all .15s;backdrop-filter:blur(2px);
  }
  .save:hover{border-color:var(--warm)}
  .save.on{background:var(--warm);color:#1a1206;border-color:var(--warm)}

  .meta{padding:13px 14px 14px;display:flex;flex-direction:column;gap:10px;flex:1}
  .reason{
    font-family:var(--serif);font-size:16px;line-height:1.35;color:var(--text);
  }
  .local-open{
    align-self:flex-start;border-top:1px solid rgba(240,236,227,.07);padding:10px 0 0;margin-top:2px;
    background:transparent;border-left:0;border-right:0;border-bottom:0;width:100%;text-align:left;cursor:pointer;
    font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
    display:flex;align-items:center;justify-content:space-between;gap:8px;transition:color .15s;
  }
  .local-open:hover{color:var(--warm-soft)}
  .local-open .arr{color:var(--warm-soft)}
  .local-open:focus-visible{outline:2px solid var(--warm-soft);outline-offset:3px}
  .project-board-add,.tray-board-add{
    align-self:flex-start;border:1px solid rgba(95,163,180,.42);background:rgba(95,163,180,.08);
    color:var(--cold-soft);border-radius:3px;padding:6px 9px;font-family:var(--mono);
    font-size:10px;letter-spacing:.04em;cursor:pointer;
  }
  .project-board-add:hover,.tray-board-add:hover{background:rgba(95,163,180,.16)}
  .project-board-add.on,.tray-board-add.on{border-color:var(--hair);background:transparent;color:var(--muted)}

  /* reading modal */
  .modal{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:24px}
  .modal.on{display:flex}
  .modal-back{position:absolute;inset:0;background:rgba(8,10,11,.66);backdrop-filter:blur(3px)}
  .modal-card{
    position:relative;z-index:1;width:min(560px,100%);max-height:86vh;overflow:auto;
    background:var(--paper);border:1px solid var(--hair);border-radius:8px;padding:22px 24px;
    box-shadow:0 24px 70px rgba(0,0,0,.45);animation:rise .3s ease both;
  }
  .modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
  .modal-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
  .modal-title{margin:0;font-family:var(--serif);font-weight:500;font-size:23px;line-height:1.2;color:var(--text)}
  .modal-close{
    flex:0 0 auto;width:32px;height:32px;border-radius:3px;cursor:pointer;font-size:20px;line-height:1;
    background:transparent;border:1px solid var(--hair);color:var(--muted);transition:all .15s;
  }
  .modal-close:hover{color:var(--text);border-color:var(--muted)}
  .modal-section-title{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 9px}
  .modal-rows{display:flex;flex-direction:column;gap:9px;margin-bottom:20px}
  .modal-row{display:grid;grid-template-columns:96px 1fr;gap:12px;font-size:14px;line-height:1.4;color:var(--text)}
  .modal-row b{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--warm-soft);font-weight:500;padding-top:2px}
  .fit{display:flex;flex-direction:column;gap:7px;font-size:13px;line-height:1.4;color:var(--muted)}
  .fit span{border-left:2px solid rgba(95,163,180,.45);padding-left:10px}
  .fit .weak{border-left-color:rgba(216,163,94,.55)}
  .fit .gap{border-left-color:rgba(170,160,146,.5);color:var(--muted-2)}
  .modal-attr{
    display:flex;justify-content:space-between;gap:12px;margin-top:20px;padding-top:14px;
    border-top:1px solid var(--hair);font-family:var(--mono);font-size:10px;letter-spacing:.03em;
  }
  .modal-attr .src{color:var(--warm-soft)}
  .modal-attr .lic{color:var(--muted-2)}
  .modal-card.wide{width:min(760px,100%)}
  #artifactsModal .modal-card.wide{width:min(1040px,100%)}
  .pure-ref-card{width:min(640px,100%)}
  .pure-ref-dialog-status{
    display:flex;align-items:flex-start;gap:12px;margin-bottom:18px;padding:12px;border:1px solid var(--hair);border-radius:5px;
    background:rgba(240,236,227,.035);
  }
  .pure-ref-dialog-status p{margin:0;font-size:14px;line-height:1.45;color:var(--text)}
  .pure-ref-dialog-dot{
    width:10px;height:10px;flex:0 0 auto;margin-top:5px;border-radius:50%;background:var(--muted-2);
    box-shadow:0 0 0 4px rgba(240,236,227,.05);
  }
  .pure-ref-dialog-status[data-state="pending"] .pure-ref-dialog-dot{
    background:var(--warm-soft);box-shadow:0 0 0 4px rgba(216,163,94,.14);
  }
  .pure-ref-dialog-status[data-state="success"] .pure-ref-dialog-dot{
    background:var(--cold-soft);box-shadow:0 0 0 4px rgba(95,163,180,.14);
  }
  .pure-ref-dialog-status[data-state="error"] .pure-ref-dialog-dot{
    background:#c87866;box-shadow:0 0 0 4px rgba(200,120,102,.14);
  }
  .pure-ref-dialog-meta{
    margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;
  }
  .pure-ref-dialog-meta div{min-width:0;padding-bottom:10px;border-bottom:1px solid rgba(240,236,227,.08)}
  .pure-ref-dialog-meta dt{
    margin:0 0 4px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);
  }
  .pure-ref-dialog-meta dd{
    margin:0;font-family:var(--mono);font-size:10px;line-height:1.35;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .pure-ref-dialog-warnings{
    margin-top:16px;padding:11px 12px;border:1px solid rgba(216,163,94,.22);border-radius:5px;
    background:rgba(216,163,94,.07);font-size:13px;line-height:1.45;color:var(--warm-soft);
  }
  .pure-ref-dialog-warnings b{
    display:block;margin-bottom:6px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--warm-soft);
  }
  @media (max-width:640px){
    .pure-ref-dialog-meta{grid-template-columns:1fr}
  }

  /* ---------- header right + artifacts launcher ---------- */
  .head-right{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
  .project-switcher{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .project-picker{
    --project-picker-width: 240px;
    --project-menu-width: 240px;
    position:relative;display:inline-flex;flex-direction:column;align-items:stretch;min-width:0;
  }
  .project-picker-btn{
    width:var(--project-picker-width);max-width:min(360px, 100%);height:32px;
    display:inline-flex;align-items:center;justify-content:space-between;gap:12px;
    border:1px solid var(--hair);border-radius:6px;background:linear-gradient(180deg, rgba(240,236,227,.06), rgba(240,236,227,.025));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.03);color:var(--text);cursor:pointer;
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;line-height:1.2;
    padding:0 12px 0 11px;transition:border-color .15s, background .15s, box-shadow .15s;
    text-align:left;
  }
  .project-picker-btn:hover{border-color:rgba(95,163,180,.48)}
  .project-picker-btn:focus-visible{
    outline:none;border-color:rgba(95,163,180,.6);box-shadow:0 0 0 1px rgba(95,163,180,.18) inset, 0 0 0 2px rgba(95,163,180,.14);
  }
  .project-picker-label{
    display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto;
  }
  .project-picker-arrow{
    flex:0 0 auto;width:7px;height:7px;transform:translateY(-1px) rotate(45deg);
    border-right:1.5px solid var(--cold-soft);border-bottom:1.5px solid var(--cold-soft);opacity:.92;
  }
  .project-picker-btn:hover .project-picker-arrow,
  .project-picker-btn[aria-expanded="true"] .project-picker-arrow{border-color:var(--cold)}
  .project-picker-menu{
    position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:var(--project-menu-width);min-width:100%;
    background:rgba(28,24,20,.98);border:1px solid rgba(240,236,227,.16);border-radius:7px;
    box-shadow:0 18px 42px rgba(0,0,0,.38);padding:5px;overflow:auto;max-height:240px;
    backdrop-filter:blur(6px);
  }
  .project-picker-menu::before{
    content:"";position:absolute;inset:0;border-radius:7px;pointer-events:none;box-shadow:0 0 0 1px rgba(255,255,255,.02) inset;
  }
  .project-picker-item{
    width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;
    border:0;background:transparent;border-radius:5px;color:var(--muted);cursor:pointer;
    font-family:var(--mono);font-size:10px;letter-spacing:.04em;line-height:1.2;text-align:left;
    padding:9px 10px;transition:background .12s,color .12s;
  }
  .project-picker-item:hover,
  .project-picker-item:focus-visible{outline:none;background:rgba(95,163,180,.16);color:var(--text)}
  .project-picker-item.active{
    background:rgba(42,105,198,.9);color:#fff;font-weight:600;
  }
  .project-picker-item.active:hover,
  .project-picker-item.active:focus-visible{background:rgba(42,105,198,.98);color:#fff}
  .project-picker-item .pp-meta{
    flex:0 0 auto;font-size:9px;letter-spacing:.03em;color:var(--muted-2);
  }
  .project-picker-item.active .pp-meta{color:rgba(255,255,255,.8)}
  .project-picker-empty{
    padding:10px;font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:var(--muted-2)
  }
  .artifacts-open{
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--cold-soft);
    border:1px solid rgba(95,163,180,.40);background:rgba(95,163,180,.08);border-radius:3px;
    padding:6px 11px;cursor:pointer;white-space:nowrap;transition:background .15s;
  }
  .artifacts-open:hover{background:rgba(95,163,180,.16)}

  /* ---------- global board page ---------- */
  .board-page,.bridge-page{padding:30px 0 34px}
  .board-page[hidden]{display:none}
  .bridge-page[hidden]{display:none}
  .board-page.on{display:block;animation:rise .35s ease both}
  .bridge-page.on{display:block;animation:rise .35s ease both}
  .bridge-page-head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 0 18px;
    border-bottom:1px solid var(--hair);padding-bottom:18px;
  }
  .bridge-page-kicker{
    font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--cold-soft);margin-bottom:6px;
  }
  .bridge-page-head h1{
    margin:0;font-family:var(--serif);font-size:34px;font-weight:400;line-height:1.1;color:var(--text);
  }
  .bridge-page-head p{
    margin:8px 0 0;max-width:680px;font-size:14px;line-height:1.5;color:var(--muted);
  }
  /* Sous-texte de reconnaissance : Relay parle au logiciel tiers PureRef. */
  .bridge-page-compat{
    display:inline-block;margin-left:6px;padding:2px 7px;border:1px solid var(--hair);border-radius:10px;
    font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);vertical-align:middle;
  }
  .bridge-page-body{max-width:1040px}
  .board-page.board-fullscreen,
  .board-page:fullscreen{
    width:100vw;height:100vh;box-sizing:border-box;padding:12px;
    overflow:hidden;background:var(--bg);display:block;
  }
  .board-page.board-fullscreen{
    position:fixed;inset:0;z-index:90;
  }
  .board-page.board-fullscreen .board-toolbar,
  .board-page:fullscreen .board-toolbar{
    margin:0 0 10px;
  }
  .board-page.board-fullscreen .project-board-shell,
  .board-page:fullscreen .project-board-shell,
  .board-page.board-fullscreen .project-board-shell:has(.project-ref-panel.collapsed),
  .board-page:fullscreen .project-board-shell:has(.project-ref-panel.collapsed){
    display:grid;grid-template-columns:1fr;height:calc(100vh - 66px);gap:0;
  }
  .board-page.board-fullscreen .project-ref-panel,
  .board-page:fullscreen .project-ref-panel{
    display:none;
  }
  .board-page.board-fullscreen .global-board-stage,
  .board-page:fullscreen .global-board-stage{
    height:100%;min-height:0;
  }
  .board-page-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}

  /* ---------- bibliothèque « Références » (popup vitrine) ---------- */
  .library-tray .library-titles{min-width:0}
  .library-sub{margin:5px 0 0;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--muted-2)}
  .library-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
  .library-controls .collect-search{width:auto;flex:1 1 240px}
  .library-mode-btn{
    min-height:34px;display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;
    padding:7px 10px;border-radius:3px;border:1px solid rgba(240,236,227,.10);
    background:rgba(0,0,0,.08);color:var(--muted);font-family:var(--mono);font-size:10px;
    letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap;
  }
  .library-mode-btn:hover{color:var(--text);border-color:var(--muted)}
  .library-mode-btn[aria-pressed="true"]{
    border-color:rgba(95,163,180,.45);color:var(--cold-soft);background:rgba(95,163,180,.08);
  }
  .library-mode-btn[aria-pressed="true"]:hover{background:rgba(95,163,180,.16)}
  .library-bulk{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-right:auto}
  .library-facets{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
  .library-facets:empty{display:none}
  .library-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
  .library-grid[hidden]{display:none}
  .library-empty{font-family:var(--mono);font-size:11px;color:var(--muted-2);line-height:1.6;padding:30px 0;max-width:520px}
  .lib-card{
    position:relative;border:1px solid var(--hair);border-radius:3px;overflow:hidden;background:var(--card);
    display:flex;flex-direction:column;transition:border-color .15s;
  }
  .lib-card:hover{border-color:var(--muted-2)}
  .lib-thumb{position:relative;aspect-ratio:4/5;background-size:cover;background-position:center;cursor:pointer}
  .lib-remove{
    position:absolute;top:7px;right:7px;width:24px;height:24px;border-radius:2px;cursor:pointer;
    background:rgba(10,14,16,.6);border:1px solid rgba(255,255,255,.14);color:var(--text);
    display:flex;align-items:center;justify-content:center;font-size:13px;line-height:1;backdrop-filter:blur(2px);
    opacity:0;transition:opacity .15s,border-color .15s,color .15s;
  }
  .lib-card:hover .lib-remove{opacity:1}
  .library-tray.send-mode .lib-remove{display:none}
  .lib-remove:hover{border-color:var(--warm);color:var(--warm-soft)}
  .lib-meta{padding:9px 10px 10px;display:flex;flex-direction:column;gap:7px;flex:1}
  .lib-note{font-family:var(--serif);font-size:13px;line-height:1.25;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .lib-tags{display:flex;flex-wrap:wrap;gap:5px}
  .lib-tags span{font-family:var(--mono);font-size:9px;color:var(--cold-soft);border:1px solid rgba(95,163,180,.25);border-radius:2px;padding:2px 5px}
  .lib-src{margin-top:auto;font-family:var(--mono);font-size:9px;color:var(--warm-soft);letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* sélection -> board : carte cochable, posée=bleu, cochée=warm */
  .lib-card.selectable{cursor:pointer}
  .library-tray.send-mode .lib-card.selectable:not(.selected){opacity:.55}
  .lib-card.selectable:hover{border-color:var(--muted-2)}
  .lib-card.selected{border-color:var(--warm);box-shadow:none}
  .lib-card.on-board{border-color:rgba(95,163,180,.62);box-shadow:inset 0 0 0 1px rgba(95,163,180,.18);cursor:default}
  .lib-card.on-board .lib-thumb::after{content:"";position:absolute;inset:0;background:rgba(95,163,180,.20);pointer-events:none}
  .lib-badge{position:absolute;top:9px;right:9px;z-index:2;line-height:1;pointer-events:none}
  .lib-onboard{
    font-family:var(--mono);font-size:8px;letter-spacing:.06em;text-transform:uppercase;color:var(--cold-soft);
    background:rgba(8,10,11,.68);border:1px solid rgba(95,163,180,.72);border-radius:2px;padding:4px 7px;backdrop-filter:blur(2px);
  }
  .lib-check{
    display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:4px;font-size:12px;
    border:1.5px solid rgba(240,236,227,.5);background:rgba(8,10,11,.5);color:transparent;
    backdrop-filter:blur(2px);transition:background .15s,border-color .15s,color .15s;
  }
  .lib-card.selectable:hover .lib-check{border-color:var(--warm)}
  .lib-card.selected .lib-check{background:var(--warm);border-color:var(--warm);color:#1a1206}
  .library-actions{
    margin-top:14px;padding-top:14px;border-top:1px solid var(--hair);
    display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap;
    visibility:hidden;pointer-events:none;
  }
  .library-tray.send-mode .library-actions{visibility:visible;pointer-events:auto}
  .library-sel-count{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.03em}
  .board-toolbar{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    margin:0 0 14px;padding:7px 8px;border:1px solid var(--hair);border-radius:4px;
    background:linear-gradient(180deg, rgba(240,236,227,.055), rgba(240,236,227,.022));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
  }
  .tool-group{display:flex;align-items:center;gap:4px;padding-right:8px;margin-right:2px;border-right:1px solid var(--hair)}
  .tool-group:last-of-type{border-right:0}
  .tool-spacer{flex:1 1 auto}
  .tool-btn{
    min-height:31px;display:inline-flex;align-items:center;gap:7px;
    font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--muted);
    background:rgba(0,0,0,.08);border:1px solid rgba(240,236,227,.10);border-radius:3px;
    padding:6px 9px;cursor:pointer;white-space:nowrap;
  }
  .tool-btn.compact{padding:6px;gap:0}
  .tool-btn.compact .tool-icon{width:18px;height:18px}
  .tool-value{
    min-width:43px;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--muted);
    padding:0 4px;
  }
  .tool-split{position:relative;display:inline-flex;align-items:stretch}
  .tool-split .tool-btn{border-radius:0}
  .tool-split-main{border-radius:3px 0 0 3px !important}
  .tool-split-toggle{
    min-width:29px;justify-content:center;padding:6px 7px;border-left:0;border-radius:0 3px 3px 0 !important;
  }
  .tool-btn:hover{color:var(--text);border-color:var(--muted-2);background:rgba(240,236,227,.045)}
  .tool-btn.primary{border-color:rgba(95,163,180,.45);color:var(--cold-soft);background:rgba(95,163,180,.09)}
  .tool-btn.primary:hover{background:rgba(95,163,180,.16)}
  .tool-btn:disabled{
    opacity:.42;cursor:not-allowed;filter:saturate(.65);
  }
  .tool-btn:disabled:hover{
    color:var(--muted);border-color:rgba(240,236,227,.10);background:rgba(0,0,0,.08);
  }
  .tool-btn.companion-ready{
    border-color:rgba(95,163,180,.45);color:var(--cold-soft);background:rgba(95,163,180,.09);
  }
  .tool-btn.companion-ready:hover{
    color:var(--text);background:rgba(95,163,180,.16);
  }
  .tool-split.companion-ready .tool-split-toggle{
    border-color:rgba(95,163,180,.45);color:var(--cold-soft);background:rgba(95,163,180,.07);
  }
  .tool-menu{
    position:absolute;top:calc(100% + 5px);right:0;z-index:30;min-width:170px;
    padding:5px;border:1px solid rgba(240,236,227,.14);border-radius:4px;
    background:rgba(42,38,33,.98);box-shadow:0 16px 35px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.04);
  }
  .tool-menu-item{
    width:100%;display:flex;align-items:center;gap:8px;padding:8px 9px;
    font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-align:left;color:var(--muted);
    border:0;border-radius:3px;background:transparent;cursor:pointer;
  }
  .tool-menu-item:hover{color:var(--text);background:rgba(240,236,227,.06)}
  .tool-menu-item:disabled{opacity:.42;cursor:not-allowed}
  .tool-menu-item:disabled:hover{color:var(--muted);background:transparent}
  .tool-btn.active,.tool-btn[aria-pressed="true"]{
    color:#071417;border-color:var(--cold);background:var(--cold);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);
  }
  .tool-btn.active .tool-icon,.tool-btn[aria-pressed="true"] .tool-icon{
    border-color:rgba(0,0,0,.22);background:rgba(255,255,255,.16);
  }
  .bridge-panel{
    margin:-6px 0 14px;padding:10px 12px;border:1px solid var(--hair);border-radius:4px;
    background:linear-gradient(180deg, rgba(240,236,227,.04), rgba(240,236,227,.018));
    display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(240px,1fr) minmax(150px,auto) auto;gap:12px;align-items:center;
  }
  .bridge-panel.bridge-panel-dedicated{
    margin:0;padding:16px;grid-template-columns:minmax(260px,1.1fr) minmax(320px,1fr) minmax(170px,auto) auto;
  }
  .bridge-status{display:flex;align-items:center;gap:10px;min-width:0}
  .bridge-dot{
    width:9px;height:9px;border-radius:50%;background:var(--muted-2);
    box-shadow:0 0 0 3px rgba(240,236,227,.04);
  }
  .bridge-status[data-state="ready"] .bridge-dot{background:var(--cold-soft);box-shadow:0 0 0 3px rgba(95,163,180,.12)}
  .bridge-status[data-state="missing"] .bridge-dot{background:var(--warm);box-shadow:0 0 0 3px rgba(216,163,94,.12)}
  .bridge-title{
    font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text);
  }
  .bridge-detail{
    margin-top:3px;font-family:var(--mono);font-size:9px;line-height:1.35;color:var(--muted-2);
  }
  .bridge-meta{
    margin:0;display:grid;grid-template-columns:1fr 1fr;gap:10px;min-width:0;
  }
  .bridge-meta div{min-width:0}
  .bridge-meta dt{
    margin:0 0 3px;font-family:var(--mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);
  }
  .bridge-meta dd{
    margin:0;font-family:var(--mono);font-size:9px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .bridge-config-toggle{justify-self:end}
  .bridge-mode{
    display:flex;align-items:center;gap:7px;justify-self:end;font-family:var(--mono);font-size:9px;
    letter-spacing:.08em;text-transform:uppercase;color:var(--muted-2);white-space:nowrap;
  }
  .bridge-mode select{
    min-height:31px;border:1px solid rgba(240,236,227,.10);border-radius:3px;background:rgba(0,0,0,.08);
    color:var(--muted);font-family:var(--mono);font-size:10px;letter-spacing:.02em;padding:6px 8px;
  }
  .bridge-mode select:focus{outline:none;border-color:rgba(95,163,180,.45);color:var(--text)}
  .bridge-config{
    grid-column:1 / -1;margin-top:2px;padding:10px;border:1px solid rgba(216,163,94,.22);border-radius:3px;
    background:rgba(0,0,0,.12);
  }
  .bridge-config p{
    margin:0 0 7px;font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);
  }
  .bridge-config code{
    display:block;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:10px;line-height:1.45;color:var(--warm-soft);
  }
  .bridge-download{
    grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:10px;border:1px solid rgba(95,163,180,.20);border-radius:4px;background:rgba(95,163,180,.055);
  }
  .bridge-download-title{
    font-family:var(--mono);font-size:10px;letter-spacing:.10em;text-transform:uppercase;color:var(--cold-soft);
  }
  .bridge-download-detail{
    margin-top:4px;font-family:var(--mono);font-size:9px;line-height:1.35;color:var(--muted-2);
  }
  .bridge-download-actions{display:flex;align-items:center;gap:8px;flex:0 0 auto}
  .bridge-download-main{text-decoration:none;border-color:rgba(95,163,180,.45);color:var(--cold-soft);background:rgba(95,163,180,.10)}
  .bridge-download-main:hover{color:var(--text);background:rgba(95,163,180,.17)}
  .bridge-download-alt{
    font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--muted);text-decoration:none;
    border:1px solid rgba(240,236,227,.12);border-radius:3px;padding:8px 10px;background:rgba(0,0,0,.08);
  }
  .bridge-download-alt:hover{color:var(--text);border-color:var(--muted-2);background:rgba(240,236,227,.045)}
  .bridge-download-version{
    display:block;margin-top:4px;font-size:8px;letter-spacing:.10em;text-transform:uppercase;color:var(--muted);
  }
  .bridge-page-download{
    max-width:1040px;margin:0 0 16px;
  }
  /* Note d'install : app non signée → SmartScreen. Accent chaud = geste humain attendu. */
  .bridge-install{
    max-width:1040px;margin:0 0 18px;padding:12px 14px;border:1px solid rgba(216,163,94,.24);
    border-radius:4px;background:rgba(216,163,94,.05);
  }
  .bridge-install-head{
    display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;cursor:pointer;list-style:none;
  }
  .bridge-install-head::-webkit-details-marker{display:none}
  .bridge-install-head::after{
    content:"›";margin-left:auto;color:var(--muted-2);font-size:15px;transition:transform .15s;
  }
  .bridge-install[open] .bridge-install-head::after{transform:rotate(90deg)}
  .bridge-install-badge{
    flex:0 0 auto;padding:2px 8px;border:1px solid rgba(216,163,94,.4);border-radius:10px;
    font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--warm-soft);
  }
  .bridge-install-summary{
    font-family:var(--mono);font-size:10px;line-height:1.45;color:var(--muted);
  }
  .bridge-install-steps{
    margin:12px 0 0;padding-left:20px;display:grid;gap:6px;
    font-family:var(--mono);font-size:10px;line-height:1.5;color:var(--muted);
  }
  .bridge-install-steps b{color:var(--text);font-weight:500}
  .bridge-install-checksum{
    margin-top:12px;padding-top:11px;border-top:1px solid var(--hair);
  }
  .bridge-install-label{
    font-family:var(--mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);margin-bottom:6px;
  }
  .bridge-install-hash{
    display:block;font-family:var(--mono);font-size:10px;color:var(--cold-soft);
    word-break:break-all;padding:6px 8px;border-radius:3px;background:rgba(0,0,0,.16);
  }
  .bridge-install-verify{
    margin:8px 0 0;font-family:var(--mono);font-size:9px;line-height:1.5;color:var(--muted-2);
  }
  .bridge-install-verify code{
    color:var(--warm-soft);word-break:break-all;
  }
  /* Board : raccourci vers la page bridge (la page dédiée porte le vrai téléchargement). */
  .bridge-download-link{
    grid-column:1 / -1;display:flex;align-items:center;gap:9px;text-decoration:none;
    padding:9px 11px;border:1px solid rgba(95,163,180,.20);border-radius:4px;background:rgba(95,163,180,.055);
    font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--cold-soft);
  }
  .bridge-download-link:hover{color:var(--text);background:rgba(95,163,180,.12);border-color:rgba(95,163,180,.4)}
  .bridge-download-link-arrow{margin-left:auto;color:var(--muted-2)}
  .bridge-download-link:hover .bridge-download-link-arrow{color:var(--cold-soft)}
  /* En page dédiée, le panneau est déjà sur la page de téléchargement : on masque le raccourci. */
  .bridge-panel-dedicated .bridge-download-link{display:none}
  .bridge-preview{
    grid-column:1 / -1;margin-top:-2px;font-family:var(--mono);font-size:9px;line-height:1.45;color:var(--muted-2);
  }
  .bridge-preview b{color:var(--cold-soft);font-weight:500}
  .bridge-preview .warn{color:var(--warm-soft)}
  @media (max-width:900px){
    .bridge-panel{grid-template-columns:1fr}
    .bridge-config-toggle,.bridge-mode{justify-self:start}
    .bridge-download{align-items:flex-start;flex-direction:column}
  }
  .tool-icon{
    width:17px;height:17px;display:inline-flex;align-items:center;justify-content:center;
    border:1px solid rgba(240,236,227,.12);border-radius:2px;background:rgba(0,0,0,.14);
    font-size:11px;line-height:1;color:currentColor;
  }
  .tool-icon svg{width:13px;height:13px;display:block;fill:currentColor}
  .board-toolbar-note{font-family:var(--mono);font-size:10px;color:var(--muted-2);letter-spacing:.02em}
  .project-board-shell{
    display:grid;grid-template-columns:300px 1fr;gap:14px;align-items:stretch;
    transition:grid-template-columns .34s cubic-bezier(.4,0,.2,1);
  }
  .project-ref-panel{
    height:calc(100vh - 190px);min-height:560px;overflow:auto;border:1px solid var(--hair);border-radius:5px;
    background:rgba(240,236,227,.025);padding:14px;transition:padding .34s cubic-bezier(.4,0,.2,1);
  }
  .project-ref-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
  .prh-titles{min-width:0}
  .project-ref-head h2{margin:0;font-family:var(--serif);font-size:22px;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .prh-vertical{display:none}
  .prh-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
  .pr-collapse{
    width:28px;height:28px;flex-shrink:0;border-radius:4px;border:1px solid var(--hair);background:transparent;
    color:var(--muted);font-size:16px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;
  }
  .pr-collapse:hover{border-color:rgba(95,163,180,.5);color:var(--cold-soft)}
  .project-ref-list{display:flex;flex-direction:column;gap:12px}
  .pr-refs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
  .pr-ref{
    position:relative;aspect-ratio:4/5;border-radius:5px;overflow:hidden;cursor:grab;
    border:1px solid rgba(240,236,227,.08);background:rgba(0,0,0,.18);
  }
  .pr-ref.in-list{border-color:rgba(95,163,180,.22)}
  .pr-ref.placed{cursor:default}
  .pr-ref.ref-selected{outline:1.5px solid var(--cold);outline-offset:1px;border-color:var(--cold)}
  .pr-ref.dragging{opacity:.45;border-color:rgba(95,163,180,.5)}
  .pr-ref{transition:border-color .15s}
  .pr-thumb{position:absolute;inset:0;width:100%;height:100%;background-size:cover;background-position:center}
  .pr-ref.placed::after{content:"";position:absolute;top:7px;left:7px;width:7px;height:7px;border-radius:50%;background:var(--cold-soft);box-shadow:0 0 0 2px rgba(8,10,11,.6);z-index:2}
  .pr-overlay{
    position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:9px;
    background:linear-gradient(to top,rgba(6,9,10,.92),rgba(6,9,10,.4) 55%,rgba(6,9,10,0));
    opacity:0;pointer-events:none;transition:opacity .16s ease;
  }
  .pr-ref:hover .pr-overlay,.pr-ref:focus-within .pr-overlay{opacity:1;pointer-events:auto}
  .pr-overlay-foot{display:flex;flex-direction:column;gap:8px}
  .pr-kebab{
    position:absolute;top:7px;right:7px;width:24px;height:24px;border-radius:4px;cursor:pointer;
    border:1px solid rgba(240,236,227,.2);background:rgba(8,10,11,.55);color:var(--text);
    font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(2px);
  }
  .pr-kebab:hover{border-color:var(--cold-soft);color:var(--cold-soft)}
  .pr-note{font-family:var(--serif);font-size:12px;line-height:1.3;color:var(--text);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
  .pr-actions{display:flex;align-items:center;gap:6px}
  .pr-add{
    padding:0 9px;height:26px;border-radius:3px;border:1px solid rgba(95,163,180,.5);
    background:rgba(10,14,16,.7);color:var(--cold-soft);font-family:var(--mono);font-size:10px;
    letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap;
  }
  .pr-add:hover{background:rgba(95,163,180,.22)}
  .pr-state{font-family:var(--mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--cold-soft)}
  .pr-empty{font-family:var(--mono);font-size:11px;color:var(--muted-2);line-height:1.45}
  /* ---- popup « détails de la carte » ---- */
  .ref-pop{
    position:fixed;z-index:1000;width:240px;max-width:82vw;
    background:var(--paper,#15171a);border:1px solid var(--hair);border-radius:9px;overflow:hidden;
    box-shadow:0 18px 50px rgba(0,0,0,.55);animation:refPopIn .14s ease;
  }
  @keyframes refPopIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
  .rp-thumb{height:150px;background-size:cover;background-position:center}
  .rp-body{padding:11px 12px 13px;display:flex;flex-direction:column;gap:9px}
  .rp-note{font-family:var(--serif);font-size:13px;line-height:1.35;color:var(--text)}
  .rp-tags{display:flex;flex-wrap:wrap;gap:5px}
  .rp-tags span{font-family:var(--mono);font-size:9px;color:var(--cold-soft);border:1px solid rgba(95,163,180,.28);border-radius:2px;padding:2px 5px}
  .rp-src{font-family:var(--mono);font-size:9px;color:var(--warm-soft);letter-spacing:.02em;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
  .pr-pick-toggle{
    padding:7px 11px;border-radius:5px;border:1px solid rgba(95,163,180,.4);background:rgba(95,163,180,.08);
    color:var(--cold-soft);font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;white-space:nowrap;
  }
  .pr-pick-toggle:hover{background:rgba(95,163,180,.16)}
  /* ---- repli du panneau ---- */
  .project-board-shell:has(.project-ref-panel.collapsed){grid-template-columns:48px 1fr}
  .project-ref-panel.collapsed{padding:12px 6px;overflow:hidden}
  .project-ref-panel.collapsed .project-ref-head{flex-direction:column;gap:12px;margin:0}
  .project-ref-panel.collapsed .prh-titles,
  .project-ref-panel.collapsed #prAddRefs,
  .project-ref-panel.collapsed #projectRefList{display:none}
  .project-ref-panel.collapsed .prh-actions{flex-direction:column}
  .project-ref-panel.collapsed .prh-vertical{
    display:block;writing-mode:vertical-rl;transform:rotate(180deg);
    font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px;
    animation:prhVerticalIn .42s ease both;
  }
  @keyframes prhVerticalIn{ from{opacity:0;transform:rotate(180deg) translateY(-8px)} to{opacity:1;transform:rotate(180deg) translateY(0)} }
  @media (prefers-reduced-motion:reduce){
    .project-board-shell,.project-ref-panel{transition:none}
    .project-ref-panel.collapsed .prh-vertical{animation:none}
    .pr-ref:hover{transform:none}
    .ref-pop{animation:none}
  }
  .ctx-menu{
    position:fixed;z-index:1000;min-width:170px;padding:5px;
    background:var(--card,#1b1b1b);border:1px solid rgba(240,236,227,.14);border-radius:6px;
    box-shadow:0 12px 34px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:2px;
  }
  .ctx-item{
    text-align:left;padding:8px 10px;border:0;border-radius:4px;background:transparent;cursor:pointer;
    font-family:var(--mono);font-size:11px;letter-spacing:.03em;color:var(--text);
  }
  .ctx-item:hover{background:rgba(95,163,180,.14)}
  .ctx-item.danger{color:#d8867a}
  .ctx-item.danger:hover{background:rgba(208,108,92,.16)}

  /* ---------- save dialog (consent & provenance) ---------- */
  .sv-label{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:6px}
  .sv-name{
    width:100%;background:var(--surface);border:1px solid var(--hair);border-radius:4px;color:var(--text);
    font-family:var(--serif);font-size:17px;padding:10px 12px;outline:none;margin-bottom:18px;
  }
  .sv-name:focus{border-color:var(--cold)}
  .sv-section-title{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 9px;padding-top:6px;border-top:1px solid var(--hair)}
  .sv-prov{margin:0 0 18px;padding-left:18px;display:flex;flex-direction:column;gap:5px;font-size:13px;line-height:1.4;color:var(--text)}
  .sv-prov li{color:var(--muted)}
  .sv-consent-lead{font-size:13px;line-height:1.45;color:var(--muted);margin-bottom:12px}
  .sv-consent-lead b{color:var(--cold-soft)}
  .sv-consent{display:flex;align-items:flex-start;gap:9px;font-size:13.5px;line-height:1.4;color:var(--text);margin-bottom:9px;cursor:pointer}
  .sv-consent input{margin-top:3px;accent-color:var(--warm)}
  .sv-consent.always{color:var(--muted)}
  .sv-hint{color:var(--muted-2);font-size:12px}
  .sv-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--hair)}
  .sv-cancel{
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--muted);
    background:transparent;border:1px solid var(--hair);border-radius:3px;padding:9px 14px;cursor:pointer;
  }
  .sv-cancel:hover{color:var(--text);border-color:var(--muted)}
  .sv-confirm{
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:#1a1206;text-transform:uppercase;
    background:var(--warm);border:0;border-radius:3px;padding:9px 18px;cursor:pointer;transition:background .15s;
  }
  .sv-confirm:hover{background:var(--warm-soft)}
  .sv-confirm.danger{background:#c2554a;color:#fbeae6}
  .sv-confirm.danger:hover{background:#d0685c}
  #confirmDialog{z-index:60}
  .confirm-card{width:min(440px,100%)}
  .confirm-text{margin:0 0 22px;font-size:14px;line-height:1.5;color:var(--text)}
  .confirm-text b{color:var(--text);font-weight:600}
  .confirm-text .confirm-sub{display:block;margin-top:8px;font-size:12.5px;color:var(--muted)}
  .project-card{width:min(620px,100%)}
  .project-dialog-lead{
    margin:0 0 16px;font-size:13px;line-height:1.45;color:var(--muted);
  }
  .project-label{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:6px}
  .project-input{
    width:100%;background:var(--surface);border:1px solid var(--hair);border-radius:4px;color:var(--text);
    font-family:var(--serif);font-size:18px;padding:11px 12px;outline:none;
  }
  .project-input:focus{border-color:var(--cold)}
  .project-dialog-note{
    margin-top:12px;font-family:var(--mono);font-size:10px;letter-spacing:.03em;color:var(--muted-2);line-height:1.45;
  }
  .project-actions{margin-top:18px}
  .settings-section-title{
    font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);
    margin:4px 0 10px;padding-bottom:8px;border-bottom:1px solid var(--hair);
  }
  .settings-row{display:flex;align-items:flex-start;gap:13px;padding:11px 0}
  .settings-row + .settings-row{border-top:1px solid rgba(240,236,227,.05)}
  .settings-row-text{display:flex;flex-direction:column;gap:3px;cursor:pointer}
  .settings-row-title{font-family:var(--serif);font-size:15px;color:var(--text)}
  .settings-row-hint{font-size:12px;line-height:1.4;color:var(--muted)}
  .settings-switch{
    flex-shrink:0;margin-top:2px;width:38px;height:22px;padding:0;border:0;background:transparent;cursor:pointer;
  }
  .settings-switch .ss-track{
    display:block;width:38px;height:22px;border-radius:11px;position:relative;
    background:rgba(240,236,227,.12);border:1px solid var(--hair);transition:background .16s,border-color .16s;
  }
  .settings-switch .ss-knob{
    position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;
    background:var(--muted);transition:transform .16s,background .16s;
  }
  .settings-switch[aria-checked="true"] .ss-track{background:rgba(95,163,180,.30);border-color:rgba(95,163,180,.55)}
  .settings-switch[aria-checked="true"] .ss-knob{transform:translateX(16px);background:var(--cold-soft)}
  .settings-switch:focus-visible .ss-track{outline:2px solid var(--cold);outline-offset:2px}

  /* ---------- artifact cards (entry + management) ---------- */
  .entry-artifacts{margin-top:40px;padding-top:24px;border-top:1px solid var(--hair)}
  .ea-head{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
  .art-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
  .art-card{
    position:relative;
    background:var(--surface);border:1px solid var(--hair);border-radius:5px;padding:11px 13px;
    display:flex;flex-direction:column;gap:8px;
  }
  .art-name{font-family:var(--serif);font-size:16px;color:var(--text);line-height:1.25;margin-bottom:0;padding-right:24px}
  .art-brief{font-family:var(--serif);font-style:italic;font-size:13px;color:var(--muted);line-height:1.35;margin-bottom:8px}
  .art-meta{font-family:var(--mono);font-size:10px;color:var(--muted-2);letter-spacing:.03em;margin-bottom:0}
  .art-mood-strip{display:flex;align-items:center;gap:5px;margin:2px 0 0}
  /* menu kebab (⋯) en haut à droite */
  .art-menu{position:absolute;top:8px;right:8px}
  .art-kebab{
    width:22px;height:22px;border-radius:3px;border:1px solid transparent;background:transparent;
    color:var(--muted-2);font-size:15px;line-height:1;cursor:pointer;
    display:inline-flex;align-items:center;justify-content:center;
    opacity:0;transition:opacity .15s,color .15s,border-color .15s,background .15s;
  }
  .art-card:hover .art-kebab,
  .art-card:focus-within .art-kebab,
  .art-kebab[aria-expanded="true"]{opacity:1}
  .art-kebab:hover,.art-kebab[aria-expanded="true"]{color:var(--text);border-color:var(--hair);background:rgba(240,236,227,.05)}
  .art-menu-pop{
    position:absolute;top:26px;right:0;z-index:6;min-width:128px;
    background:var(--surface);border:1px solid var(--hair);border-radius:5px;
    box-shadow:0 8px 22px rgba(0,0,0,.35);padding:5px;display:flex;flex-direction:column;gap:2px;
  }
  .art-menu-pop[hidden]{display:none}
  .art-menu-item{
    display:flex;align-items:center;gap:8px;width:100%;
    font-family:var(--mono);font-size:10px;letter-spacing:.04em;text-align:left;
    padding:7px 9px;border:0;border-radius:3px;background:transparent;color:var(--muted);cursor:pointer;transition:all .12s;
  }
  .art-menu-item:hover{background:rgba(240,236,227,.06);color:var(--text)}
  .art-menu-icon{width:14px;height:14px;display:inline-flex;align-items:center;justify-content:center;color:currentColor}
  .art-menu-icon svg{width:14px;height:14px;display:block;fill:currentColor}
  .art-menu-icon svg.trash-icon{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
  .art-menu-item.danger{color:#d8867a}
  .art-menu-item.danger:hover{background:rgba(208,108,92,.14);color:#f0a092}
  .art-mood-thumb{
    width:32px;height:40px;border-radius:2px;border:1px solid rgba(240,236,227,.08);
    background-size:cover;background-position:center;flex:0 0 auto;
  }
  .art-mood-more{
    width:32px;height:40px;border-radius:2px;border:1px solid var(--hair);
    display:inline-flex;align-items:center;justify-content:center;
    font-family:var(--mono);font-size:10px;color:var(--muted);background:rgba(240,236,227,.03);
  }
  .art-mood-empty{font-family:var(--mono);font-size:10px;color:var(--muted-2);margin:8px 0 9px}
  .art-consent{font-family:var(--mono);font-size:10px;color:var(--cold-soft);letter-spacing:.02em;display:flex;align-items:center;gap:6px}
  .ac-dot{width:6px;height:6px;border-radius:50%;background:var(--cold);flex:0 0 auto}
  .art-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}
  .art-btn{
    font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:6px 11px;border-radius:3px;cursor:pointer;
    border:1px solid var(--hair);background:transparent;color:var(--muted);transition:all .15s;
  }
  .art-btn:hover{color:var(--text);border-color:var(--muted)}
  .art-btn.open{border-color:rgba(95,163,180,.45);color:var(--cold-soft);background:rgba(95,163,180,.08)}
  .art-btn.open:hover{background:rgba(95,163,180,.16)}
  .art-btn.danger:hover{border-color:rgba(216,163,94,.6);color:var(--warm-soft)}
  .art-empty{font-family:var(--mono);font-size:11px;color:var(--muted-2);padding:6px 0}

  /* ---------- research space tabs + global reference board ---------- */
  .board-tool{
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--muted);
    background:transparent;border:1px solid var(--hair);border-radius:3px;padding:6px 10px;cursor:pointer;
  }
  .board-tool:hover{color:var(--text);border-color:var(--muted)}
  .board-tool.primary{border-color:rgba(95,163,180,.45);color:var(--cold-soft);background:rgba(95,163,180,.08)}
  .board-tool.primary:hover{background:rgba(95,163,180,.16)}
  .global-board-stage{
    height:calc(100vh - 190px);min-height:560px;overflow:auto;border:1px solid var(--hair);border-radius:5px;
    background:rgba(240,236,227,.018);
    transition:border-color .15s, box-shadow .15s;scrollbar-width:none;-ms-overflow-style:none;
    cursor:grab;
  }
  .global-board-stage::-webkit-scrollbar{width:0;height:0}
  .global-board-stage.drop-ready{border-color:rgba(95,163,180,.75);box-shadow:inset 0 0 0 1px rgba(95,163,180,.25)}
  .global-board-stage.zone-tool-active{cursor:crosshair;border-color:rgba(95,163,180,.75);box-shadow:inset 0 0 0 1px rgba(95,163,180,.25)}
  .global-board-stage.link-tool-active{cursor:crosshair;border-color:rgba(95,163,180,.70);box-shadow:inset 0 0 0 1px rgba(95,163,180,.20)}
  .global-board-stage.panning{cursor:grabbing;user-select:none}
  .global-board{
    position:relative;width:1000000px;height:1000000px;min-height:100%;
  }
  .global-board-world{
    position:absolute;left:0;top:0;width:1000000px;height:1000000px;
    transform-origin:0 0;
    background:
      linear-gradient(rgba(240,236,227,.035) 1px, transparent 1px),
      linear-gradient(90deg, rgba(240,236,227,.035) 1px, transparent 1px);
    background-size:28px 28px;
  }
  .gb-links{
    position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible;pointer-events:none;
  }
  .gb-link path{
    fill:none;stroke-linecap:round;
    pointer-events:stroke;cursor:pointer;
  }
  .gb-link-hit{stroke:transparent;stroke-width:18}
  .gb-link-line{
    stroke:var(--link-color, rgba(95,163,180,.58));stroke-width:2;
    filter:drop-shadow(0 2px 5px rgba(0,0,0,.28));
    pointer-events:none;
  }
  .gb-link:hover .gb-link-line{stroke-width:3}
  .gb-link circle{fill:var(--link-color, rgba(127,184,198,.85));stroke:rgba(9,18,20,.75);stroke-width:1.5;pointer-events:none}
  .gb-link-label rect{fill:rgba(35,31,27,.88);stroke:var(--link-color, rgba(95,163,180,.58));stroke-width:1}
  .gb-link-label text{
    font-family:var(--mono);font-size:11px;letter-spacing:.03em;fill:var(--text);
    dominant-baseline:middle;text-anchor:middle;pointer-events:none;
  }
  .gb-link-label{pointer-events:auto;cursor:pointer}
  .link-popover{
    position:fixed;z-index:45;width:260px;padding:10px;border:1px solid rgba(240,236,227,.14);border-radius:5px;
    background:rgba(42,38,33,.98);box-shadow:0 16px 38px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.04);
  }
  .link-popover-label{
    display:block;margin:0 0 5px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
  }
  .link-popover-input{
    width:100%;margin:0 0 10px;padding:8px 9px;border:1px solid var(--hair);border-radius:3px;
    background:rgba(0,0,0,.16);color:var(--text);font-family:var(--serif);font-size:14px;outline:none;
  }
  .link-popover-input:focus{border-color:var(--cold)}
  .link-color-row{display:flex;align-items:center;gap:7px;margin-bottom:11px}
  .link-color-input{
    width:34px;height:28px;padding:0;border:1px solid var(--hair);border-radius:3px;background:transparent;cursor:pointer;
  }
  .link-swatch{
    width:24px;height:24px;border-radius:50%;border:1px solid rgba(240,236,227,.22);background:var(--swatch);cursor:pointer;
  }
  .link-swatch:hover{box-shadow:0 0 0 2px rgba(240,236,227,.12)}
  .link-popover-actions{display:flex;justify-content:space-between;gap:8px}
  .link-delete,.link-save{
    font-family:var(--mono);font-size:10px;letter-spacing:.06em;border-radius:3px;padding:7px 9px;cursor:pointer;
  }
  .link-delete{border:1px solid rgba(216,112,94,.35);background:transparent;color:#dda294}
  .link-delete:hover{border-color:rgba(216,112,94,.65);background:rgba(216,112,94,.08)}
  .link-save{border:1px solid rgba(95,163,180,.45);background:rgba(95,163,180,.12);color:var(--cold-soft)}
  .link-save:hover{background:rgba(95,163,180,.20)}
  .gb-zone{
    --zone-color:#7fb8c6;
    position:absolute;left:0;top:0;border-radius:6px;
    border:1px dashed color-mix(in srgb, var(--zone-color) 52%, transparent);
    background:color-mix(in srgb, var(--zone-color) 5%, transparent);box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
    touch-action:none;user-select:none;
  }
  .gb-zone-draft{
    position:absolute;left:0;top:0;border:1px dashed rgba(95,163,180,.78);border-radius:6px;
    background:rgba(95,163,180,.08);box-shadow:inset 0 0 0 1px rgba(95,163,180,.18);
    pointer-events:none;
  }
  .gb-marquee{
    position:absolute;left:0;top:0;border:1px solid var(--cold);border-radius:3px;
    background:rgba(95,163,180,.10);pointer-events:none;z-index:80;
  }
  .gb-zone.dragging{border-color:rgba(216,163,94,.72);background:rgba(216,163,94,.055)}
  .gb-zone.resizing{border-color:rgba(216,163,94,.72);background:rgba(216,163,94,.055)}
  .gb-zone-head{
    height:30px;display:flex;align-items:center;justify-content:space-between;gap:8px;
    padding:0 8px;border-bottom:1px solid color-mix(in srgb, var(--zone-color) 26%, transparent);cursor:pointer;
    font-family:var(--mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;
    color:var(--zone-color);background:color-mix(in srgb, var(--zone-color) 9%, rgba(0,0,0,.12));
  }
  .gb-zone-head:hover{background:color-mix(in srgb, var(--zone-color) 16%, rgba(0,0,0,.12))}
  .zone-color-pop{
    position:fixed;z-index:1000;display:flex;gap:7px;padding:8px;
    background:var(--paper,#15171a);border:1px solid var(--hair);border-radius:8px;box-shadow:0 14px 38px rgba(0,0,0,.5);
  }
  .zcp-swatch{
    width:22px;height:22px;border-radius:50%;cursor:pointer;background:var(--c);
    border:2px solid transparent;box-shadow:0 0 0 1px rgba(0,0,0,.4);transition:transform .12s;
  }
  .zcp-swatch:hover{transform:scale(1.12)}
  .zcp-swatch.on{border-color:#fff}
  .zcp-custom{
    position:relative;width:22px;height:22px;border-radius:50%;cursor:pointer;overflow:hidden;
    background:conic-gradient(from 0deg,#e44,#ee4,#4e4,#4ee,#44e,#e4e,#e44);
    border:2px solid transparent;box-shadow:0 0 0 1px rgba(0,0,0,.4);transition:transform .12s;
  }
  .zcp-custom:hover{transform:scale(1.12)}
  .zcp-custom.on{border-color:#fff}
  .zcp-custom input{position:absolute;inset:-20%;width:140%;height:140%;opacity:0;cursor:pointer;border:0;padding:0;background:none}
  .gb-zone--solid{border-style:solid}
  .zone-style-pop{
    position:fixed;z-index:1000;width:236px;display:flex;flex-direction:column;gap:13px;padding:13px;
    background:var(--paper,#15171a);border:1px solid var(--hair);border-radius:9px;box-shadow:0 16px 44px rgba(0,0,0,.55);
  }
  .zsp-field{display:flex;flex-direction:column;gap:7px}
  .zsp-label{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-2)}
  .zsp-name{
    border:1px solid var(--hair);border-radius:5px;background:rgba(0,0,0,.2);color:var(--text);padding:7px 9px;
    font-family:var(--mono);font-size:11px;outline:none;
  }
  .zsp-name:focus{border-color:rgba(95,163,180,.55)}
  .zsp-colors{display:flex;flex-wrap:wrap;gap:7px}
  .zsp-border{display:flex;gap:7px}
  .zsp-bd{
    flex:1;padding:7px 8px;border-radius:5px;border:1px solid var(--hair);background:transparent;cursor:pointer;
    font-family:var(--mono);font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);
  }
  .zsp-bd:hover{border-color:rgba(95,163,180,.4);color:var(--cold-soft)}
  .zsp-bd.on{border-color:var(--cold);color:var(--cold-soft);background:rgba(95,163,180,.12)}
  .link-label-pop{
    position:fixed;z-index:1000;padding:8px;
    background:var(--paper,#15171a);border:1px solid var(--hair);border-radius:8px;box-shadow:0 14px 38px rgba(0,0,0,.5);
  }
  .llp-input{
    width:190px;border:1px solid var(--hair);border-radius:5px;background:rgba(0,0,0,.2);color:var(--text);
    padding:7px 9px;font-family:var(--mono);font-size:11px;outline:none;
  }
  .llp-input:focus{border-color:rgba(95,163,180,.55)}
  .gb-zone-name-input{
    flex:1;min-width:0;border:1px solid rgba(127,184,198,.45);border-radius:3px;
    background:rgba(0,0,0,.25);color:var(--cold-soft);padding:2px 6px;
    font-family:var(--mono);font-size:10px;letter-spacing:.07em;text-transform:uppercase;
    outline:none;
  }
  .gb-zone-remove{
    width:21px;height:21px;border-radius:3px;border:1px solid rgba(240,236,227,.12);
    background:rgba(0,0,0,.12);color:var(--muted);cursor:pointer;line-height:1;
  }
  .gb-zone-remove:hover{color:var(--warm-soft);border-color:rgba(216,163,94,.45)}
  .gb-zone-resize{
    position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;
  }
  .gb-zone-resize::before{
    content:"";position:absolute;right:5px;bottom:5px;width:8px;height:8px;
    border-right:1px solid rgba(127,184,198,.75);border-bottom:1px solid rgba(127,184,198,.75);
  }
  .gb-zone-resize::after{
    content:"";position:absolute;right:9px;bottom:5px;width:4px;height:4px;
    border-right:1px solid rgba(127,184,198,.45);border-bottom:1px solid rgba(127,184,198,.45);
  }
  .gb-card{
    position:absolute;left:0;top:0;width:190px;
    background:var(--surface);border:1px solid var(--hair);border-radius:5px;overflow:hidden;
    display:flex;flex-direction:column;touch-action:none;user-select:none;
    box-shadow:0 10px 26px rgba(0,0,0,.18);transition:box-shadow .12s,border-color .12s;
  }
  .gb-card:hover{border-color:var(--muted-2)}
  .gb-card.dragging{border-color:var(--warm);box-shadow:0 18px 44px rgba(0,0,0,.36);cursor:grabbing}
  .gb-card.link-targetable{cursor:crosshair;border-color:rgba(95,163,180,.42)}
  .gb-card.link-targetable:hover{border-color:var(--cold);box-shadow:0 12px 34px rgba(95,163,180,.12)}
  .gb-card.link-source{
    border-color:var(--cold);box-shadow:0 0 0 2px rgba(95,163,180,.30),0 14px 38px rgba(0,0,0,.28);
  }
  .gb-card{cursor:grab;overflow:visible}
  .gb-card.selected{outline:1.5px solid var(--cold);outline-offset:0}
  .gb-thumb{position:absolute;inset:0;background-size:cover;background-position:center;border-radius:4px}
  .gb-rz{
    position:absolute;width:12px;height:12px;border-radius:50%;z-index:6;display:none;
    background:var(--cold);border:1.5px solid #0a0e10;box-shadow:0 1px 3px rgba(0,0,0,.5);
    transform:translate(-50%,-50%);
  }
  .gb-card.selected .gb-rz{display:block}
  .gb-rz-nw{top:0;left:0;cursor:nwse-resize}
  .gb-rz-n{top:0;left:50%;cursor:ns-resize}
  .gb-rz-ne{top:0;left:100%;cursor:nesw-resize}
  .gb-rz-e{top:50%;left:100%;cursor:ew-resize}
  .gb-rz-se{top:100%;left:100%;cursor:nwse-resize}
  .gb-rz-s{top:100%;left:50%;cursor:ns-resize}
  .gb-rz-sw{top:100%;left:0;cursor:nesw-resize}
  .gb-rz-w{top:50%;left:0;cursor:ew-resize}
  .rp-origins{display:flex;flex-wrap:wrap;gap:5px;align-items:center;border-top:1px solid var(--hair);padding-top:8px}
  .rp-origins-label{width:100%;font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2)}
  .rp-origins span:not(.rp-origins-label){font-family:var(--mono);font-size:9px;color:var(--warm-soft);border:1px solid rgba(216,163,94,.34);background:rgba(216,163,94,.07);border-radius:3px;padding:3px 6px}
  .gb-tags{display:flex;flex-wrap:wrap;gap:5px}
  .gb-tags span{
    font-family:var(--mono);font-size:9px;color:var(--cold-soft);
    border:1px solid rgba(95,163,180,.28);border-radius:2px;padding:2px 5px;
  }
  .gb-note{font-family:var(--serif);font-size:13px;line-height:1.32;color:var(--muted)}
  .gb-source{
    display:flex;justify-content:space-between;gap:8px;border-top:1px solid rgba(240,236,227,.07);padding-top:8px;
    font-family:var(--mono);font-size:9px;color:var(--muted-2);letter-spacing:.02em;
  }
  .gb-origins{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
  .gb-origin-label{
    width:100%;font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-2);
  }
  .gb-origin{
    border:1px solid rgba(216,163,94,.34);background:rgba(216,163,94,.07);color:var(--warm-soft);
    border-radius:3px;padding:4px 7px;font-family:var(--mono);font-size:9px;letter-spacing:.03em;cursor:pointer;
    max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  }
  .gb-origin:hover{background:rgba(216,163,94,.14)}
  .gb-more{font-family:var(--mono);font-size:9px;color:var(--muted-2)}
  .gb-remove{
    margin-top:2px;align-self:flex-start;border:1px solid var(--hair);background:transparent;color:var(--muted-2);
    border-radius:3px;padding:4px 7px;font-family:var(--mono);font-size:9px;letter-spacing:.03em;cursor:pointer;
  }
  .gb-remove:hover{color:var(--warm-soft);border-color:rgba(216,163,94,.45)}
  .global-board-empty{font-family:var(--mono);font-size:11px;color:var(--muted-2);padding:8px 0}

  @media (max-width: 860px){
    .project-board-shell{grid-template-columns:1fr}
    .project-ref-panel{height:auto;min-height:0;max-height:320px}
    .global-board-stage{height:70vh;min-height:480px}
  }

  /* ---------- recall actions ---------- */
  .recall-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
  .recall-save{
    font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--cold-soft);
    border:1px solid rgba(95,163,180,.45);background:rgba(95,163,180,.08);border-radius:3px;
    padding:8px 13px;cursor:pointer;white-space:nowrap;transition:background .15s;
  }
  .recall-save:hover{background:rgba(95,163,180,.16)}

  .why{display:flex;flex-wrap:wrap;gap:6px}
  .why .t{
    font-family:var(--mono);font-size:10px;letter-spacing:.02em;color:var(--cold-soft);
    border:1px solid rgba(95,163,180,.28);border-radius:2px;padding:3px 7px;
  }
  .attr{
    margin-top:auto;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.03em;
    display:grid;grid-template-columns:1fr;gap:4px;border-top:1px solid var(--hair);padding-top:10px;
  }
  .attr .src{color:var(--warm-soft)}
  .attr .lic{color:var(--muted-2)}

  /* ---------- source link (provenance, cliquable) ---------- */
  a.src{
    color:var(--warm-soft);text-decoration:none;cursor:pointer;
    border-bottom:1px solid transparent;transition:border-color .15s,color .15s;
    display:inline-flex;align-items:baseline;gap:3px;
    justify-self:start;width:max-content;max-width:100%;
  }
  a.src:hover{border-bottom-color:var(--warm-soft)}
  a.src:focus-visible{outline:2px solid var(--warm-soft);outline-offset:2px}
  a.src .src-ext{font-size:.82em;opacity:.65}
  a.src.aestelier{color:var(--warm)}
  a.src.aestelier:hover{border-bottom-color:var(--warm)}

  /* ---------- feedback instrument (per tile) ---------- */
  .fb{display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(240,236,227,.07);padding-top:10px}
  .fb-dir{display:flex;gap:7px}
  .fb-btn{
    flex:1;font-family:var(--mono);font-size:10px;letter-spacing:.04em;padding:6px 8px;border-radius:2px;cursor:pointer;
    border:1px solid var(--hair);background:transparent;color:var(--muted);transition:all .15s;
  }
  .fb-btn.closer:hover{border-color:var(--cold);color:var(--cold-soft)}
  .fb-btn.closer.on{border-color:var(--cold);color:var(--cold-soft);background:rgba(95,163,180,.12)}
  .fb-btn.farther:hover{border-color:var(--muted);color:var(--text)}
  .fb-btn.farther.on{border-color:var(--muted-2);color:var(--muted);background:rgba(240,236,227,.05)}
  .fb-reasons{display:flex;flex-wrap:wrap;align-items:center;gap:5px}
  .fb-reasons[hidden]{display:none}
  .fb-why{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);margin-right:2px}
  .fb-reason{
    font-family:var(--mono);font-size:9.5px;padding:3px 7px;border-radius:2px;cursor:pointer;
    border:1px solid var(--hair);background:transparent;color:var(--muted);transition:all .15s;
  }
  .fb-reason:hover{border-color:var(--muted);color:var(--text)}
  .fb-reason.on{border-color:var(--warm);color:var(--warm-soft);background:rgba(216,163,94,.10)}
  .tile.fb-closer{border-color:rgba(95,163,180,.45);box-shadow:inset 3px 0 0 var(--cold)}
  .tile.fb-farther{opacity:.5}
  .tile.fb-farther:hover{opacity:.8}
  .fb-tally{font-family:var(--mono);font-size:10px;color:var(--cold-soft);letter-spacing:.03em;margin:-8px 0 18px}

  /* re-rank shimmer */
  .rerank{
    position:absolute;inset:0;display:none;align-items:center;justify-content:center;
    background:rgba(21,24,27,.72);backdrop-filter:blur(2px);z-index:3;
    font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--cold-soft);text-transform:uppercase;
  }
  .rerank.on{display:flex}
  .rerank .pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--cold);margin-right:10px;animation:pulse 1s ease-in-out infinite}

  footer{border-top:1px solid var(--hair);padding:22px 0 40px;margin-top:10px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap}
  .foot{font-family:var(--mono);font-size:10px;color:var(--muted-2);letter-spacing:.05em;line-height:1.7;flex:1;min-width:280px}
  .foot b{color:var(--muted)}

  /* ---------- session journal (researcher instrument) ---------- */
  .journal-link{
    flex:0 0 auto;font-family:var(--mono);font-size:10px;letter-spacing:.05em;color:var(--muted);
    background:transparent;border:1px solid var(--hair);border-radius:3px;padding:6px 10px;cursor:pointer;
    white-space:nowrap;transition:all .15s;
  }
  .journal-link:hover{color:var(--text);border-color:var(--muted)}
  .jr-empty{font-family:var(--mono);font-size:11px;color:var(--muted-2);padding:8px 0}
  .jr-brief{font-family:var(--serif);font-style:italic;font-size:16px;color:var(--text);line-height:1.35;margin-bottom:16px}
  .jr-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin-bottom:20px}
  .jr-metric{background:var(--surface);border:1px solid var(--hair);border-radius:4px;padding:11px 12px;display:flex;flex-direction:column;gap:3px}
  .jr-metric b{font-family:var(--mono);font-size:18px;color:var(--cold-soft);font-weight:500}
  .jr-metric span{font-family:var(--mono);font-size:9px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted-2)}
  .jr-tl-title{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;padding-top:8px;border-top:1px solid var(--hair)}
  .jr-timeline{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:1px}
  .jr-timeline li{display:grid;grid-template-columns:46px 96px 1fr;gap:10px;font-family:var(--mono);font-size:11px;padding:5px 6px;border-radius:3px;align-items:baseline}
  .jr-timeline li:hover{background:rgba(240,236,227,.03)}
  .jr-t{color:var(--muted-2);text-align:right}
  .jr-type{color:var(--cold-soft);letter-spacing:.02em}
  .jr-pl{color:var(--muted);line-height:1.35;word-break:break-word}
  .jr-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px;padding-top:16px;border-top:1px solid var(--hair)}
  .jr-btn{
    font-family:var(--mono);font-size:10px;letter-spacing:.05em;color:var(--muted);
    background:transparent;border:1px solid var(--hair);border-radius:3px;padding:8px 13px;cursor:pointer;transition:all .15s;
  }
  .jr-btn:hover{color:var(--text);border-color:var(--muted)}
  .jr-btn.danger:hover{border-color:rgba(216,163,94,.6);color:var(--warm-soft)}

  /* ---------- intent read (decomposition preview at arrival) ---------- */
  .intent-read{
    margin-bottom:30px;padding:16px 18px;border:1px solid var(--hair);border-radius:5px;
    background:linear-gradient(180deg, rgba(95,163,180,.05), transparent 80%), var(--surface);
  }
  .ir-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px;flex-wrap:wrap}
  .ir-kicker{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--cold-soft)}
  .ir-kicker .ir-sub{color:var(--muted-2)}
  .ir-actions{display:flex;gap:8px;align-items:center}
  .ir-adjust{
    border:1px solid rgba(95,163,180,.45);background:rgba(95,163,180,.10);color:var(--cold-soft);
    border-radius:3px;padding:6px 10px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;cursor:pointer;white-space:nowrap;
  }
  .ir-adjust:hover{background:rgba(95,163,180,.16)}
  .ir-toggle{
    border:1px solid var(--hair);background:transparent;color:var(--muted);
    border-radius:3px;padding:6px 9px;font-family:var(--mono);font-size:10px;letter-spacing:.06em;cursor:pointer;white-space:nowrap;
  }
  .ir-toggle:hover{color:var(--text);border-color:var(--muted)}
  .intent-read.collapsed{padding:12px 16px}
  .intent-read.collapsed .ir-head{margin-bottom:10px}
  .intent-read.collapsed .ir-kicker{display:none}
  .intent-read.collapsed .ir-body{display:none}
  .ir-chips{display:none;flex-wrap:wrap;gap:6px}
  .intent-read.collapsed .ir-chips{display:flex}
  .ir-chip{
    font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--cold-soft);
    border:1px solid rgba(95,163,180,.32);background:rgba(95,163,180,.07);border-radius:11px;
    padding:4px 11px;cursor:pointer;transition:background .15s,color .15s;
  }
  .ir-chip:hover{background:rgba(95,163,180,.16);color:var(--text)}
  .ir-body{display:grid;grid-template-columns:1fr 1fr;gap:8px 22px}
  .ir-row{display:grid;grid-template-columns:104px 1fr;gap:10px;font-size:12.5px;line-height:1.35;align-items:baseline}
  .ir-row b{font-family:var(--mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}
  .ir-row span{color:var(--text)}
  .ir-row.ir-excl{grid-column:1 / -1}
  .ir-row.ir-excl b{color:var(--warm-soft)}
  .ir-row.ir-excl span{color:var(--muted)}
  @media (max-width:680px){ .ir-body{grid-template-columns:1fr} }

  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes pulse{0%,100%{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}
  @keyframes searchDot{0%,100%{opacity:.25;transform:translateY(5px) scale(.82)}50%{opacity:1;transform:translateY(-5px) scale(1)}}
  @keyframes scanOrbit{0%,100%{opacity:.35;transform:rotate(-8deg) scale(.96)}50%{opacity:.85;transform:rotate(8deg) scale(1.04)}}
  @keyframes stepGlow{0%,100%{color:var(--muted-2);border-color:rgba(240,236,227,.09)}50%{color:var(--cold-soft);border-color:rgba(95,163,180,.36)}}
  @media (prefers-reduced-motion:reduce){
    .search-loading,.search-loading-mark::before,.search-loading-mark span,.search-loading-steps span{animation:none}
  }

  @media (max-width:860px){
    .tiles{grid-template-columns:repeat(2,1fr)}
  }
  @media (max-width:520px){
    .wrap{padding:0 18px}
    .assistant-tools{justify-content:flex-start}
    .tiles{grid-template-columns:1fr}
  }
  @media (prefers-reduced-motion:reduce){
    *{animation:none !important;transition:none !important}
  }
