:root{
  /* Interface en gris neutres ; l'accent suit l'application cible (voir TARGET_APPS) */
  --ae-light:#d8d8d8; --ae-navy:#2a2a2a; --ae-mid:#3a3a3a;
  --bg:#131313; --panel:#1b1b1b; --panel2:#232323; --line:#333333;
  --txt:#d8d8d8; --dim:#8f8f8f; --accent:#d8d8d8; --accent-dk:#2a2a2a;
  --accent-soft:rgba(216,216,216,.14); --accent-faint:rgba(216,216,216,.07);
  --ae-bg:#262626; --ae-line:#3f3f3f; --ae-txt:#cfcfcf;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--txt);
  font:13px/1.45 "Segoe UI",-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}
#app{height:100vh;display:flex;flex-direction:column}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 14px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;flex:none}
.brand{display:flex;align-items:center;gap:10px}
.brand-glyph{width:34px;height:34px;border-radius:7px;background:var(--brand-bg);color:var(--brand-fg);
  display:flex;align-items:center;justify-content:center;font-weight:700;font-size:15px;border:1px solid var(--brand-fg);transition:background .15s,color .15s,border-color .15s}
.brand-name{font-weight:600}
.brand-v{color:var(--accent);font-size:11px;font-weight:700;margin-left:2px}
.brand-sub{font-size:11px;color:var(--dim)}
.topbar-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.seg button{background:transparent;border:0;color:var(--dim);padding:6px 10px;cursor:pointer;font:inherit}
.seg button.on{background:var(--panel2);color:var(--txt)}
.seg button:hover{color:var(--txt)}
.act{background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:6px;
  padding:6px 11px;cursor:pointer;font:inherit}
.act:hover{border-color:#4d4d4d}
.act.primary{background:var(--brand-bg);border-color:var(--brand-fg);color:var(--brand-fg);transition:background .15s,color .15s,border-color .15s}
.act.primary:hover{filter:brightness(1.35)}
.tpl-wrap{position:relative}
.target-pick{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--dim)}
.target-sel{background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:6px;padding:5px 8px;font:inherit;font-size:12px;cursor:pointer}
.target-sel:hover{border-color:#4d4d4d}
.target-sel:focus{outline:none;border-color:var(--accent)}
.tpl-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:50;min-width:250px;
  background:var(--panel2);border:1px solid var(--line);border-radius:7px;overflow:hidden;
  box-shadow:0 2px 4px rgba(0,0,0,.45), 0 6px 12px rgba(0,0,0,.2);display:flex;flex-direction:column}
