/* Kommyt — l'apparence de la nouvelle interface (façon VS Code).
   Les couleurs sont des variables en haut : un bloc pour le thème sombre, un pour le clair.
   Repris de la maquette 17·1 (documentation/maquettes/17_page_python_v2/1_vscode.html), puis complété en bas. */

:root{
  --ui:-apple-system,BlinkMacSystemFont,"Segoe WPC","Segoe UI",system-ui,Ubuntu,"Droid Sans",sans-serif;
  --mono:Menlo,"SF Mono",Monaco,Consolas,"Liberation Mono","Courier New",monospace;
  --sbw:272px;
}
:root[data-theme=dark]{
  color-scheme:dark;
  --bg:#1f1f1f;--bg-side:#181818;--bg-title:#181818;--bg-tabs:#181818;--card:#1b1b1b;--blk-h:#232323;
  --border:#2b2b2b;--border-soft:#262626;--fg:#cccccc;--fg-strong:#e7e7e7;--muted:#9d9d9d;--dim:#6e7681;--txt:#cccccc;
  --hover:#2a2d2e;--hover-t:rgba(255,255,255,.08);--sel:#04395e;--sel-in:#37373d;--sel-fg:#ffffff;--focus:#0078d4;--accent:#0078d4;--link:#4daafc;
  --cc-bg:rgba(255,255,255,.04);--cc-b:rgba(255,255,255,.12);--cc-hover:rgba(255,255,255,.08);
  --input:#313131;--input-b:#3c3c3c;--widget:#202020;--widget-b:#454545;--shadow:rgba(0,0,0,.36);--tgl-bg:rgba(36,137,219,.51);
  --ln:#6e7681;--ln-act:#cccccc;--curline:#2c2c2c;--guide:#585858;--sticky-sh:rgba(0,0,0,.6);
  --status:#007acc;--status-old:#68217a;--status-rem:rgba(0,0,0,.22);
  --find:#9e6a03;--find-b:#d18616;--find-o:rgba(234,92,0,.33);--find-mm:#d18616;
  --add-bg:rgba(35,134,54,.16);--add-w:rgba(46,160,67,.48);--del-bg:rgba(218,54,51,.14);--del-w:rgba(248,81,73,.42);--add-fg:#3fb950;--del-fg:#f85149;
  --dirty:#1b81a8;--th:rgba(121,121,121,.4);--th-h:rgba(100,100,100,.7);--mm-sl:rgba(121,121,121,.2);--vs-b:#2b2b2b;
  --kw:#569cd6;--ctl:#c586c0;--str:#ce9178;--cm:#6a9955;--nu:#b5cea8;--fn:#dcdcaa;--bi:#4ec9b0;--dec:#dcdcaa;--id:#9cdcfe;--cs:#4fc1ff;--mod:#4ec9b0;--doc:#ce9178;
  --m0:#5a5a5a;--m1:#4ec9b0;--m2:#e2c08d;--m3:#c586c0;
  --g-add:#2ea043;--g-mod:#0078d4;--g-del:#f85149;--seti-blue:#519aba;--seti-grey:#d4d7d6;--folder:#c5c5c5;--peek-b:#0078d4;--peek-h:#252526;
  --jules:#3794ff;--claude:#d97757;--sym:#b180d7;
  --warn-bg:rgba(204,167,0,.12);--warn-b:rgba(204,167,0,.38);--warn-fg:#e2c08d;
  --kbd-bg:rgba(128,128,128,.17);--kbd-b:rgba(68,68,68,.6);--kbd-bb:rgba(68,68,68,.6);
  --btn:#0078d4;--btn-h:#026ec1;--btn2:#313131;--btn2-h:#3c3c3c;--hlq:#2aaaff;--code-bg:#181818;--scrim:rgba(0,0,0,.5);
}
:root[data-theme=light]{
  color-scheme:light;
  --bg:#ffffff;--bg-side:#f8f8f8;--bg-title:#f8f8f8;--bg-tabs:#f8f8f8;--card:#ffffff;--blk-h:#f6f6f6;
  --border:#e5e5e5;--border-soft:#efefef;--fg:#3b3b3b;--fg-strong:#1f1f1f;--muted:#616161;--dim:#8b8b8b;--txt:#3b3b3b;
  --hover:#f0f0f0;--hover-t:rgba(0,0,0,.06);--sel:#d7e9fb;--sel-in:#e4e6f1;--sel-fg:#1f1f1f;--focus:#005fb8;--accent:#005fb8;--link:#005fb8;
  --cc-bg:#ffffff;--cc-b:#d0d0d0;--cc-hover:#f2f2f2;
  --input:#ffffff;--input-b:#cecece;--widget:#f8f8f8;--widget-b:#d4d4d4;--shadow:rgba(0,0,0,.14);--tgl-bg:rgba(0,95,184,.13);
  --ln:#6e7681;--ln-act:#171184;--curline:#eeeeee;--guide:#a9a9a9;--sticky-sh:rgba(0,0,0,.15);
  --status:#007acc;--status-old:#7a3e9d;--status-rem:rgba(0,0,0,.16);
  --find:#f6b24f;--find-b:#d18616;--find-o:rgba(234,92,0,.20);--find-mm:#d18616;
  --add-bg:rgba(46,160,67,.11);--add-w:rgba(46,160,67,.32);--del-bg:rgba(207,34,46,.09);--del-w:rgba(207,34,46,.26);--add-fg:#1a7f37;--del-fg:#cf222e;
  --dirty:#2090d3;--th:rgba(100,100,100,.32);--th-h:rgba(100,100,100,.55);--mm-sl:rgba(100,100,100,.14);--vs-b:#efefef;
  --kw:#0000ff;--ctl:#af00db;--str:#a31515;--cm:#008000;--nu:#098658;--fn:#795e26;--bi:#267f99;--dec:#795e26;--id:#001080;--cs:#0070c1;--mod:#267f99;--doc:#a31515;
  --m0:#c4c4c4;--m1:#0f8a78;--m2:#b07a10;--m3:#9b3fa6;
  --g-add:#2ea043;--g-mod:#005fb8;--g-del:#f85149;--seti-blue:#498ba7;--seti-grey:#6d6d6d;--folder:#616161;--peek-b:#005fb8;--peek-h:#f3f3f3;
  --jules:#005fb8;--claude:#c2552f;--sym:#652d90;
  --warn-bg:#fff8e1;--warn-b:#ecd28a;--warn-fg:#7a5a00;
  --kbd-bg:rgba(221,221,221,.4);--kbd-b:rgba(204,204,204,.6);--kbd-bb:rgba(187,187,187,.6);
  --btn:#005fb8;--btn-h:#0258a8;--btn2:#e5e5e5;--btn2-h:#cccccc;--hlq:#0066bf;--code-bg:#f6f6f6;--scrim:rgba(0,0,0,.28);
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--fg);font:13px/1.4 var(--ui);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}
button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-align:inherit}
input{font:inherit;color:inherit}
:focus{outline:none}
:focus-visible{outline:1px solid var(--focus);outline-offset:-1px}
[hidden]{display:none!important}
.i{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.i .f{fill:currentColor;stroke:none}
.fi{width:16px;height:16px;flex:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.kbd{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:17px;padding:0 4px;font:11px/1 var(--ui);border:1px solid var(--kbd-b);border-bottom-color:var(--kbd-bb);box-shadow:inset 0 -1px 0 var(--kbd-bb);border-radius:3px;background:var(--kbd-bg);color:var(--fg);vertical-align:middle}
.kbs{display:inline-flex;gap:2px}

/* ===== Cadre ===== */
.app{display:grid;grid-template-rows:35px minmax(0,1fr) 22px;height:100vh;height:100dvh}
.zen .app{grid-template-rows:0 minmax(0,1fr) 0}
.zen .tb,.zen .st{visibility:hidden;overflow:hidden}

/* Barre de titre */
.tb{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;background:var(--bg-title);border-bottom:1px solid var(--border);padding:0 6px 0 10px;user-select:none;-webkit-user-select:none;min-width:0}
.tb-l{display:flex;align-items:center;gap:8px;min-width:0}
.logo{width:18px;height:18px;border-radius:4px;background:var(--accent);color:#fff;display:grid;place-items:center;font:700 11px/1 var(--ui);letter-spacing:-.02em;flex:none}
.brand{font-size:12px;color:var(--muted);white-space:nowrap}
.brand b{color:var(--fg);font-weight:500}
.tb-c{display:flex;align-items:center;gap:2px;min-width:0}
.nav{width:26px;height:24px;border-radius:5px;display:grid;place-items:center;color:var(--muted)}
.nav:hover{background:var(--hover-t);color:var(--fg)}
.cc{display:flex;align-items:center;justify-content:center;gap:6px;width:min(36vw,520px);height:24px;border:1px solid var(--cc-b);background:var(--cc-bg);border-radius:6px;color:var(--muted);font-size:12px;margin-left:4px;min-width:0}
.cc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cc:hover{background:var(--cc-hover);color:var(--fg)}
.tb-r{display:flex;justify-content:flex-end;align-items:center;gap:1px}
.tbb{width:28px;height:26px;border-radius:5px;display:grid;place-items:center;color:var(--muted)}
.tbb:hover{background:var(--hover-t);color:var(--fg)}
.tbb[aria-pressed=true]{color:var(--fg)}
.tbsep{width:1px;height:16px;background:var(--border);margin:0 4px}
.burger{display:none}

/* ===== Zone principale ===== */
.main{display:flex;min-height:0;min-width:0;position:relative}
.sb{width:var(--sbw);flex:none;background:var(--bg-side);border-right:1px solid var(--border);display:flex;flex-direction:column;min-width:0;overflow:hidden}
.nosb .sb,.nosb .sash,.zen .sb,.zen .sash{display:none}
.sash{width:4px;margin-left:-2px;margin-right:-2px;z-index:6;cursor:ew-resize;flex:none;position:relative;transition:background .1s .25s}
.sash:hover,.sash.drag{background:var(--focus)}
.sb-h{height:35px;display:flex;align-items:center;justify-content:space-between;padding:0 8px 0 20px;font-size:11px;letter-spacing:.02em;color:var(--muted);flex:none}
.sb-h .ib{color:var(--muted)}
.pane{display:flex;flex-direction:column;min-height:22px;border-top:1px solid var(--border);overflow:hidden}
.pane:first-of-type{border-top:0}
#p-tree{flex:1 1 52%}
#p-plan{flex:1 1 30%}
#p-chrono{flex:0 1 auto;max-height:42%}
.pane.col{flex:0 0 22px!important}
.pane-h{height:22px;display:flex;align-items:center;gap:2px;width:100%;font:700 11px/22px var(--ui);text-transform:uppercase;letter-spacing:.01em;padding:0 8px 0 2px;color:var(--fg);flex:none;position:relative}
.pane-h .chev{transition:transform .1s}
.pane.col .pane-h .chev{transform:rotate(-90deg)}
.pane-h .pt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pane-h .pa{display:flex;gap:2px;opacity:0;font-weight:400;text-transform:none}
.pane:hover .pane-h .pa,.pane-h:focus-within .pa{opacity:1}
.pane-h .tagx{font:500 10px/16px var(--ui);text-transform:none;letter-spacing:0;padding:0 5px;border-radius:3px;background:var(--warn-bg);color:var(--warn-fg);border:1px solid var(--warn-b);margin-left:6px;opacity:1}
.pane-b{overflow:auto;flex:1;min-height:0;scrollbar-width:thin}
.pane.col .pane-b{display:none}

/* Arbre */
.tree,.tree ul{list-style:none;margin:0;padding:0}
.ti{display:flex;align-items:center;height:22px;width:100%;padding-right:10px;white-space:nowrap;color:var(--fg);position:relative}
.ti:hover{background:var(--hover)}
.ti.sel{background:var(--sel-in)}
.sb:focus-within .ti.sel{background:var(--sel);color:var(--sel-fg);outline:1px solid var(--focus);outline-offset:-1px}
.ind{flex:none;align-self:stretch;width:calc(var(--d) * 12px + 4px);background-image:repeating-linear-gradient(90deg,transparent 0 8px,var(--guide) 8px 9px,transparent 9px 12px);background-position:4px 0;background-size:calc(var(--d) * 12px) 100%;background-repeat:no-repeat;opacity:0;transition:opacity .1s}
.ind{opacity:.28}
.sb:hover .ind{opacity:.6}
.tw{width:16px;height:16px;display:grid;place-items:center;flex:none;color:var(--fg)}
.tw .i{transition:transform .1s}
.g.open>.ti .tw .i{transform:rotate(90deg)}
.g:not(.open)>ul{display:none}
.ti .nm{margin-left:4px;overflow:hidden;text-overflow:ellipsis}
.ti .fi{margin-left:2px}
.ti .fi+.nm{margin-left:6px}
.ti.off{color:var(--muted)}
.ti .badge{margin-left:auto;font-size:11px;color:var(--muted);padding-left:8px}
.ti.dirty .badge{color:var(--fg)}
.empty{height:22px;display:flex;align-items:center;font-style:italic;color:var(--dim);font-size:12px}

/* Plan et chronologie */
.oi{display:flex;align-items:center;gap:6px;height:22px;width:100%;padding:0 10px 0 20px;white-space:nowrap}
.oi:hover{background:var(--hover)}
.oi.sel{background:var(--sel-in)}
.oi .i{color:var(--sym)}
.oi .nm{overflow:hidden;text-overflow:ellipsis}
.oi .ln{margin-left:auto;color:var(--dim);font-size:12px;padding-left:8px;font-variant-numeric:tabular-nums}
.tl{display:flex;align-items:center;gap:7px;height:22px;width:100%;padding:0 10px 0 20px;white-space:nowrap}
.tl:hover{background:var(--hover)}
.tl.sel{background:var(--sel-in)}
.tl .gc{flex:none}
.tl.cur .nm b{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--mc)}
.tl .nm{overflow:hidden;text-overflow:ellipsis}
.tl .nm b{font-weight:600}
.tl .ds{margin-left:auto;color:var(--dim);font-size:12px;padding-left:8px}
.m0{--mc:var(--m0)}.m1{--mc:var(--m1)}.m2{--mc:var(--m2)}.m3{--mc:var(--m3)}

/* ===== Groupe d'éditeurs ===== */
.edg{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--bg)}
.tabsbar{display:flex;height:35px;background:var(--bg-tabs);flex:none;min-width:0}
.tabs{display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;min-width:0}
.tabs::-webkit-scrollbar{display:none}
.tab{display:flex;align-items:center;gap:6px;height:35px;padding:0 4px 0 10px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--muted);white-space:nowrap;position:relative;flex:none;cursor:pointer;user-select:none;-webkit-user-select:none;background:var(--bg-tabs)}
.tab:hover{background:var(--hover-t)}
.tab.act{background:var(--bg);color:var(--fg-strong);border-bottom-color:transparent;box-shadow:inset 0 1px 0 var(--accent)}
.tab .tl2{font-size:13px}
.tab.ro .tl2{font-style:italic}
.tab .td{font-size:12px;color:var(--dim);margin-left:-1px}
.tab .tx{width:20px;height:20px;border-radius:4px;display:grid;place-items:center;visibility:hidden;color:var(--fg)}
.tab.act .tx,.tab:hover .tx{visibility:visible}
.tab .tx:hover{background:var(--hover-t)}
.tab.dirty .tx{visibility:visible}
.tab.dirty .tx .i{display:none}
.tab.dirty .tx::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor}
.tab.dirty .tx:hover::before{display:none}
.tab.dirty .tx:hover .i{display:block}
.tabfill{flex:1;border-bottom:1px solid var(--border);min-width:8px}
.edact{display:flex;align-items:center;gap:1px;padding:0 8px 0 6px;border-bottom:1px solid var(--border);flex:none}
.ib{width:24px;height:24px;border-radius:5px;display:grid;place-items:center;color:var(--fg);flex:none}
.ib:hover{background:var(--hover-t)}
.ib[aria-pressed=true]{background:var(--tgl-bg);box-shadow:inset 0 0 0 1px var(--accent)}
.ib:disabled{opacity:.4;cursor:default;background:none}
.bc{height:22px;display:flex;align-items:center;padding:0 10px 0 14px;font-size:12px;color:var(--muted);white-space:nowrap;overflow-x:auto;scrollbar-width:none;flex:none;user-select:none;-webkit-user-select:none}
.bc::-webkit-scrollbar{display:none}
.bc .s{display:flex;align-items:center;gap:4px;padding:0 3px;border-radius:3px;height:20px}
.bc .s:hover{color:var(--fg);background:var(--hover-t)}
.bc .sep{color:var(--dim);display:grid;place-items:center}
.bc .sep .i{width:14px;height:14px}
.bc .sym{color:var(--sym)}
.bc .vtag{font-size:11px;padding:0 5px;border-radius:3px;background:var(--status-old);color:#fff;margin-left:4px}
.views{flex:1;min-height:0;position:relative}
.view{position:absolute;inset:0}

/* ===== Éditeur de code ===== */
.v-code{display:flex;flex-direction:column}
.ro{display:flex;align-items:center;gap:8px;padding:6px 14px;font-size:12px;background:color-mix(in srgb,var(--status-old) 16%,var(--bg));border-bottom:1px solid color-mix(in srgb,var(--status-old) 40%,var(--bg));color:var(--fg);flex:none}
.ro .lk{color:var(--link);text-decoration:underline;text-underline-offset:2px}
.ro .sp{flex:1}
.edwrap{position:relative;flex:1;min-height:0;overflow:hidden}
.scr{position:absolute;top:0;bottom:0;left:0;right:94px;overflow:auto;font:12px/18px var(--mono);overscroll-behavior:contain}
.scr::-webkit-scrollbar{width:0;height:10px}
.scr::-webkit-scrollbar-thumb{background:var(--th)}
.scr::-webkit-scrollbar-thumb:hover{background:var(--th-h)}
.scr::-webkit-scrollbar-corner{background:transparent}
.nomm .scr{right:14px}
.lines{min-width:100%;width:max-content;color:var(--txt);position:relative}
.lines::after{content:"";display:block;height:calc(100dvh - 160px)}
.r{display:flex;height:18px;white-space:pre;position:relative}
.gt{position:sticky;left:0;z-index:2;display:flex;align-items:stretch;background:var(--bg);flex:none;user-select:none;-webkit-user-select:none}
.bl{display:none;width:268px;padding:0 10px 0 9px;font:12px/18px var(--ui);color:var(--muted);border-left:3px solid var(--mc);overflow:hidden;gap:10px;cursor:pointer;background:color-mix(in srgb,var(--mc) 5%,var(--bg))}
.blame .bl{display:flex}
.bl.f{box-shadow:inset 0 1px 0 var(--border)}
@media (max-width:1180px){.bl{width:196px}.bl .bt .lg{display:none}}
.bl .bt{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bl .bt b{font-weight:600;color:var(--fg)}
.bl .bd{color:var(--dim);font-variant-numeric:tabular-nums}
.bl.m0 .bt b{font-weight:500;color:var(--muted)}
.bl:hover{background:color-mix(in srgb,var(--mc) 12%,var(--bg))}
.nb{width:calc(var(--nbw,3) * 1ch + 22px);text-align:right;color:var(--ln);font-variant-numeric:tabular-nums}
.r.cur .nb{color:var(--ln-act)}
.mk{width:3px;margin:0 14px 0 9px;flex:none;position:relative;transition:transform .08s}
.mk[data-g]{cursor:pointer}
.mk[data-g]::before{content:"";position:absolute;top:0;bottom:0;left:-6px;right:-6px}
.mk.g-add{background:var(--g-add)}.mk.g-mod{background:var(--g-mod)}
.mk.g-add:hover,.mk.g-mod:hover{transform:scaleX(1.8)}
.mk.g-delb::after{content:"";position:absolute;left:-1px;bottom:-5px;border-left:6px solid var(--g-del);border-top:5px solid transparent;border-bottom:5px solid transparent}
.r.delb{z-index:3}
.mk.dirty{background:repeating-linear-gradient(180deg,var(--dirty) 0 3px,transparent 3px 5px)}
/* Aperçu en ligne (peek) */
.peek{position:sticky;left:0;z-index:3;margin:2px 0 4px;border-top:2px solid var(--peek-b);border-bottom:2px solid var(--peek-b);background:var(--bg);font:13px/1.45 var(--ui);white-space:normal;color:var(--fg);box-shadow:0 4px 10px -6px var(--shadow)}
.pk-h{display:flex;align-items:center;gap:8px;height:30px;padding:0 6px 0 12px;background:var(--peek-h);border-bottom:1px solid var(--border);white-space:nowrap;overflow:hidden}
.pk-h .i.ga{color:var(--g-add)}.pk-h .i.gm{color:var(--g-mod)}.pk-h .i.gd{color:var(--g-del)}
.pk-h b{font-weight:600}
.pk-h .pk-s{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}
.pk-h .sp{flex:1}
.pk-b{display:grid;grid-template-columns:minmax(0,1fr) 300px;max-height:300px}
.pk-code{overflow:auto;padding:6px 0 8px;border-right:1px solid var(--border);min-width:0}
.pk-l{display:flex;align-items:center;gap:8px;padding:4px 12px 3px;font-size:12px;color:var(--muted)}
.pk-l .pill{font-size:10px;line-height:16px}
.pk-l.new{}.pk-l.old{margin-top:4px}
.pk-l.new .pill{background:var(--add-bg);color:var(--add-fg)}.pk-l.old .pill{background:var(--del-bg);color:var(--del-fg)}
.pk-code .blk-c{padding:0;font:12px/18px var(--mono)}
.pk-code .dn{width:46px}
.pk-none{padding:2px 12px 4px 58px;font-size:12px;color:var(--dim);font-style:italic}
.pk-why{padding:10px 14px;overflow:auto;background:color-mix(in srgb,var(--wc) 5%,var(--bg))}
.pk-why.jules{--wc:var(--jules)}.pk-why.claude{--wc:var(--claude)}
.pk-why .why-h{margin-bottom:6px}
.pk-why p{margin:0;font-size:12.5px;line-height:1.55}
.pk-why .wf{margin-top:8px;font-size:11.5px;color:var(--muted)}
@media (max-width:900px){.pk-b{grid-template-columns:minmax(0,1fr);max-height:none}.pk-code{border-right:0;border-bottom:1px solid var(--border)}}
.hov .hcode{font:12px/18px var(--mono);background:var(--del-bg);border-radius:3px;padding:3px 8px;margin:4px 0 6px;white-space:pre;overflow:hidden;text-overflow:ellipsis;max-width:356px}
.hov .hcode.add{background:var(--add-bg)}
.hov .lab2{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
/* Menu contextuel */
.cm{position:fixed;z-index:90;min-width:230px;max-width:340px;background:var(--widget);border:1px solid var(--widget-b);border-radius:6px;box-shadow:0 2px 10px var(--shadow);padding:4px}
.cm-i{display:flex;align-items:center;gap:16px;width:100%;height:24px;padding:0 10px 0 22px;border-radius:4px;white-space:nowrap;font-size:13px;color:var(--fg)}
.cm-i:hover,.cm-i:focus{background:var(--sel);color:var(--sel-fg);outline:none}
.cm-i:disabled{opacity:.45;background:none;cursor:default}
.cm-i .cm-d{margin-left:auto;font-size:12px;color:var(--dim)}
.cm-i:hover .cm-d,.cm-i:focus .cm-d{color:inherit;opacity:.8}
.cm-sep{height:1px;background:var(--border);margin:4px 8px}
.cm-t{font-size:11px;color:var(--dim);padding:4px 10px 2px 22px}
/* Bouton télécharger scindé */
.split{display:flex;align-items:center;border-radius:5px;margin:0 2px}
.split:hover{background:var(--hover-t)}
.split .ib{width:auto;padding:0 5px;gap:4px;display:flex;font-size:12px;color:var(--fg)}
.split .ib:first-child{border-radius:5px 0 0 5px}
.split .ib+.ib{border-radius:0 5px 5px 0;padding:0 2px;border-left:1px solid var(--border)}
.split .ib+.ib .i{width:14px;height:14px}
.split .lbl{font-size:12px}
/* Icônes dossiers / fichiers */
.fo{color:var(--folder)}
.g>.ti .fo.op{display:none}.g.open>.ti .fo.op{display:block}.g.open>.ti .fo.cl{display:none}
.ti .fo{margin-left:1px}
.ti .fo+.nm{margin-left:6px}
.gc{color:var(--mc)}
.tlr{position:relative}
.tlr .tla{position:absolute;right:4px;top:0;height:22px;display:none;align-items:center;gap:1px;background:var(--hover);padding-left:4px}
.tlr:hover .tla,.tlr:focus-within .tla{display:flex}
.tlr .tla .ib{width:20px;height:20px}
.tlr .tla .i{width:15px;height:15px}
.c{padding-right:48px;flex:none}
.r.cur::before{content:"";position:absolute;inset:0;border:1px solid var(--curline);border-width:2px 0;pointer-events:none;z-index:0}
.r.flash .c{animation:flash 1.6s ease-out}
.r.flashm .c{animation:flashm 2.4s ease-out}
@keyframes flash{0%,30%{background:color-mix(in srgb,var(--accent) 28%,transparent)}100%{background:transparent}}
@keyframes flashm{0%,45%{background:color-mix(in srgb,var(--mc,var(--accent)) 26%,transparent)}100%{background:transparent}}
.t-kw{color:var(--kw)}.t-ctl{color:var(--ctl)}.t-st{color:var(--str)}.t-doc{color:var(--doc)}.t-cm{color:var(--cm)}.t-nu{color:var(--nu)}.t-fn,.t-fd{color:var(--fn)}.t-bi{color:var(--bi)}.t-dec{color:var(--dec)}.t-id{color:var(--id)}.t-cs{color:var(--cs)}.t-mod{color:var(--mod)}
mark{background:none;color:inherit}
mark.fm{background:var(--find-o);border-radius:2px}
mark.fm.cur{background:var(--find);box-shadow:0 0 0 1px var(--find-b);color:inherit}
:root[data-theme=dark] mark.fm.cur span{color:#fff}
mark.wa{background:var(--add-w);border-radius:2px}
mark.wd{background:var(--del-w);border-radius:2px}
.sticky{position:absolute;top:0;left:0;right:94px;z-index:4;background:var(--bg);box-shadow:0 4px 4px -3px var(--sticky-sh);font:12px/18px var(--mono);overflow:hidden;cursor:pointer;color:var(--txt)}
.nomm .sticky{right:14px}
.sticky .r:hover .c{text-decoration:underline;text-decoration-color:var(--dim)}
#mm{position:absolute;top:0;right:14px;width:80px;height:100%;cursor:default;touch-action:none}
.mmsl{position:absolute;right:14px;width:80px;background:var(--mm-sl);opacity:0;transition:opacity .12s;pointer-events:none}
.edwrap:hover .mmsl,.mmsl.on{opacity:1}
.nomm #mm,.nomm .mmsl{display:none}
.vs{position:absolute;top:0;right:0;width:14px;height:100%;border-left:1px solid var(--vs-b);touch-action:none}
.vs canvas{position:absolute;inset:0;width:100%;height:100%}
.vsth{position:absolute;left:0;right:0;background:var(--th);min-height:20px}
.vsth:hover,.vsth.drag{background:var(--th-h)}

/* Recherche / remplacer */
.find{position:absolute;top:0;right:28px;z-index:8;display:flex;align-items:flex-start;background:var(--widget);box-shadow:0 0 8px 2px var(--shadow);border:1px solid var(--widget-b);border-top:0;border-radius:0 0 6px 6px;padding:4px 4px 4px 2px;transform:translateY(calc(-100% - 12px));transition:transform .18s ease;visibility:hidden}
.find.open{transform:none;visibility:visible}
.fw-tg{width:18px;align-self:stretch;margin-right:3px;border-radius:3px;display:grid;place-items:center;color:var(--fg)}
.fw-tg:hover{background:var(--hover-t)}
.fw-tg .i{transition:transform .12s}
.find.rep .fw-tg .i{transform:rotate(90deg)}
.fw-rows{display:flex;flex-direction:column;gap:4px}
.fw-row{display:flex;align-items:center;gap:2px;height:26px}
.fw-in{display:flex;align-items:center;width:260px;height:26px;background:var(--input);border:1px solid var(--input-b);border-radius:4px;padding:0 2px 0 0}
.fw-in:focus-within{border-color:var(--focus)}
.fw-in.err{border-color:var(--del-fg)}
.fw-in input{flex:1;min-width:0;height:100%;background:none;border:0;padding:0 6px;font-size:13px}
.fw-in input::placeholder{color:var(--dim)}
.tgl{width:21px;height:20px;border-radius:3px;font:11px/18px var(--mono);color:var(--muted);border:1px solid transparent;display:grid;place-items:center;flex:none}
.tgl:hover{background:var(--hover-t)}
.tgl[aria-pressed=true]{background:var(--tgl-bg);border-color:var(--accent);color:var(--fg)}
.fw-cnt{min-width:84px;font-size:12px;padding:0 6px;color:var(--muted);white-space:nowrap}
.fw-cnt.none{color:var(--del-fg)}
.find .ib{width:22px;height:22px}
.find:not(.rep) .fw-rep{display:none}
.fw-note{font-size:11px;color:var(--dim);padding:0 6px;white-space:nowrap}

/* ===== Historique ===== */
.hw{max-width:1240px;margin:0 auto;padding:22px 28px 90px}
.h-top{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 20px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.h-top .tt{flex:1 1 420px;min-width:0}
.h-top h1{font-size:20px;font-weight:600;margin:0 0 4px;color:var(--fg-strong);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.h-top p{margin:0;color:var(--muted);font-size:13px}
.tagex{font:500 11px/18px var(--ui);padding:0 7px;border-radius:3px;background:var(--warn-bg);color:var(--warn-fg);border:1px solid var(--warn-b);white-space:nowrap}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:8px}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;border-radius:2px;display:inline-block}
.h-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.chip{height:24px;padding:0 9px;border-radius:12px;border:1px solid var(--border);font-size:12px;display:inline-flex;align-items:center;gap:6px;background:var(--bg);color:var(--fg)}
.chip:hover{border-color:var(--mc,var(--focus))}
.chip .gc{width:14px;height:14px}
.btnl{height:24px;padding:0 9px;border-radius:4px;font-size:12px;display:inline-flex;align-items:center;gap:6px;background:var(--btn2);color:var(--fg);white-space:nowrap}
.btnl:hover{background:var(--btn2-h)}
.btnl.pri{background:var(--btn);color:#fff}
.btnl.pri:hover{background:var(--btn-h)}
.mod{margin-top:22px;border:1px solid var(--border);border-radius:6px;background:var(--card);scroll-margin-top:16px;position:relative}
.mod::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;border-radius:6px 0 0 6px;background:var(--mc)}
.mod.target{box-shadow:0 0 0 1px var(--mc)}
.mod-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:14px 16px 12px 18px}
.mod-n{display:inline-flex;align-items:center;gap:8px;font:600 12px/22px var(--ui);text-transform:uppercase;letter-spacing:.06em;color:var(--mc);flex:none}
.mod-n .gc{width:16px;height:16px}
.mod-h h2{margin:0;font-size:15px;font-weight:600;color:var(--fg-strong);flex:1 1 300px;min-width:0}
.mod-h h2 code{font:500 14px var(--mono);color:var(--fn)}
.mod-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:12px;color:var(--muted);width:100%}
.mod-meta .vv{font-family:var(--mono);font-size:12px;color:var(--fg)}
.mod-meta .who{display:inline-flex;align-items:center;gap:6px;color:var(--fg)}
.av{width:18px;height:18px;border-radius:50%;display:inline-grid;place-items:center;font:700 10px/1 var(--ui);color:#fff;flex:none}
.av.jules{background:var(--jules)}.av.claude{background:var(--claude)}
.plus{color:var(--add-fg);font-family:var(--mono)}.minus{color:var(--del-fg);font-family:var(--mono)}
.mod-act{display:flex;gap:6px;margin-left:auto}
.mod-b{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;padding:0 16px 16px 18px;align-items:start}
.hk+.hk{margin-top:18px}
.hk-h{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:0 0 8px;flex-wrap:wrap}
.hk-h .i{color:var(--sym)}
.hk-h code{font:12px var(--mono);color:var(--fg)}
.hk-h .hst{margin-left:auto;color:var(--dim)}
.blk{border:1px solid var(--border);overflow:hidden;background:var(--bg)}
.blk.new{border-radius:5px 5px 0 0}
.blk.old{border-radius:0 0 5px 5px;border-top:0}
.blk-h{display:flex;align-items:center;gap:8px;height:28px;white-space:nowrap;overflow:hidden;padding:0 6px 0 10px;font-size:12px;color:var(--muted);background:var(--blk-h);border-bottom:1px solid var(--border)}
.blk.old .blk-h{border-top:1px dashed var(--border)}
.pill{font:600 11px/18px var(--ui);padding:0 7px;border-radius:3px;letter-spacing:.02em}
.new .pill{background:var(--add-bg);color:var(--add-fg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--add-fg) 35%,transparent)}
.old .pill{background:var(--del-bg);color:var(--del-fg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--del-fg) 35%,transparent)}
.blk-h .vv{font-family:var(--mono);color:var(--fg)}
.blk-h .sp{flex:1}
.blk-h .ib{width:22px;height:22px;color:var(--muted)}
.blk-c{overflow-x:auto;font:12px/19px var(--mono);padding:4px 0;color:var(--txt);scrollbar-width:thin}
.dr{display:flex;width:max-content;min-width:100%;white-space:pre}
.dr>span{flex:none}
.dn{position:sticky;left:0;width:52px;padding-right:6px;text-align:right;color:var(--ln);background:var(--bg);font-variant-numeric:tabular-nums;user-select:none;-webkit-user-select:none}
.ds{width:20px;text-align:center;user-select:none;-webkit-user-select:none}
.dc{padding-right:28px}
.dr.ctx .dc{opacity:.72}
.new .dr:not(.ctx){background:var(--add-bg)}
.new .dr:not(.ctx) .dn{background:linear-gradient(var(--add-bg),var(--add-bg)) var(--bg);color:var(--add-fg)}
.new .dr:not(.ctx) .ds{color:var(--add-fg)}
.old .dr:not(.ctx){background:var(--del-bg)}
.old .dr:not(.ctx) .dn{background:linear-gradient(var(--del-bg),var(--del-bg)) var(--bg);color:var(--del-fg)}
.old .dr:not(.ctx) .ds{color:var(--del-fg)}
.why{border:1px solid var(--border);border-radius:6px;padding:12px 14px 12px;background:color-mix(in srgb,var(--wc) 6%,var(--bg));position:sticky;top:14px;border-top:2px solid var(--wc)}
.why.jules{--wc:var(--jules)}.why.claude{--wc:var(--claude)}
.why-h{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.why-h .lab{font:700 11px/1 var(--ui);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-strong)}
.why-h .by{font-size:12px;color:var(--wc);margin-left:auto;font-weight:500}
.why p{margin:0;font-size:13px;line-height:1.6;color:var(--fg)}
.why .wf{margin-top:10px;padding-top:8px;border-top:1px solid var(--border);font-size:12px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}
.why .wf .vv{font-family:var(--mono);color:var(--fg)}
.crea .mod-b{grid-template-columns:minmax(0,1fr) 320px}
.crea-c{font-size:13px;color:var(--muted);line-height:1.6;border:1px dashed var(--border);border-radius:6px;padding:12px 14px}
.crea-c b{color:var(--fg);font-weight:600}
.h-end{margin-top:26px;text-align:center;color:var(--dim);font-size:12px}


/* ===== Description (aperçu) ===== */
.md{max-width:860px;margin:0 auto;padding:30px 36px 90px;font-size:14px;line-height:1.65;color:var(--fg)}
.md .mdh{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);margin-bottom:18px;flex-wrap:wrap}
.md h1{font-size:26px;font-weight:600;margin:0 0 6px;padding-bottom:10px;border-bottom:1px solid var(--border);color:var(--fg-strong);font-family:var(--mono);letter-spacing:-.01em}
.md h2{font-size:18px;font-weight:600;margin:28px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border);color:var(--fg-strong)}
.md p{margin:0 0 14px}
.md .lead{font-size:16px;color:var(--fg-strong);margin:14px 0 18px}
.md pre{margin:0 0 16px;padding:12px 16px;background:var(--code-bg);border:1px solid var(--border);border-radius:5px;font:12.5px/1.6 var(--mono);overflow-x:auto;color:var(--txt)}
.md strong{color:var(--fg-strong)}
.md a,.lk{color:var(--link);cursor:pointer}

