.container.vw-host{max-width:none;padding:0;overflow:hidden}body.video-workflow-active .footer{display:none}.vw-root{--vw-bg:var(--workspace-bg,#f4f5f7);--vw-panel:var(--workspace-surface,#fff);--vw-border:var(--workspace-border,#e3e5eb);--vw-text:var(--workspace-text,#202634);position:relative;height:calc(100dvh - 116px);min-height:0;overflow:hidden;background:var(--vw-bg);color:var(--vw-text);font:13px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;isolation:isolate;user-select:none}.vw-root *{box-sizing:border-box}.vw-root button,.vw-root input,.vw-root select,.vw-root textarea{font:inherit;color:inherit}.vw-root button{cursor:pointer;border:0;background:none;display:inline-flex;align-items:center;justify-content:center;gap:7px;flex-shrink:0}.vw-root button:disabled{opacity:.4;cursor:not-allowed}.vw-root button:hover{background:var(--workspace-soft)}.vw-root button:focus-visible,.vw-root a:focus-visible{outline:2px solid #65d9ef;outline-offset:2px}.vw-root [hidden]{display:none!important}.vw-root svg{flex:none}.vw-top{position:absolute;left:12px;top:12px;right:12px;display:flex;justify-content:space-between;gap:8px;z-index:12;pointer-events:none}.vw-top>*{pointer-events:auto}.vw-top-left,.vw-top-right{display:flex;gap:8px;align-items:center}.vw-pill{display:flex;align-items:center;border:1px solid var(--vw-border);background:var(--vw-panel);border-radius:10px;height:40px;padding:4px;box-shadow:0 3px 12px #0002}.vw-pill button{height:30px;min-width:32px;border-radius:6px;padding:0 9px}.vw-project-name{background:transparent;border:0;outline:0;width:145px;max-width:18vw;padding:0 9px;height:30px;text-overflow:ellipsis}.vw-project-name:focus{background:var(--workspace-soft);border-radius:5px}.vw-separator{width:1px;align-self:stretch;margin:4px;background:var(--vw-border)}.vw-pill button.active{background:var(--workspace-soft);color:var(--vw-text)}.vw-save-status{font-size:11px;color:var(--workspace-muted);padding:0 8px}.vw-save-status.error{color:#ffbaad}.vw-stage{position:absolute;inset:0;touch-action:none;overflow:hidden;outline:none;cursor:default}.vw-stage.hand{cursor:grab}.vw-stage.dragging{cursor:grabbing}.vw-world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.vw-edges{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none}.vw-edges>path{fill:none;stroke:#555a60;stroke-width:1.2;vector-effect:non-scaling-stroke;pointer-events:stroke;cursor:pointer}.vw-edges>path:hover,.vw-edges>path.selected{stroke:#68d4e8;stroke-width:2}.vw-node{position:absolute;cursor:grab;outline:none;overflow:visible}.vw-node.selected .vw-node-content{outline:2px solid #70d8e8;outline-offset:3px}.vw-node:focus-visible .vw-node-content{outline:2px solid #70d8e8}.vw-node-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--workspace-muted);font-size:11px;height:24px;white-space:nowrap}.vw-node-title{max-width:80%;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:5px}.vw-node-info{font-size:9px}.vw-node-content{height:calc(100% - 24px);background:var(--vw-panel);border-radius:5px;overflow:hidden;border:1px solid var(--vw-border);position:relative}.vw-node-content>img,.vw-node-content>video{width:100%;height:100%;object-fit:contain;display:block;background:var(--vw-panel)}.vw-node-content video{cursor:pointer}.vw-node-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--workspace-muted)}.vw-node-empty span{font-size:12px}.vw-node-text{padding:18px;white-space:pre-wrap;line-height:1.7;overflow:auto;height:100%;font-size:14px;color:var(--vw-text);user-select:text}.vw-node-content audio{width:100%;height:44px}.vw-port{position:absolute;top:50%;margin-top:-5px;width:12px;height:12px;background:var(--vw-panel);border:1px solid var(--workspace-muted);border-radius:50%;cursor:crosshair;z-index:3;opacity:0}.vw-node:hover .vw-port,.vw-node.selected .vw-port,.vw-stage.connecting .vw-port{opacity:1}.vw-port.input{left:-7px}.vw-port.output{right:-7px}.vw-port:hover{background:#67d6e8;border-color:#b0f2ff}.vw-resize{position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;border:1px solid #63cbdc;background:var(--vw-panel);cursor:nwse-resize;display:none}.vw-node.selected .vw-resize{display:block}.vw-node-state{position:absolute;top:8px;left:8px;border-radius:5px;font-size:11px;background:#222e;color:#c1c1c1;padding:4px 7px;pointer-events:none}.vw-node-state.failed,.vw-node-state.unknown{color:#ffc6af}.vw-group{position:absolute;border:1px solid var(--vw-border);background:#1d252533;border-radius:12px;pointer-events:none}.vw-group-label{position:absolute;top:-22px;left:8px;color:var(--workspace-muted);font-size:12px}.vw-selection-box{position:absolute;border:1px solid #7cdae9;background:#70d8e81a;pointer-events:none;z-index:6}.vw-empty{position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;color:var(--workspace-muted)}.vw-empty h2{font-size:22px;font-weight:500;margin-bottom:12px;color:var(--workspace-muted)}.vw-empty p{line-height:1.8}.vw-empty-actions{display:flex;justify-content:center;gap:12px;margin-top:24px;pointer-events:auto}.vw-empty-actions button{background:var(--vw-panel);border:1px solid var(--workspace-soft);padding:10px 16px;border-radius:9px;color:var(--vw-text)}.vw-dock{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);display:flex;align-items:center;gap:4px;padding:7px;border:1px solid var(--workspace-soft);background:var(--vw-panel);border-radius:17px;box-shadow:0 5px 18px #0002;z-index:14}.vw-dock button{width:38px;height:38px;border-radius:9px;color:var(--workspace-muted)}.vw-dock button.active{background:var(--workspace-soft);color:var(--vw-text)}.vw-dock button.vw-add{background:#e9e9e9;color:#1d1d1d}.vw-dock button.vw-director{background:radial-gradient(circle at 35% 25%,#b2ffff 0,#65e2eb 20%,#329acc 55%,#405dc2 80%);border:5px solid var(--workspace-soft);border-radius:50%;width:46px;height:46px;margin-left:7px;box-shadow:inset 0 0 7px #8fedff88}.vw-bottom-left{position:absolute;bottom:22px;left:16px;display:flex;align-items:center;gap:6px;z-index:14}.vw-bottom-left button{height:32px;min-width:30px;border-radius:6px;padding:0 6px;color:var(--workspace-muted)}.vw-bottom-left button.active{color:#7ddce9;background:var(--workspace-soft)}.vw-bottom-left .vw-zoom{font-variant-numeric:tabular-nums;min-width:48px}.vw-popover{position:absolute;z-index:24;background:var(--vw-panel);border:1px solid var(--vw-border);border-radius:12px;padding:10px;box-shadow:0 12px 40px #0005;min-width:210px;max-height:70%;overflow:auto}.vw-popover button{width:100%;justify-content:flex-start;padding:9px 10px;border-radius:6px}.vw-popover h4{font-size:11px;font-weight:500;color:var(--workspace-muted);margin:8px 10px}.vw-popover hr{border:0;border-top:1px solid var(--vw-border);margin:7px 0}.vw-popover input{width:100%;background:var(--vw-panel);border:1px solid var(--vw-border);border-radius:6px;padding:8px;margin-bottom:5px}.vw-popover small{margin-left:auto;color:var(--workspace-muted)}.vw-inspector{position:absolute;z-index:13;left:50%;bottom:86px;transform:translateX(-50%);width:min(640px,calc(100% - 40px));border:1px solid var(--workspace-soft);background:var(--vw-panel);border-radius:16px;padding:14px 16px;box-shadow:0 8px 28px #0004;user-select:text}.vw-inspector-top,.vw-inspector-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.vw-inspector-top{justify-content:space-between;margin-bottom:9px}.vw-inspector-top input{max-width:65%;background:none;border:0;color:var(--vw-text);outline:none}.vw-inspector-top button{height:25px;width:25px;border-radius:5px}.vw-ref-strip{display:flex;gap:8px;overflow:auto;margin:8px 0;align-items:center}.vw-ref-chip{position:relative;flex:none;width:50px;height:50px;border-radius:7px;border:1px solid var(--vw-border);background:var(--vw-panel);overflow:hidden}.vw-ref-chip img,.vw-ref-chip video{width:100%;height:100%;object-fit:cover}.vw-ref-chip .vw-ref-remove{position:absolute;right:0;top:0;background:var(--vw-panel);color:white;width:17px;height:17px;font-size:12px}.vw-ref-chip span{position:absolute;bottom:0;left:0;background:var(--vw-panel);font-size:9px;padding:1px 3px}.vw-reference-add{border-radius:20px!important;border:1px solid var(--workspace-soft)!important;padding:5px 10px!important;color:var(--workspace-muted)!important}.vw-inspector textarea{display:block;width:100%;background:transparent;border:0;resize:vertical;min-height:88px;max-height:180px;color:var(--vw-text);line-height:1.7;outline:0;padding:8px 0}.vw-inspector textarea::placeholder{color:var(--workspace-muted)}.vw-inspector select{border:1px solid var(--vw-border);background:var(--vw-panel);border-radius:6px;max-width:190px;padding:5px}.vw-inspector-row label{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--workspace-muted)}.vw-run{margin-left:auto!important;width:36px;height:36px;background:#eee!important;color:#171717!important;border-radius:11px}.vw-help-text{font-size:11px;line-height:1.6;color:var(--workspace-muted);margin-top:8px}.vw-multi{display:flex;align-items:center;gap:12px;justify-content:center}.vw-multi button{border:1px solid var(--vw-border);border-radius:7px;padding:6px 10px}.vw-drawer{position:absolute;z-index:18;left:12px;top:64px;bottom:66px;width:min(320px,calc(100% - 24px));background:var(--vw-panel);border:1px solid var(--workspace-soft);border-radius:12px;box-shadow:0 8px 28px #0005;display:flex;flex-direction:column;padding:14px;user-select:text}.vw-drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:13px}.vw-drawer-head h3{font-size:14px;font-weight:500}.vw-drawer-head button{width:24px;height:24px;border-radius:5px}.vw-drawer input{width:100%;border:1px solid var(--vw-border);border-radius:7px;background:var(--vw-panel);padding:8px}.vw-drawer-tabs{display:flex;gap:4px;margin:10px 0}.vw-drawer-tabs button{border-radius:5px;padding:6px 8px;font-size:11px}.vw-drawer-tabs .active{background:var(--workspace-soft)}.vw-assets-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;overflow:auto;align-content:start;margin-top:9px}.vw-asset{display:flex!important;flex-direction:column;align-items:stretch!important;text-align:left;border:1px solid var(--workspace-soft)!important;border-radius:8px;padding:0!important;overflow:hidden;min-height:92px}.vw-asset img,.vw-asset video{height:105px;width:100%;object-fit:cover;background:var(--vw-panel)}.vw-asset span{font-size:11px;padding:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vw-asset-empty{grid-column:1/-1;text-align:center;color:var(--workspace-muted);padding:30px 0}.vw-minimap{position:absolute;right:16px;bottom:20px;width:168px;height:112px;border:1px solid var(--vw-border);border-radius:9px;background:var(--vw-panel);z-index:11;overflow:hidden}.vw-minimap svg{width:100%;height:100%}.vw-minimap rect.node{fill:#5c6265}.vw-minimap rect.view{fill:#78d7e511;stroke:#78d7e5;stroke-width:1}.vw-storyboard{position:absolute;inset:74px 24px 84px;display:flex;align-content:flex-start;flex-wrap:wrap;gap:16px;overflow:auto;padding:8px}.vw-shot{width:230px;background:var(--vw-panel);border:1px solid var(--workspace-soft);border-radius:10px;padding:12px;align-self:flex-start}.vw-shot-head{display:flex;justify-content:space-between;font-size:12px;margin-bottom:10px;color:var(--vw-text)}.vw-shot-media{height:160px;background:var(--vw-panel);border-radius:5px;display:flex;align-items:center;justify-content:center;color:var(--workspace-muted)}.vw-shot-media img,.vw-shot-media video{width:100%;height:100%;object-fit:contain}.vw-shot p{font-size:12px;line-height:1.7;color:var(--workspace-muted);white-space:pre-wrap;margin-top:10px;max-height:140px;overflow:auto}.vw-shot button{margin-top:8px;padding:6px 8px;border:1px solid var(--vw-border);border-radius:6px}.vw-dialog{position:absolute;inset:0;background:#0008;z-index:40;display:flex;align-items:center;justify-content:center;user-select:text}.vw-dialog-card{width:min(570px,90%);max-height:85%;overflow:auto;padding:24px;background:var(--vw-panel);border:1px solid var(--vw-border);border-radius:14px}.vw-dialog-card h3{font-size:17px;margin:0 0 18px;font-weight:500}.vw-dialog-card p{color:var(--workspace-muted);line-height:1.8;margin:8px 0}.vw-dialog-card button{padding:8px 12px;border:1px solid var(--vw-border);border-radius:7px}.vw-dialog-card input{display:block;width:100%;border:1px solid var(--vw-border);background:var(--vw-panel);padding:9px;border-radius:7px;margin:14px 0}.vw-shortcuts{display:grid;grid-template-columns:1fr 1fr;gap:12px 28px;font-size:12px;color:var(--workspace-muted);margin:18px 0}.vw-shortcuts div{display:flex;justify-content:space-between;gap:15px}.vw-shortcuts kbd{color:var(--vw-text)}.vw-notice{position:absolute;top:66px;left:50%;transform:translateX(-50%);z-index:30;background:#302929;border:1px solid #73544b;color:#f0c2b7;max-width:80%;padding:10px 14px;border-radius:8px;font-size:12px;user-select:text}.vw-notice button{padding:4px 8px;border:1px solid #87675a;border-radius:5px;margin-left:12px}.vw-import-button{border:1px solid var(--vw-border)!important;border-radius:7px;padding:8px!important;justify-content:center!important;width:100%;margin-top:10px}.vw-upload-progress{font-size:12px;color:#8bcfdc;padding:8px 0}.vw-shot-empty{color:var(--workspace-muted);padding:60px;width:100%;text-align:center}@media(max-width:1100px){.vw-bottom-left{bottom:76px}.vw-minimap{bottom:78px}.vw-save-status{display:none}}@media(max-width:700px){.vw-top-right .vw-export-label{display:none}.vw-project-name{width:100px}.vw-dock{gap:0;bottom:14px}.vw-dock button{width:33px}.vw-inspector{bottom:76px;padding:12px}.vw-minimap{display:none}.vw-node-info{display:none}.vw-root{height:calc(100dvh - 116px);min-height:0}}

.vw-root:fullscreen{height:100dvh;width:100dvw}.vw-node-tools{position:absolute;left:50%;top:66px;transform:translateX(-50%);display:flex;align-items:center;gap:5px;background:var(--vw-panel);border:1px solid var(--vw-border);border-radius:10px;box-shadow:0 6px 20px #0004;padding:7px;z-index:16}.vw-node-tools button{font-size:12px;padding:7px 10px;border-radius:5px;white-space:nowrap}.vw-dialog-card>img,.vw-dialog-card>video{display:block;width:100%;max-height:60dvh;object-fit:contain}.vw-dialog-card>.vw-node-empty{height:120px}.vw-dialog-card audio{width:100%}

/* v2.44: model-aware reference and generation controls. */
.vw-default-model button{gap:8px;font-size:12px;max-width:255px}.vw-default-model span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vw-prompt-toolbar{display:flex;gap:6px;margin:8px 0}.vw-prompt-toolbar button{padding:6px 10px;font-size:12px;color:var(--workspace-muted);border-radius:6px}.vw-prompt-toolbar button:hover{background:var(--workspace-soft);color:var(--vw-text)}.vw-model-control{font-size:10px;color:var(--workspace-muted);display:flex;align-items:center;gap:7px;min-width:0}.vw-model-control select{width:200px;max-width:200px!important}.vw-params-button{font-size:11px;padding:7px 9px!important;background:var(--workspace-soft)!important;border-radius:7px;white-space:nowrap}.vw-inspector-row{flex-wrap:wrap}.vw-inspector-row .vw-run{margin-left:auto}.vw-validation{font-size:11px;line-height:1.5;padding:9px 2px 0;color:var(--workspace-muted)}.vw-validation.needs-input{color:#d4b987}.vw-validation.ready{color:#99bcb0}.vw-ref-chip .vw-ref-mention{position:absolute;bottom:0;left:0;right:0;width:100%;height:18px;background:var(--vw-panel);border:0;border-radius:0;font-size:9px;color:var(--vw-text);overflow:hidden}.vw-ref-chip .vw-ref-remove{z-index:2}.vw-popover.vw-parameters{width:360px;max-height:calc(100% - 115px);padding:16px}.vw-param-section{margin-bottom:14px}.vw-param-chips{display:flex;flex-wrap:wrap;gap:6px}.vw-param-chips button{width:auto!important;min-width:47px;justify-content:center;font-size:12px;padding:7px 9px;border:1px solid var(--vw-border);border-radius:6px}.vw-param-chips button.active{background:#d3f3f2;color:#162727;border-color:#d3f3f2}.vw-parameters h4{margin:9px 0!important;padding:0!important;color:var(--vw-text)!important}.vw-parameters input,.vw-model-picker input,.vw-search-panel input{width:100%;padding:9px 10px;background:var(--vw-panel);border:1px solid var(--vw-border);border-radius:7px;margin-bottom:10px}.vw-popover.vw-model-picker{width:370px;padding:12px}.vw-model-option{display:flex!important;align-items:flex-start!important;flex-direction:column;gap:5px!important;padding:10px!important;border-radius:7px}.vw-model-option.active{background:var(--workspace-soft);color:var(--vw-text)}.vw-model-option small{font-size:10px;color:var(--workspace-muted);margin:0!important}.vw-search-panel{width:340px}.vw-search-panel small{font-size:10px;max-width:80px;overflow:hidden;text-overflow:ellipsis}.vw-parameters .vw-help-text,.vw-popover .vw-help-text{padding:4px 0;margin:5px 0;line-height:1.6}.vw-multi{flex-wrap:wrap}.vw-multi [data-action="run-selected"]{background:#d3f3f2;color:#162727;border-color:#d3f3f2}@media(max-width:1250px){.vw-default-model button{max-width:175px}.vw-project-name{width:140px}}@media(max-width:950px){.vw-default-model{position:absolute;top:56px;left:0}.vw-top-left{gap:6px}.vw-top-right{gap:6px}.vw-top-right .vw-export-label{display:none}.vw-top-right .vw-save-status{display:none}}@media(max-width:700px){.vw-popover.vw-parameters{right:10px!important;width:min(360px,calc(100% - 20px))}.vw-model-control select{max-width:170px!important}.vw-inspector-row{gap:7px}.vw-default-model button{max-width:240px}.vw-prompt-toolbar{gap:0}}

/* Workspace theme and viewport fill apply to the canvas itself. */
.container.vw-host{padding-bottom:0;margin-bottom:0;background:var(--workspace-bg);min-height:0}.vw-host .tab-pane.active{padding-bottom:0;min-height:0}.vw-root{border-radius:0}.vw-root .vw-generated-text{max-height:180px;overflow:auto;padding:12px;margin:8px 0;border:1px solid var(--vw-border);border-radius:8px;background:var(--workspace-soft);color:var(--vw-text);line-height:1.7;white-space:pre-wrap}.vw-root .vw-run,.vw-root .vw-dock .vw-add{background:var(--workspace-accent)!important;color:var(--workspace-accent-text)!important}.vw-root .vw-param-chips .active,.vw-root .vw-multi [data-action="run-selected"]{background:var(--workspace-accent);color:var(--workspace-accent-text);border-color:var(--workspace-accent)}

/* v2.49: a quiet canvas, with tools and nodes on separate neutral surfaces. */
.vw-root{
  --vw-bg:var(--workspace-canvas-bg,#f5f5f5);
  --vw-hairline:color-mix(in srgb,var(--vw-border) 75%,transparent);
  --vw-floating-shadow:0 2px 8px #00000008,0 10px 24px #00000006;
  --vw-node-shadow:0 1px 2px #00000004;
  border:0;
  box-shadow:none;
}
.container.vw-host{background:var(--workspace-canvas-bg,#f5f5f5);border:0;box-shadow:none}
.vw-host .tab-pane.active{border:0;box-shadow:none}
.vw-root :is(.vw-pill,.vw-dock,.vw-node-tools){
  background:var(--vw-panel);
  border-color:var(--vw-hairline);
  box-shadow:var(--vw-floating-shadow);
}
.vw-root :is(.vw-popover,.vw-inspector,.vw-drawer,.vw-dialog-card){
  background:var(--vw-panel);
  border-color:var(--vw-hairline);
  box-shadow:var(--vw-floating-shadow);
}
.vw-root :is(.vw-node-content,.vw-shot){
  background:var(--vw-panel);
  border-color:var(--vw-hairline);
  box-shadow:var(--vw-node-shadow);
}
.vw-root .vw-node-content{border-radius:7px}
.vw-root :is(.vw-node-state,.vw-ref-chip span){background:var(--workspace-soft);color:var(--vw-text)}
.vw-root .vw-ref-chip .vw-ref-remove{background:var(--workspace-accent);color:var(--workspace-accent-text)}
.vw-root .vw-node-state:is(.failed,.unknown){background:var(--orange-light,#fff2e4);color:var(--orange,#aa6c2a)}
.vw-root .vw-save-status.error{color:var(--red,#c34343)}
.vw-root .vw-group{background:color-mix(in srgb,var(--workspace-soft) 28%,transparent);border-color:var(--vw-hairline)}
.vw-root .vw-minimap{background:var(--vw-panel);border-color:var(--vw-hairline);box-shadow:var(--vw-node-shadow)}
.vw-root .vw-minimap rect.node{fill:var(--workspace-muted)}
.vw-root .vw-edges>path{stroke:var(--workspace-muted)}
.vw-root .vw-edges>path:hover,.vw-root .vw-edges>path.selected{stroke:#68d4e8}
.vw-root .vw-validation.needs-input{color:var(--orange,#aa6c2a)}
.vw-root .vw-validation.ready{color:var(--green,#3b8067)}
.vw-root .vw-notice{
  background:var(--orange-light,#fff2e4);
  color:var(--vw-text);
  border-color:color-mix(in srgb,var(--orange,#aa6c2a) 25%,var(--vw-border));
  box-shadow:var(--vw-floating-shadow);
}
.vw-root .vw-notice button{border-color:var(--vw-hairline);background:var(--vw-panel);color:var(--vw-text)}
.vw-root :is(.vw-popover,.vw-node-text,.vw-generated-text,.vw-assets-grid,.vw-storyboard){
  scrollbar-width:thin;
  scrollbar-color:var(--workspace-border) transparent;
}
html[data-workspace-theme=dark] .vw-root{
  --vw-bg:var(--workspace-canvas-bg,#171717);
  --vw-hairline:color-mix(in srgb,var(--vw-border) 65%,transparent);
  --vw-floating-shadow:0 4px 16px #00000030;
  --vw-node-shadow:none;
}
html[data-workspace-theme=dark] .vw-root .vw-edges>path{stroke:#606060}
html[data-workspace-theme=dark] .vw-root .vw-edges>path:hover,
html[data-workspace-theme=dark] .vw-root .vw-edges>path.selected{stroke:#68d4e8}
html[data-workspace-theme=dark] .vw-root .vw-validation.needs-input{color:#d1ad76}
html[data-workspace-theme=dark] .vw-root .vw-validation.ready{color:#a4c9b9}
html[data-workspace-theme=dark] .vw-root .vw-save-status.error{color:#e6a3a3}
html[data-workspace-theme=dark] .vw-root .vw-node-state:is(.failed,.unknown){color:#e3bc9c}

/* v2.50: LibTV canvas geometry. Canvas colors are deliberately local to this
   workspace; the application navigation keeps its existing light/dark theme. */
.vw-root,html[data-workspace-theme="dark"] .vw-root{
  --workspace-canvas-bg:#141414;
  --workspace-bg:#141414;
  --workspace-surface:#252525;
  --workspace-soft:#303030;
  --workspace-border:#343434;
  --workspace-text:#dedede;
  --workspace-muted:#999;
  --workspace-accent:#ededed;
  --workspace-accent-text:#202020;
  --vw-bg:#141414;
  --vw-panel:#252525;
  --vw-border:#343434;
  --vw-text:#dedede;
  --vw-muted:#999;
  --vw-hairline:#343434;
  --vw-floating-shadow:none;
  --vw-node-shadow:none;
  --vw-dock-width:300px;
  font-size:13px;
  -webkit-font-smoothing:antialiased;
  background:var(--vw-bg);
}
.vw-root[data-canvas-theme="light"],html[data-workspace-theme="dark"] .vw-root[data-canvas-theme="light"]{
  --workspace-canvas-bg:#f5f5f5;
  --workspace-bg:#f5f5f5;
  --workspace-surface:#fff;
  --workspace-soft:#ededed;
  --workspace-border:#dedede;
  --workspace-text:#292929;
  --workspace-muted:#777;
  --workspace-accent:#242424;
  --workspace-accent-text:#fff;
  --vw-bg:#f5f5f5;
  --vw-panel:#fff;
  --vw-border:#dedede;
  --vw-text:#292929;
  --vw-muted:#777;
  --vw-hairline:#dedede;
}
.vw-root button{transition:background-color .12s ease,color .12s ease,border-color .12s ease}
.vw-root button:hover{background:var(--workspace-soft)}
.vw-root button:active{transition:none}
.vw-root :is(button,input,textarea,select):focus-visible{outline:1px solid #59d5ec;outline-offset:2px}
.vw-root button:disabled{opacity:.35}
.vw-top{left:8px;top:8px;right:8px;gap:8px}
.vw-top-left,.vw-top-right{gap:8px}
.vw-pill{height:32px;padding:3px;border-radius:8px;box-shadow:none}
.vw-pill button{height:24px;min-width:26px;border-radius:5px;padding:0 6px;gap:5px}
.vw-pill button>svg{width:17px;height:17px}
.vw-project-name{width:77px;max-width:18vw;height:24px;padding:0 4px;font-size:13px}
.vw-top-left>.vw-pill:first-child{gap:0}
.vw-project-menu{width:32px;min-width:32px!important;padding:0 3px!important;gap:3px!important}
.vw-project-menu>svg{width:22px!important;height:22px!important}
.vw-project-menu .vw-brand-glyph{display:block;width:22px;height:17px;color:var(--vw-text)}
.vw-top-left>.vw-pill:first-child>[data-action="canvases"]{min-width:60px;max-width:110px;white-space:nowrap}
.vw-top-left>.vw-pill:first-child>[data-action="canvases"] [data-canvas-name]{overflow:hidden;text-overflow:ellipsis}
.vw-separator{width:1px;flex:none;margin:3px 4px;background:var(--vw-border)}
.vw-top-left>.vw-pill:nth-child(2){width:66px;gap:2px}
.vw-top-left>.vw-pill:nth-child(2)>button{width:28px;min-width:28px;padding:0}
.vw-pill button.active{background:#3b3b3b;color:#ededed}
.vw-root[data-canvas-theme="light"] .vw-pill button.active{background:#e8e8e8;color:#262626}
.vw-save-status{padding:0 6px;font-size:11px;white-space:nowrap}
.vw-default-model button{font-size:12px}
.vw-node-head{height:22px;font-size:11px;color:var(--vw-muted);gap:6px;font-weight:400}
.vw-node-content{height:calc(100% - 22px)}
.vw-root .vw-node-content{border-radius:4px;border-color:transparent;box-shadow:none}
.vw-node.selected .vw-node-content{outline:1.5px solid #64cfea;outline-offset:3px}
.vw-node-head svg{width:12px;height:12px}
.vw-node-empty{gap:10px}
.vw-node-empty>svg{opacity:.5}
.vw-node-empty span{font-size:12px;color:var(--vw-muted)}
.vw-node-info{font-size:9px;opacity:.75}
.vw-root .vw-edges>path{stroke:#555;stroke-width:1}
.vw-root .vw-edges>path:hover,.vw-root .vw-edges>path.selected{stroke:#68d4e8;stroke-width:1.5}
.vw-port{width:10px;height:10px;margin-top:-5px;background:var(--vw-panel);border-color:#858585}
.vw-port.input{left:-6px}.vw-port.output{right:-6px}
.vw-root .vw-node-state{font-size:10px;font-weight:400;background:#202020e6;color:#bcbcbc;top:7px;left:7px;padding:3px 6px}
.vw-group{border-radius:8px}
.vw-empty{top:45%;width:min(440px,calc(100% - 40px));color:var(--vw-muted)}
.vw-empty h2{font-size:22px;font-weight:400;letter-spacing:.02em;margin:0 0 16px;color:#aaa}
.vw-empty p{font-size:13px;line-height:1.8;margin:0;color:#777}
.vw-empty-actions{gap:10px;margin-top:24px}
.vw-empty-actions button{height:36px;border:1px solid var(--vw-border);padding:0 12px;border-radius:8px;font-size:12px;color:#bcbcbc}
.vw-dock{
  width:var(--vw-dock-width);
  height:48px;
  bottom:12px;
  padding:7px 8px;
  gap:8px;
  border:1px solid var(--vw-border);
  border-radius:16px;
  background:var(--vw-panel);
  box-shadow:none;
}
.vw-dock button{width:32px;min-width:32px;height:32px;padding:0;border-radius:8px;color:#b5b5b5}
.vw-dock button>svg{width:20px;height:20px}
.vw-dock button.active{color:#e1e1e1;background:transparent}
.vw-dock button.active:hover{background:var(--workspace-soft)}
.vw-root .vw-dock .vw-add{background:#ededed!important;color:#292929!important;border:1px solid #e3e3e3;border-radius:8px}
.vw-root .vw-dock .vw-add:hover{background:#fff!important}
.vw-dock .vw-add>svg{width:23px;height:23px;stroke-width:1.6}
.vw-dock .vw-separator{align-self:center;height:24px;margin:0;background:#3b3b3b}
.vw-character{position:relative}
.vw-character::after{content:"";position:absolute;right:0;top:0;width:6px;height:6px;border-radius:50%;background:#38c7e8;border:1px solid var(--vw-panel)}
.vw-root>.vw-director{
  position:absolute;
  z-index:14;
  left:calc(50% + var(--vw-dock-width)/2 + 6px);
  bottom:12px;
  width:48px;
  height:48px;
  padding:7px;
  margin:0;
  border:1px solid var(--vw-border);
  border-radius:50%;
  background:var(--vw-panel);
  box-shadow:none;
  isolation:isolate;
}
.vw-root>.vw-director::before{
  content:"";
  position:absolute;
  inset:7px;
  border-radius:50%;
  background:radial-gradient(ellipse at 48% 52%,#17bee3 0 9%,#65edfa 17%,#83f4f9 24%,transparent 37%),radial-gradient(ellipse at 64% 64%,#208cea 0 14%,#30cfe4 36%,#8cfaff 57%,#c2ffff 73%,#7bd5f7 88%);
  box-shadow:inset 1px 1px 5px #d8ffffb0,inset -2px -3px 5px #388fe2a8,0 0 1px #83efff;
}
.vw-root>.vw-director:hover{background:#313131}
.vw-root>.vw-director:hover::before{filter:brightness(1.08)}
.vw-root>.vw-director>svg{display:none}
.vw-bottom-left{bottom:20px;left:24px;gap:8px;height:24px}
.vw-bottom-left button{height:24px;min-width:24px;padding:0 3px;border-radius:4px;font-size:12px;color:#aaa;gap:4px}
.vw-bottom-left button>svg{width:16px;height:16px}
.vw-bottom-left [data-action="assets"]{padding:0;gap:5px;margin-right:8px;font-size:13px;color:#999;white-space:nowrap}
.vw-bottom-left [data-action="assets"]>svg{width:17px;height:17px}
.vw-bottom-left button.active{background:transparent;color:#68d4e8}
.vw-bottom-left button:hover{color:var(--vw-text)}
.vw-bottom-left .vw-zoom{min-width:42px;padding:0 3px;font-size:12px;color:#c7c7c7;text-align:left;justify-content:flex-start}
.vw-popover{border-radius:9px;padding:6px;box-shadow:0 4px 16px #0003;min-width:216px;font-size:13px}
.vw-popover button{min-height:34px;padding:7px 10px;gap:9px;border-radius:5px;line-height:20px}
.vw-popover button>svg{width:16px;height:16px;color:#aaa}
.vw-popover small{font-size:11px;font-weight:400;color:#868686}
.vw-popover h4{margin:8px 10px 5px;font-size:11px;color:#777}
.vw-popover hr{margin:5px 4px}
.vw-inspector{bottom:74px;border-radius:12px;padding:12px 14px;box-shadow:0 4px 16px #0002}
.vw-inspector textarea{min-height:88px;font-size:13px;line-height:1.7;padding:6px 0}
.vw-inspector-top{margin-bottom:6px}
.vw-inspector-top input{font-size:12px}
.vw-inspector-row{gap:6px}
.vw-inspector-row select{font-size:12px}
.vw-prompt-toolbar{margin:6px 0;gap:4px}
.vw-prompt-toolbar button{padding:5px 8px;font-size:11px}
.vw-ref-chip{width:48px;height:48px;border-radius:6px}
.vw-run{width:32px;height:32px;border-radius:8px}
.vw-params-button{padding:6px 8px!important;font-size:11px}
.vw-validation{font-size:10px;padding-top:7px}
.vw-help-text{font-size:11px}
.vw-node-tools{top:52px;padding:5px;gap:3px;border-radius:8px;box-shadow:none}
.vw-node-tools button{font-size:11px;padding:6px 8px}
.vw-drawer{left:8px;top:48px;bottom:64px;width:min(304px,calc(100% - 16px));padding:12px;border-radius:10px;box-shadow:0 4px 16px #0002}
.vw-drawer-head{margin-bottom:10px;min-height:24px}
.vw-drawer-head h3{font-size:13px;margin:0}
.vw-drawer input{background:#1e1e1e;border-color:#383838;font-size:12px}
.vw-drawer-tabs{margin:8px 0;gap:3px}
.vw-drawer-tabs button{font-size:12px;padding:5px 8px}
.vw-assets-grid{gap:8px}
.vw-asset{border-radius:6px}
.vw-asset span{font-size:11px;padding:6px 7px}
.vw-minimap{right:16px;bottom:16px;border-radius:7px}
.vw-storyboard{inset:56px 16px 80px;gap:14px}
.vw-shot{border-radius:8px}
.vw-dialog-card{border-radius:12px}
.vw-shortcut-panel{
  position:absolute;
  z-index:23;
  left:50%;
  bottom:74px;
  transform:translateX(-50%);
  width:min(1152px,calc(100% - 48px));
  max-height:calc(100% - 128px);
  overflow:auto;
  padding:24px 0;
  border:1px solid #414141;
  border-radius:16px;
  background:#292929;
  box-shadow:0 4px 18px #0002;
  color:#d4d4d4;
  user-select:none;
  font-size:14px;
}
.vw-shortcut-columns{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.vw-shortcut-column{min-width:0;padding:0 24px;border-left:1px solid #414141}
.vw-shortcut-column:first-child{border-left:0}
.vw-shortcut-column h3,.vw-shortcut-column h4{font-size:14px;font-weight:400;color:#56cee9;line-height:20px;margin:0 0 12px}
.vw-shortcut-row{display:flex;align-items:center;justify-content:space-between;min-height:40px;gap:10px;line-height:20px;font-size:14px;white-space:nowrap}
.vw-shortcut-keys{display:flex;align-items:center;justify-content:flex-end;gap:4px;flex:none;color:#c8c8c8}
.vw-shortcut-panel kbd{display:inline-flex;align-items:center;justify-content:center;height:28px;min-width:28px;padding:0 7px;border:1px solid #525252;border-radius:9px;background:transparent;color:#ddd;font:13px -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1;box-shadow:none}
.vw-shortcut-panel .vw-gesture{display:inline-flex;align-items:center;justify-content:center;width:28px;min-width:28px;height:28px;color:#c6c6c6;font-size:21px;line-height:1}
.vw-shortcut-panel .vw-gesture svg{width:24px;height:24px}
.vw-shortcut-panel .vw-shortcut-close{position:absolute;right:10px;top:8px;width:24px;height:24px;border-radius:5px;color:#aaa}
.vw-shortcut-panel .vw-shortcut-section{margin-top:22px}
.vw-shortcut-panel .vw-shortcut-note{color:#858585;font-size:11px;line-height:1.6;margin-top:14px}
.vw-root[data-canvas-theme="light"] .vw-shortcut-panel{background:#fff;border-color:#ddd;color:#444}
.vw-root[data-canvas-theme="light"] .vw-shortcut-column{border-color:#e3e3e3}
.vw-root[data-canvas-theme="light"] .vw-shortcut-panel kbd{border-color:#d8d8d8;color:#444}
.vw-root[data-canvas-theme="light"] .vw-drawer input{background:#fafafa;border-color:#ddd}
@media(max-width:1250px){.vw-project-name{width:77px}.vw-shortcut-column{padding:0 18px}.vw-shortcut-row{font-size:12px;gap:6px}.vw-shortcut-panel kbd{font-size:12px;padding:0 5px}}
@media(max-width:1100px){.vw-bottom-left{bottom:20px}.vw-minimap{bottom:70px}.vw-shortcut-column{padding:0 12px}.vw-shortcut-panel{width:calc(100% - 32px)}}
@media(max-width:950px){.vw-top-left,.vw-top-right{gap:8px}.vw-default-model{position:static}.vw-shortcut-columns{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}.vw-shortcut-column{padding:0 24px}.vw-shortcut-column:nth-child(3){border-left:0}.vw-shortcut-row{font-size:13px}.vw-bottom-left{gap:5px;left:16px}.vw-bottom-left [data-action="assets"]{margin-right:4px}}
@media(max-width:760px){.vw-bottom-left{bottom:72px;left:16px}.vw-top-right .vw-save-status{display:none}.vw-shortcut-panel{bottom:112px;max-height:calc(100% - 164px)}.vw-root>.vw-director{bottom:12px}.vw-dock{bottom:12px;gap:8px}.vw-dock button{width:32px}.vw-inspector{bottom:110px}.vw-empty h2{font-size:20px}}
@media(max-width:480px){.vw-root{--vw-dock-width:280px}.vw-dock{gap:5px;padding-inline:9px}.vw-root>.vw-director{left:calc(50% + var(--vw-dock-width)/2 + 4px);width:42px;height:42px;bottom:15px}.vw-root>.vw-director::before{inset:5px}.vw-shortcut-column{padding:0 12px}.vw-shortcut-panel{width:calc(100% - 16px)}.vw-shortcut-row{font-size:11px}.vw-shortcut-panel kbd{font-size:11px;min-width:24px;padding:0 4px}.vw-shortcut-keys{gap:3px}}
@media(prefers-reduced-motion:reduce){.vw-root button{transition:none}}

/* v2.50: canvas menus, project assets and the independent creative assistant. */
.vw-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 10px;color:var(--vw-muted);font-size:12px;line-height:22px}
.vw-menu-heading strong{font-size:12px;font-weight:500;color:var(--vw-text)}
.vw-menu-heading input{width:128px;min-width:0;height:28px;margin:0;padding:4px 8px;border:1px solid var(--vw-border);background:color-mix(in srgb,var(--vw-bg) 55%,var(--vw-panel));font-size:11px;border-radius:5px}
.vw-menu-heading button{width:26px;min-width:26px;height:26px;min-height:26px;padding:0;justify-content:center}
.vw-canvas-row{display:flex;align-items:center;gap:4px;margin:2px 0;border-radius:5px;min-height:34px}
.vw-canvas-row>button:first-child{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vw-canvas-row>button:last-child:not(:first-child){width:28px;min-width:28px;min-height:28px;height:28px;padding:0;justify-content:center;color:var(--vw-muted)}
.vw-canvas-row:hover{background:var(--workspace-soft)}
.vw-canvas-row.active{background:var(--workspace-soft)}
.vw-canvas-row.active>button:first-child{color:var(--vw-text)}
.vw-drawer-view{display:flex;align-items:center;gap:2px;padding:3px;background:color-mix(in srgb,var(--vw-bg) 65%,var(--vw-panel));border-radius:7px;margin:0 0 12px}
.vw-drawer-view button{flex:1;min-width:0;padding:6px 10px;height:30px;border-radius:5px;color:var(--vw-muted);font-size:12px}
.vw-drawer-view button.active{background:var(--workspace-soft);color:var(--vw-text)}
.vw-node-list{display:flex;flex-direction:column;gap:3px;min-height:0;overflow:auto;flex:1;padding:4px 0;margin:8px -4px 0;scrollbar-width:thin;scrollbar-color:var(--vw-border) transparent}
.vw-node-list-row{display:flex!important;align-items:center!important;justify-content:flex-start!important;width:100%;min-height:48px;gap:9px!important;padding:6px!important;border:1px solid transparent!important;border-radius:6px;text-align:left;flex-shrink:0}
.vw-node-list-row.active,.vw-node-list-row[aria-selected="true"]{background:var(--workspace-soft);border-color:var(--vw-border)!important}
.vw-node-list-row>img,.vw-node-list-row>video,.vw-node-list-row>.vw-node-list-thumb{width:36px;height:36px;border-radius:4px;object-fit:cover;flex:none;background:color-mix(in srgb,var(--vw-bg) 65%,var(--vw-panel))}
.vw-node-list-thumb{display:inline-flex;align-items:center;justify-content:center;color:var(--vw-muted)}
.vw-node-list-row>span:not(.vw-node-list-thumb),.vw-node-list-row>.vw-node-list-copy{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.vw-node-list-row strong,.vw-node-list-row .vw-node-list-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:400;color:var(--vw-text)}
.vw-node-list-row small,.vw-node-list-row .vw-node-list-type{font-size:10px;color:var(--vw-muted);line-height:15px}
.vw-drawer-footer{display:flex;align-items:center;justify-content:space-between;flex-shrink:0;min-height:32px;padding-top:10px;margin-top:auto;color:var(--vw-muted);font-size:11px;border-top:1px solid var(--vw-border)}
.vw-director-panel{position:absolute;z-index:22;right:8px;top:48px;bottom:12px;width:min(420px,calc(100% - 16px));display:flex;flex-direction:column;gap:12px;overflow:hidden;padding:16px;border:1px solid var(--vw-border);border-radius:12px;background:var(--vw-panel);color:var(--vw-text);box-shadow:0 4px 18px #0002;user-select:text}
.vw-director-panel .vw-drawer-head,.vw-director-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding-bottom:10px;border-bottom:1px solid var(--vw-border)}
.vw-director-panel h3{font-size:14px;font-weight:500;line-height:22px;margin:0}
.vw-director-panel h4{font-size:13px;font-weight:500;margin:4px 0}
.vw-director-panel p{font-size:12px;line-height:1.8;color:var(--vw-muted);margin:0}
.vw-director-panel .vw-director-head button,.vw-director-panel .vw-drawer-head button{width:26px;height:26px;padding:0;border-radius:5px;color:var(--vw-muted)}
.vw-director-panel textarea,.vw-director-panel input{display:block;width:100%;border:1px solid var(--vw-border);border-radius:8px;background:color-mix(in srgb,var(--vw-bg) 60%,var(--vw-panel));color:var(--vw-text);padding:10px 12px;outline:0;font-size:13px;line-height:1.7;user-select:text}
.vw-director-panel textarea{min-height:104px;max-height:200px;resize:vertical;flex:none}
.vw-director-panel textarea::placeholder,.vw-director-panel input::placeholder{color:var(--vw-muted)}
.vw-director-panel button{border-radius:6px;font-size:12px;line-height:20px;min-height:30px;padding:6px 10px;white-space:normal}
.vw-director-panel .vw-director-starters,.vw-director-prompts{display:flex;flex-direction:column;gap:8px}
.vw-director-panel .vw-director-starters button,.vw-director-prompts button{justify-content:flex-start;min-height:36px;text-align:left;border:1px solid var(--vw-border);color:var(--vw-muted);background:transparent;padding:8px 10px}
.vw-director-panel .vw-director-starters button:hover,.vw-director-prompts button:hover{color:var(--vw-text);background:var(--workspace-soft)}
.vw-director-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:none}
.vw-director-panel button.primary,.vw-director-panel [data-action="director-submit"],.vw-director-panel [data-action="director-run"]{background:var(--workspace-accent);color:var(--workspace-accent-text)}
.vw-director-output{min-height:0;flex:1;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;border:1px solid var(--vw-border);border-radius:8px;background:color-mix(in srgb,var(--vw-bg) 35%,var(--vw-panel));font-size:13px;line-height:1.85;scrollbar-width:thin;scrollbar-color:var(--vw-border) transparent}
.vw-director-output:empty{display:none}
.vw-character-dialog{width:min(900px,calc(100% - 48px));max-height:min(760px,calc(100% - 64px));padding:20px;display:flex;flex-direction:column;gap:16px;overflow:hidden}
.vw-character-dialog>h3{margin:0;font-size:16px}
.vw-character-dialog .vw-drawer-head{margin:0}
.vw-character-dialog .vw-drawer-head h3{font-size:16px}
.vw-character-dialog>p{margin:0;font-size:12px;line-height:1.7}
.vw-character-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;flex:none}
.vw-character-toolbar input{height:32px;max-width:260px;margin:0;padding:6px 10px;font-size:12px;flex:1;min-width:140px;background:color-mix(in srgb,var(--vw-bg) 45%,var(--vw-panel))}
.vw-character-toolbar select{height:32px;max-width:150px;background:var(--vw-panel);border:1px solid var(--vw-border);border-radius:6px;font-size:12px;padding:0 8px}
.vw-character-toolbar button{height:32px;min-width:32px;padding:6px 9px;font-size:12px;border:1px solid var(--vw-border);border-radius:6px}
.vw-character-toolbar button.active{background:var(--workspace-soft);color:var(--vw-text)}
.vw-character-toolbar .vw-character-view{display:flex;gap:3px;margin-left:auto}
.vw-character-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;min-height:0;overflow:auto;align-content:start;padding:2px;scrollbar-width:thin;scrollbar-color:var(--vw-border) transparent}
.vw-character-card{position:relative;display:flex!important;flex-direction:column;align-items:stretch!important;justify-content:flex-start!important;text-align:left;min-width:0;overflow:hidden;padding:0!important;border:1px solid var(--vw-border)!important;border-radius:9px!important;background:color-mix(in srgb,var(--vw-bg) 45%,var(--vw-panel))!important;gap:0!important}
.vw-character-card:hover{border-color:#6b6b6b!important;background:var(--workspace-soft)!important}
.vw-character-card>img,.vw-character-card>video{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;flex:none;background:var(--vw-bg)}
.vw-character-card>span,.vw-character-card>div{display:flex;flex-direction:column;gap:4px;padding:10px;min-width:0}
.vw-character-card strong{font-size:12px;font-weight:500;color:var(--vw-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vw-character-card small{font-size:10px;line-height:1.6;color:var(--vw-muted)}
.vw-character-card .vw-character-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vw-character-grid.list,.vw-character-grid[data-view="list"]{grid-template-columns:1fr;gap:8px}
.vw-character-grid.list .vw-character-card,.vw-character-grid[data-view="list"] .vw-character-card{flex-direction:row;align-items:center!important}
.vw-character-grid.list .vw-character-card>img,.vw-character-grid[data-view="list"] .vw-character-card>img{width:56px;height:68px;aspect-ratio:auto}
.vw-character-grid .vw-character-empty{grid-column:1/-1;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;color:var(--vw-muted);font-size:13px}
html[data-workspace-theme="dark"] .vw-root .vw-edges>path{stroke:#555}
html[data-workspace-theme="dark"] .vw-root .vw-edges>path:hover,html[data-workspace-theme="dark"] .vw-root .vw-edges>path.selected{stroke:#68d4e8}
@media(max-width:950px){.vw-character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.vw-character-dialog{width:calc(100% - 32px)}}
@media(max-width:700px){.vw-director-panel{right:8px;bottom:68px;top:48px;width:min(420px,calc(100% - 16px));padding:12px}.vw-character-dialog{width:calc(100% - 24px);max-height:calc(100% - 32px);padding:16px;gap:12px}.vw-character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.vw-character-toolbar{gap:6px}.vw-character-toolbar input{max-width:none}.vw-character-toolbar .vw-character-view{margin-left:0}}
@media(max-width:400px){.vw-root{--vw-dock-width:258px}.vw-dock{left:calc(50% - 23px);gap:4px;padding-inline:8px}.vw-dock button{width:30px;min-width:30px}.vw-root>.vw-director{left:calc(50% + 110px)}.vw-shortcut-columns{grid-template-columns:1fr;row-gap:20px}.vw-shortcut-column{padding:0 18px;border-left:0}.vw-shortcut-row{font-size:13px}.vw-character-toolbar select{max-width:120px}.vw-top-left{gap:5px}.vw-project-name{width:65px}}

/* Canvas interaction menus: editable zoom value and keyboard hints. */
.vw-popover.vw-zoom-menu{width:208px;min-width:0;padding:8px;border-radius:10px}
.vw-zoom-menu .vw-zoom-field{display:flex;align-items:center;gap:8px;height:34px;padding:0 10px;margin:2px 2px 8px;border:1px solid var(--vw-border);border-radius:6px;background:var(--vw-bg)}
.vw-zoom-menu [data-zoom-input]{min-width:0;flex:1;width:100%;padding:0;border:0;outline:0;box-shadow:none;background:transparent;text-align:right;font:inherit;color:var(--vw-text);user-select:text}
.vw-zoom-menu .vw-zoom-field:focus-within{border-color:#78cedb;box-shadow:0 0 0 1px #78cedb33}
.vw-zoom-menu .vw-zoom-field>span{color:var(--vw-muted)}
.vw-zoom-menu>button{height:34px;border-radius:5px;padding:0 9px!important;justify-content:flex-start!important}
.vw-zoom-menu>button>small{margin-left:auto;color:var(--vw-muted);font-size:11px}
.vw-zoom-menu hr{border:0;border-top:1px solid var(--vw-border);margin:6px 2px}
.vw-popover [data-action="tool-select"].active,.vw-popover [data-action="tool-hand"].active{background:var(--workspace-soft,#333);color:var(--vw-text)}
.vw-stage.connecting,.vw-stage.connecting .vw-node{cursor:crosshair}

/* Registered project characters and original product branding. */
.vw-root .vw-hidden-controls[hidden]{display:none!important}
.vw-brand-mark{display:inline-flex;align-items:center;justify-content:center;width:21px;height:22px;color:var(--vw-text);font:italic 800 23px/1 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:-2px;transform:translateX(-1px)}
.vw-chevron{font-size:12px;line-height:1;color:var(--vw-muted);transform:translateY(-1px)}
.vw-project-menu .vw-chevron{font-size:10px}
.vw-empty>small{display:block;margin-top:18px;color:#686868;font-size:11px;line-height:1.6}
.vw-video-empty{justify-content:center;gap:26px;padding:24px 18px}
.vw-video-empty>svg{width:34px;height:34px;color:#777;opacity:.65;fill:#777;stroke-width:.8}
.vw-node-suggestions{display:flex;flex-direction:column;gap:3px;align-items:stretch;width:100%;max-width:180px}
.vw-node-suggestions>small{display:block;font-size:10px;line-height:18px;color:#828282;padding:0 7px;margin-bottom:3px}
.vw-node-suggestions>button{justify-content:flex-start;gap:7px!important;padding:5px 7px;border-radius:5px;min-height:28px;color:#9d9d9d;font-size:11px;white-space:nowrap}
.vw-node-suggestions>button>svg{width:15px;height:15px;opacity:.9}
.vw-node-suggestions>button:hover{background:#343434;color:#ddd}
.vw-character-card .vw-character-preview{display:block;width:100%;min-height:0;padding:0;border:0;border-radius:0;line-height:0;overflow:hidden;background:var(--vw-bg)}
.vw-character-preview>img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover}
.vw-character-card .vw-character-copy{min-width:0;flex:1;gap:5px;padding:10px}
.vw-character-card .vw-character-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:32px;overflow-wrap:anywhere;white-space:normal}
.vw-character-card-actions{display:flex;align-items:center;gap:5px;margin-top:5px}
.vw-character-card-actions>button{height:26px;padding:3px 7px;font-size:11px;min-width:26px;border-radius:5px;line-height:18px;color:var(--vw-muted)}
.vw-character-card-actions>button:first-child{flex:1}
.vw-character-grid.list .vw-character-preview,.vw-character-grid[data-view="list"] .vw-character-preview{width:84px;min-width:84px;align-self:stretch}
.vw-character-grid.list .vw-character-preview>img,.vw-character-grid[data-view="list"] .vw-character-preview>img{height:100%;min-height:112px;aspect-ratio:auto}
.vw-character-grid.list .vw-character-copy,.vw-character-grid[data-view="list"] .vw-character-copy{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:16px;row-gap:4px;padding:10px 14px}
.vw-character-grid.list .vw-character-copy>strong,.vw-character-grid.list .vw-character-copy>small,.vw-character-grid[data-view="list"] .vw-character-copy>strong,.vw-character-grid[data-view="list"] .vw-character-copy>small{grid-column:1}
.vw-character-grid.list .vw-character-card-actions,.vw-character-grid[data-view="list"] .vw-character-card-actions{grid-column:2;grid-row:1/4}
.vw-character-form{display:grid;grid-template-columns:128px minmax(0,1fr);gap:14px 16px}
.vw-character-form>label{display:flex;flex-direction:column;gap:6px;min-width:0;color:var(--vw-muted);font-size:12px;line-height:20px}
.vw-character-form>label:first-child,.vw-character-form>.vw-character-toolbar,.vw-character-form>.vw-help-text,.vw-character-form-actions{grid-column:1/-1}
.vw-character-form-preview{display:block;grid-column:1;grid-row:2/4;width:128px;height:176px;object-fit:contain;border:1px solid var(--vw-border);border-radius:7px;background:var(--vw-bg)}
.vw-character-form>label:nth-of-type(2),.vw-character-form>label:nth-of-type(3){grid-column:2}
.vw-character-form input,.vw-character-form select,.vw-character-form textarea{width:100%;margin:0;padding:8px 10px;border:1px solid var(--vw-border);border-radius:6px;background:color-mix(in srgb,var(--vw-bg) 50%,var(--vw-panel));color:var(--vw-text);font-size:12px;line-height:20px;outline:0}
.vw-character-form textarea{min-height:98px;max-height:180px;resize:vertical}
.vw-character-form>.vw-character-toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.vw-character-form .vw-character-toolbar select{max-width:none;height:34px}
.vw-character-form>.vw-help-text{margin:0}
.vw-character-form-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.vw-character-form-actions button{font-size:12px;padding:7px 10px}
.vw-character-form-actions [data-action="character-save"]{background:var(--workspace-accent);color:var(--workspace-accent-text);border-color:var(--workspace-accent)}
.vw-character-form-actions [data-action="character-remove"]{margin-left:auto;color:var(--vw-muted)}
@media(max-width:700px){.vw-character-dialog .vw-drawer-footer{gap:10px;font-size:10px}.vw-character-dialog .vw-drawer-footer>span:first-child{max-width:80%}.vw-character-card .vw-character-copy{padding:8px}.vw-character-grid.list .vw-character-copy{display:flex;align-items:stretch;gap:4px;padding:8px}.vw-character-grid.list .vw-character-card-actions{margin-top:2px}.vw-character-grid.list .vw-character-card-actions>button:first-child{flex:none}}
@media(max-width:480px){.vw-character-form{grid-template-columns:88px minmax(0,1fr);gap:12px}.vw-character-form-preview{width:88px;height:128px}.vw-character-form textarea{min-height:84px}.vw-character-form-actions [data-action="character-remove"]{margin-left:0}.vw-character-card-actions>button{font-size:10px;padding:3px 5px}}

/* Floating panel close affordance and constrained editor widths. */
.vw-shortcut-panel>[data-action="close-panel"]{position:absolute;right:12px;top:12px;width:24px;min-height:24px;height:24px;padding:3px;border-radius:5px;color:var(--vw-text)}
.vw-root{container-type:inline-size;container-name:workflow}
.vw-empty>small{display:block;margin-top:14px;font-size:11px;color:var(--vw-muted)}
@container workflow (max-width:700px){.vw-shortcut-panel{width:calc(100% - 24px);min-width:0}.vw-shortcut-columns{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:24px}.vw-shortcut-column{padding:0 16px}.vw-shortcut-column:nth-child(3){border-left:0}.vw-bottom-left{bottom:74px}.vw-inspector{width:calc(100% - 24px)}}
@container workflow (max-width:440px){.vw-shortcut-columns{grid-template-columns:1fr}.vw-shortcut-column{border-left:0}.vw-shortcut-panel{max-height:calc(100% - 116px)}.vw-top-right{display:none}.vw-drawer{max-width:calc(100% - 16px)}.vw-root{--vw-dock-width:258px}.vw-dock{gap:3px}.vw-root>.vw-director{left:calc(50% + 106px);width:42px;height:42px;bottom:15px}.vw-dock{left:calc(50% - 24px)}.vw-project-name{width:64px;max-width:64px}.vw-top-left{gap:4px}.vw-top-left>.vw-pill:nth-child(2){width:58px}.vw-bottom-left{left:12px;gap:5px}}

/* Final visual audit: bound menus, native controls, and canvas-width layouts. */
.vw-popover:not(.vw-shortcut-panel):not(.vw-parameters):not(.vw-model-picker):not(.vw-search-panel):not(.vw-zoom-menu){width:240px;max-width:calc(100% - 16px)}
.vw-popover>button{display:flex;width:100%}
.vw-popover>button>small{max-width:98px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none}
.vw-director-actions select{height:32px;min-width:0;max-width:100%;flex:1;padding:5px 8px;border:1px solid var(--vw-border);border-radius:6px;background:var(--vw-panel);color:var(--vw-text);font-size:12px}
.vw-director-head>div{display:flex;gap:4px}
.vw-character-dialog>.vw-drawer-head{flex:none}
.vw-character-dialog>.vw-drawer-footer{gap:12px}
.vw-character-dialog [data-character-count]{flex:none;white-space:nowrap}
@container workflow (max-width:700px){
  .vw-inspector{bottom:110px;max-height:calc(100% - 170px);overflow:auto}
  .vw-shortcut-panel{bottom:112px!important;max-height:calc(100% - 164px)}
  .vw-director-panel{bottom:68px;padding:12px;gap:10px;overflow:auto}
  .vw-director-panel>*{flex-shrink:0}
  .vw-director-panel .vw-director-output{min-height:100px}
  .vw-character-dialog{width:calc(100% - 24px);max-height:calc(100% - 32px);padding:16px;gap:12px}
  .vw-character-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .vw-character-toolbar{gap:6px}
  .vw-character-toolbar input{max-width:none}
  .vw-character-toolbar .vw-character-view{margin-left:0}
  .vw-character-grid.list .vw-character-copy{display:flex;align-items:stretch;gap:4px;padding:8px}
  .vw-character-grid.list .vw-character-card-actions{margin-top:2px}
  .vw-character-grid.list .vw-character-card-actions>button:first-child{flex:none}
  .vw-character-dialog .vw-drawer-footer{font-size:10px}
}
@container workflow (max-width:440px){
  .vw-dock{width:258px;left:calc(50% - 24px);gap:4px;padding-inline:8px}
  .vw-dock button{width:30px;min-width:30px}
  .vw-root>.vw-director{left:calc(50% + 109px)}
  .vw-top-left>.vw-pill:nth-child(2)>button{width:24px;min-width:24px}
  .vw-shortcut-panel{max-height:calc(100% - 164px)}
  .vw-character-toolbar input{width:100%;min-width:0;flex-basis:100%}
  .vw-character-toolbar select{max-width:100%;flex:1;min-width:0;font-size:11px}
  .vw-character-form{grid-template-columns:88px minmax(0,1fr);gap:12px}
  .vw-character-form-preview{width:88px;height:128px}
  .vw-character-form textarea{min-height:84px}
  .vw-character-form-actions [data-action="character-remove"]{margin-left:0}
  .vw-character-card-actions>button{font-size:10px;padding:3px 5px}
}
.vw-popover:not(.vw-shortcut-panel){max-width:calc(100% - 16px)}
@container workflow (max-width:440px){.vw-popover:not(.vw-shortcut-panel){left:8px!important;right:auto!important}}

/* Selected source relationships and nested LibTV-style creation menus. */
.vw-root .vw-edges>path.connected{stroke:#86909c;stroke-width:2;vector-effect:none}
html[data-workspace-theme="dark"] .vw-root .vw-edges>path.connected{stroke:#c0c8d0}
.vw-root .vw-edges .vw-edge-current{fill:none;stroke:rgb(100,180,255);pointer-events:none;animation:vw-edge-current 3s linear infinite}
.vw-root .vw-edges .vw-edge-current path{fill:none;stroke:inherit;stroke-width:4;stroke-linecap:butt;vector-effect:none;pointer-events:none;filter:none;cursor:default}
.vw-root .vw-edges .vw-edge-current .vw-edge-beam-glow{stroke-linecap:round}
.vw-root .vw-edges .vw-edge-current .vw-edge-beam-glow-outer{stroke-width:12}
.vw-root .vw-edges .vw-edge-current .vw-edge-beam-glow-inner{stroke-width:7}
@keyframes vw-edge-current{from{stroke-dashoffset:0}to{stroke-dashoffset:-300}}
.tab-pane:not(.active) .vw-edge-current{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.vw-root .vw-edges .vw-edge-current{animation:none;display:none}}
.vw-add-menu{width:220px;overflow:visible!important;padding:8px;border-radius:16px;background:#252525;box-shadow:0 8px 30px #0004}
.vw-add-menu>button,.vw-menu-branch>button,.vw-menu-sub>button{display:flex;align-items:center;gap:9px;width:100%;height:36px;padding:0 9px;border-radius:9px;font-size:13px;text-align:left}
.vw-add-menu button span{flex:1}.vw-add-menu em{font-style:normal;font-size:10px;color:#64d9f0;background:#34545b;border-radius:3px;padding:0 4px;line-height:16px}.vw-add-menu h4{font-size:11px;font-weight:400;color:#8d8d8d;padding:6px 9px;margin:0}.vw-menu-branch{position:relative}.vw-menu-sub{display:none;position:absolute;left:100%;top:0;min-width:170px;padding:6px;background:#303030;border:1px solid #424242;border-radius:12px;box-shadow:0 8px 22px #0005}.vw-menu-branch:hover>.vw-menu-sub,.vw-menu-branch:focus-within>.vw-menu-sub{display:block}.vw-menu-branch>button small{margin-left:auto}.vw-text-placeholder{font-size:48px;color:#5b5b5b;padding:12px}.vw-text-empty small{align-self:flex-start;margin:10px 16px 0;color:#999}.vw-text-empty button{align-self:stretch;text-align:left;justify-content:flex-start;padding-left:20px}.vw-inspector .vw-prompt-toolbar{gap:3px}.vw-prompt-toolbar>button{display:inline-flex;gap:3px;align-items:center;white-space:nowrap}.vw-inspector-row>button[aria-label^="翻译"],.vw-inspector-row>button[aria-label="提示词预设"]{min-width:26px;width:26px;padding:0;color:#aaa;flex-shrink:0}
.vw-root[data-canvas-theme="light"] .vw-add-menu{background:var(--vw-panel);color:var(--vw-text);border-color:var(--vw-border)}
.vw-add-menu[data-vw-dock-add]::after{content:"";position:absolute;left:0;right:0;top:100%;height:12px}
.vw-root[data-canvas-theme="light"] .vw-menu-sub{background:var(--vw-panel);color:var(--vw-text);border-color:var(--vw-border)}

/* Text result actions inherit the application theme. */
.vw-root .vw-text-actions{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0;user-select:none}.vw-root .vw-text-actions button{padding:6px 8px;border:1px solid var(--vw-border);border-radius:6px;font-size:11px}.vw-root .vw-generated-text,.vw-root .vw-node-text{user-select:text;overflow-wrap:anywhere}.vw-root .vw-dialog textarea[readonly]{width:100%;min-height:180px;max-height:50vh;background:var(--vw-panel);border:1px solid var(--vw-border);color:var(--vw-text);padding:10px}
/* Audio generation uses the system canvas theme and existing inspector surface. */
.vwa-composer .vwa-generation-fields{display:grid;gap:10px;padding:10px 12px;max-height:280px;overflow:auto}
.vwa-generation-fields label{display:flex;align-items:center;gap:8px;font-size:12px}
.vwa-generation-fields input:not([type=checkbox]):not([type=range]),.vwa-generation-fields select{min-width:0;flex:1;background:var(--vw-panel);color:var(--vw-text);border:1px solid var(--vw-border);border-radius:6px;padding:6px}
.vwa-generation-ranges{display:grid;gap:8px}.vwa-generation-ranges input{flex:1;min-width:0}.vwa-generation-ranges output{width:38px;text-align:right}
.vwa-result-list{display:grid;gap:16px;max-height:60vh;overflow:auto}.vwa-result-list article{display:grid;gap:8px;padding:12px;border:1px solid var(--vw-border);border-radius:8px}.vwa-result-list audio{width:100%}.vwa-result-list small{opacity:.7}.vwa-result-list p{white-space:pre-wrap}.vwa-result-list a{color:#2879b4}

/* Keep the whole workspace usable after the global navigation becomes a drawer. */
@container workflow (max-width:500px){
  .vw-top{left:8px;right:8px;gap:6px;flex-wrap:wrap;align-items:flex-start}
  .vw-top-left{min-width:0;max-width:calc(100% - 74px);gap:4px}
  .vw-top-right{display:flex;gap:4px;margin-left:auto}
  .vw-top-right .vw-save-status{display:none}
  .vw-top-right .vw-pill{padding:3px}
  .vw-top-right .vw-pill button{width:28px;min-width:28px;padding:0}
  .vw-top-left>.vw-pill:first-child{min-width:0;flex-shrink:1}
  .vw-top-left .vw-project-name{width:58px;max-width:58px;min-width:0}
  .vw-top-left>.vw-pill:first-child>[data-action=canvases]{min-width:48px;max-width:65px;padding-inline:3px}
  .vw-top-left .vw-separator{margin-inline:2px}
  .vw-top-left>.vw-pill:nth-child(2){width:58px;flex:none}
  .vw-dock{width:min(258px,calc(100% - 74px));left:calc(50% - 24px);gap:3px;padding-inline:7px}
  .vw-dock button{min-width:0;flex:1;width:auto;padding-inline:2px}
  .vw-root>.vw-director{left:calc(50% + min(106px,(100% - 100px)/2));width:42px;height:42px}
  .vw-bottom-left{max-width:calc(100% - 24px);flex-wrap:wrap;gap:4px}
  .vw-dialog-card{max-width:calc(100% - 16px);max-height:calc(100% - 24px);padding:14px;overflow:auto}
  .vw-root .vw-node-tools.vw-follow-toolbar{max-width:calc(100% - 16px);scrollbar-width:thin}
  .vw-popover.vw-parameters{width:calc(100% - 16px)}
  .vw-inspector-row{gap:6px}
}

/* Keep the overview with its left-side toggle at every workspace width. */
.vw-root .vw-minimap{display:block;left:24px;right:auto;bottom:56px;width:168px;max-width:calc(100% - 24px);height:112px;cursor:grab;touch-action:none;user-select:none}
.vw-root .vw-minimap.dragging{cursor:grabbing}
.vw-root .vw-minimap[hidden]{display:none!important}

/* Canvas material collections share the existing drawer; cloud imports use the common ACL picker. */
.vw-root .vw-canvas-material-scopes{display:flex;gap:4px;padding:4px;margin:0 0 10px;border:1px solid var(--vw-border);border-radius:7px}
.vw-root .vw-canvas-material-scopes button{flex:1;min-width:0;padding:6px 5px;border-radius:5px;font-size:11px}
.vw-root .vw-canvas-material-scopes .active{background:var(--workspace-soft);font-weight:600}
.vw-root .vw-canvas-material-list{min-height:0;flex:1;overflow:auto}
.vw-root .vw-canvas-material-group{padding:0 0 6px;margin:0 0 8px;border-bottom:1px solid var(--vw-border)}
.vw-root .vw-canvas-material-group summary{cursor:pointer;padding:8px 2px;font-size:11px;color:var(--workspace-muted)}
.vw-root .vw-canvas-material-group summary strong{display:inline-block;max-width:calc(100% - 18px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;color:var(--vw-text);font-size:12px;font-weight:500}
.vw-root .vw-canvas-material-group summary>span{display:block;margin:5px 0 0 14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vw-root .vw-canvas-material-pagination{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:8px;font-size:10px;color:var(--workspace-muted)}
.vw-root .vw-canvas-material-pagination button{border:1px solid var(--vw-border);border-radius:5px;padding:5px}
.vw-root .vw-cloud-library{text-align:center;padding:30px 4px}
.vw-root .vw-cloud-library-icon{display:flex;justify-content:center;color:var(--workspace-muted)}
.vw-root .vw-cloud-library h4{font-size:14px;font-weight:500;margin:14px 0 8px}
.vw-root .vw-cloud-library p,.vw-root .vw-cloud-library small{color:var(--workspace-muted);font-size:11px;line-height:1.7}
.vw-root .vw-cloud-library small{display:block;margin-top:14px}
