.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgb(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgb(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color, var(--xy-background-color-props, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.slb{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-dropdown, 1100);display:flex;align-items:flex-start;justify-content:center;padding:8vh 5vw 5vh}.slb__mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000052;animation:slb-fade var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.slb__panel{position:relative;display:flex;flex-direction:column;width:min(880px,92vw);max-height:76vh;background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--elev-modal);overflow:hidden;animation:slb-rise var(--motion-base, .22s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.slb__search{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--border-soft);flex:none}.slb__search-icon{color:var(--muted);flex:none}.slb__search-input{flex:1;min-width:0;height:32px;padding:0 10px;font:inherit;font-size:var(--text-sm, 13px);color:var(--fg);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);outline:none}.slb__search-input:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}.slb__body{display:flex;gap:0;min-height:0;flex:1}.slb__cats{display:flex;flex-direction:column;gap:2px;padding:14px 10px;min-width:108px;border-right:1px solid var(--border-soft);flex:none}.slb__cat{display:flex;align-items:center;gap:8px;height:30px;padding:0 10px;font-size:var(--text-sm, 13px);font-weight:400;color:var(--muted);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1)),background-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.slb__cat:hover{color:var(--fg);background:var(--surface-2)}.slb__cat[data-active=true]{color:var(--fg);background:var(--surface-2);font-weight:510}.slb__cat-dot{width:4px;height:4px;border-radius:50%;background:transparent;flex:none}.slb__cat[data-active=true] .slb__cat-dot{background:var(--accent)}.slb__cat:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}.slb__grid-wrap{flex:1;min-width:0;overflow-y:auto;padding:14px}.slb__grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}@media (max-width: 860px){.slb__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 640px){.slb__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.slb__card{display:flex;flex-direction:column;gap:6px;padding:0;background:none;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;overflow:hidden;text-align:left;transition:border-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1)),box-shadow var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1)),transform var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.slb__card:hover{border-color:var(--border-strong);box-shadow:var(--elev-raised)}.slb__card:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}.slb__card[data-selected=true]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.slb__card-media{position:relative;display:block;aspect-ratio:4 / 3;background:var(--surface-2);overflow:hidden}.slb__card-img{display:block;width:100%;height:100%;object-fit:cover}.slb__card[data-icon-only=true] .slb__card-media{display:flex;align-items:center;justify-content:center}.slb__card-icon{color:var(--muted)}.slb__card[data-icon-only=true]:hover .slb__card-icon{color:var(--fg)}.slb__card-check{position:absolute;top:6px;right:6px;display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-pill, 999px);background:var(--accent);color:var(--accent-on, #fff)}.slb__card-name{padding:0 8px 8px;font-size:var(--text-xs, 12px);color:var(--fg);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.slb__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:220px;text-align:center}.slb__empty-icon{color:var(--muted);opacity:.6}.slb__empty-text{margin:0;font-size:var(--text-sm, 13px);color:var(--muted)}.slb__close{position:absolute;top:12px;right:12px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border-soft);border-radius:var(--radius-md);cursor:pointer;transition:color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1)),background-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.slb__close:hover{color:var(--fg);background:var(--surface-3, var(--surface-2))}.slb__close:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}@keyframes slb-fade{0%{opacity:0}to{opacity:1}}@keyframes slb-rise{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.slb__mask,.slb__panel{animation:none}.slb__card,.slb__cat,.slb__close{transition:none}}.sld{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 0}.sld__btn{display:flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;font:inherit;font-size:var(--text-sm, 13px);color:var(--fg);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1)),border-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.sld__btn:hover{background:var(--surface-2);border-color:var(--border-strong)}.sld__btn:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}.sld__slot{display:inline-flex;align-items:center;min-height:28px}.sld__slot:empty{display:none}.sld__current{font-size:var(--text-2xs, 11px);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.rg-conv{display:flex;flex-direction:column;flex:1;min-height:0}.rg-conv__overview{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--border);background:var(--surface-2)}.rg-conv__stats{display:flex;flex-wrap:wrap;gap:var(--space-3)}.rg-conv__stat{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-2xs);color:var(--muted)}.rg-conv__stat b{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:var(--weight-emph);color:var(--fg);font-variant-numeric:tabular-nums}.rg-conv__stat--live{color:var(--accent)}.rg-conv__stages{display:flex;flex-direction:column;gap:var(--space-1)}.rg-conv__stage{display:grid;grid-template-columns:40px 1fr 44px;align-items:center;gap:var(--space-2)}.rg-conv__stage-name{font-size:var(--text-2xs);color:var(--fg-2)}.rg-conv__stage-track{position:relative;height:var(--stage-progress-track-h);border-radius:var(--stage-progress-radius);background:var(--stage-progress-track-bg);overflow:hidden}.rg-conv__stage-fill{display:block;height:100%;border-radius:var(--stage-progress-radius);background:var(--stage-progress-fill-bg);min-width:var(--stage-progress-min-width);transition:width var(--motion-base) var(--ease-standard)}.rg-conv__stage-fill[data-complete=true]{background:var(--stage-done-dot)}.rg-conv__stage-count{font-family:var(--stage-count-font);font-size:var(--stage-count-size);color:var(--stage-count-fg);font-variant-numeric:tabular-nums;text-align:right}.rg-conv__svc{display:flex;gap:var(--space-3)}.rg-conv__svc-item{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-2xs);color:var(--meta)}.rg-conv__svc-dot{width:var(--svc-dot-size);height:var(--svc-dot-size);border-radius:var(--radius-pill);border:1px solid var(--stage-empty-dot)}.rg-conv__svc-item[data-on=true]{color:var(--fg-2)}.rg-conv__svc-item[data-on=true] .rg-conv__svc-dot{background:var(--svc-online);border-color:var(--svc-online)}.rg-conv__timeline{border-bottom:1px solid var(--border)}.rg-conv__timeline-head{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch-min);padding:0 var(--space-3);border:0;background:transparent;color:var(--fg-2);font-size:var(--text-xs);font-weight:var(--weight-emph);cursor:pointer;text-align:left;transition:background-color var(--motion-fast) var(--ease-standard)}.rg-conv__timeline-head:hover{background:var(--surface-2)}.rg-conv__timeline-head:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-conv__timeline-head:focus:not(:focus-visible){outline:none}.rg-conv__timeline-count{margin-left:auto;font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--meta);font-variant-numeric:tabular-nums}.rg-conv__timeline-list{max-height:168px;overflow-y:auto;padding:0 var(--space-2) var(--space-2);display:flex;flex-direction:column;gap:2px}.rg-conv__timeline-empty{padding:var(--space-2) var(--space-3);font-size:var(--text-2xs);color:var(--meta)}.rg-conv__tl-item{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:32px;padding:0 var(--space-2);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--fg-2);font-size:var(--text-xs);cursor:pointer;text-align:left;transition:background-color var(--motion-fast) var(--ease-standard)}.rg-conv__tl-item:hover{background:var(--surface-2)}.rg-conv__tl-item:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-conv__tl-item:focus:not(:focus-visible){outline:none}.rg-conv__tl-status{flex:0 0 auto;display:inline-flex;color:var(--meta)}.rg-conv__tl-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rg-conv__tl-text{flex:0 0 auto;font-size:var(--text-2xs);color:var(--meta)}.rg-conv__tl-item[data-status=running] .rg-conv__tl-status,.rg-conv__tl-item[data-status=running] .rg-conv__tl-text{color:var(--accent)}.rg-conv__tl-item[data-status=done] .rg-conv__tl-status,.rg-conv__tl-item[data-status=done] .rg-conv__tl-text{color:var(--success)}.rg-conv__tl-item[data-status=error] .rg-conv__tl-status,.rg-conv__tl-item[data-status=error] .rg-conv__tl-text{color:var(--danger)}.rg-conv__log{flex:1;min-height:96px;overflow-y:auto;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.rg-conv__msg{max-width:92%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.rg-conv__msg.user{align-self:flex-end;background:var(--accent-soft);color:var(--fg)}.rg-conv__msg.assistant{align-self:flex-start;background:var(--surface-2);color:var(--fg-2);display:flex;align-items:center;gap:var(--space-2)}.rg-conv__msg.error{background:var(--node-error-mask-bg);color:var(--node-error-mask-fg)}.rg-conv__empty{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) 0}.rg-conv__empty-icon{color:var(--meta)}.rg-conv__empty-text{margin:0;font-size:var(--text-xs);color:var(--muted);line-height:1.6}.rg-conv__starters{display:flex;flex-direction:column;gap:var(--space-1);width:100%;margin-top:var(--space-1)}.rg-conv__starter{display:flex;align-items:center;gap:var(--space-2);min-height:36px;padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--fg-2);font-size:var(--text-xs);line-height:1.5;text-align:left;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.rg-conv__starter:hover{background:var(--surface-2);border-color:var(--border-strong)}.rg-conv__starter:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-conv__starter:focus:not(:focus-visible){outline:none}.rg-conv__starter>svg{flex:0 0 auto;color:var(--meta)}.rg-conv__fill{display:flex;align-items:center;gap:var(--space-2);margin:0 var(--space-3);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.rg-conv__fill>svg{flex:0 0 auto;color:var(--meta)}.rg-conv__fill-text{flex:1;font-size:var(--text-2xs);color:var(--muted);line-height:1.5}.rg-conv__fill-btn{display:inline-flex;align-items:center;gap:var(--space-1);flex:0 0 auto;min-height:28px;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg);font-size:var(--text-2xs);font-weight:var(--weight-emph);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard)}.rg-conv__fill-btn:hover{background:var(--surface-3)}.rg-conv__fill-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-conv__fill-btn:focus:not(:focus-visible){outline:none}.rg-conv__input-row{display:flex;align-items:flex-end;gap:var(--space-2);padding:var(--space-3);border-top:1px solid var(--border)}.rg-conv__input{flex:1;min-height:56px;max-height:160px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);color:var(--fg);font-size:var(--text-md);font-family:inherit;line-height:1.5;resize:vertical;transition:border-color var(--motion-fast) var(--ease-standard)}.rg-conv__input:focus{outline:none;border-color:var(--input-focus-border, var(--accent));box-shadow:0 0 0 2px var(--focus-ring-halo),0 0 0 4px var(--focus-ring-color)}.rg-conv__send{display:inline-flex;align-items:center;justify-content:center;width:var(--chat-send-size);height:var(--chat-send-size);flex:0 0 auto;border:0;border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-on);cursor:pointer;transition:opacity var(--motion-fast) var(--ease-standard)}.rg-conv__send:hover:not(:disabled){opacity:.88}.rg-conv__send:disabled{background:var(--surface-3);color:var(--meta);cursor:not-allowed}.rg-conv__send:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-conv__send:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){.rg-conv__stage-fill,.rg-conv__timeline-head,.rg-conv__tl-item,.rg-conv__starter,.rg-conv__fill-btn,.rg-conv__send{transition-duration:.01ms}}.sb{display:flex;flex-direction:column;height:100%;overflow-y:auto;background:var(--panel, var(--surface))}.sb-viewtoggle{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-1);padding:var(--space-2);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:2;background:var(--surface)}.sb-viewtoggle__btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:var(--bottombar-seg-h);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);font-size:var(--text-sm);font-weight:var(--weight-emph);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.sb-viewtoggle__btn:hover{background:var(--surface-2);color:var(--fg)}.sb-viewtoggle__btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.sb-viewtoggle__btn:focus:not(:focus-visible){outline:none}.sb-viewtoggle__btn[data-active=true]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.sb-listview{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.sb-listview__head{font-size:var(--text-2xs);color:var(--meta)}.sb-listview__rows{display:flex;flex-direction:column;gap:var(--space-1)}.sb-listrow{display:flex;flex-direction:column;gap:var(--space-1);width:100%;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);text-align:left;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.sb-listrow:hover{background:var(--surface-2);border-color:var(--border-strong)}.sb-listrow:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.sb-listrow:focus:not(:focus-visible){outline:none}.sb-listrow__top{display:flex;align-items:center;gap:var(--space-2)}.sb-listrow__label{flex:1;min-width:0;font-size:var(--text-sm);font-weight:var(--weight-emph);color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-listrow__stage{flex:0 0 auto;padding:0 var(--space-1);border-radius:var(--radius-xs);background:var(--surface-3);font-size:var(--text-2xs);color:var(--muted)}.sb-listrow__status,.sb-hist__status{flex:0 0 auto;font-size:var(--text-2xs);color:var(--meta)}.sb-listrow__status[data-status=done],.sb-hist__status[data-status=done]{color:var(--success)}.sb-listrow__status[data-status=error],.sb-hist__status[data-status=error]{color:var(--danger)}.sb-listrow__status[data-status=running],.sb-hist__status[data-status=running]{color:var(--accent)}.sb-listrow__summary{font-size:var(--text-2xs);color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sb-style{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);border-bottom:1px solid var(--border);background:var(--surface-2)}.sb-style__head{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:var(--weight-emph);color:var(--fg)}.sb-field{display:flex;flex-direction:column;gap:var(--space-1)}.sb-field__label{font-size:var(--text-2xs);color:var(--muted)}.sb-field__hint{font-size:var(--text-2xs);color:var(--meta);line-height:1.5}.sb-input,.sb-select,.sb-textarea{width:100%;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);font-size:var(--text-sm);font-family:inherit;line-height:1.5;transition:border-color var(--motion-fast) var(--ease-standard)}.sb-textarea{resize:vertical}.sb-input:focus,.sb-select:focus,.sb-textarea:focus{outline:none;border-color:var(--input-focus-border, var(--accent))}.sb-check{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;font-size:var(--text-sm);color:var(--fg-2);cursor:pointer}.sb-search{position:relative;display:flex;align-items:center;gap:var(--space-1);padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.sb-search:focus-within{border-color:var(--input-focus-border, var(--accent))}.sb-search__icon{flex:0 0 auto;color:var(--meta)}.sb-search__input{flex:1;min-width:0;min-height:32px;border:0;background:transparent;color:var(--fg);font-size:var(--text-sm);font-family:inherit}.sb-search__input:focus{outline:none}.sb-seg{display:flex;gap:var(--space-1);padding:2px;border-radius:var(--radius-md);background:var(--surface-2)}.sb-seg--wrap{flex-wrap:wrap}.sb-seg__item{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);flex:1 1 auto;min-height:28px;padding:0 var(--space-2);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--muted);font-size:var(--text-2xs);font-weight:var(--weight-emph);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.sb-seg__item:hover{color:var(--fg)}.sb-seg__item:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.sb-seg__item:focus:not(:focus-visible){outline:none}.sb-seg__item[data-active=true]{background:var(--surface);color:var(--fg);box-shadow:var(--elev-ring)}.sb-sec{border-bottom:1px solid var(--border)}.sb-sec__head{display:flex;align-items:center;gap:var(--space-2);width:100%;min-height:var(--touch-min);padding:0 var(--space-3);border:0;background:transparent;color:var(--fg-2);font-size:var(--text-xs);cursor:pointer;text-align:left;transition:background-color var(--motion-fast) var(--ease-standard)}.sb-sec__head:hover{background:var(--surface-2)}.sb-sec__head:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.sb-sec__head:focus:not(:focus-visible){outline:none}.sb-sec__title{flex:1;font-weight:var(--weight-emph)}.sb-sec__count{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--meta);font-variant-numeric:tabular-nums}.sb-sec__body{display:flex;flex-direction:column;gap:var(--space-2);padding:0 var(--space-3) var(--space-3)}.sb-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:32px;padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-on);font-size:var(--text-sm);font-weight:var(--weight-emph);cursor:pointer;transition:opacity var(--motion-fast) var(--ease-standard)}.sb-btn-primary:hover:not(:disabled){opacity:.88}.sb-btn-primary:disabled{background:var(--surface-3);color:var(--meta);cursor:not-allowed}.sb-btn-primary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.sb-btn-primary:focus:not(:focus-visible){outline:none}.sb-btn-mini{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:28px;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--fg-2);font-size:var(--text-2xs);font-weight:var(--weight-emph);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard)}.sb-btn-mini:hover:not(:disabled){background:var(--surface-2);color:var(--fg)}.sb-btn-mini:disabled{opacity:.5;cursor:not-allowed}.sb-btn-mini:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.sb-btn-mini:focus:not(:focus-visible){outline:none}.sb-iconbtn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--meta);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.sb-iconbtn:hover{background:var(--surface-2);color:var(--fg)}.sb-iconbtn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.sb-iconbtn:focus:not(:focus-visible){outline:none}.sb-form{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.sb-assetgroup{display:flex;flex-direction:column;gap:var(--space-1)}.sb-assetgroup__title{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-2xs);font-weight:var(--weight-emph);color:var(--fg-2);letter-spacing:var(--tracking-caps)}.sb-asset{display:flex;align-items:flex-start;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--motion-fast) var(--ease-standard)}.sb-asset:hover{border-color:var(--border-strong)}.sb-asset__main{flex:1;min-width:0}.sb-asset__name{font-size:var(--text-sm);font-weight:var(--weight-emph);color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-asset__desc{margin-top:2px;font-size:var(--text-2xs);color:var(--muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.sb-asset__actions{display:flex;flex:0 0 auto;gap:2px}.sb-preset{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.sb-preset__head{display:flex;align-items:baseline;gap:var(--space-2)}.sb-preset__name{font-size:var(--text-sm);font-weight:var(--weight-emph);color:var(--fg)}.sb-preset__role{font-size:var(--text-2xs);color:var(--meta)}.sb-preset__desc{font-size:var(--text-2xs);color:var(--muted);line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.sb-preset__traits{display:flex;flex-wrap:wrap;gap:var(--space-1)}.sb-tag{padding:0 var(--space-1);border-radius:var(--radius-xs);background:var(--surface-3);font-size:var(--text-2xs);color:var(--muted)}.sb-preset__actions{display:flex;gap:var(--space-1);margin-top:var(--space-1)}.sb-preset__actions .sb-btn-mini{flex:1}.sb-hist{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.sb-hist__head{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:0;border:0;background:transparent;text-align:left;cursor:pointer}.sb-hist__head:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.sb-hist__head:focus:not(:focus-visible){outline:none}.sb-hist__label{flex:1;min-width:0;font-size:var(--text-sm);font-weight:var(--weight-emph);color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-hist__err{font-size:var(--text-2xs);color:var(--node-error-mask-fg);line-height:1.5}.sb-hist__pending{font-size:var(--text-2xs);color:var(--meta)}.sb-hist__media{width:100%;border-radius:var(--radius-sm);background:var(--surface-inset);object-fit:cover;max-height:96px}video.sb-hist__media{max-height:72px}.sb-hist__text{display:flex;align-items:flex-start;gap:var(--space-1);font-size:var(--text-2xs);color:var(--muted);line-height:1.6}.sb-hist__text>svg{flex:0 0 auto;margin-top:2px;color:var(--meta)}.sb-hist__audio{display:flex;align-items:center;gap:var(--space-2);color:var(--meta)}.sb-hist__audio audio{flex:1;min-width:0;height:28px}.sb-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-2);text-align:center}.sb-empty__icon{color:var(--meta)}.sb-empty p{margin:0;font-size:var(--text-2xs);color:var(--muted);line-height:1.6}.sb-hint{font-size:var(--text-2xs);color:var(--meta)}.sb-hint--block{line-height:1.6}@media (prefers-reduced-motion: reduce){.sb-viewtoggle__btn,.sb-sec__head,.sb-seg__item,.sb-btn-primary,.sb-btn-mini,.sb-iconbtn,.sb-asset,.sb-listrow,.sb-input,.sb-select,.sb-textarea{transition-duration:.01ms}}:is(.rg-rail,.rg-panel){--rail-w: 46px;--rail-panel-w: 280px;--rail-slide-duration: .2s;--rail-active-bg: var(--accent-soft, var(--surface-3));--rail-active-fg: var(--accent, var(--fg));--ease-out: cubic-bezier(0, 0, .2, 1)}.rg-rail{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);width:var(--rail-w);padding:var(--space-2) 0;background:var(--surface-2);border-right:1px solid var(--border);flex-shrink:0;overflow-y:auto;overflow-x:hidden}.rg-rail__list{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);list-style:none;margin:0;padding:0}.rg-rail__list--bottom{padding-top:var(--space-2);border-top:1px solid var(--border);width:60%}.rg-rail__item{display:block}.rg-rail__btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:40px;min-height:40px;padding:var(--space-1) 2px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--muted);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-rail__btn:hover:not(:disabled){background:var(--surface-3);color:var(--fg)}.rg-rail__btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-rail__btn:focus:not(:focus-visible){outline:none}.rg-rail__btn[data-active=true]{background:var(--rail-active-bg);color:var(--rail-active-fg)}.rg-rail__btn[data-active=true]:after{content:"";position:absolute;right:2px;top:50%;width:2px;height:12px;border-radius:var(--radius-pill);background:var(--rail-active-fg);transform:translateY(-50%)}.rg-rail__label{font-size:9px;line-height:1;color:inherit;opacity:.75;white-space:nowrap;transform:scale(.92)}.rg-rail__btn[data-active=true] .rg-rail__label{opacity:1}.rg-rail__btn--minor{min-height:32px;width:32px;opacity:.6}.rg-rail__btn--minor:disabled{cursor:default}.rg-rail__spacer{flex:1;min-height:var(--space-2)}.rg-panel{display:flex;flex-direction:column;width:var(--rail-panel-w);flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);transform:translate(0);opacity:1;transition:transform var(--rail-slide-duration) var(--ease-out),opacity var(--rail-slide-duration) var(--ease-out)}.rg-panel[data-open=false]{transform:translate(100%);opacity:0;pointer-events:none;margin-right:calc(var(--rail-panel-w) * -1);border-right-color:transparent}.rg-panel__head{display:flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-2) 0 var(--space-3);border-bottom:1px solid var(--border);flex-shrink:0}.rg-panel__title{flex:1;margin:0;font-size:var(--text-md);font-weight:var(--weight-emph);color:var(--fg);letter-spacing:var(--tracking-caps)}.rg-panel__seg{display:inline-flex;gap:2px;padding:2px;border-radius:var(--radius-pill);background:var(--surface-2)}.rg-panel__seg-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-width:28px;height:28px;padding:0 var(--space-1);border:0;border-radius:var(--radius-pill);background:transparent;color:var(--muted);font-size:var(--text-2xs);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-panel__seg-btn:hover{color:var(--fg)}.rg-panel__seg-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-panel__seg-btn:focus:not(:focus-visible){outline:none}.rg-panel__seg-btn[data-active=true]{background:var(--surface);color:var(--fg);box-shadow:var(--elev-ring)}.rg-panel__close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:28px;height:28px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--meta);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-panel__close:hover{background:var(--surface-2);color:var(--fg)}.rg-panel__close:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-panel__close:focus:not(:focus-visible){outline:none}.rg-panel__tabs{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-3) 0;flex-shrink:0}.rg-panel__tab{flex:1;min-height:32px;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--muted);font-size:var(--text-2xs);font-weight:var(--weight-emph);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}.rg-panel__tab:hover{color:var(--fg)}.rg-panel__tab:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-panel__tab:focus:not(:focus-visible){outline:none}.rg-panel__tab[data-active=true]{background:var(--rail-active-bg);border-color:transparent;color:var(--rail-active-fg)}.rg-panel__tools{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3) 0;flex-shrink:0}.rg-panel__search{position:relative;display:flex;align-items:center;flex:1;min-width:0;gap:var(--space-1);padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-2)}.rg-panel__search:focus-within{border-color:var(--input-focus-border, var(--accent))}.rg-panel__search-icon{flex:0 0 auto;color:var(--meta)}.rg-panel__search-input{flex:1;min-width:0;min-height:30px;border:0;background:transparent;color:var(--fg);font-size:var(--text-2xs);font-family:inherit}.rg-panel__search-input:focus{outline:none}.rg-panel__select{flex:0 0 auto;min-height:30px;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-2);color:var(--fg);font-size:var(--text-2xs);font-family:inherit}.rg-panel__count{padding:var(--space-2) var(--space-3) 0;font-size:var(--text-2xs);color:var(--meta);font-variant-numeric:tabular-nums}.rg-panel__body{flex:1;min-height:0;overflow-y:auto;padding:var(--space-2) var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.rg-panel__body .sb--panel{background:transparent;overflow:visible;height:auto}.rg-panel__body .sb--panel .sb-sec:last-child{border-bottom:0}.rg-panel__body .sb--panel .sb-sec__head{padding-left:0}.rg-panel__primary{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-1);min-height:32px;padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);background:var(--accent);color:var(--accent-on);font-size:var(--text-2xs);font-weight:var(--weight-emph);cursor:pointer;transition:opacity var(--motion-fast) var(--ease-standard)}.rg-panel__primary:hover:not(:disabled){opacity:.88}.rg-panel__primary:disabled{background:var(--surface-3);color:var(--meta);cursor:not-allowed}.rg-panel__primary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-panel__primary:focus:not(:focus-visible){outline:none}.rg-panel__form{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2)}.rg-panel__input{width:100%;min-height:32px;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--fg);font-size:var(--text-2xs);font-family:inherit}.rg-panel__input:focus{outline:none;border-color:var(--input-focus-border, var(--accent))}.rg-assets{list-style:none;margin:0;padding:0}.rg-assets--grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2)}.rg-assets--list{display:flex;flex-direction:column;gap:var(--space-1)}.rg-asset{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);transition:border-color var(--motion-fast) var(--ease-standard)}.rg-assets--grid .rg-asset{flex-direction:column;gap:var(--space-1)}.rg-asset:hover{border-color:var(--border-strong)}.rg-asset__thumb{display:flex;align-items:center;justify-content:center;flex:0 0 auto;width:32px;height:32px;border-radius:var(--radius-sm);background:var(--surface-2);color:var(--muted)}.rg-asset__main{flex:1;min-width:0}.rg-asset__name{font-size:var(--text-2xs);font-weight:var(--weight-emph);color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rg-asset__desc{margin-top:2px;font-size:10px;color:var(--meta);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.rg-asset__actions{display:flex;flex:0 0 auto;gap:2px}.rg-asset__btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--meta);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-asset__btn:hover{background:var(--surface-2);color:var(--danger)}.rg-asset__btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-asset__btn:focus:not(:focus-visible){outline:none}.rg-panel__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-5) var(--space-2);text-align:center}.rg-panel__empty-icon{color:var(--meta)}.rg-panel__empty p{margin:0;font-size:var(--text-2xs);color:var(--muted)}.rg-panel__empty-hint{color:var(--meta)!important;line-height:1.6;max-width:30ch}.rg-panel__foot{padding:var(--space-2) var(--space-3);border-top:1px solid var(--border);flex-shrink:0}.rg-panel__collapse{display:inline-flex;align-items:center;gap:var(--space-2);width:100%;min-height:32px;padding:0 var(--space-2);border:0;border-radius:var(--radius-md);background:transparent;color:var(--muted);font-size:var(--text-2xs);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-panel__collapse:hover{background:var(--surface-2);color:var(--fg)}.rg-panel__collapse:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-panel__collapse:focus:not(:focus-visible){outline:none}@media (prefers-reduced-motion: reduce){.rg-rail__btn,.rg-panel,.rg-panel__seg-btn,.rg-panel__close,.rg-panel__tab,.rg-panel__primary,.rg-panel__collapse,.rg-asset,.rg-asset__btn{transition-duration:.01ms}}.rg-stagebar{display:inline-flex;align-items:center;gap:var(--space-2)}.rg-stagebar__list{position:relative;display:inline-flex;align-items:center;gap:var(--stage-gap);height:var(--stage-bar-h);padding:var(--stage-bar-padding);background:var(--stage-bar-bg);border-radius:var(--stage-bar-radius)}.rg-stagebar__tab{position:relative;display:inline-flex;align-items:center;gap:var(--space-1);height:100%;padding:0 var(--stage-padding-x);border:0;border-radius:var(--radius-sm);background:transparent;color:var(--stage-fg);font-size:var(--entry-text);font-weight:var(--weight-emph);line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),transform var(--motion-instant) var(--ease-standard)}.rg-stagebar__tab:hover:not(:disabled):not([data-active=true]){background:var(--stage-bg-hover);color:var(--stage-fg-hover)}.rg-stagebar__tab:active:not(:disabled){transform:scale(.97)}.rg-stagebar__tab:disabled{color:var(--stage-unavailable-fg);background:var(--stage-unavailable-bg);border:1px solid var(--stage-unavailable-border);cursor:not-allowed}.rg-stagebar__tab[data-active=true]{color:var(--stage-active-fg);background:var(--stage-active-bg)}.rg-stagebar__tab:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-stage);outline-offset:calc(var(--focus-ring-offset) * -1);box-shadow:0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring-stage-halo)}.rg-stagebar__tab:focus:not(:focus-visible){outline:none}.rg-stagebar__dot{flex:0 0 auto;width:var(--svc-dot-size);height:var(--svc-dot-size);border-radius:var(--radius-pill);background:transparent;border:1px solid var(--stage-empty-dot)}.rg-stagebar__tab[data-state=hasOutput] .rg-stagebar__dot{background:var(--stage-done-dot);border-color:var(--stage-done-dot)}.rg-stagebar__tab[data-state=blocked] .rg-stagebar__dot{background:var(--stage-blocked-dot);border-color:var(--stage-blocked-dot)}.rg-stagebar__tab[data-state=unavailable] .rg-stagebar__dot{border-style:dashed}.rg-stagebar__label{font-weight:var(--weight-emph)}.rg-stagebar__count{font-family:var(--stage-count-font);font-size:var(--stage-count-size);color:var(--stage-count-fg);font-variant-numeric:tabular-nums}.rg-stagebar__tab[data-active=true] .rg-stagebar__count{color:var(--stage-active-fg)}.rg-stagebar__track{position:absolute;left:var(--stage-padding-x);right:var(--stage-padding-x);bottom:calc(var(--stage-progress-track-h) + 2px);height:var(--stage-progress-track-h);border-radius:var(--stage-progress-radius);background:var(--stage-progress-track-bg);overflow:hidden}.rg-stagebar__fill{display:block;height:100%;border-radius:var(--stage-progress-radius);background:var(--stage-progress-fill-bg);min-width:var(--stage-progress-min-width);transition:width var(--motion-base) var(--ease-standard)}.rg-stagebar__fill[data-complete=true]{background:var(--stage-done-dot)}.rg-stagebar__indicator{position:absolute;left:0;bottom:0;height:var(--stage-active-indicator-h);border-radius:var(--stage-progress-radius);background:var(--stage-active-indicator);pointer-events:none;opacity:0}.rg-stagebar__indicator[data-ready=true]{opacity:1;transition:transform var(--motion-base) var(--ease-standard)}.rg-stagebar__detail{position:absolute;top:calc(100% + var(--space-2));left:50%;z-index:var(--z-popover);display:none;flex-direction:column;gap:var(--space-2);width:max-content;max-width:260px;padding:var(--space-3);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--elev-overlay);transform:translate(-50%);text-align:left;white-space:normal}.rg-stagebar__tab:hover .rg-stagebar__detail,.rg-stagebar__tab:focus-visible .rg-stagebar__detail{display:flex}.rg-stagebar__detail-head{font-size:var(--text-xs);font-weight:var(--weight-emph);color:var(--fg)}.rg-stagebar__detail-grid{display:flex;flex-wrap:wrap;gap:var(--space-1)}.rg-stagebar__detail-item{padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--surface-2);font-size:var(--text-2xs);color:var(--muted)}.rg-stagebar__detail-item[data-done=true]{color:var(--success-fg);background:var(--success-bg)}.rg-stagebar__detail-foot{font-size:var(--text-2xs);color:var(--meta)}.rg-stagebar__showall{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-min);height:var(--touch-min);border:0;border-radius:var(--radius-md);background:transparent;color:var(--btn-ghost-fg);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-stagebar__showall:hover{background:var(--btn-ghost-hover-bg);color:var(--fg)}.rg-stagebar__showall:active{transform:scale(.97)}.rg-stagebar__showall:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-stagebar__showall[data-on=true]{color:var(--accent)}.rg-stagebar__showall:focus:not(:focus-visible){outline:none}.rg-stagebar__compact{display:none;align-items:center;gap:var(--space-1);height:var(--stage-bar-h);padding:0 var(--space-3);border-radius:var(--stage-bar-radius);background:var(--stage-bar-bg);color:var(--stage-active-fg);font-size:var(--entry-text);font-weight:var(--weight-emph)}@media (max-width: 1280px){.rg-stagebar__count{display:none}}@media (max-width: 768px){.rg-stagebar__list{display:none}.rg-stagebar__compact{display:inline-flex}}@media (prefers-reduced-motion: reduce){.rg-stagebar__tab,.rg-stagebar__fill,.rg-stagebar__indicator,.rg-stagebar__showall{transition-duration:.01ms}.rg-stagebar__tab:active:not(:disabled),.rg-stagebar__showall:active{transform:none}}.rg-entry{position:absolute;top:0;right:0;bottom:0;left:0;z-index:var(--z-canvas-entry);display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;opacity:1;transition:opacity var(--motion-base) var(--ease-standard)}.rg-entry[data-loading=true]{opacity:0}.rg-entry--empty{pointer-events:auto}.rg-entry__grid{display:grid;grid-template-columns:repeat(var(--entry-cols),minmax(0,1fr));gap:var(--entry-wrap-gap);width:100%;max-width:var(--entry-max-w);pointer-events:auto}.rg-entry__pill{position:relative;display:inline-flex;align-items:center;gap:var(--space-2);min-height:var(--entry-btn-h);padding:0 var(--space-4);border:1px solid var(--entry-btn-border);border-radius:var(--radius-pill);box-shadow:none;background:var(--entry-btn-bg);color:var(--entry-btn-fg);font-size:var(--entry-text);font-weight:var(--weight-emph);line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),transform var(--motion-instant) var(--ease-standard)}.rg-entry__pill:hover{background:var(--entry-btn-hover-bg);border-color:var(--entry-btn-hover-border);color:var(--fg);box-shadow:var(--entry-btn-shadow-hover)}.rg-entry__pill:active{transform:scale(.97)}.rg-entry__pill:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-entry__pill:focus:not(:focus-visible){outline:none}.rg-entry__pill:disabled{background:var(--surface-2);border-color:var(--border);color:var(--meta);cursor:not-allowed}.rg-entry__pill-icon{flex:0 0 auto;width:var(--entry-icon);height:var(--entry-icon)}.rg-entry__pill-text{overflow:hidden;text-overflow:ellipsis}.rg-entry__pill[data-planned=true]{background:var(--planned-bg);border-color:var(--planned-border);color:var(--planned-fg);padding-right:var(--space-6)}.rg-entry__pill[data-planned=true]:hover{background:var(--planned-bg);border-color:var(--planned-hover-border);color:var(--planned-hover-fg);box-shadow:none}.rg-entry__pill[data-planned=true] .rg-entry__pill-icon{opacity:var(--planned-icon-opacity)}.rg-entry__badge{position:absolute;top:calc(var(--space-2) / -2);right:calc(var(--space-1) / -1);display:inline-flex;align-items:center;height:var(--planned-badge-h);padding:0 var(--planned-badge-padding-x);border-radius:var(--planned-badge-radius);background:var(--planned-badge-bg);color:var(--planned-badge-fg);font-size:var(--text-2xs);font-weight:var(--weight-emph);line-height:1;letter-spacing:var(--tracking-caps);pointer-events:none}.rg-entry__prompt{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--entry-group-gap);min-height:32px;padding:0 var(--space-3);border:0;border-radius:var(--radius-md);background:transparent;color:var(--muted);font-size:var(--tpl-card-desc-size);cursor:pointer;pointer-events:auto;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-entry__prompt:hover{background:var(--surface-2);color:var(--fg)}.rg-entry__prompt:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-entry__prompt:focus:not(:focus-visible){outline:none}.rg-entry__templates{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);margin-top:var(--space-6);pointer-events:auto;width:100%;max-width:calc(var(--tpl-card-w) * 3 + var(--tpl-card-gap) * 2)}.rg-entry__templates-label{font-size:var(--text-2xs);color:var(--meta);letter-spacing:var(--tracking-caps)}.rg-entry__templates-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--tpl-card-gap);width:100%}.rg-entry__tpl{display:flex;flex-direction:column;gap:var(--space-1);min-height:var(--tpl-card-h);padding:var(--space-3);border:1px solid var(--tpl-card-border);border-radius:var(--tpl-card-radius);box-shadow:var(--tpl-card-shadow);background:var(--surface);text-align:left;cursor:pointer;transition:border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}.rg-entry__tpl:hover{border-color:var(--tpl-card-hover-border);box-shadow:var(--tpl-card-shadow-hover);transform:translateY(-2px)}.rg-entry__tpl:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-entry__tpl:focus:not(:focus-visible){outline:none}.rg-entry__tpl-head{display:inline-flex;align-items:center;gap:var(--space-2)}.rg-entry__tpl-icon{flex:0 0 auto;color:var(--muted)}.rg-entry__tpl-name{font-size:var(--tpl-card-title-size);font-weight:var(--weight-emph);color:var(--fg)}.rg-entry__tpl-desc{font-size:var(--tpl-card-desc-size);color:var(--tpl-card-desc-fg);line-height:1.5}.rg-entry__tpl-meta{margin-top:auto;font-family:var(--font-mono);font-size:var(--tpl-card-meta-size);color:var(--tpl-card-meta-fg);font-variant-numeric:tabular-nums}.rg-entry__notice{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);max-width:var(--entry-max-w);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);text-align:center}.rg-entry__notice-icon{color:var(--meta)}.rg-entry__notice-text{margin:0;font-size:var(--text-md);color:var(--fg-2);line-height:1.6}.rg-entry__notice-btn{min-height:var(--touch-min);padding:0 var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-2);color:var(--fg);font-size:var(--entry-text);font-weight:var(--weight-emph);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard)}.rg-entry__notice-btn:hover{background:var(--surface-3)}.rg-entry__notice-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.rg-entry__notice-btn:focus:not(:focus-visible){outline:none}.rg-entry__toast{position:absolute;bottom:var(--space-8);left:50%;z-index:var(--z-toast);display:inline-flex;align-items:center;gap:var(--space-2);max-width:420px;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--elev-overlay);transform:translate(-50%);pointer-events:auto}.rg-entry__toast-icon{flex:0 0 auto;color:var(--muted)}.rg-entry__toast-text{font-size:var(--text-sm);color:var(--fg-2);line-height:1.5}.rg-entry__toast-close{flex:0 0 auto;width:24px;height:24px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--meta);font-size:var(--text-lg);line-height:1;cursor:pointer}.rg-entry__toast-close:hover{background:var(--surface-2);color:var(--fg)}.rg-entry__toast-close:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}@media (max-width: 1024px){.rg-entry__grid{max-width:100%}.rg-entry__tpl{min-height:120px}.rg-entry__templates{max-width:calc(160px * 3 + var(--tpl-card-gap) * 2)}}@media (max-width: 768px){.rg-entry__grid{grid-template-columns:minmax(0,1fr);max-width:320px;max-height:60vh;overflow-y:auto}.rg-entry__pill{width:100%;justify-content:flex-start}.rg-entry__templates-row{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.rg-entry__tpl{flex:0 0 160px;scroll-snap-align:start}}@media (prefers-reduced-motion: reduce){.rg-entry,.rg-entry__pill,.rg-entry__prompt,.rg-entry__tpl,.rg-entry__notice-btn,.rg-entry__toast-close{transition-duration:.01ms}.rg-entry__pill:active,.rg-entry__tpl:hover{transform:none}}.d3d{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal, 1200);display:flex;align-items:center;justify-content:center;padding:4vh 3vw}.d3d__mask{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000070;animation:d3d-fade var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.d3d__panel{position:relative;display:flex;flex-direction:column;width:min(1180px,96vw);height:min(720px,90vh);background:var(--bg);border-radius:var(--radius-lg);box-shadow:var(--elev-modal);overflow:hidden}.d3d__head{display:flex;align-items:center;justify-content:space-between;gap:10px;height:44px;padding:0 12px;border-bottom:1px solid var(--border);background:var(--surface);flex:none}.d3d__title{display:flex;align-items:center;gap:8px;font-size:var(--text-sm, 13px);font-weight:510;color:var(--fg)}.d3d__close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;color:var(--muted);background:none;border:1px solid var(--border-soft);border-radius:var(--radius-md);cursor:pointer;transition:color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1)),background-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.d3d__close:hover{color:var(--fg);background:var(--surface-2)}.d3d__close:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}.d3d__body{display:flex;min-height:0;flex:1}.d3d__stage{position:relative;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;background:var(--surface-inset, var(--bg));overflow:hidden}.d3d__grid-floor{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;pointer-events:none;opacity:.5;background-image:repeating-linear-gradient(90deg,var(--border) 0 1px,transparent 1px 56px),repeating-linear-gradient(0deg,var(--border) 0 1px,transparent 1px 56px);mask-image:linear-gradient(to bottom,transparent 38%,#000 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 38%,#000 100%)}.d3d__horizon{position:absolute;left:0;right:0;bottom:44%;height:1px;background:var(--border)}.d3d__placeholder{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:420px;padding:20px 24px;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md)}.d3d__placeholder-icon{color:var(--muted)}.d3d__placeholder-title{margin:0;font-size:var(--text-sm, 13px);font-weight:510;color:var(--fg)}.d3d__placeholder-desc{margin:0;font-size:var(--text-xs, 12px);line-height:1.6;color:var(--muted)}.d3d__hud{position:absolute;left:12px;bottom:12px;z-index:1;display:flex;flex-wrap:wrap;gap:6px}.d3d__hud-item{padding:3px 8px;font-family:var(--font-mono, monospace);font-size:var(--text-2xs, 11px);color:var(--muted);background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-pill, 999px)}.d3d__cfg{width:300px;flex:none;display:flex;flex-direction:column;gap:14px;padding:14px;background:var(--surface);border-left:1px solid var(--border);overflow-y:auto}.d3d__sec{display:flex;flex-direction:column;gap:10px}.d3d__sec-title{margin:0;font-size:var(--text-xs, 12px);font-weight:510;color:var(--fg);letter-spacing:.02em;padding-bottom:6px;border-bottom:1px solid var(--border-soft)}.d3d__field{display:flex;flex-direction:column;gap:6px}.d3d__field--row{flex-direction:row;align-items:center;justify-content:space-between}.d3d__label{display:flex;align-items:center;gap:6px;font-size:var(--text-xs, 12px);color:var(--muted)}.d3d__select{width:100%;height:30px;padding:0 8px;font:inherit;font-size:var(--text-xs, 12px);color:var(--fg);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer}.d3d__select:focus-visible{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}.d3d__swatches{display:flex;flex-wrap:wrap;gap:6px}.d3d__swatch{width:22px;height:22px;border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;padding:0;transition:box-shadow var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.d3d__swatch[data-active=true]{box-shadow:0 0 0 2px var(--accent)}.d3d__swatch:focus-visible{outline:none;box-shadow:0 0 0 2px var(--accent-line)}.d3d__slider-row{display:flex;align-items:center;gap:8px}.d3d__range{flex:1;min-width:0;accent-color:var(--accent);cursor:pointer}.d3d__range:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.d3d__num{min-width:42px;text-align:right;font-family:var(--font-mono, monospace);font-size:var(--text-2xs, 11px);font-variant-numeric:tabular-nums;color:var(--fg)}.d3d__switch{position:relative;width:34px;height:20px;padding:0;background:var(--surface-3, var(--surface-2));border:1px solid var(--border);border-radius:var(--radius-pill, 999px);cursor:pointer;transition:background-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1)),border-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.d3d__switch[data-on=true]{background:var(--accent);border-color:var(--accent)}.d3d__switch:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}.d3d__switch-knob{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--surface);transition:transform var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.d3d__switch[data-on=true] .d3d__switch-knob{transform:translate(14px)}.d3d__summary{margin:0;padding:8px;font-size:var(--text-2xs, 11px);line-height:1.6;color:var(--muted);background:var(--surface-2);border-radius:var(--radius-sm);word-break:break-word}.d3d__reset{align-self:flex-start;height:26px;padding:0 10px;font:inherit;font-size:var(--text-2xs, 11px);color:var(--muted);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1)),background-color var(--motion-fast, .15s) var(--ease-standard, cubic-bezier(.2, 0, 0, 1))}.d3d__reset:hover{color:var(--fg);background:var(--surface-2)}.d3d__reset:focus-visible{outline:none;box-shadow:var(--focus-ring, 0 0 0 3px var(--accent-soft))}.d3d__note{display:flex;align-items:flex-start;gap:6px;margin:0;padding:8px;font-size:var(--text-2xs, 11px);line-height:1.55;color:var(--muted);background:var(--surface-2);border-radius:var(--radius-sm)}.d3d__note svg{flex:none;margin-top:1px}@keyframes d3d-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){.d3d__mask{animation:none}.d3d__switch,.d3d__switch-knob,.d3d__swatch{transition:none}}.rg-dock{position:absolute;left:var(--bottombar-inset);bottom:var(--bottombar-inset);z-index:var(--z-canvas-float);display:inline-flex;align-items:center;gap:var(--space-1);height:var(--bottombar-h);padding:0 var(--space-2);border-radius:var(--bottombar-radius);background:color-mix(in srgb,var(--surface) var(--bottombar-bg-blend),transparent);backdrop-filter:blur(var(--bottombar-blur));-webkit-backdrop-filter:blur(var(--bottombar-blur));border:1px solid var(--border)}@supports not (background: color-mix(in srgb,red 50%,transparent)){.rg-dock{background:var(--surface)}}@supports not (backdrop-filter: blur(1px)){.rg-dock{background:var(--surface)}}.rg-dock__group{display:inline-flex;align-items:center;gap:var(--space-1)}.rg-dock__divider{width:1px;height:20px;margin:0 var(--space-1);background:var(--border);flex:0 0 auto}.rg-dock__btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--bottombar-btn-size);height:var(--bottombar-btn-size);border:0;border-radius:var(--radius-md);background:transparent;color:var(--seg-fg);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard)}.rg-dock__btn:before{content:"";position:absolute;left:50%;top:50%;width:var(--touch-min);height:var(--touch-min);transform:translate(-50%,-50%)}.rg-dock__btn:hover:not(:disabled){background:var(--surface-2);color:var(--fg)}.rg-dock__btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1);box-shadow:0 0 0 calc(var(--focus-ring-offset) + var(--focus-ring-width)) var(--focus-ring-halo)}.rg-dock__btn:focus:not(:focus-visible){outline:none}.rg-dock__btn:disabled{opacity:.4;cursor:not-allowed}.rg-dock__btn[data-active=true]{background:var(--seg-active-bg);color:var(--seg-active-fg);box-shadow:var(--seg-active-shadow)}.rg-dock__zoomtext{display:inline-flex;align-items:center;justify-content:center;width:var(--zoom-text-w);height:var(--bottombar-btn-size);border:0;border-radius:var(--radius-md);background:transparent;color:var(--seg-fg);font-family:var(--zoom-text-font);font-size:var(--zoom-text-size);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-dock__zoomtext:hover{background:var(--surface-2);color:var(--fg)}.rg-dock__zoomtext:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-dock__zoomtext:focus:not(:focus-visible){outline:none}.rg-dock__spin{animation:rg-dock-spin var(--node-running-spin-duration, .8s) linear infinite}@keyframes rg-dock-spin{to{transform:rotate(360deg)}}.rg-dock__btn--planned{color:var(--planned-fg);padding-right:0}.rg-dock__btn--planned:hover:not(:disabled){background:transparent;color:var(--planned-hover-fg)}.rg-dock__btn--planned:focus-visible{outline-color:var(--focus-ring-color)}.rg-dock__planned-icon{opacity:var(--planned-icon-opacity)}.rg-dock__badge{position:absolute;top:calc(var(--space-2) / -2);right:calc(var(--space-2) / -1);display:inline-flex;align-items:center;height:var(--planned-badge-h);padding:0 var(--planned-badge-padding-x);border-radius:var(--planned-badge-radius);background:var(--planned-badge-bg);color:var(--planned-badge-fg);font-size:var(--text-2xs);font-weight:var(--weight-emph);line-height:1;letter-spacing:var(--tracking-caps);pointer-events:none}.rg-dock__ratio{position:relative;display:inline-flex}.rg-dock__menu{position:absolute;bottom:calc(100% + var(--space-2));left:50%;transform:translate(-50%);z-index:var(--z-dropdown);display:flex;flex-direction:column;gap:var(--space-1);min-width:208px;padding:var(--space-2);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--elev-overlay)}.rg-dock__menu-item{display:flex;align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-2);border:0;border-radius:var(--radius-md);background:transparent;color:var(--fg-2);text-align:left;cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.rg-dock__menu-item:hover{background:var(--surface-2);color:var(--fg)}.rg-dock__menu-item:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:calc(var(--focus-ring-offset) * -1)}.rg-dock__menu-item[data-active=true]{color:var(--fg)}.rg-dock__menu-check{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:var(--icon-sm);height:var(--icon-sm);margin-top:2px;color:var(--accent)}.rg-dock__menu-body{display:flex;flex-direction:column;gap:2px;min-width:0}.rg-dock__menu-label{display:flex;align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--weight-emph);color:inherit}.rg-dock__menu-px{font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;color:var(--meta)}.rg-dock__menu-hint{font-size:var(--text-xs);color:var(--meta);line-height:1.4}.rg-dock__toast{position:absolute;bottom:calc(100% + var(--space-2));left:0;z-index:var(--z-toast);display:inline-flex;align-items:center;gap:var(--space-2);max-width:360px;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--elev-overlay)}.rg-dock__toast-text{font-size:var(--text-sm);color:var(--fg-2);line-height:1.5}.rg-dock__toast-close{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--meta);cursor:pointer}.rg-dock__toast-close:hover{background:var(--surface-2);color:var(--fg)}.rg-dock__toast-close:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}@media (max-width: 768px){.rg-dock__menu{min-width:180px}.rg-dock__toast{max-width:260px}}@media (max-width: 576px){.rg-dock__menu{left:0;transform:none}}@media (prefers-reduced-motion: reduce){.rg-dock__btn,.rg-dock__zoomtext,.rg-dock__menu-item{transition-duration:.01ms}.rg-dock__spin{animation:none}}.react-flow__node.rg-node-dim{filter:opacity(var(--stage-dim-opacity)) saturate(var(--stage-dim-saturation));transition:filter var(--stage-dim-transition-duration) var(--ease-standard),opacity var(--stage-dim-transition-duration) var(--ease-standard)}.react-flow__node.rg-node-dim .jcard-card{border-color:var(--stage-dim-border);box-shadow:var(--stage-dim-shadow)}.react-flow__node.rg-node-dim:hover{filter:opacity(var(--stage-dim-opacity-hover)) saturate(var(--stage-dim-saturation))}.react-flow__node.rg-node-dim:hover .jcard-card{border-color:var(--border-strong)}.react-flow__node.rg-node-dim .react-flow__handle{opacity:var(--stage-dim-edge-opacity);transition:opacity var(--stage-dim-transition-duration) var(--ease-standard)}.react-flow__node.rg-node-dim:hover .react-flow__handle{opacity:1}.react-flow__edge.rg-edge-dim .react-flow__edge-path{opacity:var(--stage-dim-edge-opacity);transition:opacity var(--stage-dim-transition-duration) var(--ease-standard)}.react-flow__edge.rg-edge-dim .react-flow__edge.arrowhead path,.react-flow__edge.rg-edge-dim marker path{opacity:var(--stage-dim-edge-opacity)}@media (prefers-reduced-motion: reduce){.react-flow__node.rg-node-dim,.react-flow__node.rg-node-dim .react-flow__handle,.react-flow__edge.rg-edge-dim .react-flow__edge-path{transition-duration:.01ms}}.react-flow[data-asset-media=on] .react-flow__node-character .jcard-media,.react-flow[data-asset-media=on] .react-flow__node-scene .jcard-media{display:flex}.react-flow[data-asset-media=off] .react-flow__node-character .jcard-media,.react-flow[data-asset-media=off] .react-flow__node-scene .jcard-media{display:none}.react-flow[data-asset-media=off] .react-flow__node-character .jcard-card:after,.react-flow[data-asset-media=off] .react-flow__node-scene .jcard-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border:1px dashed var(--border);border-radius:inherit;opacity:.6}.react-flow[data-aspect-ratio] .react-flow__node-video .jcard-media{height:auto;aspect-ratio:var(--node-media-aspect, 16 / 9)}.react-flow[data-aspect-ratio] .react-flow__node-video .jcard-video{width:100%;height:100%;object-fit:contain}.react-flow[data-aspect-ratio] .react-flow__node-comfyui .jcard-media{height:auto;aspect-ratio:var(--node-media-aspect, 16 / 9)}.react-flow[data-aspect-ratio] .react-flow__node-comfyui .jcard-img{width:100%;height:100%;object-fit:contain}.react-flow[data-aspect-ratio] .react-flow__node-video .jcard-media,.react-flow[data-aspect-ratio] .react-flow__node-comfyui .jcard-media{max-height:320px}:root{--brand-50:#eef4fd;--brand-100:#d8e6fb;--brand-200:#b3cff7;--brand-300:#7fadf0;--brand-400:#4789e4;--brand-500:#1f6ad4;--brand-600:#1558b4;--brand-700:#104890;--brand-800:#0d3a72;--brand-900:#0a2b52;--n-0:#ffffff;--n-25:#fcfdfe;--n-50:#f7f9fc;--n-100:#eef2f7;--n-150:#e4eaf2;--n-200:#dbe2ec;--n-300:#c2ccdb;--n-400:#94a2b8;--n-500:#6b7a91;--n-600:#4a5768;--n-700:#333f4f;--n-800:#1e2836;--n-900:#131a25;--success-100:#dcf5e8;--success-500:#0f8a5f;--success-700:#0a6b4a;--warn-100:#fdf0d5;--warn-500:#b8730f;--warn-700:#8f5a09;--danger-100:#fde5e3;--danger-500:#c9382f;--danger-700:#a32a23;--info-100:#e2f0fb;--info-500:#1f6ad4;--info-700:#1558b4;--font-display:"Inter var","Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-body:"Inter var","Inter","Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-mono:"JetBrains Mono","SFMono-Regular","Cascadia Mono","Fira Code",Consolas,monospace;--icon-sm:16px;--icon-md:20px;--icon-lg:24px;--icon-stroke:2px;--topbar-h:48px;--rail-w:48px;--palette-w:248px;--side-w:320px;--canvas-min-w:0;--bottombar-h:44px;--control-h:32px;--touch-min:44px}:root{--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-md:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--text-3xl:32px;--leading-tight:1.25;--leading-snug:1.4;--leading-body:1.55;--leading-loose:1.7;--tracking-caps:.07em;--tracking-tight:-.011em;--tracking-display:-.018em;--tracking-body:0em;--weight-read:400;--weight-emph:510;--weight-announce:590;--space-0:0px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:9999px;--elev-flat:none;--elev-ring:0 0 0 1px var(--border);--elev-raised:0 1px 2px rgba(19,26,37,.06),0 4px 12px rgba(19,26,37,.08);--elev-overlay:0 8px 24px rgba(19,26,37,.12),0 2px 6px rgba(19,26,37,.06);--elev-modal:0 24px 64px rgba(19,26,37,.18),0 4px 12px rgba(19,26,37,.08);--motion-instant:80ms;--motion-fast:.15s;--motion-base:.2s;--motion-slow:.32s;--ease-standard:cubic-bezier(.2,0,0,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--focus-ring:0 0 0 2px var(--bg),0 0 0 4px var(--brand-400);--focus-ring-danger:0 0 0 2px var(--bg),0 0 0 4px var(--danger-500)}:root{--bg:var(--n-50);--surface:var(--n-0);--surface-2:var(--n-100);--surface-3:var(--n-150);--surface-inset:var(--n-25);--canvas-dot:#c8d2e0;--overlay-scrim:rgba(19,26,37,.32);--fg:var(--n-900);--fg-2:var(--n-700);--muted:var(--n-500);--meta:var(--n-400);--border:var(--n-200);--border-strong:var(--n-300);--border-soft:rgba(19,26,37,.06);--border-focus:var(--brand-400);--accent:var(--brand-500);--accent-on:var(--n-0);--accent-hover:var(--brand-600);--accent-active:var(--brand-700);--accent-soft:var(--brand-50);--accent-ring:rgba(31,106,212,.28);--accent-line:var(--brand-200);--success:var(--success-500);--success-bg:var(--success-100);--success-fg:var(--success-700);--warn:var(--warn-500);--warn-bg:var(--warn-100);--warn-fg:var(--warn-700);--danger:var(--danger-500);--danger-bg:var(--danger-100);--danger-fg:var(--danger-700);--info:var(--info-500);--info-bg:var(--info-100);--info-fg:var(--info-700);--btn-primary-bg:var(--accent);--btn-primary-fg:var(--accent-on);--btn-primary-hover:var(--accent-hover);--btn-secondary-bg:var(--surface);--btn-secondary-fg:var(--fg);--btn-secondary-border:var(--border-strong);--btn-ghost-fg:var(--muted);--btn-ghost-hover-bg:var(--surface-2);--btn-danger-bg:var(--surface);--btn-danger-fg:var(--danger);--btn-danger-border:var(--danger-500);--input-bg:var(--surface);--input-fg:var(--fg);--input-border:var(--border-strong);--input-placeholder:var(--meta);--input-focus-border:var(--brand-400);--input-disabled-bg:var(--surface-2);--input-disabled-fg:var(--meta);--card-bg:var(--surface);--card-border:var(--border);--card-shadow:var(--elev-ring);--node-card-bg:var(--surface);--node-card-border:var(--border-strong);--node-media-bg:var(--surface-inset);--node-selected-ring:0 0 0 2px var(--accent);--node-shadow:var(--elev-raised);--badge-bg:var(--surface-2);--badge-fg:var(--fg-2);--divider:var(--border);--scrollbar-thumb:var(--n-300);--scrollbar-thumb-hover:var(--n-400);--skeleton-base:var(--n-150);--skeleton-sheen:rgba(255,255,255,.6)}:root[data-theme=dark]{--bg:#131720;--surface:#1b202b;--surface-2:#232936;--surface-3:#2d3444;--surface-inset:#161b24;--canvas-dot:#333c4d;--fg:#eef1f6;--fg-2:#c3cad6;--muted:#98a2b3;--meta:#6f7a8c;--border:#2c3441;--border-strong:#3d4757;--border-soft:rgba(255,255,255,.06);--border-focus:var(--brand-400);--accent:var(--brand-400);--accent-on:#0a1420;--accent-hover:var(--brand-300);--accent-active:var(--brand-500);--accent-soft:rgba(71,137,228,.16);--accent-ring:rgba(71,137,228,.4);--accent-line:rgba(71,137,228,.4);--success:#3fbd85;--success-bg:rgba(63,189,133,.14);--success-fg:#7fd7ae;--warn:#dda139;--warn-bg:rgba(221,161,57,.14);--warn-fg:#f0c674;--danger:#f07067;--danger-bg:rgba(240,112,103,.14);--danger-fg:#f8a19b;--info:var(--brand-400);--info-bg:rgba(71,137,228,.16);--info-fg:var(--brand-300);--btn-primary-bg:var(--accent);--btn-primary-fg:var(--accent-on);--btn-primary-hover:var(--accent-hover);--btn-secondary-bg:var(--surface-2);--btn-secondary-fg:var(--fg);--btn-secondary-border:var(--border-strong);--btn-ghost-fg:var(--muted);--btn-ghost-hover-bg:var(--surface-2);--btn-danger-bg:var(--surface-2);--btn-danger-fg:var(--danger);--btn-danger-border:rgba(240,112,103,.5);--input-bg:var(--surface-2);--input-fg:var(--fg);--input-border:var(--border-strong);--input-placeholder:var(--meta);--input-focus-border:var(--brand-400);--input-disabled-bg:var(--surface-3);--input-disabled-fg:var(--meta);--card-bg:var(--surface);--card-border:var(--border);--card-shadow:var(--elev-flat);--node-card-bg:var(--surface);--node-card-border:var(--border-strong);--node-media-bg:var(--surface-inset);--node-selected-ring:0 0 0 2px var(--accent);--node-shadow:var(--elev-flat);--badge-bg:var(--surface-2);--badge-fg:var(--fg-2);--divider:var(--border);--scrollbar-thumb:#39424f;--scrollbar-thumb-hover:#4a5566;--skeleton-base:#242b37;--skeleton-sheen:rgba(255,255,255,.05);--elev-ring:0 0 0 1px var(--border);--elev-raised:0 1px 2px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.34);--elev-overlay:0 8px 24px rgba(0,0,0,.44),0 2px 6px rgba(0,0,0,.3);--elev-modal:0 24px 64px rgba(0,0,0,.56),0 4px 12px rgba(0,0,0,.4);--overlay-scrim:rgba(6,9,14,.6);--focus-ring:0 0 0 2px var(--bg),0 0 0 4px var(--accent);--focus-ring-danger:0 0 0 2px var(--bg),0 0 0 4px var(--danger)}:root{--node-author-fg:var(--brand-600);--node-author-bg:var(--brand-50);--node-author-line:var(--brand-200);--node-asset-fg:var(--success-700);--node-asset-bg:var(--success-100);--node-asset-line:rgba(15,138,95,.32);--node-media-fg:var(--warn-700);--node-media-bg:var(--warn-100);--node-media-line:rgba(184,115,15,.32);--node-audio-fg:#7a4bb8;--node-audio-bg:#f1e9fb;--node-audio-line:rgba(122,75,184,.3);--node-flow-fg:var(--info-700);--node-flow-bg:var(--info-100);--node-flow-line:var(--brand-200);--node-util-fg:var(--n-600);--node-util-bg:var(--n-100);--node-util-line:var(--n-300);--node-running:var(--brand-500);--node-running-bg:var(--brand-50);--node-error:var(--danger-500);--node-stale:var(--n-400);--node-done:var(--success-500)}:root[data-theme=dark]{--node-author-fg:var(--brand-300);--node-author-bg:rgba(71,137,228,.16);--node-author-line:rgba(71,137,228,.4);--node-asset-fg:#5fce9c;--node-asset-bg:rgba(63,189,133,.14);--node-asset-line:rgba(63,189,133,.36);--node-media-fg:#e8b45c;--node-media-bg:rgba(221,161,57,.14);--node-media-line:rgba(221,161,57,.36);--node-audio-fg:#b490e0;--node-audio-bg:rgba(154,106,220,.16);--node-audio-line:rgba(154,106,220,.38);--node-flow-fg:var(--brand-300);--node-flow-bg:rgba(71,137,228,.14);--node-flow-line:rgba(71,137,228,.36);--node-util-fg:#a3adbd;--node-util-bg:var(--surface-2);--node-util-line:var(--border-strong);--node-running:var(--brand-400);--node-running-bg:rgba(71,137,228,.16);--node-error:var(--danger);--node-stale:var(--meta);--node-done:var(--success)}:root{--mode-h:36px;--mode-fg:var(--muted);--mode-fg-hover:var(--fg);--mode-active-fg:var(--accent);--mode-active-bg:var(--accent-soft);--mode-active-ring:var(--brand-200)}:root{--bottombar-bg:var(--surface);--bottombar-border:var(--border);--bottombar-shadow:var(--elev-overlay);--seg-bg:var(--surface-2);--seg-fg:var(--muted);--seg-active-bg:var(--surface);--seg-active-fg:var(--fg);--seg-active-shadow:var(--elev-ring)}:root{--entry-btn-bg:var(--surface);--entry-btn-fg:var(--fg-2);--entry-btn-border:var(--border);--entry-btn-hover-border:var(--border-strong);--entry-btn-hover-bg:var(--surface);--entry-btn-shadow:var(--elev-ring);--entry-btn-shadow-hover:var(--elev-raised);--entry-pill-h:40px;--entry-gap:var(--space-3);--entry-max-w:560px}:root{--pro-badge-bg:var(--surface-2);--pro-badge-fg:var(--meta);--pro-badge-border:var(--border)}:root{--crumb-fg:var(--muted);--crumb-fg-hover:var(--fg);--crumb-sep:var(--meta);--crumb-current-fg:var(--fg)}:root{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-body);letter-spacing:var(--tracking-body);color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:where(button,input,textarea,select){font-family:inherit;font-size:inherit;color:inherit}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-pill);border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:content-box;border:3px solid transparent}::selection{background:var(--accent-ring);color:var(--fg)}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast:more){:root{--border:var(--n-400);--border-strong:var(--n-600)}:root[data-theme=dark]{--border:var(--n-400);--border-strong:var(--n-300)}}:root{--stage-bar-h:36px;--stage-bar-bg:var(--surface-2);--stage-bar-padding:3px;--stage-bar-radius:var(--radius-md);--stage-bar-border:var(--border);--stage-fg:var(--muted);--stage-fg-hover:var(--fg);--stage-bg-hover:var(--surface-3);--stage-padding-x:var(--space-3);--stage-gap:var(--space-1);--stage-active-fg:var(--accent);--stage-active-bg:var(--accent-soft);--stage-active-indicator:var(--accent);--stage-active-indicator-h:2px;--stage-active-shadow:var(--elev-ring);--stage-done-dot:var(--success);--stage-empty-fg:var(--meta);--stage-empty-dot:var(--border-strong);--stage-blocked-dot:var(--warn);--stage-blocked-fg:var(--fg-2);--stage-unavailable-fg:var(--meta);--stage-unavailable-bg:var(--surface-2);--stage-unavailable-border:var(--border);--stage-unavailable-icon:var(--icon-sm)}:root{--stage-dim-opacity:.3;--stage-dim-opacity-hover:.72;--stage-dim-saturation:.35;--stage-dim-border:var(--border);--stage-dim-shadow:none;--stage-dim-transition-duration:var(--motion-base);--stage-dim-edge-opacity:.18;--stage-active-node-border:var(--border-strong);--stage-showall-opacity:1}:root{--planned-fg:var(--meta);--planned-bg:var(--surface-2);--planned-border:var(--border);--planned-badge-bg:var(--surface-3);--planned-badge-fg:var(--meta);--planned-badge-h:16px;--planned-badge-padding-x:var(--space-1);--planned-badge-radius:var(--radius-xs);--planned-icon-opacity:.6;--planned-hover-fg:var(--fg-2);--planned-hover-border:var(--border-strong)}:root{--svc-dot-size:8px;--svc-dot-ring-width:2px;--svc-gap:var(--space-2);--svc-label-size:var(--text-xs);--svc-label-fg:var(--muted);--svc-hit-area:var(--touch-min);--svc-online:var(--success);--svc-online-bg:var(--success-bg);--svc-online-ring:rgba(15,138,95,.22);--svc-busy:var(--warn);--svc-busy-bg:var(--warn-bg);--svc-busy-ring:rgba(184,115,15,.24);--svc-busy-pulse-duration:1.6s;--svc-busy-pulse-min-opacity:.55;--svc-busy-pulse-max-opacity:1;--svc-offline:var(--meta);--svc-offline-bg:var(--surface-2);--svc-offline-ring:rgba(107,122,145,.2);--svc-fault:var(--danger);--svc-fault-bg:var(--danger-bg);--svc-fault-fg:var(--danger-fg);--svc-panel-w:320px;--svc-panel-bg:var(--surface);--svc-panel-border:var(--border);--svc-panel-shadow:var(--elev-overlay);--svc-panel-radius:var(--radius-lg);--svc-panel-row-h:36px;--svc-panel-row-gap:var(--space-1);--svc-cap-h:28px;--svc-cap-radius:var(--radius-sm);--svc-cap-hover-bg:var(--surface-2);--svc-cap-label-fg:var(--fg-2);--svc-cap-detail-fg:var(--meta);--svc-cap-detail-size:var(--text-xs);--svc-latency-font:var(--font-mono);--svc-latency-size:var(--text-xs);--svc-latency-ok:var(--success);--svc-latency-slow:var(--warn);--svc-latency-slow-threshold:1.5s;--svc-latency-unknown:var(--meta);--ai-btn-online:var(--accent);--ai-btn-online-fg:var(--accent-on);--ai-btn-busy:var(--warn-bg);--ai-btn-busy-fg:var(--warn-fg);--ai-btn-busy-border:var(--warn);--ai-btn-offline:var(--surface-2);--ai-btn-offline-fg:var(--meta);--ai-btn-offline-border:var(--border);--cap-unavailable-fg:var(--meta);--cap-unavailable-bg:var(--surface-2);--cap-unavailable-border:var(--border);--cap-unavailable-badge:var(--surface-3)}:root[data-theme=dark]{--stage-bar-bg:var(--surface-2);--stage-fg:var(--muted);--stage-fg-hover:var(--fg);--stage-bg-hover:var(--surface-3);--stage-active-fg:var(--accent);--stage-active-bg:var(--accent-soft);--stage-active-indicator:var(--accent);--stage-done-dot:var(--success);--stage-empty-dot:var(--border-strong);--stage-blocked-dot:var(--warn);--stage-unavailable-fg:var(--meta);--stage-unavailable-bg:var(--surface-2);--stage-dim-opacity:.26;--stage-dim-opacity-hover:.7;--stage-dim-saturation:.25;--stage-dim-edge-opacity:.15;--planned-fg:var(--meta);--planned-bg:var(--surface-2);--planned-border:var(--border);--planned-badge-bg:var(--surface-3);--planned-badge-fg:var(--meta);--planned-hover-fg:var(--fg-2);--svc-online:var(--success);--svc-online-bg:var(--success-bg);--svc-online-ring:rgba(63,189,133,.24);--svc-busy:var(--warn);--svc-busy-bg:var(--warn-bg);--svc-busy-ring:rgba(221,161,57,.26);--svc-offline:var(--meta);--svc-offline-bg:var(--surface-2);--svc-offline-ring:rgba(111,122,140,.2);--svc-fault:var(--danger);--svc-fault-bg:var(--danger-bg);--svc-fault-fg:var(--danger-fg);--svc-panel-bg:var(--surface);--svc-panel-border:var(--border);--svc-cap-hover-bg:var(--surface-2);--svc-latency-ok:var(--success);--svc-latency-slow:var(--warn);--svc-latency-unknown:var(--meta);--ai-btn-busy:var(--warn-bg);--ai-btn-busy-fg:var(--warn-fg);--ai-btn-busy-border:var(--warn);--ai-btn-offline:var(--surface-2);--ai-btn-offline-fg:var(--meta);--cap-unavailable-fg:var(--meta);--cap-unavailable-bg:var(--surface-2);--cap-unavailable-badge:var(--surface-3)}:root{--node-selected-ring-width:2px;--node-selected-ring:var(--accent);--node-selected-ring-offset:0px;--node-selected-shadow:var(--elev-raised);--node-author-selected:var(--brand-300);--node-asset-selected:rgba(15,138,95,.55);--node-media-selected:rgba(184,115,15,.55);--node-audio-selected:rgba(122,75,184,.5);--node-flow-selected:var(--brand-300);--node-util-selected:var(--n-400);--node-author-selected-bg:var(--brand-50);--node-asset-selected-bg:var(--success-100);--node-media-selected-bg:var(--warn-100);--node-audio-selected-bg:var(--node-audio-bg);--node-flow-selected-bg:var(--info-100);--node-util-selected-bg:var(--n-100);--node-running-ring:var(--node-running);--node-running-ring-width:2px;--node-running-dot:var(--node-running);--node-running-mask-bg:var(--node-running-bg);--node-running-mask-fg:var(--brand-700);--node-running-spin-duration:.8s;--node-running-pulse-duration:1.6s;--node-error-ring:var(--danger);--node-error-mask-bg:var(--danger-bg);--node-error-mask-fg:var(--danger-fg);--node-error-dot:var(--danger);--node-stale-mask-bg:var(--surface-2);--node-stale-mask-fg:var(--muted);--node-stale-dot:var(--meta);--node-stale-saturate:.2;--node-pending-bg:var(--warn-bg);--node-pending-fg:var(--warn-fg);--node-pending-border:var(--warn);--node-pending-dot:var(--warn);--node-done-dot:var(--success);--node-disabled-opacity:.45;--node-disabled-saturate:.2;--node-disabled-pointer:cursor-not-allowed;--node-collapsed-h:28px;--node-collapsed-shadow:var(--elev-ring);--node-tiny-h:16px;--node-tiny-hide-info:1;--node-selected-shadow:var(--elev-flat)}:root[data-theme=dark]{--node-author-selected:var(--brand-300);--node-asset-selected:rgba(63,189,133,.55);--node-media-selected:rgba(221,161,57,.55);--node-audio-selected:rgba(180,144,224,.5);--node-flow-selected:var(--brand-300);--node-util-selected:var(--n-400);--node-author-selected-bg:rgba(71,137,228,.2);--node-asset-selected-bg:rgba(63,189,133,.18);--node-media-selected-bg:rgba(221,161,57,.18);--node-audio-selected-bg:rgba(154,106,220,.2);--node-flow-selected-bg:rgba(71,137,228,.18);--node-util-selected-bg:var(--surface-3);--node-running-mask-fg:var(--brand-300);--node-error-mask-fg:var(--danger-fg);--node-stale-mask-bg:var(--surface-2);--node-pending-bg:rgba(221,161,57,.16);--node-pending-fg:var(--warn-fg)}:root{--z-canvas-bg:0;--z-canvas-edge:1;--z-canvas-node:10;--z-canvas-node-selected:12;--z-canvas-node-dragging:14;--z-canvas-handle:16;--z-canvas-overlay:20;--z-canvas-float:22;--z-canvas-float-pop:24;--z-canvas-entry:26;--z-sticky:30;--z-topbar:31;--z-bottom-bar:32;--z-overlay:1000;--z-popover:1010;--z-dropdown:1020;--z-side-panel:1030;--z-modal:1040;--z-modal-body:1042;--z-node-pop:1050;--z-toast:1060}:root{--focus-ring-width:2px;--focus-ring-offset:2px;--focus-ring-color:var(--accent);--focus-ring-halo:var(--bg);--focus-ring-color-dark:var(--brand-300);--focus-ring-halo-dark:var(--bg);--focus-ring-danger:var(--danger);--focus-ring-danger-halo:var(--bg);--focus-ring-canvas-width:2px;--focus-ring-canvas-offset:0px;--focus-ring-canvas-halo:transparent;--focus-ring-node:var(--node-selected-ring);--focus-ring-node-width:var(--node-selected-ring-width);--focus-ring-dot-radius:2px;--focus-ring-stage:var(--accent);--focus-ring-stage-halo:var(--surface);--focus-ring-transition:var(--motion-instant) var(--ease-out)}:root{--entry-btn-h:40px;--entry-icon:20px;--entry-text:var(--text-sm);--entry-max-w:560px;--entry-cols:4;--entry-wrap-gap:var(--space-3);--entry-group-gap:var(--space-4);--entry-planned-mark:规划中;--entry-planned-cursor:not-allowed;--tpl-card-w:180px;--tpl-card-h:132px;--tpl-card-gap:var(--space-3);--tpl-card-radius:var(--radius-md);--tpl-card-border:var(--border);--tpl-card-hover-border:var(--border-strong);--tpl-card-title-size:var(--text-sm);--tpl-card-desc-size:var(--text-xs);--tpl-card-desc-fg:var(--muted);--tpl-card-meta-size:var(--text-2xs);--tpl-card-meta-fg:var(--meta);--tpl-card-shadow:var(--elev-ring);--tpl-card-shadow-hover:var(--elev-raised)}:root{--node-w:260px;--node-w-min:200px;--node-w-max:460px;--node-titlebar-h:28px;--node-media-h:130px;--node-infobar-h:40px;--node-radius:var(--radius-lg);--node-resize-handle:12px;--node-quick-btn-size:20px;--node-quick-hit:44px;--node-quick-menu-w:180px;--node-quick-item-h:32px;--node-pop-w:420px;--node-pop-h:500px}:root{--crumb-h:40px;--crumb-fg:var(--muted);--crumb-current-fg:var(--fg);--crumb-hover-fg:var(--fg);--crumb-sep:var(--meta);--crumb-size:var(--text-xs);--crumb-current-weight:var(--weight-emph);--crumb-truncate-max:22ch;--side-tab-h:32px;--side-list-item-h:36px;--side-card-gap:var(--space-2);--side-card-pad:var(--space-2);--side-card-radius:var(--radius-md);--side-card-border:var(--border);--side-card-hover-border:var(--border-strong);--chat-input-min-h:56px;--chat-input-radius:var(--radius-lg);--chat-input-pad:var(--space-3);--chat-send-size:32px;--chat-send-radius:var(--radius-pill);--chat-tool-icon:var(--icon-sm);--chat-thumb-size:32px;--chat-thumb-radius:var(--radius-sm);--link-highlight-ring:var(--accent);--link-highlight-duration:2s;--link-highlight-fade:var(--motion-slow)}:root{--bottombar-h:44px;--bottombar-inset:var(--space-4);--bottombar-btn-size:28px;--bottombar-seg-h:32px;--bottombar-radius:var(--radius-md);--bottombar-bg-blend:88%;--bottombar-blur:12px;--zoom-text-w:44px;--zoom-text-font:var(--font-mono);--zoom-text-size:var(--text-xs);--zoom-min:10%;--zoom-max:200%;--zoom-step:10%;--fitview-duration:.16s;--autolayout-duration:var(--motion-slow)}:root{--stage-progress-track-h:2px;--stage-progress-track-bg:var(--border);--stage-progress-fill-bg:var(--accent);--stage-progress-radius:var(--radius-pill);--stage-progress-min-width:4px;--stage-count-size:var(--text-2xs);--stage-count-fg:var(--meta);--stage-count-font:var(--font-mono)}:root{--palette-w: 230px;--side-w: 300px;--panel-bg: var(--surface);--card: var(--surface);--line: var(--border);--overlay-scrim-soft: rgba(19, 26, 37, .18);--overlay-scrim-strong: rgba(19, 26, 37, .45);--media-backdrop: #0f172a}:root{--text: var(--fg);--panel: var(--surface)}*{box-sizing:border-box}*:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);border-radius:var(--radius-xs)}.btn-danger:focus-visible,.btn-stop:focus-visible,.ctx-item.danger:focus-visible,.jcard-quick-menu:focus-visible{outline-color:var(--focus-ring-danger)}button:focus:not(:focus-visible),input:focus:not(:focus-visible),textarea:focus:not(:focus-visible),select:focus:not(:focus-visible){outline:none}.side-tab{transition:color .15s,border-color .15s,background .15s}html,body,#root{margin:0;height:100%;width:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text)}.app{display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden}.topbar{display:flex;align-items:center;gap:8px;height:var(--topbar-h);padding:0 12px;background:var(--surface);border-bottom:1px solid var(--border);z-index:30;flex-shrink:0}.topbar-brand{font-weight:800;font-size:15px;margin-right:6px;white-space:nowrap}.topbar-flex{flex:1}.topbar-sep{width:1px;height:22px;background:var(--border);margin:0 4px}.canvas-selector{display:flex;align-items:center;gap:4px}.project-select{padding:5px 8px;border:1px solid var(--border);border-radius:8px;font-size:13px;max-width:160px}.btn-danger{color:var(--danger);border-color:var(--danger);background:var(--surface)}.btn-danger:hover{background:var(--danger-bg);border-color:var(--danger)}.btn-danger:disabled{color:var(--meta);border-color:var(--border);background:var(--bg);cursor:not-allowed}.btn-reset{color:var(--muted);border-color:var(--border);background:var(--bg)}.btn-reset:hover{background:var(--surface-2)}.svc-status{display:flex;gap:6px}.svc-status span{font-size:11px;padding:2px 7px;border-radius:999px}.svc-status .ok{background:var(--success-bg);color:var(--success-fg)}.svc-status .bad{background:var(--danger-bg);color:var(--danger-fg)}.btn{padding:6px 12px;border:1px solid var(--border);background:var(--surface);border-radius:8px;cursor:pointer;font-size:13px;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard);white-space:nowrap}.btn:hover{background:var(--surface-2)}.btn:active{transform:scale(.97);transition:transform .1s}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover)}.icon-btn{background:none;border:none;cursor:pointer;font-size:13px;color:var(--muted);padding:2px 5px;border-radius:4px}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.main-area{display:flex;flex:1;min-height:0}.node-palette{width:var(--palette-w);background:var(--panel);border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;padding:8px}.canvas-list{display:flex;flex-direction:column;gap:3px;margin-bottom:4px}.canvas-empty{font-size:11px;color:var(--muted);padding:6px 4px}.canvas-item{display:flex;align-items:center;gap:6px;padding:5px 7px;border:1px solid var(--border);border-radius:7px;cursor:pointer;font-size:12px;background:var(--surface);transition:background .12s}.canvas-item:hover{background:var(--surface-2)}.canvas-item.active{border-color:var(--accent-hover);background:var(--accent-soft)}.canvas-item-name{flex:1;font-weight:600;color:var(--fg-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-item-count{flex-shrink:0;font-size:10px;color:var(--muted);background:var(--surface-2);padding:1px 6px;border-radius:10px}.canvas-item-btn{flex-shrink:0;border:none;background:transparent;cursor:pointer;font-size:13px;padding:2px;border-radius:4px;line-height:1}.canvas-item-btn:hover{background:var(--surface-3)}.canvas-item-btn.danger:hover{background:var(--danger-bg)}.canvas-actions{display:flex;gap:4px;margin-top:4px}.canvas-actions .btn{flex:1;padding:5px 6px;font-size:12px}.btn-mini{padding:5px 6px;font-size:12px}.palette-divider{height:1px;background:var(--border);margin:10px 0}.palette-tip{font-size:11px;color:var(--muted);margin-bottom:6px;text-align:center}.palette-search{width:100%;padding:6px 8px;margin-bottom:8px;border:1px solid var(--border);border-radius:6px;font-size:12px;outline:none;background:var(--bg)}.palette-search:focus{border-color:var(--accent);background:var(--surface)}.palette-group{margin-bottom:10px}.palette-group-title{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:8px 0 4px;padding-bottom:2px;border-bottom:1px solid var(--border)}.palette-cat-title{cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:4px;transition:color .15s}.palette-cat-title:hover{color:var(--text)}.cat-caret{font-size:10px;width:10px;display:inline-block}.cat-count{margin-left:auto;font-size:10px;font-weight:600;color:var(--fg-2);background:var(--surface-2);padding:1px 6px;border-radius:999px}.palette-item{display:flex;gap:8px;align-items:center;padding:7px 8px;border-left:3px solid var(--border-strong);border-radius:6px;cursor:grab;margin-bottom:3px;transition:background .15s}.palette-item:hover{background:var(--surface-2)}.palette-item span{font-size:16px}.palette-name{font-size:12.5px;font-weight:600}.palette-desc{font-size:10.5px;color:var(--muted);line-height:1.3}.canvas-wrap{flex:1;min-width:0;position:relative}.side-panel{width:var(--side-w);background:var(--panel);border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}.side-tabs{display:flex;border-bottom:1px solid var(--border)}.side-tab{flex:1;text-align:center;padding:9px;font-size:13px;font-weight:600;cursor:pointer;color:var(--muted)}.side-tab.active{color:var(--accent);border-bottom:2px solid var(--accent)}.panel-body{padding:10px;overflow-y:auto;flex:1}.panel-tip{display:flex;align-items:flex-start;gap:6px;font-size:11px;color:var(--muted);background:var(--bg);padding:8px;border-radius:8px;margin-bottom:10px;line-height:1.5}.panel-tip>svg{flex:none;margin-top:1px}.panel-add{width:100%;margin-bottom:10px;display:inline-block;text-align:center}.panel-add.disabled{opacity:.5}.asset-form{background:var(--bg);padding:8px;border-radius:8px;margin-bottom:10px}.asset-form input,.asset-form textarea{width:100%;padding:5px 7px;border:1px solid var(--border);border-radius:6px;font-size:12px;margin-bottom:6px;font-family:inherit}.seg{display:flex;gap:4px;margin-bottom:8px}.seg-item{flex:1;text-align:center;padding:5px;border:1px solid var(--border);border-radius:6px;font-size:12px;cursor:pointer;color:var(--muted)}.seg-item.active{color:var(--accent-on);border-color:transparent}.asset-group{margin-bottom:12px}.asset-group-title{font-size:12px;font-weight:700;margin-bottom:6px}.asset-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.asset-card{border:1px solid var(--border);border-radius:10px;overflow:hidden;background:var(--surface);cursor:pointer;transition:box-shadow .15s,transform .15s}.asset-card:hover{box-shadow:var(--elev-modal);transform:translateY(-2px)}.asset-card-img{position:relative;height:80px;background:var(--bg)}.asset-card-img img{width:100%;height:100%;object-fit:cover;display:block}.asset-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:28px}.asset-card-del{position:absolute;top:3px;right:3px;background:var(--overlay-scrim-strong);color:var(--accent-on);border-radius:50%;width:18px;height:18px;font-size:10px;opacity:0;transition:opacity .15s}.asset-card:hover .asset-card-del{opacity:1}.asset-card-body{padding:5px 7px}.asset-name{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-desc{font-size:10.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.hint{font-size:11px;color:var(--meta);text-align:center;padding:8px 0}.ref-field{margin-bottom:6px}.ref-upload{display:inline-block;padding:6px 12px;border:1px dashed var(--border-strong);border-radius:8px;font-size:12px;color:var(--muted);cursor:pointer;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.ref-upload:hover{border-color:var(--accent);color:var(--accent)}.ref-preview{position:relative;display:inline-block;margin-left:6px;vertical-align:middle}.ref-preview img{width:44px;height:44px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.ref-preview .icon-btn{position:absolute;top:-6px;right:-6px;background:var(--danger);color:var(--accent-on);border-radius:50%;width:16px;height:16px;font-size:9px}.asset-detail{max-width:380px;width:90vw}.asset-detail .modal-title{display:flex;align-items:center;justify-content:space-between}.asset-detail-img{margin:0 16px;max-height:300px;overflow:hidden;border-radius:10px;background:var(--bg);display:flex;align-items:center;justify-content:center}.asset-detail-img img{max-width:100%;max-height:300px;object-fit:contain}.asset-detail-empty{padding:40px 0;color:var(--meta);font-size:13px}.asset-detail-desc{padding:12px 16px}.asset-detail-label{font-size:11px;font-weight:700;color:var(--muted);margin-bottom:4px}.asset-detail-desc>div:last-child{font-size:13px;line-height:1.6;color:var(--text);white-space:pre-wrap;word-break:break-word}.btn-danger{background:var(--danger);color:var(--accent-on);border:none}.btn-danger:hover{filter:brightness(1.08)}.files-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.file-item{border:1px solid var(--border);border-radius:8px;overflow:hidden;position:relative;background:var(--surface)}.file-item img,.file-item video{width:100%;height:70px;object-fit:cover;display:block}.file-icon{height:70px;display:flex;align-items:center;justify-content:center;font-size:28px;background:var(--bg)}.file-name{font-size:10px;color:var(--muted);padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-actions{display:flex;gap:2px;padding:0 2px 2px}.tool-node{background:var(--surface);border:1.5px solid var(--border);border-radius:10px;width:250px;font-size:12px;overflow:hidden;cursor:grab}.tool-node:active{cursor:grabbing}.node-header{display:flex;align-items:center;gap:6px;padding:7px 10px;color:var(--accent-on);font-weight:600;font-size:13px;cursor:pointer;-webkit-user-select:none;user-select:none}.node-collapse-icon{font-size:11px;opacity:.85;flex-shrink:0;transition:transform .15s}.tool-node.collapsed{width:160px;transition:width .2s}.tool-node.collapsed .node-title{font-size:12px;transition:font-size .2s}.node-icon{font-size:14px}.node-title{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-status{width:8px;height:8px;border-radius:50%;flex-shrink:0}.node-body{padding:8px}.field{margin-bottom:8px}.field label{display:block;font-size:11px;color:var(--muted);margin-bottom:2px}.field input,.field textarea,.field select{width:100%;padding:4px 6px;border:1px solid var(--border);border-radius:6px;font-size:12px;font-family:inherit}.field textarea{resize:vertical}.multi-select{max-height:90px;overflow-y:auto;border:1px solid var(--border);border-radius:6px;padding:4px}.check-item{display:flex;align-items:center;gap:5px;font-size:12px;padding:2px 0}.check-item input{width:auto}.result{margin-top:6px;padding:6px;border-radius:6px;font-size:11px}.result-running{background:var(--accent-soft);color:var(--info-fg)}.result-done{background:var(--success-bg)}.result-error{background:var(--danger-bg);color:var(--danger-fg)}.result-err{color:var(--danger-fg)}.result-text{color:var(--fg-2);word-break:break-all;max-height:120px;overflow:auto;white-space:pre-wrap}.result-img,.result-video{width:100%;border-radius:6px;margin-top:4px}.result-audio{width:100%;margin-top:4px}.result-imgs{display:grid;grid-template-columns:1fr 1fr;gap:4px}.chat-panel{position:absolute;bottom:12px;left:calc(var(--palette-w) + 16px);width:400px;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:var(--elev-overlay);overflow:hidden;z-index:40}.chat-title{padding:9px 12px;font-weight:600;border-bottom:1px solid var(--border);background:var(--bg);display:flex;justify-content:space-between;align-items:center}.chat-log{max-height:260px;overflow-y:auto;padding:8px 12px}.chat-msg{margin-bottom:6px;padding:6px 10px;border-radius:8px;font-size:13px;white-space:pre-wrap;word-break:break-word}.chat-msg.user{background:var(--accent);color:var(--accent-on);margin-left:20px}.chat-msg.assistant{background:var(--surface-2);margin-right:20px}.chat-msg.error{background:var(--danger-bg);color:var(--danger-fg)}.chat-input-row{display:flex;gap:6px;padding:8px;border-top:1px solid var(--border)}.chat-input-row input{flex:1;padding:8px;border:1px solid var(--border);border-radius:8px;font-size:13px}.log-panel{left:auto;right:calc(var(--side-w) + 16px)}.log-line{display:flex;gap:8px;padding:3px 0;font-size:12px;border-bottom:1px dashed var(--surface-2);align-items:baseline}.log-time{color:var(--muted);font-family:monospace;flex-shrink:0}.log-text{word-break:break-word}.log-line.ok .log-text{color:var(--success)}.log-line.err .log-text{color:var(--danger)}.log-line.info .log-text{color:var(--muted)}.log-tabs{display:flex;gap:4px;margin:0 8px;flex:1}.log-tab{padding:3px 10px;font-size:12px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted);cursor:pointer}.log-tab.active{background:var(--accent-hover);color:var(--accent-on);border-color:var(--accent-hover)}.error-viewer{flex:1;overflow-y:auto;padding:8px}.error-filter-row{display:flex;align-items:center;gap:4px;margin-bottom:8px}.error-filter{padding:3px 10px;font-size:11px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted);cursor:pointer}.error-filter.active{background:var(--accent-hover);color:var(--accent-on);border-color:var(--accent-hover)}.error-item{border:1px solid var(--danger);border-radius:8px;margin-bottom:6px;overflow:hidden;background:var(--surface)}.error-item.is-console{border-color:var(--warn)}.error-item-head{display:flex;align-items:center;gap:8px;padding:7px 9px;cursor:pointer;font-size:12px}.error-item-head:hover{background:var(--danger-bg)}.error-src{flex-shrink:0;font-size:10px;font-weight:700;color:var(--danger);background:var(--danger-bg);padding:1px 6px;border-radius:4px}.error-item.is-console .error-src{color:var(--warn-fg);background:var(--warn-bg)}.error-time{flex-shrink:0;color:var(--muted);font-family:monospace;font-size:11px}.error-msg{flex:1;word-break:break-word;color:var(--fg-2)}.error-caret{flex-shrink:0;color:var(--muted)}.error-detail{border-top:1px solid var(--danger);background:var(--danger-bg);padding:8px}.error-file{font-size:11px;color:var(--muted);margin-bottom:6px;font-family:monospace;word-break:break-all}.error-stack{font-family:monospace;font-size:11px;line-height:1.5;color:var(--danger-fg);white-space:pre-wrap;word-break:break-word;margin:0;max-height:240px;overflow-y:auto}.error-nostack{font-size:11px;color:var(--meta)}.error-copy-btn{margin-top:8px}.ctx-menu{position:fixed;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--elev-overlay);padding:4px;z-index:100;min-width:140px}.ctx-item{padding:7px 12px;font-size:13px;border-radius:6px;cursor:pointer}.ctx-item:hover{background:var(--surface-2)}.ctx-item.danger{color:var(--danger)}.ctx-item.danger:hover{background:var(--danger-bg)}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;z-index:200}.modal{background:var(--surface);border-radius:12px;width:520px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal-title{padding:14px 16px;font-weight:700;border-bottom:1px solid var(--border)}.modal-body{padding:16px;overflow-y:auto;flex:1;font-size:13px;white-space:pre-wrap;word-break:break-word;color:var(--fg-2);margin:0;font-family:inherit}.modal-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.modal-input{margin:0 16px;padding:8px 10px;border:1px solid var(--accent-hover);border-radius:8px;font-size:13px;outline:none}.modal-input:focus{box-shadow:var(--accent-ring)}.minimap{background:var(--surface)!important}.react-flow__handle{width:9px;height:9px}.node-ai-row{display:flex;align-items:center;gap:6px;margin:4px 0 8px;flex-wrap:wrap}.node-ai-btn{flex:1;min-width:100px;padding:7px 10px;border:none;border-radius:8px;background:var(--accent);color:var(--accent-on);font-size:12px;font-weight:700;cursor:pointer;transition:filter .15s}.node-ai-btn:hover{filter:brightness(1.08)}.node-ai-btn:disabled{opacity:.6;cursor:not-allowed}.node-ai-msg{font-size:11px;color:var(--success);white-space:nowrap}.btn-ai{background:var(--accent);color:var(--accent-on);border:none;font-weight:700}.btn-ai:hover{filter:brightness(1.08)}.btn-ai-on{box-shadow:0 0 0 var(--node-selected-ring-width) var(--accent-ring),var(--elev-raised)}.ai-panel{width:360px}.ai-body{padding:12px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.ai-field>label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin-bottom:6px}.ai-field .modal-input{margin:0;width:100%}.ai-field-hint{font-size:11px;color:var(--muted);margin-top:4px}.ai-provider-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ai-provider{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.ai-provider:hover{border-color:var(--accent)}.ai-provider.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 var(--node-selected-ring-width) var(--accent-ring)}.ai-provider-name{font-size:13px;font-weight:600;color:var(--text)}.ai-provider-tag{font-size:10px;color:var(--accent);background:var(--accent-soft);padding:1px 6px;border-radius:999px}.ai-check{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text);cursor:pointer}.ai-check input{width:16px;height:16px;accent-color:var(--accent)}.ai-row{display:flex;gap:8px}.ai-col{flex:1}.ai-test-result{padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.5;word-break:break-word}.ai-test-result.ok{background:var(--success-bg);border:1px solid var(--success);color:var(--success-fg)}.ai-test-result.err{background:var(--danger-bg);border:1px solid var(--danger);color:var(--danger-fg)}.ai-actions{display:flex;align-items:center;gap:8px}.sa-banner{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:var(--card)}.sa-banner>label{display:block;font-weight:600;margin-bottom:4px}.svc-list{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}.svc-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid var(--border);border-radius:9px;background:var(--bg)}.svc-row.on{background:var(--success-bg);border-color:var(--success)}.svc-row.off{background:var(--surface)}.svc-dot{width:8px;height:8px;border-radius:50%;flex:none}.svc-dot.ok{background:var(--success);box-shadow:var(--svc-online-ring)}.svc-dot.bad{background:var(--border-strong)}.svc-name{font-size:12.5px;font-weight:600;color:var(--fg-2);flex:1}.svc-addr{font-size:11px;color:var(--meta);font-family:monospace}.svc-start{flex:none}.svc-ok-tag{font-size:11px;color:var(--success);font-weight:600;flex:none}.svc-cfg{margin-top:8px;padding:10px;border:1px solid var(--border);border-radius:10px;background:var(--bg);display:flex;flex-direction:column;gap:12px}.svc-cfg-item{display:flex;flex-direction:column;gap:4px}.svc-cfg-title{font-size:12px;font-weight:700;color:var(--fg)}.svc-cfg-row{display:flex;align-items:center;gap:8px}.svc-cfg-row>span{width:72px;flex:none;font-size:11.5px;color:var(--muted)}.svc-cfg-row .modal-input{flex:1}.reconnect-modes{display:flex;flex-direction:column;gap:6px}.reconnect-mode{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.reconnect-mode:hover{border-color:var(--accent)}.reconnect-mode.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 0 0 var(--node-selected-ring-width) var(--accent-ring)}.reconnect-mode-radio{width:14px;height:14px;margin-top:2px;border-radius:50%;border:2px solid var(--border-strong);flex:none;transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard)}.reconnect-mode.active .reconnect-mode-radio{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px var(--surface)}.reconnect-mode-body{display:flex;flex-direction:column;gap:2px}.reconnect-mode-name{font-size:13px;font-weight:600;color:var(--text)}.reconnect-mode-desc{font-size:11px;color:var(--muted);line-height:1.4}.node-img-box{display:flex;flex-direction:column;gap:4px}.node-img-upload{border:1.5px dashed var(--border-strong);border-radius:8px;background:var(--bg);padding:10px 0;font-size:12px;color:var(--muted);cursor:pointer;width:100%;transition:border-color .15s,background .15s}.node-img-upload:hover{border-color:var(--border-strong);background:var(--surface-2)}.node-img-upload:disabled{opacity:.6;cursor:wait}.node-img-thumb{width:100%;max-height:150px;object-fit:cover;border-radius:8px;border:1px solid var(--border);cursor:zoom-in;display:block}.node-img-thumb:hover{filter:brightness(.95)}.node-img-actions{display:flex;gap:4px}.node-img-btn{flex:1;font-size:11px;padding:3px 0;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--fg-2);cursor:pointer}.node-img-btn:hover{background:var(--surface-2)}.node-img-btn.danger:hover{background:var(--danger-bg);color:var(--danger);border-color:var(--danger)}.node-img-url{font-size:11px;padding:4px 6px}.img-viewer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--overlay-scrim);display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.img-viewer-inner{background:var(--surface);border-radius:12px;padding:12px;max-width:88vw;box-shadow:var(--elev-modal);display:flex;flex-direction:column;gap:8px}.img-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:14px;font-weight:700;color:var(--fg)}.img-viewer-close{border:none;background:var(--surface-2);border-radius:6px;width:26px;height:26px;cursor:pointer;font-size:13px;color:var(--fg-2)}.img-viewer-close:hover{background:var(--surface-3)}.img-viewer-inner>img{max-width:84vw;max-height:74vh;border-radius:8px;object-fit:contain}.img-viewer-src{font-size:11px;color:var(--meta);max-width:84vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.result-img.clickable{cursor:zoom-in}.tool-node.jcard{width:264px;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none;overflow:visible}.jcard-outer{display:flex;align-items:center;gap:6px;padding:0 2px 5px;font-size:12px;cursor:default}.jcard-outer-icon{font-size:12px}.jcard-outer-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--fg-2)}.jcard-caret{border:none;background:transparent;cursor:pointer;color:var(--meta);font-size:10px;padding:2px 5px;border-radius:4px}.jcard-caret:hover{background:var(--surface-3);color:var(--fg-2)}.jcard-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;cursor:pointer;transition:box-shadow .15s;position:relative}.jcard-card:hover{box-shadow:var(--elev-overlay)}.jcard-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent);z-index:1;pointer-events:none}.jcard-media{position:relative;height:130px;background:var(--surface-2);display:flex;align-items:center;justify-content:center;overflow:hidden}.jcard-img{width:100%;height:100%;object-fit:cover;cursor:zoom-in;display:block}.jcard-video{width:100%;height:100%;object-fit:contain;background:var(--media-backdrop)}.jcard-audio{width:88%}.jcard-media-mask{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:var(--overlay-scrim-soft);display:flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--fg-2);font-weight:600}.jcard-media-mask.err{color:var(--danger)}.jcard-placeholder{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--meta)}.jcard-ph-icon{font-size:30px;opacity:.75}.jcard-ph-text{font-size:11.5px}.jcard-textarea{width:100%;height:100%;border:none;resize:none;outline:none;background:transparent;padding:10px 12px;font-size:12.5px;line-height:1.55;color:var(--fg);font-family:inherit}.jcard-output{width:100%;height:100%;overflow:auto;padding:10px 12px;font-size:12px;line-height:1.55;color:var(--fg-2);white-space:pre-wrap;word-break:break-word}.jcard-timeline{width:100%;height:100%;display:flex;flex-direction:column;padding:8px 10px;gap:5px;background:var(--surface)}.jcard-tl-ruler{display:flex;justify-content:space-between;height:10px;border-bottom:1px solid var(--border)}.jcard-tl-tick{width:1px;height:5px;background:var(--border-strong);margin-top:5px}.jcard-tl-track{flex:1;border:1px dashed var(--border-strong);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11.5px;color:var(--meta);background:var(--bg)}.jcard-info{display:flex;align-items:flex-start;gap:8px;padding:9px 20px 11px 12px;background:var(--surface)}.jcard-resize{position:absolute;right:0;bottom:0;width:18px;height:18px;cursor:nwse-resize;z-index:5;opacity:0;transition:opacity .15s}.tool-node.jcard:hover .jcard-resize{opacity:1}.jcard-resize:after{content:"";position:absolute;right:4px;bottom:4px;width:0;height:0;border-style:solid;border-width:0 0 9px 9px;border-color:transparent transparent var(--meta) transparent}.jcard-resize:hover:after{border-color:transparent transparent var(--fg-2) transparent}.jcard-info-left{flex:1;min-width:0}.jcard-btns{display:flex;align-items:center;gap:6px;margin-bottom:7px}.jcard-dot{width:8px;height:8px;border-radius:50%;flex:none}.jcard-btn{min-width:30px;height:26px;padding:0 9px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--fg-2);font-size:12.5px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px}.jcard-btn:hover{background:var(--surface-3)}.jcard-btn:active{transform:scale(.97);transition:transform .1s}.jcard-btn.accent{background:var(--accent);border-color:var(--accent);color:var(--accent-on)}.jcard-btn.accent:hover{filter:brightness(1.06)}.jcard-btn:disabled{opacity:.6;cursor:wait}.jcard-name-row{display:flex;align-items:center;gap:6px;min-width:0}.jcard-name{font-size:13px;font-weight:700;color:var(--fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jcard-pending{color:var(--warn);font-size:12px;font-style:normal;font-weight:600;flex:none}.jcard-meta{font-size:11px;color:var(--meta);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jcard-more{border:none;background:transparent;color:var(--meta);font-size:16px;cursor:pointer;padding:2px 6px;border-radius:6px;flex:none}.jcard-more:hover{background:var(--surface-2);color:var(--fg-2)}.tool-node.jcard.jcollapsed .jcard-card,.tool-node.jcard.jcollapsed .jcard-edge{display:none}.jcard-edge{position:absolute;top:50%;transform:translateY(-50%);width:22px;height:22px;border-radius:50%;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:13px;line-height:1;cursor:pointer;z-index:5;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s;box-shadow:var(--elev-raised)}.jcard-edge.right{right:-11px}.jcard-edge.left{left:-11px}.tool-node.jcard:hover .jcard-edge{opacity:1}.jcard-edge:hover{background:var(--accent);color:var(--accent-on);border-color:var(--accent)}.jcard-quick-menu{position:absolute;top:50%;transform:translateY(-50%);width:150px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--elev-overlay);padding:6px;z-index:30}.jcard-quick-menu.downstream{left:calc(100% + 14px)}.jcard-quick-menu.upstream{right:calc(100% + 14px)}.jcard-quick-title{font-size:11px;color:var(--meta);padding:4px 8px 6px}.jcard-quick-item{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;font-size:12.5px;color:var(--fg-2);cursor:pointer}.jcard-quick-item:hover{background:var(--surface-2)}.jcard-quick-icon{font-size:13px}.detail-panel{position:fixed;top:60px;right:12px;bottom:12px;width:340px;z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--elev-overlay);display:flex;flex-direction:column;overflow:hidden}.detail-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border)}.detail-icon{font-size:20px}.detail-head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.detail-type{font-size:11px;color:var(--meta)}.detail-name-input{border:1px solid transparent;border-radius:6px;background:transparent;font-size:14px;font-weight:700;color:var(--fg);padding:2px 6px;margin-left:-6px;width:100%}.detail-name-input:hover,.detail-name-input:focus{border-color:var(--border);background:var(--bg);outline:none}.detail-close{border:none;background:var(--surface-2);border-radius:8px;width:28px;height:28px;cursor:pointer;color:var(--fg-2);flex:none}.detail-close:hover{background:var(--surface-3)}.detail-body{flex:1;overflow-y:auto;padding:12px 14px}.dfield{margin-bottom:12px}.dfield>label{display:block;font-size:11.5px;color:var(--muted);margin-bottom:4px;font-weight:600}.dfield textarea,.dfield select,.dfield input[type=text],.dfield input[type=number]{width:100%;border:1px solid var(--border);border-radius:8px;padding:7px 9px;font-size:12.5px;font-family:inherit;background:var(--surface);color:var(--fg)}.dfield textarea{resize:vertical}.dfield input:focus,.dfield textarea:focus,.dfield select:focus{outline:none;border-color:var(--accent-line)}.detail-foot{border-top:1px solid var(--border);padding:10px 14px}.detail-msg{font-size:11.5px;color:var(--muted);margin-bottom:8px;word-break:break-all}.detail-foot-btns{display:flex;gap:8px;flex-wrap:wrap}.btn.danger{color:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:var(--danger-bg)}.pane-menu{min-width:150px}.ctx-item.has-sub{display:flex;align-items:center;justify-content:space-between;gap:10px}.ctx-caret{color:var(--meta)}.ctx-icon{margin-right:2px}.ctx-submenu{margin-top:4px;border-top:1px solid var(--border);padding-top:4px;max-height:320px;overflow-y:auto}.field-err{font-size:11px;color:var(--danger);margin-top:4px}.node-palette.rail{width:46px;min-width:46px;padding:8px 4px;align-items:center}.palette-rail{display:flex;flex-direction:column;align-items:center;gap:6px;width:100%;height:100%}.rail-btn{width:34px;height:34px;border:none;border-radius:8px;cursor:pointer;background:transparent;font-size:15px;color:inherit}.rail-btn:hover{background:var(--surface-3)}.rail-spacer{flex:1}.rail-hint{writing-mode:vertical-rl;font-size:10px;opacity:.55;letter-spacing:2px;margin-bottom:6px;white-space:nowrap}.palette-common{display:flex;flex-direction:column;gap:2px;overflow-y:auto;flex:1}.palette-common .palette-item{cursor:pointer;padding:7px 8px}.palette-foot-hint{font-size:10px;opacity:.55;margin:8px 0 4px;text-align:center}.palette-collapse{margin-top:auto;margin-bottom:4px}.ctx-submenu.add-full{max-height:56vh;overflow-y:auto;min-width:220px}.ctx-cat-title{font-size:10px;opacity:.55;padding:6px 12px 2px;letter-spacing:1px;-webkit-user-select:none;user-select:none}.ctx-item .ctx-desc{font-size:10px;opacity:.5;margin-left:6px}.ctx-item.ctx-back{color:var(--accent);font-size:12px;padding:6px 12px;border-bottom:1px solid var(--border);margin-bottom:2px;position:sticky;top:0;background:var(--panel-bg);z-index:1}.node-pop{position:fixed;z-index:1000;width:420px;height:500px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid var(--border);border-radius:12px;box-shadow:var(--elev-modal);overflow:hidden}.node-pop.max{width:calc(100vw - 32px);height:calc(100vh - 32px)}.node-pop-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border-soft);border-top:3px solid var(--accent)}.node-pop-icon{font-size:18px}.node-pop-name{flex:1;border:none;background:transparent;outline:none;font-size:14px;font-weight:600;color:inherit;min-width:0}.node-pop-tools{display:flex;gap:4px}.node-pop-btn{width:26px;height:26px;border:none;border-radius:6px;cursor:pointer;background:var(--surface-3);color:inherit;font-size:13px;display:flex;align-items:center;justify-content:center}.node-pop-btn:hover{background:var(--surface-3)}.node-pop-btn.ok{color:var(--success);font-weight:700}.node-pop-body{flex:1;overflow-y:auto;padding:10px 12px}.node-pop-foot{border-top:1px solid var(--border-soft);padding:8px 28px 8px 12px}.node-pop-foot-btns{display:flex;gap:8px;justify-content:flex-end}.node-pop-resize{position:absolute;right:0;bottom:0;width:20px;height:20px;cursor:nwse-resize;z-index:3}.node-pop-resize:after{content:"";position:absolute;right:4px;bottom:4px;width:0;height:0;border-style:solid;border-width:0 0 10px 10px;border-color:transparent transparent var(--meta) transparent}.node-pop-resize:hover:after{border-color:transparent transparent var(--fg-2) transparent}.tool-node.jcard{--cw: 264px}.tool-node.jcard .jcard-outer{font-size:clamp(6px,calc(var(--cw) * .045),12px);gap:calc(var(--cw) * .023);padding:0 calc(var(--cw) * .008) calc(var(--cw) * .019)}.tool-node.jcard .jcard-outer-icon{font-size:clamp(6px,calc(var(--cw) * .045),12px)}.tool-node.jcard .jcard-caret{font-size:clamp(5px,calc(var(--cw) * .038),10px);padding:1px 3px}.tool-node.jcard .jcard-placeholder{gap:calc(var(--cw) * .023)}.tool-node.jcard .jcard-ph-icon{font-size:clamp(10px,calc(var(--cw) * .11),30px)}.tool-node.jcard .jcard-ph-text{font-size:clamp(6px,calc(var(--cw) * .044),11.5px)}.tool-node.jcard .jcard-output{font-size:clamp(6px,calc(var(--cw) * .045),12px);padding:calc(var(--cw) * .038) calc(var(--cw) * .045)}.tool-node.jcard .jcard-textarea{font-size:clamp(6px,calc(var(--cw) * .045),12px)}.tool-node.jcard .jcard-info{gap:calc(var(--cw) * .03);padding:calc(var(--cw) * .034) calc(var(--cw) * .076) calc(var(--cw) * .042) calc(var(--cw) * .045)}.tool-node.jcard .jcard-btns{gap:calc(var(--cw) * .023);margin-bottom:calc(var(--cw) * .027)}.tool-node.jcard .jcard-dot{width:clamp(3px,calc(var(--cw) * .03),8px);height:clamp(3px,calc(var(--cw) * .03),8px)}.tool-node.jcard .jcard-btn{min-width:clamp(12px,calc(var(--cw) * .11),30px);height:clamp(10px,calc(var(--cw) * .098),26px);padding:0 calc(var(--cw) * .034);border-radius:calc(var(--cw) * .03);font-size:clamp(6px,calc(var(--cw) * .048),13px)}.tool-node.jcard .jcard-name{font-size:clamp(7px,calc(var(--cw) * .049),13px)}.tool-node.jcard .jcard-name-row{gap:calc(var(--cw) * .023)}.tool-node.jcard .jcard-pending{font-size:clamp(6px,calc(var(--cw) * .045),12px)}.tool-node.jcard .jcard-meta{font-size:clamp(5.5px,calc(var(--cw) * .042),11px);margin-top:calc(var(--cw) * .011)}.tool-node.jcard .jcard-more{font-size:clamp(8px,calc(var(--cw) * .06),16px);padding:1px 2px}.tool-node.jcard.tiny .jcard-meta,.tool-node.jcard.tiny .jcard-pending{display:none}.tool-node.jcard.tiny .jcard-btns{margin-bottom:0}.btn-stop{background:var(--danger);color:var(--accent-on);border-color:var(--danger)}.btn-stop:hover{background:var(--danger-fg)}.palette-tabs{display:flex;gap:4px;padding:8px 8px 0}.palette-tab{flex:1;text-align:center;padding:5px 4px;font-size:12px;border-radius:8px 8px 0 0;background:var(--surface-2);color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.palette-tab.active{background:var(--surface);color:var(--text);font-weight:700;border:1px solid var(--border);border-bottom:none}.palette-search{width:100%;margin:6px 0;padding:5px 8px;border:1px solid var(--border);border-radius:8px;font-size:12px}.node-list{max-height:42vh;overflow:auto}.node-list-item{display:flex;align-items:center;gap:6px;padding:5px 8px;border-radius:8px;cursor:pointer;font-size:12px}.node-list-item:hover{background:var(--surface-2)}.node-list-item.active{background:var(--info-bg)}.nl-icon{font-size:13px}.nl-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nl-pending{font-size:10px;color:var(--warn-fg);background:var(--warn-bg);border-radius:6px;padding:0 4px}.nl-dot{width:7px;height:7px;border-radius:50%;background:var(--border-strong);flex-shrink:0}.nl-dot.running{background:var(--accent)}.nl-dot.done{background:var(--success)}.nl-dot.error{background:var(--danger)}.nl-dot.waiting{background:var(--warn)}.nl-dot.stale{background:var(--border-strong)}.tpl-gallery{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(720px,84%);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:var(--elev-modal);padding:14px 16px;z-index:12}.tpl-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:14px;margin-bottom:10px}.tpl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.tpl-card{border:1px solid var(--border);border-radius:10px;padding:12px;cursor:pointer;background:var(--surface);transition:box-shadow .15s,transform .15s}.tpl-card:hover{box-shadow:var(--elev-overlay);transform:translateY(-2px)}.tpl-icon{font-size:22px}.tpl-name{font-weight:700;font-size:13px;margin-top:4px}.tpl-desc{font-size:12px;color:var(--muted);margin-top:2px}.tpl-count{font-size:11px;color:var(--meta);margin-top:6px}.tpl-foot{font-size:11px;color:var(--meta);margin-top:10px;text-align:center}.apply-form{display:flex;flex-direction:column;gap:6px;margin:8px 0;max-height:46vh;overflow:auto}.apply-form>label{font-size:12px;font-weight:600}.apply-form select{padding:6px 8px;border:1px solid var(--border);border-radius:8px}.node-pop-batch{border-top:1px solid var(--border);padding:8px 10px;background:var(--bg)}.npb-row{display:flex;align-items:center;gap:8px;font-size:12px}.npb-row input{width:70px;padding:4px 6px;border:1px solid var(--border);border-radius:6px}.npb-hint{font-size:11px;color:var(--muted);margin:6px 0}.npb-btns{display:flex;gap:6px;justify-content:flex-end}.file-from{font-size:10px;color:var(--info);background:var(--info-bg);border-radius:6px;padding:1px 5px;margin:2px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-canvas{font-size:10px;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:0 4px;margin-left:3px}.crash-screen{display:flex;align-items:center;justify-content:center;height:100%;padding:24px;background:var(--bg)}.crash-card{max-width:760px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;box-shadow:var(--elev-modal)}.crash-title{font-size:16px;font-weight:800;margin-bottom:10px}.crash-msg{font-size:13px;color:var(--danger-fg);background:var(--danger-bg);border-radius:8px;padding:8px 10px;margin-bottom:10px}.crash-stack{font-size:11px;color:var(--muted);background:var(--surface-2);border-radius:8px;padding:8px 10px;overflow:auto;max-height:220px;margin:0 0 10px;white-space:pre-wrap}.crash-actions{display:flex;gap:8px}.crash-hint{font-size:12px;color:var(--muted);margin-top:10px}.jcard-media-mask.stale{background:var(--overlay-scrim-soft)}@media (max-width: 768px){:root{--palette-w: 190px;--side-w: 240px}.node-palette{width:var(--palette-w);padding:6px}.cat-item{gap:3px;padding:5px 4px}.side-panel{width:var(--side-w)}.tool-node.jcard{min-width:200px!important}.topbar-brand{display:none}.asset-grid{grid-template-columns:repeat(2,1fr);gap:6px}.files-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 992px){:root{--palette-w: 200px;--side-w: 260px}.cat-label span.cat-desc{display:none}.asset-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 576px){:root{--palette-w: 100%;--side-w: 100%;--topbar-h: 42px}.main-area{flex-direction:column}.node-palette,.side-panel{width:100%!important;max-height:35vh;border-right:none;border-left:none;border-bottom:1px solid var(--border);overflow-y:auto}.node-palette{order:-1}.side-panel{order:2}.react-flow__viewport{transform-origin:center center}.topbar{height:var(--topbar-h);padding:0 8px;gap:4px}.topbar-brand{display:none}.project-select{max-width:100px;font-size:12px}.tool-node.jcard{min-width:calc(100vw - 32px)!important;max-width:calc(100vw - 32px)}.asset-grid{grid-template-columns:1fr}.files-grid{grid-template-columns:repeat(2,1fr);gap:4px}.modal-mask{padding:0!important}.modal.asset-detail{max-width:100%;min-height:100vh;border-radius:0}.context-menu{width:calc(100vw - 32px)!important;left:50%!important;transform:translate(-50%)!important}.node-pop{width:calc(100vw - 32px)!important;left:50%!important;transform:translate(-50%)!important;max-height:60vh;bottom:0!important;top:auto!important;border-radius:12px 12px 0 0}.tpl-gallery{width:90vw;padding:10px}.tpl-grid{grid-template-columns:repeat(2,1fr);gap:6px}}@media (pointer: coarse){.btn,.jcard-btn,.icon-btn,.asset-card,.cat-item{min-height:44px;min-width:44px}*:after,*:before{pointer-events:none}.asset-card:active{transform:scale(.95);transition:transform .1s}*,*:before,*:after{animation-duration:.15s!important;transition-duration:.15s!important}.asset-card:hover{box-shadow:var(--elev-raised)}}.react-flow{--xy-background-pattern-dots-color: var(--canvas-dot);--xy-controls-box-shadow: var(--elev-overlay);--xy-controls-button-background-color: var(--surface);--xy-controls-button-background-color-hover: var(--surface-3);--xy-controls-button-border-color: var(--border);--xy-controls-button-color: var(--fg-2);--xy-controls-button-color-hover: var(--fg);--xy-minimap-background-color: var(--surface);--xy-minimap-mask-background-color: var(--overlay-scrim-soft);--xy-minimap-node-background-color: var(--border-strong);--xy-minimap-node-stroke-color: var(--surface);--xy-edge-stroke: var(--border-strong);--xy-edge-stroke-selected: var(--accent);--xy-connectionline-stroke: var(--accent);--xy-attribution-background-color: transparent;--xy-selection-background-color: var(--accent-ring);--xy-selection-border: 1px dotted var(--accent);--xy-handle-background-color: var(--accent);--xy-handle-border-color: var(--surface);--xy-node-border-radius: var(--node-radius);--xy-node-color: var(--fg);background-color:var(--bg)}.minimap{background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important;box-shadow:var(--elev-overlay)!important}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg:#131720;--surface:#1b202b;--surface-2:#232936;--surface-3:#2d3444;--surface-inset:#161b24;--canvas-dot:#333c4d;--fg:#eef1f6;--fg-2:#c3cad6;--muted:#98a2b3;--meta:#6f7a8c;--border:#2c3441;--border-strong:#3d4757;--border-soft:rgba(255,255,255,.06);--border-focus:var(--brand-400);--accent:var(--brand-400);--accent-on:#0a1420;--accent-hover:var(--brand-300);--accent-active:var(--brand-500);--accent-soft:rgba(71,137,228,.16);--accent-ring:rgba(71,137,228,.4);--accent-line:rgba(71,137,228,.4);--success:#3fbd85;--success-bg:rgba(63,189,133,.14);--success-fg:#7fd7ae;--warn:#dda139;--warn-bg:rgba(221,161,57,.14);--warn-fg:#f0c674;--danger:#f07067;--danger-bg:rgba(240,112,103,.14);--danger-fg:#f8a19b;--info:var(--brand-400);--info-bg:rgba(71,137,228,.16);--info-fg:var(--brand-300);--btn-primary-bg:var(--accent);--btn-primary-fg:var(--accent-on);--btn-primary-hover:var(--accent-hover);--btn-secondary-bg:var(--surface-2);--btn-secondary-fg:var(--fg);--btn-secondary-border:var(--border-strong);--btn-ghost-fg:var(--muted);--btn-ghost-hover-bg:var(--surface-2);--btn-danger-bg:var(--surface-2);--btn-danger-fg:var(--danger);--btn-danger-border:rgba(240,112,103,.5);--input-bg:var(--surface-2);--input-fg:var(--fg);--input-border:var(--border-strong);--input-placeholder:var(--meta);--input-focus-border:var(--brand-400);--input-disabled-bg:var(--surface-3);--input-disabled-fg:var(--meta);--card-bg:var(--surface);--card-border:var(--border);--card-shadow:var(--elev-flat);--node-card-bg:var(--surface);--node-card-border:var(--border-strong);--node-media-bg:var(--surface-inset);--node-selected-ring:0 0 0 2px var(--accent);--node-shadow:var(--elev-flat);--badge-bg:var(--surface-2);--badge-fg:var(--fg-2);--divider:var(--border);--scrollbar-thumb:#39424f;--scrollbar-thumb-hover:#4a5566;--skeleton-base:#242b37;--skeleton-sheen:rgba(255,255,255,.05);--elev-ring:0 0 0 1px var(--border);--elev-raised:0 1px 2px rgba(0,0,0,.3),0 4px 12px rgba(0,0,0,.34);--elev-overlay:0 8px 24px rgba(0,0,0,.44),0 2px 6px rgba(0,0,0,.3);--elev-modal:0 24px 64px rgba(0,0,0,.56),0 4px 12px rgba(0,0,0,.4);--overlay-scrim:rgba(6,9,14,.6);--focus-ring:0 0 0 2px var(--bg),0 0 0 4px var(--accent);--focus-ring-danger:0 0 0 2px var(--bg),0 0 0 4px var(--danger)}:root:not([data-theme=light]){--node-author-fg:var(--brand-300);--node-author-bg:rgba(71,137,228,.16);--node-author-line:rgba(71,137,228,.4);--node-asset-fg:#5fce9c;--node-asset-bg:rgba(63,189,133,.14);--node-asset-line:rgba(63,189,133,.36);--node-media-fg:#e8b45c;--node-media-bg:rgba(221,161,57,.14);--node-media-line:rgba(221,161,57,.36);--node-audio-fg:#b490e0;--node-audio-bg:rgba(154,106,220,.16);--node-audio-line:rgba(154,106,220,.38);--node-flow-fg:var(--brand-300);--node-flow-bg:rgba(71,137,228,.14);--node-flow-line:rgba(71,137,228,.36);--node-util-fg:#a3adbd;--node-util-bg:var(--surface-2);--node-util-line:var(--border-strong);--node-running:var(--brand-400);--node-running-bg:rgba(71,137,228,.16);--node-error:var(--danger);--node-stale:var(--meta);--node-done:var(--success)}:root:not([data-theme=light]){color-scheme:dark}:root:not([data-theme=light]){--border:var(--n-400);--border-strong:var(--n-300)}:root:not([data-theme=light]){--stage-bar-bg:var(--surface-2);--stage-fg:var(--muted);--stage-fg-hover:var(--fg);--stage-bg-hover:var(--surface-3);--stage-active-fg:var(--accent);--stage-active-bg:var(--accent-soft);--stage-active-indicator:var(--accent);--stage-done-dot:var(--success);--stage-empty-dot:var(--border-strong);--stage-blocked-dot:var(--warn);--stage-unavailable-fg:var(--meta);--stage-unavailable-bg:var(--surface-2);--stage-dim-opacity:.26;--stage-dim-opacity-hover:.7;--stage-dim-saturation:.25;--stage-dim-edge-opacity:.15;--planned-fg:var(--meta);--planned-bg:var(--surface-2);--planned-border:var(--border);--planned-badge-bg:var(--surface-3);--planned-badge-fg:var(--meta);--planned-hover-fg:var(--fg-2);--svc-online:var(--success);--svc-online-bg:var(--success-bg);--svc-online-ring:rgba(63,189,133,.24);--svc-busy:var(--warn);--svc-busy-bg:var(--warn-bg);--svc-busy-ring:rgba(221,161,57,.26);--svc-offline:var(--meta);--svc-offline-bg:var(--surface-2);--svc-offline-ring:rgba(111,122,140,.2);--svc-fault:var(--danger);--svc-fault-bg:var(--danger-bg);--svc-fault-fg:var(--danger-fg);--svc-panel-bg:var(--surface);--svc-panel-border:var(--border);--svc-cap-hover-bg:var(--surface-2);--svc-latency-ok:var(--success);--svc-latency-slow:var(--warn);--svc-latency-unknown:var(--meta);--ai-btn-busy:var(--warn-bg);--ai-btn-busy-fg:var(--warn-fg);--ai-btn-busy-border:var(--warn);--ai-btn-offline:var(--surface-2);--ai-btn-offline-fg:var(--meta);--cap-unavailable-fg:var(--meta);--cap-unavailable-bg:var(--surface-2);--cap-unavailable-badge:var(--surface-3)}:root:not([data-theme=light]){--node-author-selected:var(--brand-300);--node-asset-selected:rgba(63,189,133,.55);--node-media-selected:rgba(221,161,57,.55);--node-audio-selected:rgba(180,144,224,.5);--node-flow-selected:var(--brand-300);--node-util-selected:var(--n-400);--node-author-selected-bg:rgba(71,137,228,.2);--node-asset-selected-bg:rgba(63,189,133,.18);--node-media-selected-bg:rgba(221,161,57,.18);--node-audio-selected-bg:rgba(154,106,220,.2);--node-flow-selected-bg:rgba(71,137,228,.18);--node-util-selected-bg:var(--surface-3);--node-running-mask-fg:var(--brand-300);--node-error-mask-fg:var(--danger-fg);--node-stale-mask-bg:var(--surface-2);--node-pending-bg:rgba(221,161,57,.16);--node-pending-fg:var(--warn-fg)}}@media (forced-colors: active){.btn,.jcard-btn,.icon-btn,.asset-card,.cat-item,.project-select,input,textarea,select{border:1px solid ButtonText}.jcard-dot{background:CanvasText}*:focus-visible{outline:3px solid Highlight;outline-offset:2px}}.toast-stack{position:fixed;top:calc(var(--topbar-h, 48px) + 12px);right:12px;z-index:9000;display:flex;flex-direction:column;gap:8px;width:min(320px,calc(100vw - 24px));pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:11px 12px;background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:10px;box-shadow:var(--elev-overlay);cursor:pointer;animation:toast-in .22s ease-out}.toast-ok{border-left-color:var(--success)}.toast-err{border-left-color:var(--danger)}.toast-info{border-left-color:var(--accent)}.toast-icon{flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:var(--accent-on);background:var(--accent);margin-top:1px}.toast-ok .toast-icon{background:var(--success)}.toast-err .toast-icon{background:var(--danger)}.toast-body{min-width:0;flex:1}.toast-title{font-size:13px;font-weight:700;color:var(--text);line-height:1.3}.toast-msg{font-size:12px;color:var(--muted);margin-top:2px;line-height:1.45;word-break:break-word}@keyframes toast-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes icon-spin{to{transform:rotate(360deg)}}.icon-spin{animation:icon-spin .8s linear infinite}@media (prefers-reduced-motion: reduce){.icon-spin{animation:none}}@media (forced-colors: active){.toast{border:1px solid ButtonText}.toast-icon{background:CanvasText}}
