/* Veillée — gain de place par page (demande de Benoit, 2026-10-18). Règles : /Users/benoit/benoit-claude/Jdr/veillee/FINAL/regles-gain-de-place.md
 * Écrit par les sous-agents DeepSeek (un par page), relu et réduit aux éléments réels. Thème clair. */
:root{--gp-bas:36px;--gp-haut:46px}
/* Cartes des ateliers : en-tête sur une ligne, pied visible seulement pendant un glisser */
.vw-actors .vw-card-active .vw-card-head,.vw-players .vw-card-active .vw-card-head,.vw-locations .vw-card-active .vw-card-head{flex-wrap:nowrap;align-items:center;gap:8px;padding:6px 10px;max-height:48px;overflow:hidden}
.vw-actors .vw-card-active .vw-card-title,.vw-players .vw-card-active .vw-card-title,.vw-locations .vw-card-active .vw-card-title{display:flex;align-items:baseline;gap:6px;flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}
.vw-actors .vw-card-active .eyebrow,.vw-players .vw-card-active .eyebrow,.vw-locations .vw-card-active .eyebrow{display:none}
.vw-actors .vw-card-active h3,.vw-players .vw-card-active h3,.vw-locations .vw-card-active h3{font-size:15px;line-height:1.2;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis}
.vw-actors .vw-card-active .vw-meta,.vw-players .vw-card-active .vw-meta,.vw-locations .vw-card-active .vw-meta{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vw-actors .vw-card-active .vw-card-actions,.vw-players .vw-card-active .vw-card-actions,.vw-locations .vw-card-active .vw-card-actions{flex-wrap:nowrap;margin-left:auto}
.vw-actors .vw-card-active .vw-card-foot,.vw-players .vw-card-active .vw-card-foot,.vw-locations .vw-card-active .vw-card-foot,.vw-journals .jw-card .vw-card-foot{display:none}
.vw-drag-active .vw-card-active .vw-card-foot{display:flex}
.vw-actors .vw-stage .vc-swiper,.vw-players .vw-stage .vc-swiper,.vw-locations .vw-stage .vc-swiper{height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 70px);min-height:420px}
.vw-locations .vw-card-active .sw-stage{flex:1 1 auto;min-height:0}
/* Journaux : titre et boutons de la carte en surimpression, estompés après 3 s */
.vw-journals .jw-card{position:relative}
.vw-journals .jw-card>.vw-card-head{position:absolute;inset:8px 8px auto 8px;z-index:5;padding:6px 10px;border:0;border-radius:10px;flex-wrap:nowrap;align-items:center;background:color-mix(in srgb,var(--surface),transparent 18%);backdrop-filter:blur(4px);pointer-events:none;animation:gp-estompe .5s ease 3s forwards}
@keyframes gp-estompe{to{opacity:.2}}
.vw-journals .jw-card:hover>.vw-card-head,.vw-journals .jw-card:focus-within>.vw-card-head{animation:none;opacity:1}
.vw-journals .jw-card>.vw-card-head .vw-card-title{display:flex;align-items:baseline;gap:8px;min-width:0;flex:1 1 auto;pointer-events:auto}
.vw-journals .jw-card>.vw-card-head .eyebrow{display:none}.vw-journals .jw-card>.vw-card-head h3{font-size:15px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vw-journals .jw-card>.vw-card-head .vw-meta{font-size:11px;white-space:nowrap}.vw-journals .jw-card>.vw-card-head .vw-card-actions{pointer-events:auto;flex-wrap:nowrap;margin-left:auto}
.vw-journals .jw-card>.jw-body,.vw-journals .jw-card>.jw-writing{flex:1 1 auto;min-height:0;padding-top:44px}.vw-journals .jw-file-hint{display:none}
.vw-journals .jw-children:has(.vw-list-empty):not(:has(.vw-row)){display:flex;align-items:center;gap:8px;height:28px;padding:0 12px;overflow:hidden;font-size:12px}
.vw-journals .jw-children:has(.vw-list-empty):not(:has(.vw-row)) .jw-children-heading{margin:0;font-size:12px;white-space:nowrap}
.vw-journals .jw-children:has(.vw-list-empty):not(:has(.vw-row)) .vw-list-empty{padding:0;border:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Musique : une ligne d'en-tête, réglages audio en bouton compact, bas de page discret */
.music-page-heading{height:30px;margin:0 0 6px;align-items:center}.music-page-heading h1{font-size:18px;line-height:30px;margin:0}
.music-extra-controls{position:absolute;left:170px;top:57px;z-index:26;margin:0}
.music-extra-controls>summary{height:26px;padding:0 9px;font-size:12px;line-height:26px;border:1px solid var(--line);border-radius:999px;background:var(--surface);cursor:pointer;list-style:none}
.music-extra-controls>summary::-webkit-details-marker{display:none}.music-extra-controls[open]{width:min(920px,90vw);padding:0;background:transparent}
.music-extra-controls[open]>*:not(summary){background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 32px #292d2726;padding:12px;margin-top:4px}
.vm-workspace{margin-top:0}.vm-workspace .vm-columns{height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 36px);min-height:0}
.vm-workspace .vm-center{display:flex;flex-direction:column;min-height:0}.vm-workspace .vm-work{flex:1 1 auto;min-height:0;overflow:auto}.vm-workspace .vm-library{min-height:0;max-height:100%;overflow:auto}
.vm-workspace .vm-status{height:24px;min-height:24px;font-size:11px}.vm-feedback[hidden]{display:none}
/* En partie et Composition : titre, modes et « Nouvelle scène » sur une ligne ; carrousel pleine hauteur ; flèches sur les bords */
/* En partie : la carte de scène et son bouton « Ouvrir la scène » doivent tenir à l'écran. Le calcul en 100dvh
   ne comptait pas le bandeau de présentation : le bouton tombait sous le pli (relevé du 2026-10-18, 1000 px
   pour une fenêtre de 1000 px). Le carrousel occupe maintenant la hauteur restante de la page. */
.workspace .vtw.vsg-browser{height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 128px);min-height:420px}
.workspace .vtw.vsg-browser > .vsg-overview{display:flex;flex-direction:column;height:100%;min-height:0}
.workspace .vtw.vsg-browser .vsg-overview .vsg-coverflow-host{height:auto;flex:1 1 auto;min-height:0}
.vsg-overview-mode{position:relative}
.vsg-overview-mode .vsg-top{height:30px;min-height:30px;padding:0 10px;align-items:center}.vsg-overview-mode .vsg-title{font-size:14px;margin:0}
.vsg-overview-mode .vsg-toolbar{position:absolute;top:2px;left:230px;z-index:3;margin:0}
.vsg-overview-mode .vsg-coverflow-host{height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 30px - 24px);min-height:320px}
.vsg-overview-mode .vsg-coverflow-host :is(.vsg-coverflow,.vc-rail,.vc-panel){height:100%}
.vsg-overview-mode .vsg-bar{position:absolute;inset:30px 0 0;height:auto;z-index:10;pointer-events:none}
.vsg-overview-mode .vsg-bar>button{position:absolute;top:50%;width:36px;height:36px;border-radius:50%;transform:translateY(-50%);background:color-mix(in srgb,var(--surface),transparent 20%);box-shadow:0 2px 10px #292d2720;pointer-events:auto}
.vsg-overview-mode .vsg-bar>.vsg-prev{left:12px}.vsg-overview-mode .vsg-bar>.vsg-next{right:12px}
.vsg-overview-mode .vsg-counter{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);font-size:11px;color:var(--muted)}
/* Page du joueur « La table » : l'image du lieu d'abord, au maximum de la fenêtre ; le reste en dessous, replié */
.player-layout #workspace{display:flex;flex-direction:column;gap:8px}
.player-layout #workspace .workspace-heading{order:-11;height:28px;margin:0;overflow:hidden}.player-layout #workspace .workspace-heading :is(.eyebrow,.subtitle){display:none}
.player-layout #workspace .workspace-heading h1{font-size:16px;line-height:28px;margin:0}
.player-layout #workspace .location-stage{order:-10;width:100%;height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 44px);min-height:320px;max-height:none;margin:0}
.player-layout #workspace .location-stage .location-image{width:100%;height:100%;max-width:100%;max-height:none;object-fit:contain;background:var(--paper)}
.player-layout #workspace .player-identity{order:10;max-height:56px;overflow:hidden;transition:max-height .25s}
.player-layout #workspace .player-identity:hover,.player-layout #workspace .player-identity:focus-within{max-height:none}
.player-layout #workspace .player-identity .pi-banner{display:none}.player-layout #workspace>.button{order:11;align-self:flex-start;min-height:28px}
.player-layout #workspace .player-roll-feed{order:12}.player-layout #workspace .hint{display:none}.player-layout #workspace .local-listen{order:13}
/* Lieux : le titre garde sa place, les boutons passent à la ligne ; liste des personnages placés compacte */
.vw-locations .vw-card-active .vw-card-head{flex-wrap:wrap;max-height:none;row-gap:4px}.vw-locations .vw-card-active .vw-card-title{flex:1 1 100%}
.vw-locations .vw-card-active .vw-card-head .vw-button{min-height:26px;padding:0 8px;font-size:12px}
.vw-locations .vw-card-active .vw-row{min-height:36px}.vw-locations .vw-card-active .vw-row :is(img,.vw-row-icon,.vw-thumb){width:28px;height:28px}
/* Carrousel de scènes : l'image de la carte active prend toute la place, texte et bouton en dessous */
.vsg-overview-mode .vsg-card-active .vsg-thumb{flex:1 1 auto;min-height:0;height:auto;aspect-ratio:auto}
.vsg-overview-mode .vsg-card-active .vsg-thumb img{width:100%;height:100%;object-fit:cover}
.vsg-overview-mode .vsg-card-active .vsg-card-body{flex:0 0 auto}
/* Personnages et Joueurs : cartes étroites, le titre garde sa ligne, les boutons passent dessous */
.vw-actors .vw-card-active .vw-card-head,.vw-players .vw-card-active .vw-card-head{flex-wrap:wrap;max-height:none;row-gap:4px}
.vw-actors .vw-card-active .vw-card-title,.vw-players .vw-card-active .vw-card-title{flex:1 1 100%}
.vw-actors .vw-card-active .vw-card-actions,.vw-players .vw-card-active .vw-card-actions{margin-left:0}
/* Restes (2026-10-18) : Composition et En partie remplissent la fenêtre ; barre de scène sur une ligne, outils secondaires derrière ⚙ */
.workspace .vcm,.workspace .vtw{height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 16px);min-height:420px}
.workspace:has(> .vcm){padding:6px 8px 4px}
.vsb-root .vsb{max-height:none;flex-wrap:nowrap}.vsb-pick{min-width:0;max-width:560px}.vsb-more-tab{padding:0 8px;min-height:26px}.vsb-more-tab[hidden]{display:none}
.vsb-more-body{position:absolute;right:8px;top:40px;z-index:25;display:flex;flex-wrap:wrap;align-items:center;gap:6px;max-width:min(560px,90vw);padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:0 8px 24px #292d2726}
.vsb-more-body[hidden]{display:none}
.vcm-top,.vtw-top{position:relative;z-index:6}
/* Cadres de Composition et En partie : la barre de fenêtre n'apparaît qu'au survol du cadre, dans son coin, et ne capte aucun clic tant qu'elle est invisible */
.vcm .vw-panel-bar,.vtw .vw-panel-bar{position:absolute;top:3px;right:64px;margin:0;padding:1px 3px;z-index:8;opacity:0;pointer-events:none;transition:opacity .15s}
.vcm :hover>.vw-panel-bar,.vtw :hover>.vw-panel-bar,.vcm .vw-panel-bar:focus-within,.vtw .vw-panel-bar:focus-within{opacity:.95;pointer-events:auto}
.vcm .vfz-frame{position:relative}
.vcm .vw-panel-bar>:not(button),.vtw .vw-panel-bar>:not(button){display:none}
/* Musique : colonnes et listes jusqu'en bas de la fenêtre */
.vm-workspace .vm-columns{align-items:stretch;height:calc(100dvh - 140px)}
[data-page=audio] .wide-workspace .workspace{height:calc(100dvh - var(--gp-haut) - var(--gp-bas))}
.vm-workspace .vm-work:not([data-view="carrousel"]){height:auto;flex:1 1 0}
.vm-workspace .vm-library{display:flex;flex-direction:column}.vm-workspace .vm-library .vm-tree{flex:1 1 auto;min-height:0;max-height:none}
/* Lieux : l'image prend la place libre, la liste des personnages garde sa hauteur utile (défile au-delà de 40 %) */
.vw-locations .vw-card-active ol.vw-list{flex:0 1 auto;max-height:40%;overflow:auto}
/* Carrousels des ateliers : la carte centrale prend plus de largeur (image du lieu plus grande, mêmes proportions) */
.vw-locations .vw-stage .vc-unfold{--vc-w0:min(860px,74cqw)}
.vw-locations .vw-card-active .sw-stage{max-height:64%}
/* Écran tactile : pas de survol, les barres de cadres restent visibles */
@media(hover:none){.vcm .vw-panel-bar,.vtw .vw-panel-bar{opacity:.8;pointer-events:auto}}
/* Lieu en grand : le cadre de l'image occupe tout l'écran restant, les trois cadrages (entière, remplir, étirer) s'y voient */
.stage-expanded .location-stage{width:100%!important;aspect-ratio:auto!important;height:calc(100dvh - 210px);min-height:260px;max-height:none}
.stage-expanded .console-stage-wrap{width:100%}
.location-fit-options{display:inline-flex;gap:4px;margin-left:6px}
/* Tuiles sorties : la place rendue aux autres ; bibliothèque prioritaire en largeur ; tuiles restantes agrandies sans bouger */
.vw-panel-collapsed{display:none!important}
.vtw .vtw-cols{grid-template-columns:var(--vcl-eff,var(--vcl-cols,36fr 28fr 36fr))}
.vtw-col[data-vtw-out]>.vfz-frame,.vtw-col[data-vtw-out]>.vtw-side{flex:1 1 0!important}
.vtw-cols[data-vtw-reflow] .vcl-handle{display:none}
.vtw .vtw-side-head{padding-right:136px}
html.vtl-dragging .vtw .vtw-cols{grid-template-columns:var(--vcl-cols,36fr 28fr 36fr)!important}
html.vtl-dragging .vtw-col:empty,html.vtl-dragging .vtw-col[data-vtw-out]{min-height:120px}
/* Vue joueur « La table » : les trois blocs sont des tuiles que le joueur peut sortir (fenêtre ou onglet), barre visible au survol */
.vpt-tile{position:relative}
.vpt-tile .vw-panel-bar{position:absolute;top:3px;right:8px;margin:0;padding:1px 3px;z-index:40;opacity:0;pointer-events:none;transition:opacity .15s}
.vpt-tile:hover>.vw-panel-bar,.vpt-tile .vw-panel-bar:focus-within{opacity:.95;pointer-events:auto}
.vpt-tile .vw-panel-bar>:not(button){display:none}
@media(hover:none){.vpt-tile .vw-panel-bar{opacity:.8;pointer-events:auto}}
.player-layout #workspace .vpt-tile[data-frame="image-scene"]{order:-10}
.player-layout #workspace .vpt-tile[data-frame="leur-personnage"]{order:10}
.player-layout #workspace .vpt-tile[data-frame="jets-des"]{order:12}
.player-layout #workspace:has(>.vw-panel-collapsed) .player-identity{max-height:none}
.vw-panel-popup .vpt-tile{width:100%}.vw-panel-popup .vpt-tile .location-stage{width:100%;height:auto;max-height:none}
.vpt-tile[data-frame="leur-personnage"]>.vw-panel-bar{right:auto;left:150px}
/* Autres pages : place rendue aux colonnes visibles quand une tuile sort (Journaux, Joueurs, Personnages, Lieux, Musique, Composition, Réglages) */
@media(min-width:1001px){.vw-columns[data-vtw-reflow],.vm-columns[data-vtw-reflow]{grid-template-columns:var(--vcl-eff)!important}}
.vcm-center[data-vcm-reflow]{grid-template-areas:var(--vcm-areas)!important;grid-template-rows:var(--vcm-rows)!important}
.vcm-left[data-vcm-out],.vcm-right[data-vcm-out]{display:none}
.vcm[data-vcm-cols]{grid-template-columns:var(--vcm-cols)!important}
@media(min-width:1101px){.rg-grid[data-rg-reflow]{grid-template-columns:var(--rg-cols)!important}}
.rg-col[data-rg-out]{display:none}
.rg-block{position:relative}
.rg-block>.vw-panel-bar{position:absolute;top:2px;right:44px;margin:0;padding:1px 3px;z-index:40;opacity:0;pointer-events:none;transition:opacity .15s}
.rg-block:hover>.vw-panel-bar,.rg-block>.vw-panel-bar:focus-within{opacity:.95;pointer-events:auto}
.rg-block>.vw-panel-bar>:not(button){display:none}
@media(hover:none){.rg-block>.vw-panel-bar{opacity:.8;pointer-events:auto}}
/* Pages à colonnes : les barres ⣿ ⧉ ↺ des trois colonnes étaient superposées au même endroit ; chacune a sa place, celle d'un panneau replié disparaît */
.vw-workspace .vw-center>.vw-panel-bar,.vm-workspace .vm-center>.vw-panel-bar{left:330px}
.vw-workspace .vw-library>.vw-panel-bar,.vm-workspace .vm-library>.vw-panel-bar{left:450px}
.vw-workspace .vw-settings>.vw-panel-bar,.vm-workspace .vm-settings>.vw-panel-bar{left:570px}
.vw-settings-collapsed .vw-settings>.vw-panel-bar,.vm-settings-collapsed .vm-settings>.vw-panel-bar{display:none}
/* La table du joueur : l'image du lieu occupe toute la zone centrale (barres de haut, de gauche et de bas conservées, aucun défilement).
   Le cadrage choisi par le meneur (adapter, remplir, étirer, centrer, manuel) s'applique dans cette zone ; acteurs, jets de dés et
   boutons secondaires flottent par-dessus en pastilles repliées (survol ou focus pour les ouvrir). Le filigrane reste visible de part et d'autre de l'image. */
.vpt-more>summary{list-style:none;cursor:pointer;display:grid;place-items:center;width:34px;height:28px;margin:0 auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);font-size:16px;line-height:1}
.vpt-more>summary::-webkit-details-marker{display:none}
/* Ordinateur et tablette large seulement : sur téléphone les barres s'empilent, la page garde sa mise en page habituelle. */
@media(min-width:761px){
html[data-page=table]{overflow:hidden}
html[data-page=table] .player-layout #workspace{--zone-h:calc(100dvh - var(--gp-haut) - var(--gp-bas));position:relative;display:block;height:var(--zone-h);padding:0;margin:0;overflow:hidden;background:transparent}
html[data-page=table] .player-layout #workspace>.workspace-heading,html[data-page=table] .player-layout #workspace .local-listen,html[data-page=table] .player-layout #workspace .stage-plein{display:none}
html[data-page=table] .player-layout #workspace>.vpt-tile[data-frame="image-scene"]{position:absolute;inset:0;display:grid;place-items:center;order:0}
html[data-page=table] .player-layout #workspace .location-stage{position:relative;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto!important;margin:0;border:0;border-radius:0;background:transparent}
html[data-page=table] .player-layout #workspace .location-stage.vfr-manual{width:min(100%,calc(var(--zone-h) * var(--location-ratio,1.7778)))!important;height:auto!important;max-height:100%!important;aspect-ratio:var(--location-ratio,1.7778)!important}
html[data-page=table] .player-layout #workspace .location-stage .stage-backdrop{background:transparent}
html[data-page=table] .player-layout #workspace>.vpt-tile:not([data-frame="image-scene"]),html[data-page=table] .player-layout #workspace>.vpt-more,html[data-page=table] .player-layout #workspace>.button.primary{position:absolute;z-index:20;margin:0}
html[data-page=table] .player-layout #workspace>.vpt-tile[data-frame="leur-personnage"],html[data-page=table] .player-layout #workspace>.vpt-tile[data-frame="jets-des"]{bottom:10px;overflow:hidden;background:color-mix(in srgb,var(--surface),transparent 6%);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);transition:max-height .25s}
html[data-page=table] .player-layout #workspace>.vpt-tile[data-frame="leur-personnage"]{left:10px;max-width:min(440px,calc(50% - 40px));max-height:56px}
html[data-page=table] .player-layout #workspace>.vpt-tile[data-frame="jets-des"]{right:10px;max-width:min(360px,calc(50% - 40px));max-height:40px}
html[data-page=table] .player-layout #workspace>.vpt-tile[data-frame="leur-personnage"]:is(:hover,:focus-within),html[data-page=table] .player-layout #workspace>.vpt-tile[data-frame="jets-des"]:is(:hover,:focus-within){max-height:min(70dvh,560px);overflow:auto}
html[data-page=table] .player-layout #workspace .vpt-tile[data-frame="leur-personnage"] .player-identity{max-height:none}
html[data-page=table] .player-layout #workspace>.button.primary{top:10px;left:10px}
html[data-page=table] .player-layout #workspace>.vpt-more{bottom:10px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column-reverse;align-items:stretch;gap:4px}
html[data-page=table] .player-layout #workspace>.v-image-board{position:absolute;top:8px;left:50%;transform:translateX(-50%);z-index:30;max-width:min(760px,92%)}
}
/* === Carrousel des scènes (Composition, En partie) : tri à droite, à côté du carrousel, masquable (Benoit, 13/11) === */
.workspace .vsg-browser>.vsg-overview:has(>.vsg-side){display:grid;grid-template-columns:minmax(0,1fr) clamp(250px,22%,340px);gap:12px;align-items:stretch}
.workspace .vsg-browser>.vsg-overview.vsg-side-off{grid-template-columns:minmax(0,1fr)}
.vsg-overview-mode .vsg-main{position:relative;display:flex;flex-direction:column;min-width:0;min-height:0}
.vsg-overview-mode .vsg-main .vsg-coverflow-host{height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 24px);min-height:320px}
.workspace .vtw.vsg-browser .vsg-main{height:100%}
.workspace .vtw.vsg-browser .vsg-main .vsg-coverflow-host{height:auto;flex:1 1 auto}
.vsg-overview-mode .vsg-main .vsg-bar{inset:0}
.vsg-overview-mode .vsg-side{max-height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 16px)}
.workspace .vtw.vsg-browser .vsg-side{max-height:100%;min-height:0}
@media(max-width:1000px){.workspace .vsg-browser>.vsg-overview:has(>.vsg-side){grid-template-columns:minmax(0,1fr)}.vsg-overview-mode .vsg-main .vsg-coverflow-host{height:clamp(300px,62vh,640px)}}
.workspace .vtw.vsg-browser.vsg-overview-mode{height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 22px)}   /* En partie, vue carrousel : plus de bande vide sous le carrousel */
/* === Musique : à droite « Tri » (arbre des playlists) et « Sons », masquable ; masquée, le carrousel prend toute la largeur (13/11) === */
.vm-side{display:flex;flex-direction:column;gap:6px;min-width:0;min-height:0;max-height:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--vs-radius-panel,14px);padding:8px}
.vm-side[hidden]{display:none}
.vm-side-head{display:flex;align-items:center;gap:6px}
.vm-side-tabs{display:flex;gap:4px;flex:1;min-width:0}
.vm-side-tab,.vm-side-act{height:26px;padding:0 12px;border:1px solid var(--line);border-radius:14px;background:var(--paper);color:var(--ink);font:inherit;font-size:13px;cursor:pointer;white-space:nowrap}
.vm-side-act{font-weight:600}
.vm-side-tab:hover,.vm-side-act:hover{border-color:var(--green)}
.vm-side-tab.is-on{background:var(--green);border-color:var(--green);color:var(--paper);font-weight:600}
.vm-side-hide,.vm-side-reopen{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:8px;font:inherit;cursor:pointer}
.vm-side-hide{width:28px;height:26px;font-size:16px;line-height:1}
.vm-side-reopen{position:absolute;top:48px;right:0;z-index:8;height:28px;padding:0 10px;font-size:13px;box-shadow:0 2px 8px #292d2718}
.vm-side-hide:hover,.vm-side-reopen:hover{background:var(--green-soft);border-color:var(--green)}
.vm-side-reopen[hidden]{display:none}
.vm-workspace .vm-center{position:relative}
.vm-side-bar{display:flex;gap:4px;flex-wrap:wrap}
.vm-tri-pane{display:flex;flex-direction:column;gap:6px;flex:1;min-height:0}
.vm-tri-pane[hidden]{display:none}
.vm-tri{flex:1;min-height:0;overflow:auto}
.vm-side .vm-library{position:static;flex:1;min-height:0;max-height:none;border:0;padding:0;background:none;border-radius:0}
.vm-side .vm-library[hidden]{display:none}
.vm-workspace.vm-side-collapsed .vm-columns{grid-template-columns:212px minmax(0,1fr)}
.vm-workspace.vm-side-collapsed.vm-settings-collapsed .vm-columns{grid-template-columns:minmax(0,1fr)}
@media(max-width:1000px){.vm-workspace.vm-side-collapsed .vm-columns{grid-template-columns:minmax(0,1fr)}.vm-side{order:2;max-height:none}}
/* Tri de la Musique (colonne étroite) : le nom de la playlist d'abord, la durée seule ensuite */
.vm-tri .vm-ptree ul{padding-left:12px}
.vm-tri .vm-prow{min-width:0}
.vm-tri .vm-prow .vs-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vm-tri .vm-prow-type,.vm-tri .vm-prow-count{display:none}
.vm-tri .vm-prow-dur{flex:none;width:auto;color:var(--muted)}
.vm-tri .vm-pfolder .vs-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Musique : la barre d'outils (dont « Agrandir ») passe au-dessus du carrousel, désormais toujours affiché (390 px : la carte la recouvrait) */
.vm-workspace .vm-tools{position:relative;z-index:7}
/* En partie, scène ouverte : la page descend jusqu'à la barre du bas, comme la Composition (la règle « - 128px » perdait ~80 px) */
.workspace .vtw.vsg-browser.vsg-detail-mode{height:calc(100dvh - var(--gp-haut) - var(--gp-bas) - 16px)}