.tpl-menu button{background:transparent;border:0;color:var(--txt);padding:8px 12px;text-align:left;cursor:pointer;font:inherit}
.tpl-menu button:hover{background:var(--accent-soft);color:#fff}
.notice{background:#22303a;border-bottom:1px solid #33505f;color:#8fd0f0;padding:7px 16px;font-size:12px;flex:none}
.lint{display:flex;align-items:flex-start;gap:10px;background:#241d10;border-bottom:1px solid #4a3a15;padding:6px 14px;flex:none;max-height:84px;overflow:auto}
.lint-badge{font-size:11px;font-weight:700;color:#f0c37a;background:#3a2c10;border:1px solid #5a4418;border-radius:10px;padding:2px 8px;flex:none;margin-top:1px}
.lint-badge.err{color:#f09090;background:#3a1515;border-color:#6a2525}
.lint-items{display:flex;gap:6px;flex-wrap:wrap}
.lint-it{background:transparent;border:1px solid #5a4418;color:#e8c88f;border-radius:5px;padding:2px 8px;font-size:11px;cursor:pointer;text-align:left;font-family:inherit}
.lint-it:hover{border-color:#8a6a28}
.lint-it.err{border-color:#6a2525;color:#f0a0a0}
.cols{flex:1;display:flex;min-height:0}
.left{width:236px;border-right:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-height:0}
.right{width:302px;border-left:1px solid var(--line);background:var(--panel);overflow:auto;min-height:0}
.center{flex:1;overflow:auto;min-height:0;background:#161616}   /* uni : un dégradé de gris sur une grande surface crée des bandes visibles */
.center.canvasmode{overflow:hidden;position:relative}
.center.panning,.center.panning *{cursor:grabbing !important}
.center.spacemode{cursor:grab}
.canvas{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:34px 34px 84px;transform-origin:50% 50%}
/* will-change seulement pendant le déplacement : pas de perte de netteté au zoom */
.canvas.panning-layer{will-change:transform}
.pv-toolbar{position:absolute;top:14px;left:0;right:0;z-index:6;display:flex;justify-content:center;
  align-items:center;gap:8px;pointer-events:none;flex-wrap:wrap}
.pv-toolbar>*{pointer-events:auto}
.zoom-hud{display:flex;align-items:center;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}
.zoom-hud button{background:transparent;border:0;color:var(--dim);padding:5px 9px;cursor:pointer;font:inherit;font-size:12px}
.zoom-hud button:hover{color:var(--txt);background:var(--panel2)}
.zoom-val{min-width:52px;text-align:center;font-size:11.5px;color:var(--txt);
  border-left:1px solid var(--line);border-right:1px solid var(--line);padding:5px 0;cursor:pointer}
.pan-hint{font-size:10.5px;color:#636363;background:var(--panel);border:1px solid var(--line);
  border-radius:6px;padding:4px 9px}
.side-title{padding:10px 12px 6px;font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--dim);display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.side-hint{font-size:10px;text-transform:none;letter-spacing:0;color:#707070;text-align:right}
.palette{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:0 10px 10px}
.pal-btn{display:flex;align-items:center;gap:6px;background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:5px;padding:5px 7px;cursor:pointer;font-size:11px;text-align:left;font-family:inherit}
.pal-btn:hover{border-color:var(--accent);color:#fff}
.pal-ic{width:14px;text-align:center;color:var(--accent);font-size:11px;flex:none}
.tree{flex:1;overflow:auto;border-top:1px solid var(--line);padding:6px 0}
.tree-row{display:flex;align-items:center;gap:6px;padding:3px 8px;cursor:pointer;border-left:2px solid transparent;white-space:nowrap;user-select:none}
.multi-list{list-style:none;margin:10px 12px;padding:6px;border:1px solid var(--line);border-radius:6px;background:#111111;
  max-height:220px;overflow:auto;display:flex;flex-direction:column;gap:2px}
.multi-list li{display:flex;align-items:center;gap:8px;font-size:12px;padding:2px 4px}
.multi-list code{margin-left:auto;font:11px ui-monospace,Consolas,monospace;color:var(--accent)}
.multi-actions{display:flex;flex-direction:column;gap:6px;padding:4px 12px 8px}
.multi-actions .act{text-align:left}
.multi-actions .act:disabled{opacity:.4;cursor:not-allowed}
.multi-actions .act.danger:hover{border-color:#e05a5a;color:#f0a0a0}
.tree-row:hover{background:#2a2a2a}
.tree-row.sel{background:var(--accent-soft);border-left-color:var(--accent)}
/* groupe replié qui contient la sélection (clic dans l'aperçu) : même accent, en plus discret */
.tree-row.holds-sel{background:var(--accent-faint);border-left:2px dashed var(--accent)}
.tree-row.holds-sel .tree-count{background:var(--accent);color:#111111}
.tree-row.over-into{background:#1d2e22;box-shadow:0 0 0 1px #3a7a4a inset}
.tree-row.over-after{box-shadow:0 2px 0 #3a7a4a}
.tree-ic{font-size:11px;width:14px;text-align:center}
.tree-lbl{color:var(--dim);font-size:11px;overflow:hidden;text-overflow:ellipsis}
.tree-grip{margin-left:auto;color:#4d4d4d;font-size:9px;letter-spacing:-1px;cursor:grab}
.mode-seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel)}
.mode-seg button{background:transparent;border:0;color:var(--dim);padding:5px 16px;cursor:pointer;font:inherit;font-size:12px}
.mode-seg button.on{background:var(--accent-soft);color:var(--accent)}
.stage-note{position:absolute;left:0;right:0;bottom:14px;z-index:6;margin:0 auto;max-width:540px;
  text-align:center;color:var(--dim);font-size:11.5px;pointer-events:none;padding:0 20px}
.ae-window{min-width:340px;max-width:680px;background:var(--ae-bg);border:1px solid #0c0c0c;border-radius:6px;
  box-shadow:0 0 0 1px #3a3a3a inset;   /* pas d'ombre portée : aucun dégradé autour de la fenêtre */overflow:hidden}
.ae-window.sel{box-shadow:0 0 0 1px var(--accent) inset}
.ae-titlebar{display:flex;align-items:center;justify-content:center;position:relative;height:26px;
  background:linear-gradient(#3c3c3c,#333);border-bottom:1px solid #1c1c1c}
.ae-title{font-size:11.5px;color:#bdbdbd}
.ae-winbtns{position:absolute;right:9px;top:3px;display:flex;gap:9px;color:#9a9a9a;font-size:14px;line-height:1.3}
.pv-panel.bs-sunken{border:1px solid #151515;border-bottom-color:#4a4a4a;border-right-color:#4a4a4a}
.pv-panel.bs-raised{border:1px solid #4a4a4a;border-bottom-color:#151515;border-right-color:#151515}
.pv-panel.bs-black{border:1px solid #000}
.pv-panel.bs-gray{border:1px solid #7a7a7a}
.pv-panel.bs-topDivider{border:0;border-top:1px solid var(--ae-line);border-radius:0}
.pv-custom{display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:hidden;
  font-size:12px;cursor:default;flex:none;user-select:none}
.pv-custom.clickable{cursor:pointer}
.ae-body{color:var(--ae-txt);font-size:12px}
.pv-empty{color:#6a6a6a;font-size:11px;font-style:italic;padding:2px 4px}
.pv-group{border:1px dashed transparent;border-radius:3px}
.pv-group:hover{border-color:#4a4a4a}
.pv-panel{border:1px solid var(--ae-line);border-radius:3px;margin:0;padding:2px;box-shadow:0 1px 0 rgba(255,255,255,.03) inset}
.pv-panel legend{font-size:11px;color:#b9b9b9;padding:0 5px;margin-left:6px}
.pv-tp{border:1px solid var(--ae-line);border-radius:3px;overflow:hidden;min-width:200px}
.pv-tp-strip{display:flex;gap:2px;background:#202020;padding:4px 6px 0;border-bottom:1px solid #1a1a1a}
.pv-tp-tab{padding:3px 12px;font-size:11px;color:#9d9d9d;background:#2a2a2a;border:1px solid #1c1c1c;border-bottom:none;border-radius:3px 3px 0 0;cursor:pointer}
.pv-tp-tab.on{background:var(--ae-bg);color:#e0e0e0}
.pv-tp-body{padding:2px}
.pv-vtp{display:flex;gap:8px;align-items:stretch;min-width:240px;min-height:90px}
.pv-vtp-nav{flex:none;min-width:0}
.pv-vtp-nav .pv-list-row{cursor:pointer}
.pv-vtp-body{flex:1;min-width:0}
.pv-static{color:var(--ae-txt);cursor:default;display:inline-block}
.pv-edit{background:#171717;border:1px solid #0e0e0e;box-shadow:0 1px 2px rgba(0,0,0,.5) inset;color:#d6d6d6;
  border-radius:2px;padding:3px 6px;font-size:12px;font-family:inherit;line-height:1.45;outline:none;min-width:40px}
.pv-btn{background:linear-gradient(#3f3f3f,#303030);border:1px solid #191919;color:#d8d8d8;border-radius:3px;
  padding:4px 14px;font-size:12px;font-family:inherit;line-height:1.45;cursor:pointer;box-shadow:0 1px 0 rgba(255,255,255,.06) inset}
.pv-btn:active{background:#2a2a2a}
.pv-iconbtn{background:linear-gradient(#3f3f3f,#303030);border:1px solid #191919;border-radius:3px;cursor:pointer;
  font-size:13px;display:inline-flex;align-items:center;justify-content:center}
.pv-iconbtn.tool{background:transparent;border-color:transparent}
.pv-iconbtn.tool:hover{border-color:#3a3a3a}
.pv-image{border:1px dashed #4a4a4a;border-radius:3px;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:2px;color:#8a8a8a;font-size:14px;cursor:default}
.pv-image em{font-size:9px;font-style:normal;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pv-check{display:inline-flex;align-items:center;gap:6px;color:var(--ae-txt)}
.pv-box{width:13px;height:13px;background:#1c1c1c;border:1px solid #101010;border-radius:2px;display:inline-flex;
  align-items:center;justify-content:center;font-size:10px;color:#e6e6e6;flex:none}
.pv-box.on{background:#3a3a3a}
.pv-radio{width:13px;height:13px;background:#1c1c1c;border:1px solid #101010;border-radius:50%;display:inline-flex;
  align-items:center;justify-content:center;flex:none}
.pv-radio i{width:6px;height:6px;background:#dcdcdc;border-radius:50%;display:block}
.pv-dd{display:inline-flex;align-items:center;gap:8px;border:1px solid #191919;height:25px;line-height:1.45;font-size:12px;
  background:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%275%27%3E%3Cpath d=%27M0 0h8L4 5z%27 fill=%27%23a8a8a8%27/%3E%3C/svg%3E") no-repeat right 8px center,linear-gradient(#3d3d3d,#2f2f2f);
  border-radius:3px;padding:3px 24px 3px 8px;min-width:110px;cursor:default;justify-content:space-between}
.pv-dd-ar{display:none}   /* flèche dessinée en fond, identique au menu du mode Test */
/* mode Test : vrai menu déroulant, habillé exactement comme .pv-dd (même hauteur, dégradé, flèche ▾) */
.pv-dd-real{-webkit-appearance:none;appearance:none;height:25px;min-width:110px;padding:3px 24px 3px 8px;border:1px solid #191919;border-radius:3px;
  color:#d6d6d6;font-size:12px;font-family:inherit;line-height:1.45;outline:none;cursor:pointer;
  background:url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%278%27 height=%275%27%3E%3Cpath d=%27M0 0h8L4 5z%27 fill=%27%23a8a8a8%27/%3E%3C/svg%3E") no-repeat right 8px center,linear-gradient(#3d3d3d,#2f2f2f)}
.pv-dd-real:focus{border-color:#4a4a4a}
.pv-dd-real option{background:#2f2f2f;color:#d6d6d6}
.pv-list{background:#1a1a1a;border:1px solid #0f0f0f;border-radius:2px;overflow:auto;min-width:150px}
.pv-list-row{display:grid;padding:2px 8px;font-size:12px;color:#cfcfcf;white-space:nowrap;gap:8px}
.pv-list-row.on{background:#4f4f4f}
.pv-list-head{background:#242424;color:#9d9d9d;font-size:11px;border-bottom:1px solid #0f0f0f;position:sticky;top:0}
.pv-node span{color:#e2e2e2;font-weight:600}
.pv-leaf{padding-left:24px}
.pv-leaf span{color:#b5b5b5}
.pv-slider{min-width:120px;padding:6px 0;cursor:default}
.pv-track{position:relative;height:3px;background:#141414;border-radius:2px;border:1px solid #0d0d0d}
.pv-thumb{position:absolute;top:-5px;width:12px;height:12px;background:linear-gradient(#e6e6e6,#bdbdbd);border:1px solid #4c4c4c;border-radius:50%}
.pv-range{accent-color:#bdbdbd;height:18px}
.pv-scroll{display:flex;align-items:center;gap:2px;min-width:130px;cursor:default}
.pv-scroll-btn{width:14px;height:14px;background:#2e2e2e;border:1px solid #191919;border-radius:2px;display:inline-flex;
  align-items:center;justify-content:center;font-size:8px;color:#a8a8a8;flex:none}
.pv-scroll-track{position:relative;flex:1;height:12px;background:#171717;border:1px solid #0d0d0d;border-radius:2px}
.pv-scroll-thumb{position:absolute;top:1px;width:18%;height:8px;background:#3f3f3f;border:1px solid #545454;border-radius:2px}
.pv-prog{height:8px;min-width:120px;background:#151515;border:1px solid #0d0d0d;border-radius:3px;overflow:hidden}
.pv-prog-fill{height:100%;background:linear-gradient(#a8a8a8,#7c7c7c)}
.pv-divider{height:2px;background:#191919;border-bottom:1px solid #3d3d3d;min-width:60px;flex:none}
.pv-divider-v{width:2px;background:#191919;border-right:1px solid #3d3d3d;min-height:26px;flex:none}
.dz-inside{outline:1px dashed #6ad18a !important;outline-offset:2px;background:rgba(106,209,138,.07)}
.dz-target{outline:1px dashed rgba(106,209,138,.75) !important;outline-offset:1px;background:rgba(106,209,138,.05)}
#dropbar{position:fixed;z-index:900;pointer-events:none;display:none;background:#6ad18a;
  border-radius:3px;box-shadow:0 0 8px rgba(106,209,138,.85);transition:left .06s,top .06s,width .06s,height .06s}
#dropbar::before,#dropbar::after{content:"";position:absolute;width:0;height:0;border:4px solid transparent}
#dropbar.h::before{border-bottom-color:#6ad18a;top:-8px;left:-2px}
#dropbar.h::after{border-top-color:#6ad18a;bottom:-8px;left:-2px}
#dropbar.v::before{border-right-color:#6ad18a;left:-8px;top:-2px}
#dropbar.v::after{border-left-color:#6ad18a;right:-8px;top:-2px}
.pv-dragging{opacity:.35}
.pal-dragging{opacity:.5;border-color:#6ad18a}
.pv-hidden{opacity:.32;filter:grayscale(.6)}
.tree-row.hidden .tree-type,.tree-row.hidden .tree-lbl{text-decoration:line-through;opacity:.55}
.tree-eye{font-size:9px;color:#7a6a3a;flex:none}
/* chevron de repli : zone cliquable 20×20, pivote de 90° quand le conteneur est ouvert */
.tree-caret{width:20px;height:20px;flex:none;display:inline-flex;align-items:center;justify-content:center;
  border-radius:4px;color:#ababab;margin-left:-4px}
.tree-caret.has{cursor:pointer}
.tree-caret.has:hover{background:#383838;color:#fff}
.tree-caret svg{width:12px;height:12px;transition:transform .12s ease}
.tree-caret.open svg{transform:rotate(90deg)}
.tree-count{flex:none;font-size:10px;color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:0 6px;line-height:16px}
.ctx-menu{position:fixed;z-index:200;min-width:210px;background:var(--panel2);border:1px solid var(--line);
  border-radius:7px;overflow:hidden;box-shadow:0 2px 4px rgba(0,0,0,.45), 0 6px 12px rgba(0,0,0,.2);display:flex;flex-direction:column;padding:3px}
.ctx-menu button{background:transparent;border:0;color:var(--txt);padding:6px 11px;text-align:left;cursor:pointer;
  font:inherit;font-size:12px;border-radius:4px;display:flex;justify-content:space-between;gap:14px}
.ctx-menu button:hover{background:var(--accent-soft);color:#fff}
.ctx-menu button.danger:hover{background:#3a1a1a;color:#f0a0a0}
.ctx-menu .ctx-sep{height:1px;background:var(--line);margin:3px 6px}
.ctx-menu kbd{color:#707070;font-size:10px;font-family:inherit}
.snap-menu{max-height:340px;overflow:auto;min-width:290px}
.snap-row{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:5px}
.snap-row:hover{background:#2a2a2a}
.snap-name{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}
.snap-date{font-size:10px;color:var(--dim);flex:none}
.snap-row button{background:transparent;border:1px solid var(--line);color:var(--dim);border-radius:4px;
  padding:1px 6px;font-size:10px;cursor:pointer;font-family:inherit;flex:none}
.snap-row button:hover{border-color:var(--accent);color:var(--txt)}
.snap-row button.danger:hover{border-color:#e05a5a;color:#e05a5a}
.snap-empty{padding:10px 12px;color:var(--dim);font-size:11.5px;font-style:italic}
.tree-actions{display:flex;gap:6px;padding:8px 10px;border-top:1px solid var(--line);flex:none}
.dz-box{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  border:1px dashed var(--line);border-radius:6px;padding:7px 4px;color:var(--dim);font-size:10.5px;
  text-align:center;cursor:pointer;background:transparent;font-family:inherit;line-height:1.25}
.dz-box:hover{border-color:var(--accent);color:var(--txt)}
.dz-box .dz-ic{font-size:15px;line-height:1}
.dz-box.over-del{border-color:#e05a5a;border-style:solid;color:#f0a0a0;background:rgba(224,90,90,.12)}
.dz-box.over-dup{border-color:#6ad18a;border-style:solid;color:#9fe0b5;background:rgba(106,209,138,.12)}
.center.trashzone{box-shadow:inset 0 0 0 2px rgba(224,90,90,.5)}
.trash-badge{position:absolute;left:50%;bottom:54px;transform:translateX(-50%);z-index:8;display:none;
  background:#3a1515;border:1px solid #e05a5a;color:#f4b0b0;border-radius:8px;padding:7px 15px;
  font-size:12px;pointer-events:none;box-shadow:0 2px 4px rgba(0,0,0,.45), 0 5px 10px rgba(0,0,0,.2)}
.center.trashzone .trash-badge{display:block}
/* sécurité de suppression : jauge pendant l'armement, clignotement une fois armée */
.trash-badge .tb-go{display:none}
.center.armed .trash-badge .tb-wait{display:none}
.center.armed .trash-badge .tb-go{display:inline}
.center.trashzone.armed{animation:armZone .55s ease-in-out infinite}
.center.armed .trash-badge{animation:armBadge .55s ease-in-out infinite}
@keyframes armZone{0%,100%{box-shadow:inset 0 0 0 3px #e05a5a}50%{box-shadow:inset 0 0 0 1px rgba(224,90,90,.25)}}
@keyframes armBadge{0%,100%{background:#6a1f1f;border-color:#ff7070;color:#fff}50%{background:#3a1515;border-color:#e05a5a;color:#f4b0b0}}
.snap-actions{display:flex;gap:5px;padding:6px;border-top:1px solid var(--line);margin-top:3px}
.snap-actions button{flex:1;background:var(--panel);border:1px solid var(--line);color:var(--txt);
  border-radius:5px;padding:5px;font-size:11px;cursor:pointer;font-family:inherit}
.snap-actions button:hover{border-color:var(--accent)}
.insp-path{margin:0 12px;padding:8px 10px;background:#111111;border:1px solid var(--line);border-radius:6px;
  display:flex;align-items:center;gap:8px}
.insp-path code{flex:1;font:11px ui-monospace,Consolas,monospace;color:var(--accent);overflow:hidden;text-overflow:ellipsis}
.insp-path button{background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:4px;
  padding:3px 8px;font-size:10.5px;cursor:pointer;font-family:inherit;flex:none}
.insp-path button:hover{border-color:var(--accent)}
.ae-body [draggable="true"]{cursor:grab}
.codeview{margin:18px;background:#111111;border:1px solid var(--line);border-radius:8px;color:#d0d0d0;
  display:flex;align-items:flex-start;overflow:auto;max-height:calc(100% - 36px);min-height:200px}
.codeview pre{margin:0;font:12px/1.6 ui-monospace,"Cascadia Code","SF Mono",Consolas,monospace;white-space:pre}
.code-gutter{position:sticky;left:0;flex:none;padding:18px 10px 18px 14px;text-align:right;color:#555555;
  background:#111111;border-right:1px solid var(--line);user-select:none;min-height:100%}
.code-body{padding:18px;flex:1}
.t-c{color:#7d7d7d;font-style:italic}.t-s{color:#a8d8a0}.t-k{color:var(--accent);font-weight:600}.t-n{color:#f0c37a}
.lint-badge.info{color:#8fd0f0;background:#16303c;border-color:#2a5566}
.lint-it.info{border-color:#2a5566;color:#9fd6ef}
.seg button:disabled{opacity:.35;cursor:default}
.act.small{padding:4px 10px;font-size:12px}
.tree-row:focus{outline:none}
.tree-row:focus-visible{box-shadow:0 0 0 1px var(--accent) inset}
.field textarea{background:#141414;border:1px solid var(--line);color:var(--txt);border-radius:5px;padding:6px 8px;
  font:inherit;outline:none;width:100%;resize:vertical;min-height:54px}
.field textarea:focus{border-color:var(--accent)}
/* champ visé par un avertissement cliqué : couleur selon la gravité */
.field-hl{--hl:#e0a84a;--hl-bg:rgba(240,195,122,.10);background:var(--hl-bg);box-shadow:0 0 0 1px var(--hl);border-radius:6px}
.field.field-hl{padding:6px 8px;margin:-6px -8px;scroll-margin:14px}
.field-hl.hl-err{--hl:#e06464;--hl-bg:rgba(224,100,100,.12)}
.field-hl.hl-info{--hl:#5fb3d9;--hl-bg:rgba(95,179,217,.12)}
.field-hl .field-lbl{color:var(--hl)}
.field-pair{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:6px;align-items:center}
.pair-lbl{font-size:10.5px;color:var(--dim)}
.field-pair input{background:#141414;border:1px solid var(--line);color:var(--txt);border-radius:5px;padding:6px 8px;font:inherit;outline:none;width:100%;min-width:0}
.field-pair input:focus{border-color:var(--accent)}
.insp-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px;border-bottom:1px solid var(--line)}
.insp-type{font-weight:600}
.insp-id{font-size:11px;color:var(--dim)}
.insp-tools{display:flex;gap:4px}
.insp-tools button{width:26px;height:26px;background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:5px;cursor:pointer;font-family:inherit}
.insp-tools button:hover{border-color:var(--accent)}
.insp-tools .danger:hover{border-color:#e05a5a;color:#e05a5a}
.insp-fields{padding:12px;display:flex;flex-direction:column;gap:10px}
.field{display:flex;flex-direction:column;gap:4px}
.field-loc{margin-top:4px;padding-left:10px;border-left:2px solid var(--ae-mid)}
.field-lbl{font-size:11px;color:var(--dim)}
.field input[type=text],.field input[type=number],.field select{background:#141414;border:1px solid var(--line);color:var(--txt);
  border-radius:5px;padding:6px 8px;font:inherit;outline:none;width:100%}
.field input:focus,.field select:focus{border-color:var(--accent)}
.field .chk{width:16px;height:16px;accent-color:var(--accent)}
.field-head{margin-top:6px;padding-top:10px;border-top:1px solid var(--line);font-size:10.5px;text-transform:uppercase;
  letter-spacing:.8px;color:var(--accent)}
.insp-fields > .field-head:first-child{margin-top:0;padding-top:0;border-top:0}
.img-field{display:flex;gap:10px;align-items:center}
.img-thumb{width:52px;height:52px;flex:none;object-fit:contain;background:#141414 repeating-conic-gradient(#1c1c1c 0 25%,#141414 0 50%) 0 0/10px 10px;
  border:1px solid var(--line);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--dim)}
.img-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:5px}
.img-name{font-size:11px;color:var(--txt);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.img-btns{display:flex;gap:5px}
/* ScriptUI n'étire jamais les images : avec une taille imposée, l'image est centrée et recadrée */
.pv-image.real{border:0;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;line-height:0}
.pv-img{display:block;flex:none;pointer-events:none}
.pv-iconbtn{overflow:hidden}
.field input.clr{width:52px;height:28px;padding:2px;background:#141414;border:1px solid var(--line);border-radius:5px;cursor:pointer}
.insp-note{margin:6px 12px 16px;padding:10px 12px;background:#1c1c1c;border:1px solid var(--line);border-radius:7px}
.insp-note-t{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--accent);margin-bottom:6px}
.insp-note ul{margin:0;padding-left:16px;color:var(--dim);font-size:11.5px;display:flex;flex-direction:column;gap:4px}
.insp-note code{background:#111111;border:1px solid #303030;border-radius:3px;padding:0 4px;font-size:10.5px;color:var(--accent)}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:100;display:flex;align-items:center;justify-content:center;padding:24px}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;max-width:640px;width:100%;max-height:82vh;overflow:auto;padding:22px 26px;box-shadow:0 2px 6px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.25)}
.modal h2{margin:0 0 4px;font-size:16px}
.modal h3{margin:18px 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.7px;color:var(--accent)}
.modal p,.modal li{color:var(--dim);font-size:12.5px}
.modal ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.modal code{background:#111111;border:1px solid #303030;border-radius:3px;padding:0 4px;font-size:11px;color:var(--accent)}
.modal .credit{font-size:11.5px;margin:2px 0 10px}
.modal .credit a{color:var(--accent)}
.modal-close{float:right;background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:6px;padding:4px 10px;cursor:pointer;font-family:inherit}
@media (max-width: 980px){
  body{overflow:auto}
  #app{height:auto}
  .cols{flex-direction:column}
  .left,.right{width:100%;border:0;border-bottom:1px solid var(--line)}
  .tree{max-height:180px}
  /* l'aperçu n'a plus de hauteur « restante » à occuper : on lui en donne une, et on le place en premier */
  .center{order:-1;flex:none;height:60vh;min-height:360px;border-bottom:1px solid var(--line)}
  .center:not(.canvasmode){height:auto;min-height:0;max-height:70vh}
  .right{overflow:visible}
}
/* écrans tactiles : un doigt déplace l'aperçu, deux doigts zooment (la page ne défile pas pendant ce geste) */
@media (pointer: coarse){
  .center.canvasmode{touch-action:none}
}
@media (max-width: 600px){
  .stage-note{display:none}                 /* texte d'aide : trop encombrant sur téléphone */
  .pv-toolbar{top:8px;gap:6px}
  .pan-hint{display:none}
  .topbar{padding:8px 10px}
  .brand-sub{display:none}
}
