/* Veillée — composant partagé de focus carrousel. Aucun motif visuel nouveau. */
.vw-workspace.v-carousel-focus{--vcf-gap:0px}
.vw-workspace.v-carousel-focus-on .vw-columns{grid-template-columns:minmax(0,1fr)}
.vw-workspace.v-carousel-focus-on .vw-settings,
.vw-workspace.v-carousel-focus-on .vw-library{display:none}
.vw-workspace.v-carousel-focus-on .vw-center{min-width:0}
.vw-workspace.v-carousel-focus-on .vw-stage{--vc-h:var(--vcf-h,calc(100vh - 200px))}

/* Le stage en focus : la carte active occupe toute la largeur du conteneur. */
.v-carousel-focus-on .vw-stage .vc-unfold{--vc-w0:min(100cqw,100%);--vc-w1:0px;--vc-w2:0px;--vc-w3:0px;--vc-w4:0px;--vc-gap:0px}
.v-carousel-focus-on .vw-stage .vc-unfold .vc-panel[data-vc-step="1"],
.v-carousel-focus-on .vw-stage .vc-unfold .vc-panel[data-vc-step="2"],
.v-carousel-focus-on .vw-stage .vc-unfold .vc-panel[data-vc-step="3"],
.v-carousel-focus-on .vw-stage .vc-unfold .vc-panel[data-vc-step="4"],
.v-carousel-focus-on .vw-stage .vc-unfold .vc-panel[data-vc-step="hidden"]{width:0;opacity:0;pointer-events:none;border-width:0;margin-inline-end:0}
.v-carousel-focus-on .vw-stage .vc-unfold .vc-panel[data-vc-step="0"]{width:100cqw;opacity:1;transform:none;filter:none}
.v-carousel-focus-on .vw-stage .vc-swiper .vc-slide{width:100%}
.v-carousel-focus-on .vw-stage .vc-swiper .swiper-slide:not(.swiper-slide-active){pointer-events:none}

/* Le stage focus : jamais de min-height qui déborde, il suit la place disponible. */
.v-carousel-focus-on .vw-stage{--vc-h:var(--vcf-h,calc(100vh - 220px));min-height:0}
.vw-stage .vc-unfold,.vw-stage .vc-swiper{min-height:0}

/* Débordements de cartes : actions qui replient, titre qui se coupe, listes qui défilent. */
.vw-card-title,.vw-card-title h3,.vw-name,.vw-name-input{min-width:0;overflow-wrap:anywhere;word-break:break-word}
.vw-card-actions{display:flex;flex-wrap:wrap;gap:5px;align-items:center;justify-content:flex-end;min-width:0;max-width:100%}
.vw-card-head{min-width:0}
.vw-card-body,.vw-list,.jw-card .jw-body,.jw-card .jw-writing{flex:1;min-height:0;overflow:auto}
.vw-list{scrollbar-gutter:stable}
.vw-list::-webkit-scrollbar,.vw-card-body::-webkit-scrollbar,.jw-body::-webkit-scrollbar,.jw-writing::-webkit-scrollbar,.vw-tree::-webkit-scrollbar{width:9px;height:9px}
.vw-list::-webkit-scrollbar-thumb,.vw-card-body::-webkit-scrollbar-thumb,.jw-body::-webkit-scrollbar-thumb,.jw-writing::-webkit-scrollbar-thumb,.vw-tree::-webkit-scrollbar-thumb{background:var(--line);border-radius:6px}
.vw-list::-webkit-scrollbar-thumb:hover,.vw-card-body::-webkit-scrollbar-thumb:hover,.jw-body::-webkit-scrollbar-thumb:hover,.jw-writing::-webkit-scrollbar-thumb:hover,.vw-tree::-webkit-scrollbar-thumb:hover{background:var(--green)}
.vw-list::-webkit-scrollbar-track,.vw-card-body::-webkit-scrollbar-track,.jw-body::-webkit-scrollbar-track,.jw-writing::-webkit-scrollbar-track,.vw-tree::-webkit-scrollbar-track{background:transparent}
.vw-row{min-width:0}
.vw-row-name,.vw-row-name strong{min-width:0;overflow-wrap:anywhere}

