/* Veillée — habillage propre aux quatre ateliers (lieux, personnages, joueurs, journaux).
 * Le reste vient de web/workspace-kit.css et web/coverflow.css. Thème clair uniquement. */

/* ---------- Lieux : image éditée sur place et personnages posés dessus ---------- */
.sw-card .sw-stage{position:relative;flex:0 1 auto;min-height:130px;aspect-ratio:var(--sw-ratio,16/9);max-height:46%;background:var(--paper);border-bottom:1px solid var(--line);overflow:hidden}
/* Réglages ouverts (modification d'un lieu) : l'image prend la hauteur de la carte, comme en jeu ; la liste des
   personnages reste accessible mais se contente de la place qui reste. */
.vw-settings-focus .sw-card .sw-stage{flex:1 1 auto;max-height:none;min-height:240px;border-bottom:0}
.vw-settings-focus .sw-card .vw-list{max-height:120px;overflow:auto}
.sw-backdrop{position:absolute;inset:0;background:var(--paper) center/contain no-repeat}
.sw-backdrop.sw-fit-cover{background-size:cover}
.sw-backdrop[data-vw-empty=true]{display:grid;place-content:center;padding:18px;color:var(--muted);font-size:12px;line-height:1.5;text-align:center}
.sw-token{position:absolute;transform:translate(-50%,-50%) rotate(var(--sw-turn,0deg));min-width:26px;background:none;border:0;padding:0;cursor:grab;display:grid;justify-items:center;gap:2px;touch-action:none}
.sw-token-art{display:block;width:100%;aspect-ratio:1;border-radius:50%;border:2px solid var(--surface);background:var(--surface) center/cover no-repeat;box-shadow:0 4px 10px #292d2740}
.sw-token-name{font-size:10px;font-weight:650;line-height:1.2;max-width:96px;padding:1px 5px;border-radius:10px;background:#fffffff0;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sw-token-hidden .sw-token-art{border-style:dashed;border-color:var(--copper);opacity:.7}
.sw-token-hidden .sw-token-name{color:var(--copper)}
.sw-token-selected{z-index:3}
.sw-token-selected .sw-token-art{border-color:var(--green);box-shadow:0 0 0 3px var(--green-soft),0 4px 10px #292d2740}
.sw-token-moving{cursor:grabbing;opacity:.85;z-index:4}
.sw-token:focus-visible{outline:3px solid var(--copper);outline-offset:3px;border-radius:50%}
.sw-card .vw-list{flex:1 0 104px;min-height:104px}
.vw-range{display:flex;align-items:center;gap:8px}
.vw-range input{flex:1;min-width:0;accent-color:var(--green);margin:0;border:0;}
.vw-range-value{font-variant-numeric:tabular-nums;font-size:12px;min-width:38px;text-align:right}

/* ---------- Personnages : portrait au centre, description éditée sur place ---------- */
.aw-card .aw-portrait{position:relative;flex:0 1 auto;min-height:120px;height:40%;background:var(--paper) center/cover no-repeat;border-bottom:1px solid var(--line)}
.aw-card .aw-portrait[data-vw-empty=true]{display:grid;place-content:center;color:var(--muted);font-size:12px;padding:18px;text-align:center}
.aw-kind{position:absolute;top:9px;left:9px}
.aw-card .vw-list{flex:1 0 96px;min-height:96px}
.aw-description{margin:0;padding:12px 16px;font-size:13px;line-height:1.6;border:0;width:100%;overflow:auto;max-height:42vh;min-height:74px;background:var(--surface);color:var(--ink);font-family:inherit}
.aw-description:focus-within{outline:2px solid var(--copper);outline-offset:-2px}
.aw-thumb-portrait .vw-thumb-art{background-position:center 22%}

/* ---------- Joueurs : place, présence et personnage attribué ---------- */
.pw-card .pw-identity{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-bottom:1px solid var(--line);flex:0 0 auto}
.pw-portrait{width:98px;height:130px;flex:none;border-radius:10px;border:1px solid var(--line);background:var(--paper) center/cover no-repeat}
.pw-portrait[data-vw-empty=true]{display:grid;place-content:center;color:var(--muted);font-size:11px;text-align:center;padding:8px}
.pw-identity-text{min-width:0;flex:1;display:grid;gap:3px}
.pw-contacts{display:grid;gap:5px;padding:10px 16px;font-size:12px;color:var(--muted)}
.pw-contacts strong{color:var(--ink);font-weight:600}
.pw-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:19px;letter-spacing:.14em;padding:8px 12px;border:1px dashed var(--green);border-radius:8px;background:var(--green-soft);color:var(--ink);text-align:center}

/* ---------- Journaux : page éditée sur place ---------- */
.jw-card .jw-body{flex:1;min-height:0;overflow:auto;padding:14px 18px;font-size:14px;line-height:1.65}
.jw-card .jw-body>*:first-child{margin-top:0}
.jw-card .jw-writing{flex:1;min-height:0;overflow:auto;padding:12px 18px 0 6px;position:relative;scrollbar-gutter:stable}
.jw-writing-detached{display:grid;place-content:center;align-content:center;gap:8px;padding:28px!important;text-align:center;color:var(--muted)}
.jw-writing-detached strong{color:var(--ink);font-size:16px}.jw-writing-detached span{font-size:13px;line-height:1.55;max-width:42ch}
.jw-conflict{margin:0 0 12px 30px;padding:10px 12px;border:1px solid var(--copper);border-radius:10px;background:var(--copper-soft);font-size:13px;line-height:1.5}
.jw-conflict .vw-actions{margin-top:8px;flex-wrap:wrap}
.jw-file-hint{margin:0 18px 14px;font-size:12px;color:var(--muted)}
.jw-status{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jw-status[data-tone="ok"]::before{content:"✓ ";color:var(--green);font-weight:700}
.jw-status[data-tone="error"],.jw-status[data-tone="warn"]{color:var(--copper);font-weight:600;white-space:normal}
.vw-journals .vw-stage .vc-swiper .vc-slide{width:min(700px,70%)}
.vw-journals .vw-stage.jw-wide .vc-swiper .vc-slide{width:96%}
.jw-children .vw-list-empty{padding:10px 16px;font-size:12px}
.jw-children{border-top:1px solid var(--line);flex:0 0 auto;max-height:30%}
.jw-children-heading{padding:8px 16px 2px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.jw-locked{padding:18px;color:var(--muted);font-size:13px;line-height:1.6}
.jw-format{font-size:11px}
.jw-thumb-excerpt{padding:8px 16px 2px;font-size:12px;line-height:1.5;color:var(--muted);overflow:hidden;margin:0}
.jw-preview-children{list-style:decimal inside;margin:0;padding:6px 16px 10px;color:var(--muted);font-size:12px;line-height:1.7;overflow:hidden}
.jw-preview-children li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vw-journals .vw-window{width:min(760px,calc(100vw - 330px));height:auto;max-height:min(760px,var(--vs-cap,calc(100vh - 80px)))}
.jw-window-editor{display:flex;flex:1;min-height:0;flex-direction:column}.jw-window-editor>.jw-writing{flex:1;min-height:240px;overflow:auto;padding:18px 24px 8px 12px}
.jw-window-status{padding:8px 14px;border-top:1px dashed var(--line);background:var(--paper);font-size:11px;color:var(--muted)}

@media(max-width:1000px){.vw-journals .vw-stage .vc-swiper .vc-slide{width:min(640px,86%)}.sw-card .sw-stage{max-height:40%}.aw-card .aw-portrait{height:38%}}
@media(max-width:600px){.vw-journals .vw-stage .vc-swiper .vc-slide,.vw-journals .vw-stage.jw-wide .vc-swiper .vc-slide{width:94%}.jw-card .jw-writing{padding:10px 12px 0}.jw-conflict{margin-left:0}.sw-token-name{max-width:64px}.pw-portrait{width:74px;height:98px}}
@media(max-width:1000px){.vw-journals .vw-window{width:calc(100vw - 16px);height:auto}}
/* Mode wiki : zone de dépôt d’un lien et pied de carte */
.jw-card .jw-writing.jw-drop-link{outline:2px dashed var(--green);outline-offset:-4px;border-radius:10px}
.jw-status[data-tone="busy"]{color:var(--muted)}
.jw-foot-hint{flex-shrink:0;white-space:nowrap}
@media(max-width:1000px){.jw-foot-hint{display:none}}
@media(max-width:600px){.vw-journals .vw-stage{--vc-h:max(620px,82vh)!important}}

/* ---------- Scènes : composition par glisser-déposer, lignes numérotées ---------- */
.vw-scenes .vw-stage .vc-slide{width:min(720px,72%)}
.scn-card{min-height:100%;overflow:hidden}
.scn-thumb-art{position:relative;background:var(--paper) center/cover no-repeat;overflow:hidden;height:220px}
.scn-composer-help{padding:10px 16px 0;flex-shrink:0}
.scn-composer{flex:1;min-height:120px;display:flex;flex-direction:column;overflow:hidden;padding:0 4px}
.scn-composer .vw-list{overflow:auto}
/* Puce compacte, une seule rangée (référence documents externes citée par Benoit, D-VEI-2609171205a) :
 * icône colorée par type, titre tronqué avec l'info complète en infobulle, 1-2 actions. Le
 * canevas configurable (positionnement libre par gabarit) reste un chantier séparé, B-VEI-024. */
.scn-lines.vw-list{padding:2px 0}
.scn-lines .vw-row.scn-chip{padding:4px 10px 4px 8px;gap:8px;min-height:0}
.scn-lines .vw-row-name{display:flex;align-items:center;gap:6px;min-width:0}
.scn-lines .vw-row-name strong{font-size:12.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.scn-chip-tag{flex:none;font-size:9px;padding:1px 5px;background:var(--paper);border-radius:20px}
.scn-lines .vw-row-art{width:22px;height:22px;border-radius:5px}
.scn-lines .vw-row-icon svg{width:14px;height:14px}
.scn-lines .vw-row-icon{width:22px;height:22px;border-radius:5px;display:grid;place-items:center;background:var(--paper);flex:none}
.scn-chip[data-scn-kind=location] .vw-row-icon,.scn-chip[data-scn-kind=location] .vw-row-art{box-shadow:inset 0 0 0 2px var(--green)}
.scn-chip[data-scn-kind=actor] .vw-row-icon,.scn-chip[data-scn-kind=actor] .vw-row-art{box-shadow:inset 0 0 0 2px var(--blue,#5d7184)}
.scn-chip[data-scn-kind=text] .vw-row-icon{box-shadow:inset 0 0 0 2px var(--muted)}
.scn-chip[data-scn-kind=page] .vw-row-icon{box-shadow:inset 0 0 0 2px var(--copper)}
.scn-chip[data-scn-kind=ambiance] .vw-row-icon,.scn-chip[data-scn-kind=location_sound] .vw-row-icon{box-shadow:inset 0 0 0 2px var(--green)}
.scn-chip[data-scn-kind=noise] .vw-row-icon{box-shadow:inset 0 0 0 2px var(--copper)}
.scn-lines .vw-row-name input{width:100%;min-width:0;border:1px solid transparent;border-radius:var(--vs-radius);background:transparent;color:var(--ink);font:inherit;text-overflow:ellipsis}
.scn-lines .vw-row-name input:hover,.scn-lines .vw-row-name input:focus-visible{border-color:var(--line);background:var(--surface)}
.scn-lines .vw-row-controls .vw-icon-button{}
.scn-add-text{margin:4px 16px 8px}
.scn-contract{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:11px 16px;border-top:1px solid var(--line);background:var(--paper);font-size:10px;line-height:1.45;flex-shrink:0}
.scn-contract strong{display:block;margin-bottom:3px;color:var(--copper)}
.scn-library{display:grid;gap:6px;max-height:560px;overflow:auto}
.scn-library-row{display:grid;grid-template-columns:44px minmax(0,1fr) 28px;gap:9px;align-items:center;padding:7px;border:1px solid transparent;border-radius:8px;background:var(--surface);cursor:grab}
.scn-library-row:hover{border-color:var(--line)}
.scn-library-row>.vw-node-art{width:44px;height:44px}
.scn-library-row>span:nth-child(2){min-width:0}
.scn-library-row strong,.scn-library-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.scn-library-row strong{font-size:12px}.scn-library-row small{margin-top:2px;color:var(--muted);font-size:10px}
.scn-library-row input{width:18px;accent-color:var(--green);cursor:pointer}
.scn-window-body{display:grid;min-height:0;overflow:auto;gap:10px;padding:14px 16px}
/* Cinq onglets (Lieux, Personnages, Musiques, Bruitages, Wiki) au lieu de quatre : la règle
 * commune .vw-mode{flex:1} garde sa largeur de contenu minimale et déborde à 390 px. */
.vw-scenes .vw-modes{flex-wrap:wrap}
.vw-scenes .vw-mode{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

@media(max-width:1000px){.vw-scenes .vw-stage .vc-slide{width:min(680px,88%)}.scn-library{max-height:none}}
@media(max-width:600px){.vw-scenes .vw-stage{--vc-h:max(720px,86vh)!important}.vw-scenes .vw-stage .vc-slide{width:94%}.scn-contract{grid-template-columns:1fr;font-size:11px}}

/* Carte joueur : l'identité passe à la ligne au lieu de déborder (champs et « autres personnages »). */
.pw-identity { flex-wrap: wrap; }
.pw-identity-text { flex: 1 1 200px; }
.pw-identity > fieldset.field { flex: 1 1 200px; min-width: 0; margin: 0; }
.pw-identity-text :is(input, select) { max-width: 100%; box-sizing: border-box; }

/* Journaux du joueur : dossiers qui s'ouvrent et se ferment. */
.journal-row { display: flex; align-items: center; gap: 2px; }
.journal-row .journal-item { flex: 1; min-width: 0; }
.journal-fold, .journal-fold-space { width: 22px; flex: none; text-align: center; }
.journal-fold { border: 0; background: transparent; padding: 6px 0; color: var(--muted, #70756b); cursor: pointer; }

.sw-stage .token-selection-box{position:absolute;z-index:30;pointer-events:none;border:1px solid var(--green);background:var(--green-soft);border-radius:3px}
.sw-stage:focus-visible{outline:2px solid var(--copper);outline-offset:-2px}

/* Lot 9A — en vues Liste et Arbre le sélecteur de droite est masqué (il reste en Carrousel) : la liste ou l'arbre le remplace au centre. */
.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]) .vw-library{display:none}
/* Vues Liste et Arbre : la liste prend la colonne de droite, la carte choisie garde toute la largeur du centre (Benoit, 13/11). */
.vw-alt-side{display:none;min-width:0}
.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]) .vw-alt-side{display:block;position:sticky;top:18px}
.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]) .vw-alt-side .vw-alt{max-height:calc(100vh - 36px);min-height:0}
.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]) .vw-alt-side .vw-alt-tree{column-width:auto;columns:1}
.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]) .vw-alt-side .vw-alt-bar{flex-wrap:wrap}
.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]){grid-template-columns:212px minmax(0,1fr) minmax(250px,25%)}
.vw-settings-collapsed .vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]){grid-template-columns:minmax(0,1fr) minmax(250px,25%)}
@media(max-width:1250px){.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]){grid-template-columns:200px minmax(0,1fr) 240px}.vw-settings-collapsed .vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]){grid-template-columns:minmax(0,1fr) 240px}}
@media(max-width:1000px){.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]),.vw-settings-collapsed .vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]){grid-template-columns:minmax(0,1fr)}.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]) .vw-alt-side{position:static;order:2}}