/* ===== Infos ===== */
.inf{max-width:980px;margin:0 auto;padding:26px 32px 90px}
.inf h1{font-size:20px;font-weight:600;margin:0 0 4px;color:var(--fg-strong);display:flex;align-items:center;gap:10px}
.inf .sub{color:var(--muted);margin:0 0 22px}
.inf h2{font-size:13px;font-weight:600;margin:26px 0 6px;color:var(--fg-strong);text-transform:uppercase;letter-spacing:.06em}
.kv{display:grid;grid-template-columns:210px minmax(0,1fr);gap:12px;padding:7px 0;border-bottom:1px solid var(--border-soft);font-size:13px}
.kv .k{color:var(--muted)}
.kv .v{color:var(--fg);min-width:0;overflow-wrap:anywhere}
.kv code,.inf code{font:12.5px var(--mono)}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chp{font:12px/20px var(--mono);padding:0 8px;border-radius:3px;background:var(--code-bg);border:1px solid var(--border)}
.fnl{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:2px 16px}
.fnl button{display:flex;align-items:center;gap:6px;height:24px;font:12.5px var(--mono);border-radius:3px;padding:0 6px;white-space:nowrap;overflow:hidden}
.fnl button:hover{background:var(--hover)}
.fnl .i{color:var(--sym)}
.fnl .ln{margin-left:auto;font:11px var(--ui);color:var(--dim)}
.vt{width:100%;border-collapse:collapse;font-size:13px}
.vt th{text-align:left;font-weight:500;color:var(--muted);font-size:12px;padding:6px 8px;border-bottom:1px solid var(--border)}
.vt td{padding:7px 8px;border-bottom:1px solid var(--border-soft);vertical-align:middle}
.vt td.n{font-family:var(--mono);white-space:nowrap}
.vt td.n .gc{vertical-align:-3px;margin-right:6px}
.vt .acts{display:flex;gap:6px;justify-content:flex-end}
.vt .muted{color:var(--muted)}
.vtw{overflow-x:auto}