/* Lieu agrandi : image à gauche, liste des personnages à droite ; entête et pied sur toute la largeur. */
.v-carousel-focus-on .sw-card{display:grid;grid-template-areas:"head head" "stage list" "foot foot";grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);grid-template-rows:auto minmax(0,1fr) auto;height:100%;min-height:0}
.v-carousel-focus-on .sw-card .vw-card-head{grid-area:head}
.v-carousel-focus-on .sw-card .sw-stage{grid-area:stage;height:100%;max-height:none;min-height:0;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line)}
.v-carousel-focus-on .sw-card>.vw-list{grid-area:list;min-height:0;overflow:auto}
.v-carousel-focus-on .sw-card .vw-card-foot{grid-area:foot}

/* Le bouton Agrandir / Revenir : natif, accessible, cible tactile 44px. */
.v-carousel-focus-button{min-height:44px;min-width:44px;padding:8px 14px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.v-carousel-focus-button:hover{background:var(--paper);border-color:var(--green)}
.v-carousel-focus-button:focus-visible{outline:3px solid var(--copper);outline-offset:2px}
.v-carousel-focus-button[aria-expanded="true"]{background:var(--green-soft);border-color:var(--green);color:var(--green)}

/* Mobile : une seule colonne, scroll vertical dans le stage focus. */
@media(max-width:1000px){
  .v-carousel-focus-on .sw-card{grid-template-areas:"head" "stage" "list" "foot";grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) minmax(70px,0.5fr) auto}
  .v-carousel-focus-on .sw-card .sw-stage{border-right:0;border-bottom:1px solid var(--line)}
  .v-carousel-focus-on .vw-stage{--vc-h:min(80vh,calc(100vh - 160px))}
}
@media(max-width:600px){
  .v-carousel-focus-button{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){
  .vc-rail,.vc-panel{transition:none!important}
}

.v-carousel-focus-on .vc-unfold{--vc-h:var(--vc-focus-height,clamp(260px,calc(100dvh - 260px),900px))}
.vw-card,.vm-card{min-height:0;overflow:auto;overscroll-behavior:contain}
.vw-card-head{flex-wrap:wrap}.vw-card-title{flex:1 1 180px}.vw-actions{max-width:100%;flex-wrap:wrap}
.v-carousel-focus-on .vc-swiper .swiper-slide:not(.swiper-slide-active){visibility:hidden}
.vm-workspace.v-carousel-focus-on .vm-columns{grid-template-columns:minmax(0,1fr) minmax(250px,25%)}
.vm-workspace.v-carousel-focus-on .vm-settings{display:none}
.vm-workspace.v-carousel-focus-on .vm-library{display:flex}
.vm-workspace.v-carousel-focus-on .vm-stage .vc-unfold{--vc-w0:100cqw;--vc-w1:0px;--vc-w2:0px;--vc-w3:0px;--vc-w4:0px;--vc-gap:0px}
.vm-workspace.v-carousel-focus-on .vm-stage .vc-panel[data-vc-step='0']{width:100cqw}
.vm-workspace .vm-card-actions{flex-wrap:wrap;max-width:100%}.vm-workspace .vm-card-head{flex-wrap:wrap}

@media(max-width:1000px){.vm-workspace.v-carousel-focus-on .vm-columns{grid-template-columns:minmax(0,1fr)}}
/* Musique agrandie : le bouton Réglages conserve l'accès au panneau gauche. */
.vm-workspace.v-carousel-focus-on:not(.vm-settings-collapsed) .vm-columns{grid-template-columns:212px minmax(0,1fr) minmax(250px,25%)}
.vm-workspace.v-carousel-focus-on:not(.vm-settings-collapsed) .vm-settings{display:block}
@media(max-width:1000px){.vm-workspace.v-carousel-focus-on:not(.vm-settings-collapsed) .vm-columns{grid-template-columns:minmax(0,1fr)}}