/* Lot 9A — carte en hauteur (portrait) pour Personnages et Joueurs seulement ; lieux et journaux gardent la carte horizontale. */
.vc-unfold:has(.aw-slide,.pw-slide){--vc-w0:min(380px,58cqw)}
.vc-unfold .aw-card .aw-portrait{height:48%}
.vc-unfold .pw-card .pw-identity>.pw-portrait{width:min(100%,150px);height:auto;aspect-ratio:3/4}
@media(max-width:600px){.vc-unfold:has(.aw-slide,.pw-slide){--vc-w0:84cqw}}
/* Vues Liste et Arbre : pas de bande sous la carte (la liste de droite remplace page précédente / suivante), et pleine page (Benoit, 13/11). */
.vw-columns:has(:is([data-vw-view=list],[data-vw-view=tree])[aria-pressed=true]) .vw-stage-footer{display:none}
.vw-detail-bar{display:flex;justify-content:flex-end;gap:6px;margin:0 0 6px}
.vw-detail-bar .vw-plein-toggle{font-size:12px;padding:4px 10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);cursor:pointer}
.vw-detail-bar .vw-plein-toggle:hover,.vw-detail-bar .vw-plein-toggle[aria-pressed=true]{background:var(--green-soft)}
.vw-workspace.vw-plein .vw-settings,.vw-workspace.vw-plein .vw-alt-side,.vw-workspace.vw-plein .vw-library,.vw-workspace.vw-plein .vw-toolrail,.vw-workspace.vw-plein .vw-stage-footer{display:none!important}
.vw-workspace.vw-plein .vw-columns{grid-template-columns:minmax(0,1fr)!important}
/* La carte choisie occupe toute la hauteur disponible : plus de bande vide en dessous ; le bouton Pleine page au-dessus. */
.vw-detail{flex-direction:column;height:max(420px,calc(100dvh - 150px));margin-top:0}
.vw-detail>.vw-detail-bar{flex:none;align-self:flex-end}
.vw-detail>.vw-card{flex:1 1 auto;min-height:0;height:auto}
.vw-workspace:not(.vw-plein) .vw-detail>.vw-detail-bar{margin-right:40px}