/* ===== Barre d'état ===== */
.st{display:flex;align-items:stretch;background:var(--status);color:#fff;font-size:12px;user-select:none;-webkit-user-select:none;min-width:0;overflow:hidden;transition:background .2s}
.st.old{background:var(--status-old)}
.st .grow{flex:1}
.si{display:flex;align-items:center;gap:4px;padding:0 7px;white-space:nowrap;color:#fff}
.si .i{width:14px;height:14px}
button.si:hover{background:rgba(255,255,255,.12)}
.si.rem{background:var(--status-rem);padding:0 10px}

/* ===== Palette ===== */
.pal{position:fixed;top:42px;left:50%;transform:translateX(-50%);width:min(620px,calc(100vw - 16px));background:var(--widget);border:1px solid var(--widget-b);border-radius:7px;box-shadow:0 0 14px 2px var(--shadow);z-index:70;padding:6px 6px 5px}
.pal-in{display:flex;align-items:center;height:28px;background:var(--input);border:1px solid var(--focus);border-radius:4px;padding:0 6px}
.pal-in input{flex:1;min-width:0;background:none;border:0;font-size:13px;height:100%}
.pal-l{list-style:none;margin:5px 0 0;padding:0;max-height:min(440px,60vh);overflow:auto;scrollbar-width:thin}
.pi{display:flex;align-items:center;gap:7px;height:24px;padding:0 8px;border-radius:4px;cursor:pointer;white-space:nowrap}
.pi .i,.pi .fi{flex:none}
.pi .i{color:var(--muted)}
.pi .i.sy{color:var(--sym)}
.pi .lb{overflow:hidden;text-overflow:ellipsis;min-width:0}
.pi .dsc{color:var(--dim);font-size:12px;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.pi .kbs{margin-left:auto;padding-left:8px}
.pi.on{background:var(--sel);color:var(--sel-fg)}
.pi.on .i{color:inherit}
.pi.on .dsc{color:inherit;opacity:.75}
.pi.dis{opacity:.5}
.pi b.q{color:var(--hlq);font-weight:700}
.pi.on b.q{color:inherit}
.pal-sep{font-size:11px;color:var(--dim);padding:6px 8px 2px;text-align:right;border-top:1px solid var(--border);margin-top:3px}
.pal-sep:first-child{border-top:0;margin-top:0}
.pal-f{font-size:11px;color:var(--dim);padding:5px 8px 1px;border-top:1px solid var(--border);margin-top:5px;display:flex;gap:12px;flex-wrap:wrap}
.pal-f b{color:var(--fg);font-weight:600;font-family:var(--mono)}
.pal-empty{padding:8px;color:var(--muted)}

/* ===== Notifications, survol ===== */
.toasts{position:fixed;right:12px;bottom:34px;display:flex;flex-direction:column;gap:8px;z-index:80;width:min(440px,calc(100vw - 24px))}
.toast{background:var(--widget);border:1px solid var(--widget-b);box-shadow:0 0 8px 2px var(--shadow);border-radius:6px;padding:11px 8px 11px 12px;display:grid;grid-template-columns:16px minmax(0,1fr) auto;gap:4px 10px;font-size:13px;animation:tin .18s ease-out}
.toast .ti2{color:var(--link);margin-top:1px}
.toast.ok .ti2{color:var(--add-fg)}
.toast.warn .ti2{color:var(--warn-fg)}
.toast .msg{line-height:1.45;color:var(--fg)}
.toast .msg small{display:block;color:var(--muted);font-size:12px;margin-top:2px}
.toast .acts{grid-column:2/4;display:flex;justify-content:flex-end;gap:6px;margin-top:6px}
.toast .ib{width:22px;height:22px;color:var(--muted)}
@keyframes tin{from{transform:translateY(8px);opacity:0}}
.hov{position:fixed;z-index:75;max-width:380px;background:var(--widget);border:1px solid var(--widget-b);border-radius:5px;box-shadow:0 2px 8px var(--shadow);font-size:13px;line-height:1.45}
.hov .hh{padding:9px 12px 7px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border)}
.hov .hh .i.ga{color:var(--g-add)}.hov .hh .i.gm{color:var(--g-mod)}.hov .hh .i.gd{color:var(--g-del)}
.hov .hh b{font-weight:600}
.hov .hh .vv{font-family:var(--mono);font-size:12px;color:var(--muted);margin-left:auto}
.hov .hb{padding:8px 12px}
.hov .hb .t{font-weight:600;color:var(--fg-strong);margin-bottom:4px}
.hov .hb .w{color:var(--muted);font-size:12px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.hov .hb .by{display:flex;align-items:center;gap:6px;font-size:12px;margin-bottom:6px;color:var(--muted)}
.hov .hf{display:flex;gap:14px;padding:6px 12px 8px;border-top:1px solid var(--border);font-size:12px}
.zenx{position:fixed;left:50%;bottom:12px;transform:translateX(-50%);z-index:30;display:none;align-items:center;gap:8px;height:28px;padding:0 6px 0 12px;border-radius:14px;background:var(--widget);border:1px solid var(--widget-b);box-shadow:0 2px 8px var(--shadow);font-size:12px;color:var(--muted);opacity:.25;transition:opacity .3s}
.zenx:hover,.zenx.fresh,.zenx:focus-within{opacity:1}
.zen .zenx{display:flex}
.zenx button{height:22px;padding:0 9px;border-radius:11px;background:var(--btn);color:#fff;font-size:12px}
.scrim{display:none}

/* ===== Téléphone ===== */
@media (max-width:760px){
  .tb{grid-template-columns:auto minmax(0,1fr) auto;padding:0 4px;gap:4px}
  .brand,.nav,.tbsep,.tbb.desk{display:none}
  .burger{display:grid}
  .cc{width:100%;margin:0}
  .sb{position:fixed;top:35px;bottom:22px;left:0;width:min(86vw,330px);z-index:45;transform:translateX(-105%);transition:transform .2s ease;box-shadow:4px 0 16px var(--shadow)}
  .nosb .sb{display:flex}
  .drawer .sb{transform:none}
  .scrim{position:fixed;inset:35px 0 22px;background:var(--scrim);z-index:44}
  .drawer .scrim{display:block}
  .sash{display:none}
  .scr,.sticky{right:10px}
  #mm,.mmsl{display:none}
  .vs{width:10px}
  .find{left:4px;right:4px;border-radius:0 0 6px 6px}
  .fw-in{width:auto;flex:1;min-width:0}
  .fw-rows{flex:1;min-width:0}
  .fw-cnt{min-width:0}
  .fw-note{display:none}
  .bl{width:86px;gap:6px;padding:0 6px 0 7px}
  .bl .bd{display:none}
  .nb{width:calc(var(--nbw,3) * 1ch + 12px)}
  .mk{margin:0 10px 0 7px}
  .bl .bt .lg{display:none}
  .si.opt{display:none}
  .edact .ib.opt{display:none}
  .tab{padding-left:8px}
  .tab .td{display:none}
  .hw{padding:14px 12px 80px}
  .h-top h1{font-size:17px}
  .mod-h{padding:12px 12px 10px 14px}
  .mod-b,.crea .mod-b{grid-template-columns:minmax(0,1fr);padding:0 10px 12px 12px}
  .why{position:static}
  .mod-act{margin-left:0}
  .md{padding:18px 16px 80px;font-size:14px}
  .md h1{font-size:21px}
  .inf{padding:18px 14px 80px}
  .kv{grid-template-columns:minmax(0,1fr);gap:2px}
  .dn{width:40px}
  .toasts{bottom:30px}
  .vt .hide-m{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* =====================================================================
   Ajouts pour le vrai site (en plus de la maquette 17·1)
   ===================================================================== */

/* Les pages (historique, description, infos, dossier, accueil) défilent dans leur cadre */
.v-page{overflow:auto;scrollbar-width:thin;container-type:inline-size}
@container (max-width:880px){.mod-b,.crea .mod-b{grid-template-columns:minmax(0,1fr)}.why{position:static}}

/* Titres des volets de l'explorateur (bouton) */
.pane-t{display:flex;align-items:center;gap:2px;flex:1;min-width:0;height:22px}
.sb-h .pa2{display:flex;gap:1px;opacity:0;transition:opacity .1s}
.sb:hover .sb-h .pa2,.sb-h:focus-within .pa2{opacity:1}
.sb-h .ib{width:22px;height:22px}
.pane-b .vide2{padding:4px 20px;color:var(--dim);font-size:12px;font-style:italic;white-space:normal}

/* L'arbre : des liens (pour ouvrir dans un nouvel onglet du navigateur si on veut) */
a.ti{text-decoration:none}
.ti .tw{cursor:pointer}
.ti .cnt{margin-left:auto;font-size:11px;color:var(--dim);padding-left:8px}

/* L'éditeur : les lignes sont posées une à une (on ne dessine que celles qu'on voit) */
.lines::after{display:none}
.lines{position:relative}
.r{position:absolute;left:0;right:0}
.peek{position:absolute;left:0;margin:0}
.charge{padding:30px;color:var(--muted);display:flex;align-items:center;gap:10px}
.charge::before{content:"";width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:tourne .8s linear infinite}
@keyframes tourne{to{transform:rotate(360deg)}}

/* Bouton « logo » (lien vers l'accueil) */
a.logo{text-decoration:none}

/* ----- Connexion ----- */
.cnx{max-width:380px;margin:12vh auto 0;padding:26px 28px 24px;border:1px solid var(--border);border-radius:8px;background:var(--card);box-shadow:0 8px 30px -12px var(--shadow)}
.cnx .logo{width:28px;height:28px;font-size:15px;border-radius:6px;margin-bottom:14px}
.cnx h1{font-size:18px;font-weight:600;margin:0 0 6px;color:var(--fg-strong)}
.cnx p{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.5}
.cnx label{display:block;font-size:12px;color:var(--muted);margin-bottom:12px}
.champ{display:block;width:100%;height:28px;margin-top:4px;padding:0 8px;background:var(--input);border:1px solid var(--input-b);border-radius:4px;font-size:13px;color:var(--fg)}
.champ:focus{border-color:var(--focus);outline:none}
textarea.champ{height:auto;min-height:84px;padding:6px 8px;resize:vertical;line-height:1.5;font:13px/1.5 var(--ui)}
.cnx .err{color:var(--del-fg);font-size:12px;min-height:16px;margin:0 0 8px}
.btnl.big{height:28px;padding:0 14px;font-size:13px}
.cnx .btnl{width:100%;justify-content:center}
.deconnecte .sb,.deconnecte .sash,.deconnecte .tabsbar,.deconnecte .bc,.deconnecte .tb-c,.deconnecte .tb-r .tbb:not(#tTh){visibility:hidden}

/* ----- Accueil ----- */
.bv{max-width:980px;margin:0 auto;padding:34px 36px 80px}
.bv h1{font-size:26px;font-weight:400;margin:0;color:var(--fg-strong);letter-spacing:-.01em}
.bv .sub{color:var(--muted);margin:4px 0 26px;font-size:14px}
.bv-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px 40px}
.bv h2{font-size:13px;font-weight:600;color:var(--fg-strong);margin:0 0 8px}
.bv-l{list-style:none;margin:0;padding:0}
.bv-l a{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;color:var(--link);text-decoration:none;font-size:13px}
.bv-l a:hover{background:var(--hover)}
.bv-l a .i{color:var(--folder)}
.bv-l .ds{margin-left:auto;color:var(--dim);font-size:12px}
.bv-l .sous{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.bv-act{display:flex;flex-direction:column;gap:2px}
.bv-act button{display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:4px;color:var(--link);font-size:13px;width:100%}
.bv-act button:hover{background:var(--hover)}
.bv-act .kbs{margin-left:auto}
@media (max-width:760px){.bv{padding:20px 16px 70px}.bv-g{grid-template-columns:minmax(0,1fr)}}

/* ----- Page dossier ----- */
.dw{max-width:1100px;margin:0 auto;padding:22px 28px 90px}
.dw-h{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.dw-h .tt{flex:1 1 300px;min-width:0}
.dw-h h1{font-size:20px;font-weight:600;margin:0 0 3px;color:var(--fg-strong);display:flex;align-items:center;gap:8px}
.dw-h h1 .i{width:20px;height:20px;color:var(--folder)}
.dw-h p{margin:0;color:var(--muted);font-size:13px}
.dw-h .acts{display:flex;gap:6px;flex-wrap:wrap}
.dl{border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--card)}
.dl-r{display:grid;grid-template-columns:22px minmax(0,1fr) 60px 80px 124px;align-items:center;gap:10px;height:30px;padding:0 12px;border-top:1px solid var(--border-soft);color:var(--fg);text-decoration:none;font-size:13px}
.dl-r:first-child{border-top:0}
.dl-r.hd{height:26px;font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;background:var(--blk-h)}
a.dl-r:hover{background:var(--hover)}
.dl-r .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dl-r .i{color:var(--folder)}
.dl-r .n{text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.dl-r .vb{font:11px/18px var(--mono);padding:0 6px;border-radius:3px;background:var(--code-bg);border:1px solid var(--border);justify-self:start;color:var(--muted)}
.dl-vide{padding:22px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:6px}
@media (max-width:760px){.dw{padding:14px 12px 80px}.dl-r{grid-template-columns:22px minmax(0,1fr) auto}.dl-r .hide-m{display:none}}

/* ----- Zone de dépôt ----- */
.depot{border:1px dashed var(--input-b);border-radius:6px;margin:0 0 16px;background:var(--card);transition:border-color .1s,background .1s}
.depot.survol{border-color:var(--focus);background:color-mix(in srgb,var(--accent) 8%,var(--card))}
.depot-c{display:flex;align-items:center;gap:12px;padding:14px 16px}
.depot-c>.i{width:22px;height:22px;color:var(--muted)}
.depot-c b{font-weight:600;color:var(--fg-strong)}
.depot-c .aide{color:var(--muted);font-size:12px}
.depot-c .lk{background:none;border:0;padding:0;font:inherit;text-decoration:underline;text-underline-offset:2px}
.depot-b{display:flex;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--border-soft);flex-wrap:wrap}
.depot-b .choisis{color:var(--muted);font-size:12px;flex:1 1 160px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.depot-b .champ{flex:2 1 220px;width:auto;margin:0}

/* ----- Petites fenêtres ----- */
.dlg{border:1px solid var(--widget-b);border-radius:8px;background:var(--widget);color:var(--fg);padding:0;width:min(520px,calc(100vw - 24px));box-shadow:0 10px 40px var(--shadow)}
.dlg::backdrop{background:var(--scrim)}
.dlg form{padding:18px 20px 16px}
.dlg h2{font-size:15px;font-weight:600;margin:0 0 4px;color:var(--fg-strong)}
.dlg p{margin:0 0 14px;color:var(--muted);font-size:13px;line-height:1.5}
.dlg label{display:block;font-size:12px;color:var(--muted);margin-bottom:12px}
.dlg .btns{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}
.dlg .err{color:var(--del-fg);font-size:12px;min-height:16px;margin:0}
.dlg .depot{margin-bottom:12px}

/* ----- Historique (vrai) ----- */
.why.vide{--wc:var(--dim);border-top-style:dashed}
.why.vide p{color:var(--muted);font-style:italic}
.why .wbtn{margin-top:10px;display:flex;gap:6px;flex-wrap:wrap}
.pq-ed textarea{margin:0 0 8px}
.orig{font-size:11px;padding:0 6px;border-radius:3px;line-height:18px;background:var(--code-bg);border:1px solid var(--border);color:var(--muted);white-space:nowrap}
.blk-c .saut{height:18px;display:flex;align-items:center;padding-left:60px;color:var(--dim);font-size:11px;letter-spacing:.2em;background:var(--blk-h)}
.nolis{border:1px dashed var(--border);border-radius:6px;padding:12px 14px;color:var(--muted);font-size:13px;line-height:1.55}
.nolis b{color:var(--fg)}
.h-more{display:flex;justify-content:center;margin-top:20px}
.mod-act .btnl{white-space:nowrap}

/* ----- Fichier non lisible : grande icône ----- */
.big-ic{display:flex;align-items:center;gap:14px;margin-bottom:16px}
.big-ic .fi{width:40px;height:40px}

/* Icône de fichier un peu plus grande dans les listes */
.dl-r .fi{width:16px;height:16px}

/* Couleurs des icônes de fichiers (esprit Seti) */
:root[data-theme=dark]{--seti-yellow:#cbcb41;--seti-green:#8dc149;--seti-purple:#a074c4;--seti-orange:#e37933;--seti-red:#cc3e44;--seti-blue2:#6d8086}
:root[data-theme=light]{--seti-yellow:#a8a82e;--seti-green:#6f9a36;--seti-purple:#8a5fb0;--seti-orange:#c8652a;--seti-red:#b8383d;--seti-blue2:#5b6d73}

/* Table des versions : on cache les colonnes secondaires quand la place manque */
@container (max-width:820px){.vt .hide-c{display:none}}

.btnl:disabled{opacity:.5;cursor:default}
.btnl.pri:disabled:hover{background:var(--btn)}

.bv-l .ds{white-space:nowrap}
@media (max-width:760px){.bv-l .sous{display:none}}

/* Les longs noms (chemins sans espace) passent à la ligne au lieu de déborder */
.mod-h h2,.why p,.crea-c,.md p,.dw-h p,.bv .sub{overflow-wrap:anywhere}
.v-page{overflow-x:hidden}
