.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: rgba(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: rgba(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-props, var(--xy-background-color, 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__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.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__pane.selection .react-flow__panel{pointer-events:none}.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.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-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__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right: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:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));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))}:root{--bg: #ffffff;--bg-elev: #fafbfc;--bg-elev-2: #f6f8fa;--bg-elev-3: #eef1f4;--border: #d0d7de;--border-strong: #afb8c1;--text: #1f2328;--text-muted: #57606a;--text-subtle: #8c959f;--accent: #0969da;--accent-hover: #0550ae;--accent-soft: #ddf4ff;--status-pending: #8c959f;--status-ready: #bf8700;--status-running: #0969da;--status-waiting: #bc4c00;--status-done: #1a7f37;--status-failed: #cf222e;--status-skipped: #afb8c1;--kind-local: #8250df;--kind-sync: #bf3989;--kind-async: #0969da}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Inter,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}button{font-family:inherit}input,select,textarea{font-family:inherit;color:var(--text)}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:14px;padding:10px 20px;background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0}.topbar h1{font-size:14px;font-weight:600;margin:0;letter-spacing:.1px}.topbar h1 span{color:var(--accent);font-weight:500}.tab-group{display:flex;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px;padding:2px;gap:2px;margin-left:8px}.tab-btn{background:transparent;border:none;color:var(--text-muted);padding:5px 12px;border-radius:4px;cursor:pointer;font-size:12px;font-weight:500;transition:all .12s ease}.tab-btn:hover{color:var(--text)}.tab-btn.active{background:var(--bg);color:var(--text);box-shadow:0 1px 2px #1f232814}.run-picker{display:flex;gap:6px;margin-left:8px;flex-wrap:nowrap;overflow-x:auto}.view-toggle{display:flex;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:999px;padding:2px;gap:2px;margin-left:8px}.vt-btn{background:transparent;border:none;color:var(--text-muted);padding:4px 12px;border-radius:999px;cursor:pointer;font-size:12px;font-weight:500;transition:all .12s ease}.vt-btn:hover{color:var(--text)}.vt-btn.active{background:var(--accent);color:#fff;box-shadow:0 1px 2px #0969da40}.run-pill{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);padding:5px 11px;border-radius:999px;cursor:pointer;font-size:12px;font-weight:500;transition:all .12s ease;white-space:nowrap}.run-pill:hover{border-color:var(--border-strong);color:var(--text)}.run-pill.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.topbar-right{display:flex;align-items:center;gap:14px;margin-left:auto}.run-summary{display:flex;align-items:center;gap:14px;font-size:12px;color:var(--text-muted)}.run-summary strong{color:var(--text);font-weight:500;font-family:SF Mono,Menlo,Monaco,monospace;font-size:11.5px}.run-status-badge{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:999px;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.run-status-badge.running{background:#0969da1a;color:var(--status-running)}.run-status-badge.succeeded{background:#1a7f371a;color:var(--status-done)}.run-status-badge.failed{background:#cf222e1a;color:var(--status-failed)}.run-status-badge.cancelled{background:var(--bg-elev-2);color:var(--text-muted)}.run-status-badge.pending{background:#bf87001a;color:var(--status-ready)}.run-total-time{display:inline-flex;align-items:baseline;gap:5px;padding:2px 9px;border-radius:999px;font-size:11px;font-variant-numeric:tabular-nums;border:1px solid var(--border);background:var(--bg-elev-2);color:var(--text-muted)}.run-total-time .rtt-label{text-transform:uppercase;letter-spacing:.5px;font-size:9.5px;font-weight:600;color:var(--text-subtle)}.run-total-time .rtt-value{color:var(--text);font-weight:600;font-family:SF Mono,Menlo,Monaco,monospace}.run-total-time.final{background:#1a7f3714;border-color:#1a7f3759}.run-total-time.final .rtt-value{color:var(--status-done)}.run-total-time.live{background:#0969da14;border-color:#0969da59}.run-total-time.live .rtt-value{color:var(--status-running)}.rerun-btn{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text);font-size:11.5px;font-weight:500;padding:3px 10px;border-radius:6px;cursor:pointer;transition:background .12s ease,border-color .12s ease}.rerun-btn:hover{background:var(--accent);border-color:var(--accent);color:#fff}.main{display:flex;flex:1;min-height:0;background:var(--bg-elev)}.share-topbar{display:flex;align-items:center;gap:14px;padding:10px 20px;background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0}.share-topbar h1{font-size:14px;font-weight:600;margin:0;letter-spacing:.1px}.share-topbar h1 span{color:var(--accent);font-weight:500}.share-meta{display:flex;align-items:center;gap:12px;margin-left:auto;font-size:12px;color:var(--text-subtle)}.share-meta strong{color:var(--text);font-family:var(--mono, ui-monospace, monospace);font-size:12px}.share-readonly-badge{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-subtle)}.runs-sidebar{width:var(--runs-sidebar-width, 280px);min-width:200px;flex-shrink:0;background:var(--bg);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;position:relative}.runs-sidebar.collapsed{width:28px;min-width:28px;align-items:stretch}.runs-sidebar-resizer{position:absolute;top:0;right:0;width:6px;height:100%;cursor:col-resize;-webkit-user-select:none;user-select:none;z-index:2;background:transparent;transition:background .12s ease}.runs-sidebar-resizer:hover,.runs-sidebar-resizer:active{background:var(--border)}.sidebar-title{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle);padding:10px 10px 6px 14px;border-bottom:1px solid var(--border);font-weight:600;display:flex;align-items:center;gap:8px}.sidebar-count{font-weight:500;color:var(--text-subtle);font-variant-numeric:tabular-nums;text-transform:none;letter-spacing:0}.sidebar-collapse-btn{margin-left:auto;background:transparent;border:1px solid var(--border);color:var(--text-subtle);border-radius:4px;cursor:pointer;font-size:10px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;padding:0}.sidebar-collapse-btn:hover{background:var(--bg-elev-2);color:var(--text)}.sidebar-collapse-btn.collapsed{margin:6px auto;width:20px;height:40px}.sidebar-filters{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border)}.sidebar-search-input,.sidebar-submitter-select{width:100%;background:var(--bg-elev-1);border:1px solid var(--border);color:var(--text);border-radius:4px;padding:5px 8px;font-size:12px;box-sizing:border-box}.sidebar-search-input:focus,.sidebar-submitter-select:focus{outline:none;border-color:var(--accent)}.sidebar-empty-note{padding:14px 12px;color:var(--text-subtle);font-size:12px;font-style:italic}.sidebar-pager{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 10px;border-top:1px solid var(--border);font-size:11px;color:var(--text-subtle)}.sidebar-pager button{background:transparent;border:1px solid var(--border);color:var(--text);border-radius:4px;width:26px;height:22px;font-size:10px;cursor:pointer;padding:0}.sidebar-pager button:hover:not(:disabled){background:var(--bg-elev-2)}.sidebar-pager button:disabled{opacity:.35;cursor:default}.sidebar-pager-label{font-variant-numeric:tabular-nums}.runs-list{flex:1;overflow-y:auto;padding:4px 0}.run-row-wrap{position:relative}.run-row-wrap:hover .run-row-kebab,.run-row-kebab:focus-visible{opacity:1}.run-row-kebab{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:var(--text-muted);cursor:pointer;font-size:16px;line-height:1;opacity:0;transition:opacity .12s ease,background .12s ease}.run-row-kebab:hover{background:var(--bg-elev-2);color:var(--text)}.run-row{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:none;border-left:2px solid transparent;color:var(--text);text-align:left;padding:7px 32px 7px 12px;cursor:pointer;font-size:12px;transition:background .1s ease,border-color .1s ease}.run-row:hover{background:var(--bg-elev-2)}.run-row.active{background:var(--accent-soft);border-left-color:var(--accent)}.run-row-thumb{width:40px;height:40px;flex-shrink:0;border-radius:4px;overflow:hidden;background:var(--bg-elev-2);display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;color:var(--text-subtle)}.run-row-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.run-row-thumb-icon{opacity:.75}.run-row-thumb-skeleton{width:100%;height:100%;background:linear-gradient(90deg,var(--bg-elev-2) 0%,var(--bg-elev-1) 50%,var(--bg-elev-2) 100%);background-size:200% 100%;animation:run-row-thumb-shimmer 1.8s ease-in-out infinite}@keyframes run-row-thumb-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.run-row-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--status-pending)}.run-row-dot.running{background:var(--status-running);box-shadow:0 0 0 3px #0969da2e}.run-row-dot.succeeded{background:var(--status-done)}.run-row-dot.failed{background:var(--status-failed)}.run-row-dot.cancelled{background:var(--status-skipped)}.run-row-main{display:flex;flex-direction:column;min-width:0;flex:1;gap:2px;line-height:1.2}.run-row-uid{color:var(--text);font-size:11px;font-weight:500;font-family:SF Mono,Menlo,Monaco,monospace;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-row-meta{display:flex;align-items:center;gap:4px;min-width:0}.run-row-recipe{display:inline-block;padding:0 5px;border-radius:6px;background:#636e8224;color:#475569;font-size:9px;font-weight:600;line-height:1.45;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.run-row-user{display:inline-block;padding:0 5px;border-radius:6px;border:1px solid transparent;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:9px;font-weight:600;line-height:1.45;vertical-align:baseline;flex-shrink:0;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-row-when{display:flex;flex-direction:column;align-items:flex-end;flex-shrink:0;margin-left:8px;line-height:1.15}.run-row-time{color:var(--text);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}.run-row-date{color:var(--text-subtle);font-size:10px;white-space:nowrap}.graph{flex:1;min-width:0;position:relative;display:flex;flex-direction:column}.graph-toolbar{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--border);background:var(--bg);flex-shrink:0}.graph-content{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}.react-flow__node{font-family:inherit;border:none!important;background:transparent!important;padding:0!important;width:auto!important}.status-node{background:var(--bg);border:1px solid var(--border);border-radius:8px;min-width:220px;max-width:260px;padding:10px 12px;cursor:pointer;transition:border-color .12s ease,transform .12s ease,box-shadow .12s ease;box-shadow:0 1px 2px #1f23280a}.status-node:hover{border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 4px 10px #1f232814}.status-node.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.status-node.s-running{border:2px solid transparent;background:linear-gradient(var(--bg),var(--bg)) padding-box,repeating-linear-gradient(-45deg,var(--status-running) 0 6px,rgba(9,105,218,.25) 6px 12px) border-box;box-shadow:0 0 0 2px #0969da1a;animation:marching-ants .7s linear infinite}.status-node.s-waiting{border:2px solid var(--status-waiting);animation:waiting-breath 2.4s ease-in-out infinite}@keyframes marching-ants{0%{background-position:0 0,0 0}to{background-position:0 0,17px 0}}@keyframes waiting-breath{0%,to{box-shadow:0 0 0 2px #bc4c0024,0 0 8px #bc4c001a}50%{box-shadow:0 0 0 5px #bc4c003d,0 0 16px #bc4c0038}}@media(prefers-reduced-motion:reduce){.status-node.s-running,.status-node.s-waiting{animation:none}.status-node.s-running{background:var(--bg);border:2px dashed var(--status-running)}.status-node.s-waiting{box-shadow:0 0 0 3px #bc4c0033}}.status-node.s-done{border-color:var(--status-done, #1a7f37);border-width:2px;box-shadow:0 0 0 1px #1a7f372e}.status-node.s-failed{border-color:var(--status-failed);box-shadow:0 0 0 2px #cf222e14}.status-node.s-skipped{opacity:.55;border-style:dashed;background:var(--bg-elev-2)}.status-node.s-pending,.status-node.s-ready{border-style:dashed;background:var(--bg-elev-2)}.status-node.bookend{background:linear-gradient(135deg,#8250df1a,#0969da1a);border-color:#8250df73;border-style:solid;border-width:2px}.status-node.bookend .node-label{font-weight:700;letter-spacing:.3px;text-transform:uppercase;font-size:11px}.react-flow__edge.bookend .react-flow__edge-path{stroke:#8250df99;stroke-width:1.5;stroke-dasharray:4 3}.status-node.decision{background:linear-gradient(135deg,#bf398914,#0969da14);border-color:#bf39898c;border-width:2px;border-style:solid;border-radius:3px;clip-path:polygon(6% 0,94% 0,100% 50%,94% 100%,6% 100%,0 50%);padding:10px 28px}.status-node.decision.selected{border-color:var(--accent)}.node-kind-tag.decision{background:#bf398926;color:#d05c9a}.node-cases{display:flex;flex-direction:column;gap:2px;margin-top:4px;font-family:SF Mono,Menlo,Monaco,monospace;font-size:10px;color:var(--text-muted)}.node-case{display:flex;gap:5px;align-items:baseline;padding:1px 4px;border-radius:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-case.chosen{background:#3fb9501f;color:var(--status-done);font-weight:600}.node-case .case-when{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.85}.node-case .case-arrow{color:var(--text-subtle)}.node-case .case-value{color:var(--accent);font-weight:600}.node-case.chosen .case-value{color:var(--status-done)}.node-outputs{display:flex;flex-direction:column;gap:2px;margin-top:6px;padding-top:5px;border-top:1px dashed var(--border);font-family:SF Mono,Menlo,Monaco,monospace;font-size:10px;line-height:1.4}.output-row{display:flex;justify-content:space-between;gap:6px;overflow:hidden;white-space:nowrap}.output-key{color:var(--text-subtle);flex-shrink:0;max-width:45%;overflow:hidden;text-overflow:ellipsis}.output-val{color:var(--text);overflow:hidden;text-overflow:ellipsis;text-align:right;flex:1;min-width:0}.node-guard{font-family:SF Mono,Menlo,Monaco,monospace;font-size:10px;color:var(--text-subtle);background:#8250df14;padding:1px 5px;border-radius:3px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:fit-content;border-left:2px solid rgba(130,80,223,.4)}@keyframes pulse{0%,to{box-shadow:0 0 0 2px var(--accent-soft)}50%{box-shadow:0 0 0 3px #0969da38}}.node-header{display:flex;align-items:center;gap:8px;margin-bottom:5px}.node-kind-tag{font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;border-radius:3px;line-height:1}.node-kind-tag.local{background:#8250df1a;color:var(--kind-local)}.node-kind-tag.sync_call{background:#bf39891a;color:var(--kind-sync)}.node-kind-tag.async_call{background:#0969da1a;color:var(--kind-async)}.node-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.node-status-dot.pending{background:var(--status-pending)}.node-status-dot.ready{background:var(--status-ready)}.node-status-dot.running{background:var(--status-running);box-shadow:0 0 6px #0969da99;animation:blink 1s ease-in-out infinite}.node-status-dot.waiting{background:var(--status-waiting);box-shadow:0 0 6px #bc4c008c;animation:blink 1.6s ease-in-out infinite}.node-status-dot.done{background:var(--status-done)}.node-status-dot.failed{background:var(--status-failed)}.node-status-dot.skipped{background:var(--status-skipped)}@keyframes blink{0%,to{opacity:1}50%{opacity:.45}}.node-label{font-size:13px;font-weight:600;color:var(--text);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-endpoint{font-family:SF Mono,Menlo,Monaco,monospace;font-size:10.5px;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-uid{font-family:SF Mono,Menlo,Monaco,monospace;font-size:10px;color:var(--accent);background:var(--accent-soft);padding:1px 5px;border-radius:3px;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:fit-content}.node-meta{margin-top:7px;display:flex;justify-content:space-between;font-size:10.5px;color:var(--text-subtle)}.node-meta .status-text{text-transform:capitalize;font-weight:500}.node-timing{display:inline-flex;align-items:baseline;gap:6px;font-variant-numeric:tabular-nums}.node-timing .timing-start{color:var(--text-subtle);opacity:.8;font-size:10px}.node-timing .timing-dur{color:var(--text);font-weight:500}.react-flow__handle{width:7px!important;height:7px!important;background:var(--border-strong)!important;border:1px solid var(--bg)!important}.react-flow__edge-path{stroke:var(--border-strong);stroke-width:1.5}.react-flow__edge.running .react-flow__edge-path,.react-flow__edge.animated .react-flow__edge-path{stroke:var(--status-running);stroke-width:2}.react-flow__edge.done .react-flow__edge-path{stroke:#1a7f378c}.react-flow__edge.skipped .react-flow__edge-path{stroke:var(--status-skipped);stroke-dasharray:4 4;opacity:.55}.react-flow__background{background:var(--bg-elev)}.react-flow__controls{background:var(--bg);border:1px solid var(--border);border-radius:6px;overflow:hidden;box-shadow:0 1px 2px #1f23280a}.react-flow__controls-button{background:var(--bg)!important;border-bottom:1px solid var(--border)!important;color:var(--text)!important;fill:var(--text)!important}.react-flow__controls-button:hover{background:var(--bg-elev-2)!important}.react-flow__minimap{background:var(--bg)!important;border:1px solid var(--border)!important;box-shadow:0 1px 2px #1f23280a}.sidebar{width:var(--inspector-width, 420px);flex-shrink:0;background:var(--bg);border-left:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column}.inspector-resizer{width:6px;flex-shrink:0;cursor:col-resize;-webkit-user-select:none;user-select:none;background:transparent;transition:background .12s ease;z-index:2}.inspector-resizer:hover,.inspector-resizer:active{background:var(--border)}.sidebar-empty{padding:24px 20px;color:var(--text-subtle);font-size:13px}.sidebar-header{padding:16px 20px 12px;border-bottom:1px solid var(--border)}.sidebar-header .node-title{display:flex;align-items:center;gap:8px;margin-bottom:4px}.sidebar-header .node-title h2{margin:0;font-size:15px;font-weight:600}.sidebar-header .node-endpoint{font-size:11px;margin-bottom:10px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.stat{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px;padding:6px 8px}.stat .stat-label{font-size:9.5px;font-weight:600;color:var(--text-subtle);text-transform:uppercase;letter-spacing:.4px;margin-bottom:2px}.stat .stat-value{font-size:12px;color:var(--text);font-family:SF Mono,Menlo,Monaco,monospace}.section{padding:10px 16px;border-bottom:1px solid var(--border)}.section:last-child{border-bottom:none}.section-title{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle);margin:0 0 8px}details.section{padding:6px 16px}details.section>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:revert;padding:4px 0;margin:0;display:flex;align-items:center;gap:6px}details.section[open]>summary{margin-bottom:8px}.section-count{margin-left:auto;font-size:10.5px;color:var(--muted);background:var(--bg-elev-1);border:1px solid var(--border);border-radius:10px;padding:1px 7px;text-transform:none;letter-spacing:0}.json-block{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-family:SF Mono,Menlo,Monaco,monospace;font-size:10.5px;line-height:1.4;color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto;margin:0}.json-block.empty{color:var(--text-subtle);font-style:italic}.json-view-wrap{position:relative}.json-view-controls{position:absolute;top:6px;right:6px;display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--bg);z-index:1;box-shadow:0 1px 2px #1f232814}.json-view-btn{font-size:10.5px;padding:2px 8px;border:0;background:transparent;cursor:pointer;color:var(--text-muted, #777);border-right:1px solid var(--border);line-height:1.4}.json-view-btn:last-child{border-right:0}.json-view-btn.active{background:var(--accent, #2d6cdf);color:#fff}.json-tree{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px;padding:8px 80px 8px 10px;font-family:SF Mono,Menlo,Monaco,monospace;font-size:10.5px;line-height:1.45;color:var(--text);overflow-x:auto}.json-branch{display:inline}.json-children{padding-left:14px;border-left:1px dotted var(--border);margin-left:2px}.json-row{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.json-toggle{border:0;background:transparent;font-size:10px;padding:0 3px 0 0;cursor:pointer;color:var(--text-muted, #777);line-height:1}.json-brace{color:var(--text-muted, #777)}.json-summary{color:var(--text-muted, #777);font-style:italic;margin:0 4px}.json-key{color:#6f42c1;font-weight:600}.json-index,.json-colon{color:var(--text-muted, #777)}.json-string{color:#22863a;white-space:pre-wrap;word-break:break-word}.json-url{text-decoration:underline}.json-number{color:#b08800}.json-bool,.json-null{color:#b31d28;font-style:italic}.json-empty{color:var(--text-muted, #777)}.json-expand{border:0;background:transparent;color:var(--accent, #2d6cdf);cursor:pointer;padding:0 2px;font-size:inherit;font-family:inherit}.error-block{background:#cf222e0f;border-color:#cf222e59;color:#82071e}.media-list{display:flex;flex-direction:column;gap:10px;margin-bottom:10px}.media-card{border:1px solid var(--border);border-radius:6px;background:var(--bg);overflow:hidden}.media-header{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-elev-2);border-bottom:1px solid var(--border);font-size:11px}.media-kind-tag{font-size:9px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:2px 6px;border-radius:3px;color:#fff;background:var(--accent)}.media-kind-tag.video{background:var(--kind-sync)}.media-kind-tag.audio{background:var(--kind-local)}.media-key{color:var(--text-muted);font-family:SF Mono,Menlo,Monaco,monospace;font-size:10.5px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.media-link{font-size:10.5px;color:var(--accent);text-decoration:none;flex-shrink:0}.media-link:hover{text-decoration:underline}.media-copy-btn{background:transparent;border:none;padding:0;cursor:pointer;font:inherit}.media-copy-btn:hover{text-decoration:underline}.media-img,.media-video{display:block;width:100%;max-height:320px;object-fit:contain;background:#000}.media-audio{display:block;width:100%;margin:10px;max-width:calc(100% - 20px)}.new-run{display:flex;flex:1;min-height:0;background:var(--bg-elev)}.recipe-list{width:280px;flex-shrink:0;border-right:1px solid var(--border);background:var(--bg);overflow-y:auto;padding:12px 0}.recipe-list-header{display:flex;align-items:center;gap:8px;padding:0 16px 10px;border-bottom:1px solid var(--border);margin-bottom:8px}.recipe-list-header h2{margin:0;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle)}.recipe-search{flex:1;min-width:0;padding:4px 8px;font-size:12px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elev-1);color:var(--text);outline:none}.recipe-search:focus{border-color:var(--accent)}.recipe-item{display:block;width:100%;text-align:left;background:transparent;border:none;border-left:2px solid transparent;padding:6px 14px;cursor:pointer;transition:background .12s ease}.recipe-item:hover{background:var(--bg-elev-2)}.recipe-item.active{background:var(--accent-soft);border-left-color:var(--accent)}.recipe-item .name{font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:1px}.recipe-item.active .name{color:var(--accent)}.recipe-item .desc{font-size:11px;color:var(--text-muted);line-height:1.3;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.recipe-kind-toggle{display:flex;gap:4px;padding:4px 12px 8px;border-bottom:1px solid var(--border)}.recipe-kind-btn{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:4px 8px;font-size:11.5px;font-weight:600;color:var(--text-muted);background:var(--bg-elev-2);border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:background .12s ease,color .12s ease}.recipe-kind-btn:hover{color:var(--text)}.recipe-kind-btn.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent)}.recipe-kind-count{display:inline-block;min-width:18px;padding:0 4px;font-size:10px;font-weight:700;background:var(--bg-elev-1);border-radius:10px;text-align:center}.recipe-kind-btn.active .recipe-kind-count{background:var(--accent);color:var(--bg)}.recipe-item-kind-chip{display:inline-block;margin-left:6px;padding:0 5px;font-size:9.5px;font-weight:700;letter-spacing:.4px;color:var(--accent);background:var(--accent-soft);border:1px solid var(--accent);border-radius:3px;vertical-align:middle}.form-column{flex:1;min-width:0;overflow-y:auto;padding:14px 24px;max-width:720px}.form-header{margin-bottom:10px}.form-header h2{margin:0 0 2px;font-size:16px;font-weight:600}.form-header .desc{color:var(--text-muted);font-size:12px;line-height:1.4;white-space:pre-wrap}.form-field{margin-bottom:10px}.form-field label{display:block;font-size:12.5px;font-weight:600;color:var(--text);margin-bottom:4px}.form-field .required-mark{color:var(--status-failed);margin-left:2px}.form-field .field-desc{font-size:12px;color:var(--text-muted);margin-bottom:6px;line-height:1.4}.form-field input[type=text],.form-field input[type=number],.form-field textarea,.form-field select{width:100%;padding:7px 10px;font-size:13px;background:var(--bg);border:1px solid var(--border);border-radius:6px;outline:none;transition:border-color .12s ease,box-shadow .12s ease}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.form-field textarea{min-height:72px;resize:vertical;font-family:inherit}.form-field input.invalid,.form-field select.invalid,.form-field textarea.invalid{border-color:var(--status-failed)}.field-numeric-row{display:flex;align-items:center;gap:10px}.field-numeric-row>input[type=number]{flex:1 1 auto}.field-range{flex:0 0 auto;font-size:11.5px;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:nowrap}.field-error{color:var(--status-failed);font-size:11.5px;margin-top:4px}.checkbox-row{display:flex;align-items:center;gap:6px}.checkbox-row input[type=checkbox]{margin:0;width:14px;height:14px}.tag-picker{display:flex;flex-wrap:wrap;gap:6px}.tag-pick-btn{background:var(--bg);border:1px solid var(--border);color:var(--text-muted);padding:4px 10px;border-radius:999px;cursor:pointer;font-size:12px;transition:all .12s ease}.tag-pick-btn:hover{border-color:var(--border-strong);color:var(--text)}.tag-pick-btn.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.form-actions{display:flex;align-items:center;gap:10px;padding-top:10px;margin-top:8px;border-top:1px solid var(--border)}.btn{padding:7px 16px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.btn-primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:disabled{background:var(--bg-elev-2);color:var(--text-subtle);border-color:var(--border);cursor:not-allowed}.btn-secondary{background:var(--bg);color:var(--text);border-color:var(--border)}.btn-secondary:hover{background:var(--bg-elev-2)}.note{font-size:11.5px;color:var(--text-muted);margin-left:auto}.payload-column{width:380px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg);overflow-y:auto}.payload-column .section{border-bottom:1px solid var(--border)}.health-banner{background:#8d580010;border-bottom:1px solid rgba(191,135,0,.4);color:#bf8700;padding:8px 14px;font-size:12.5px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}.health-banner strong{color:#bf8700;white-space:nowrap}.health-banner code{background:#bf87001f;padding:1px 4px;border-radius:3px;font-size:12px}.node-preview-media{display:flex;flex-direction:column;gap:6px;margin-top:6px;padding-top:6px;border-top:1px dashed var(--border)}.node-media-card{border-radius:4px;overflow:hidden;background:#000;line-height:0}.node-media-img,.node-media-video{display:block;width:100%;max-height:160px;object-fit:contain;background:#000}.audio-player{display:flex;align-items:center;gap:8px;padding:5px 10px 5px 5px;border:1px solid var(--border);background:linear-gradient(135deg,var(--bg-elev-2),var(--bg));border-radius:999px;min-height:34px;box-shadow:inset 0 1px #fff9}.audio-player:hover{border-color:var(--border-strong)}.audio-play-btn{flex-shrink:0;width:24px;height:24px;border-radius:50%;border:none;padding:0;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,transform .08s ease,box-shadow .12s ease;box-shadow:0 1px 3px #0969da59}.audio-play-btn:hover{background:var(--accent-hover)}.audio-play-btn:active{transform:scale(.93)}.audio-play-btn.playing{background:var(--status-done);box-shadow:0 0 0 3px #1a7f3733}.audio-play-btn svg{display:block}.audio-play-btn:not(.playing) svg{transform:translate(.5px)}.audio-scrub{flex:1;position:relative;height:16px;cursor:pointer;display:flex;align-items:center}.audio-scrub-track{position:absolute;left:0;right:0;height:4px;background:var(--border);border-radius:999px}.audio-scrub-fill{position:absolute;left:0;height:4px;background:linear-gradient(90deg,var(--accent),#2ea44f);border-radius:999px;pointer-events:none;transition:width .08s linear}.audio-scrub-thumb{position:absolute;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--accent);transform:translate(-50%);pointer-events:none;opacity:0;transition:opacity .12s ease,left .08s linear;box-shadow:0 1px 2px #1f232826}.audio-player:hover .audio-scrub-thumb{opacity:1}.audio-time{font-family:SF Mono,Menlo,Monaco,monospace;font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--text-muted);white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:baseline;gap:3px}.audio-time-sep{color:var(--text-subtle)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 14px;border-radius:6px;font-size:13px;box-shadow:0 6px 20px #1f232840;z-index:100;animation:slideUp .2s ease;display:flex;align-items:center;gap:10px;max-width:min(480px,90vw);border-left:4px solid transparent}.toast-msg{flex:1;overflow-wrap:anywhere}.toast-close{background:transparent;border:0;color:inherit;opacity:.55;font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.toast-close:hover,.toast-close:focus-visible{opacity:1;outline:none}.toast.toast-success{background:#1f6f34;color:#f0fff4;border-left-color:#2da44e}.toast.toast-error{background:#8e1621;color:#fff5f5;border-left-color:#cf222e}.toast.toast-info{border-left-color:#54aeff}@keyframes slideUp{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}.mock-mode{display:flex;flex-direction:column;gap:2px;padding:8px 12px 10px;margin:0 0 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px}.mock-mode>legend{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);padding:0 6px}.mock-mode-option{display:grid;grid-template-columns:16px 72px 1fr;align-items:baseline;column-gap:10px;padding:4px 2px;margin:0;cursor:pointer;font-size:13px;line-height:1.4;border-radius:4px}.mock-mode-option:hover{background:var(--bg-elev-2)}.mock-mode-option input[type=radio]{margin:0;cursor:pointer;justify-self:center;align-self:center}.mock-mode-label{font-weight:600;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text)}.mock-mode-hint{color:var(--text-muted);font-size:12px}.run-priority{display:flex;align-items:center;gap:10px;padding:6px 12px 8px;margin:0 0 12px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px}.run-priority>legend{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);padding:0 6px}.run-priority>input[type=number]{width:60px;font-size:13px;padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:inherit}.run-priority-hint{color:var(--text-muted);font-size:12px}.recipe-count{color:var(--muted);font-size:12px;padding:2px 8px;background:var(--bg);border:1px solid var(--border);border-radius:10px}.empty-main{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;color:var(--muted)}.error-card{max-width:520px;background:#fff5f5;border:1px solid #ffb4b4;border-radius:8px;padding:16px 20px;color:#7a0d0d;font-size:13px;display:flex;flex-direction:column;gap:8px}.error-card code{background:#fff;padding:4px 8px;border-radius:4px;border:1px solid #ffe4e4;font-size:12px;color:#7a0d0d;font-family:ui-monospace,SFMono-Regular,monospace}.error-card .muted{color:#9a3a3a}.empty-note{padding:20px;color:var(--muted);font-size:13px}.recipe-graph-wrap{border:1px solid var(--border);border-radius:8px;background:var(--bg-elev-2);margin-bottom:12px;overflow:hidden}.recipe-graph-title{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg-elev);font-weight:600}.recipe-graph{width:100%}.recipe-graph .react-flow__renderer,.recipe-graph .react-flow__pane{background:var(--bg-elev-2)}.recipe-graph-empty{padding:16px;font-size:12px;color:var(--text-muted)}.recipe-graph .react-flow__node,.recipe-graph .react-flow__node-default{background:#fff;border:1px solid var(--border);border-radius:6px;padding:0;color:var(--text);box-shadow:0 1px 2px #1f23280a;font-family:inherit;visibility:visible!important;box-sizing:border-box}.recipe-graph .react-flow__node.rg-node{width:220px;min-height:72px}.recipe-graph .react-flow__node.rg-start{width:90px;height:34px;background:var(--bg-elev-3);border:1px dashed var(--border-strong);color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.8px;font-weight:600;display:flex;align-items:center;justify-content:center}.recipe-graph .rg-node-body{padding:8px 12px;text-align:left;line-height:1.3}.recipe-graph .rg-node-type{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;margin-bottom:2px}.recipe-graph .rg-node-name{font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-graph .rg-node-endpoint{font-size:11px;color:var(--text-muted);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:ui-monospace,SFMono-Regular,monospace}.recipe-graph .react-flow__handle{background:var(--border-strong);border:none;width:6px;height:6px}.asset-url{display:flex;gap:6px;align-items:stretch}.asset-url input[type=text]{flex:1;min-width:0}.btn-upload{flex-shrink:0;font-size:12.5px;font-weight:600;padding:0 12px;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease}.btn-upload:hover:not(:disabled){background:var(--bg-elev-2);border-color:var(--border-strong)}.btn-upload:disabled{opacity:.55;cursor:progress}.chat-panel{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;background:var(--bg-elev-2);padding:24px 16px 16px;overflow:hidden}.chat-intro{width:100%;max-width:760px;margin:0 auto 14px;padding:0 4px}.chat-title{font-size:15px;font-weight:600;color:var(--text);letter-spacing:-.01em}.chat-sub{font-size:12.5px;color:var(--text-muted);margin-top:3px;line-height:1.5}.chat-stream{flex:1;min-height:0;overflow-y:auto;width:100%;max-width:760px;padding:8px 4px 16px;display:flex;flex-direction:column;gap:10px}.chat-msg{display:flex;width:100%}.chat-msg-user{justify-content:flex-end}.chat-msg-assistant{justify-content:flex-start}.chat-bubble{max-width:80%;padding:10px 14px;border-radius:12px;font-size:13.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 2px #1f23280a}.chat-msg-user .chat-bubble{background:var(--accent);color:#fff;border-bottom-right-radius:4px}.chat-msg-assistant .chat-bubble{background:var(--bg);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-typing{display:inline-flex;gap:4px;padding:12px 14px}.chat-typing span{width:6px;height:6px;border-radius:50%;background:var(--text-subtle);animation:chat-dot 1.2s infinite ease-in-out}.chat-typing span:nth-child(2){animation-delay:.15s}.chat-typing span:nth-child(3){animation-delay:.3s}@keyframes chat-dot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.chat-proposal{align-self:stretch;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-top:4px;box-shadow:0 1px 3px #1f23280f}.chat-proposal-head{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}.chat-proposal-tag{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--accent);background:var(--accent-soft);padding:2px 8px;border-radius:4px}.chat-proposal-name{font-size:14px;font-weight:600;color:var(--text);font-family:ui-monospace,SF Mono,Menlo,monospace}.chat-proposal-body{padding:10px 0 4px}.chat-proposal-empty{font-size:12.5px;color:var(--text-muted);font-style:italic}.chat-proposal-fields{margin:0;display:grid;gap:8px}.chat-proposal-row{display:grid;grid-template-columns:160px 1fr;gap:12px;align-items:baseline;font-size:12.5px}.chat-proposal-row dt{font-weight:600;color:var(--text-muted);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11.5px;text-transform:lowercase}.chat-proposal-row dd{margin:0;color:var(--text);word-break:break-word}.chat-proposal-actions{display:flex;gap:8px;padding-top:12px;border-top:1px solid var(--border);margin-top:12px}.chat-proposal-actions .btn{padding:7px 16px;font-size:12.5px;font-weight:600;border-radius:6px;border:1px solid transparent;cursor:pointer;transition:background .12s ease,border-color .12s ease}.chat-proposal-actions .btn:disabled{opacity:.55;cursor:progress}.chat-error{width:100%;max-width:760px;margin:0 auto 8px;font-size:12px;color:var(--status-failed);background:#fff5f5;border:1px solid #ffd7d9;border-radius:6px;padding:8px 10px}.chat-composer{width:100%;max-width:760px;display:flex;gap:8px;align-items:flex-end;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:8px;box-shadow:0 1px 2px #1f23280a}.chat-input{flex:1;resize:none;border:none;outline:none;background:transparent;color:var(--text);font:inherit;font-size:13.5px;line-height:1.5;padding:6px 4px;min-height:36px;max-height:160px}.chat-input::placeholder{color:var(--text-subtle)}.chat-input:disabled{color:var(--text-subtle);cursor:not-allowed}.chat-send{flex-shrink:0;padding:8px 18px;font-size:13px;font-weight:600;border-radius:6px;border:1px solid transparent;cursor:pointer}.chat-send:disabled{opacity:.55;cursor:not-allowed}.chat-mock-field{margin:12px 0 0;padding:6px 10px 8px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.chat-mock-field>legend{font-size:10.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--text-muted);padding:0 6px}.chat-mock-option{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:12.5px;color:var(--text);cursor:pointer}.chat-mock-option input[type=radio]{margin:0;cursor:pointer}details.section-collapsible{padding:8px 16px;border-bottom:1px solid var(--border)}details.section-collapsible>summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:revert;padding:4px 0;margin:0;display:list-item;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle)}details.section-collapsible[open]>summary{margin-bottom:8px}.status-node.mock-async,.status-node.mock-async.s-done{background:#fff8e6}.status-node.mock-async.s-running,.status-node.mock-async.s-waiting{box-shadow:inset 0 0 0 40px #ffd96c1f}.status-node.mock-async.selected{background:#fff2cc}.tab-new-wrapper{position:relative;display:inline-block}.tab-new-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:260px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000001a;padding:4px;z-index:50;display:flex;flex-direction:column}.tab-new-menu-item{all:unset;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:6px;cursor:pointer;font-size:13px}.tab-new-menu-item:hover,.tab-new-menu-item.active{background:var(--bg-elev-2)}.tab-new-menu-item.active strong{color:var(--accent)}.tab-new-menu-icon{width:20px;text-align:center;font-size:14px;color:var(--text-subtle)}.tab-new-menu-item strong{display:block;font-size:13px;color:var(--text)}.tab-new-menu-item small{display:block;font-size:11px;color:var(--text-muted);margin-top:1px}.batches-list{padding:20px 24px;overflow:auto}.batches-header h2{font-size:18px;margin:0 0 4px}.batches-header .desc{color:var(--text-muted);font-size:13px;margin-bottom:18px}.batches-table{width:100%;border-collapse:collapse;font-size:13px}.batches-table thead th{text-align:left;font-weight:600;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:8px 10px;border-bottom:1px solid var(--border)}.batches-table tbody td{padding:10px;border-bottom:1px solid var(--border);vertical-align:middle}.batch-label-cell{display:flex;flex-direction:column;gap:2px}.batch-uid-link{all:unset;cursor:pointer;font-family:SF Mono,Menlo,Monaco,monospace;font-size:12px;font-weight:600;color:var(--text)}.batch-uid-link:hover{color:var(--accent);text-decoration:underline}.batch-label-btn{all:unset;cursor:pointer;color:var(--text-subtle);font-size:11px}.batch-label-btn:hover{color:var(--accent)}.batch-label-btn em{font-style:italic;color:var(--text-muted);font-weight:400;opacity:.7}.batch-label-cell input{font:inherit;font-size:11px;padding:2px 6px;border:1px solid var(--accent);border-radius:4px;background:var(--bg)}.batch-progress{display:flex;align-items:center;gap:8px;min-width:140px}.batch-progress-bar{flex:1;height:6px;background:var(--bg-elev-3);border-radius:3px;overflow:hidden}.batch-progress-fill{height:100%;background:var(--accent);transition:width .2s ease}.batch-progress-text{font-size:11px;color:var(--text-muted);font-variant-numeric:tabular-nums}.chip{display:inline-block;padding:1px 6px;border-radius:4px;font-size:11px;font-weight:500;background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border)}.chip-succeeded{background:#dafbe1;color:#116329;border-color:#adddbb}.chip-failed{background:#ffebe9;color:#a40e26;border-color:#f0b5b2}.chip-running{background:#ddf4ff;color:#0969da;border-color:#addfff}.chip-mock{background:#fff8e6;color:#9a6700;border-color:#e8d296}.chip-cancelled{background:var(--bg-elev-2);color:var(--text-muted)}.batch-detail{padding:20px 24px;overflow:auto}.batch-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.batch-back-btn{padding:4px 10px!important;font-size:12px!important}.batch-detail-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.batch-detail-label{all:unset;font-size:18px;font-weight:700;color:var(--text);cursor:pointer}.batch-detail-label:hover{color:var(--accent)}.batch-detail-label em{font-style:italic;color:var(--text-muted);font-weight:500}.batch-detail-label-input{font-size:18px;font-weight:700;padding:2px 8px;border:1px solid var(--accent);border-radius:4px}.batch-detail-uid{font-family:monospace;font-size:12px;color:var(--accent)}.batch-detail-recipe{font-size:13px;color:var(--text-muted)}.batch-counters{display:flex;gap:12px;align-items:center;padding:14px 16px;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;margin-bottom:20px}.batch-counter{min-width:72px;padding:6px 10px;border-radius:6px;background:var(--bg);border:1px solid var(--border)}.batch-counter.running{background:#ddf4ff;border-color:#addfff}.batch-counter.succeeded{background:#dafbe1;border-color:#adddbb}.batch-counter.failed{background:#ffebe9;border-color:#f0b5b2}.batch-counter-value{font-size:20px;font-weight:700;line-height:1}.batch-counter-label{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin-top:4px}.batch-overall-progress{flex:1;min-width:180px;display:flex;align-items:center;gap:10px}.batch-rows-section .section-title{margin-bottom:8px}.batch-rows-table{width:100%;border-collapse:collapse;font-size:12px}.batch-rows-table thead th{text-align:left;font-weight:600;font-size:11px;text-transform:uppercase;color:var(--text-muted);padding:6px 8px;border-bottom:1px solid var(--border)}.batch-rows-table tbody td{padding:8px;border-bottom:1px solid var(--border);vertical-align:top}.batch-input-cell,.batch-output-cell{display:inline-block;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--bg-elev-2);padding:2px 6px;border-radius:4px}.batch-error-cell{color:#a40e26;font-size:11px;display:inline-block;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.batch-media-strip{display:flex;gap:6px;align-items:center}.batch-thumb{width:48px;height:48px;object-fit:cover;border-radius:4px;border:1px solid var(--border)}.batch-video-link,.batch-audio-link{font-size:11px;padding:2px 6px;border-radius:4px;background:var(--bg-elev-2);border:1px solid var(--border);text-decoration:none;color:var(--text)}.btn-link{all:unset;cursor:pointer;color:var(--accent);font-family:monospace;font-size:11px}.btn-link:hover{text-decoration:underline}.batch-form{padding:20px 24px;max-width:1100px;overflow:auto}.batch-form-header h2{font-size:18px;margin:0 0 4px}.batch-form-header .desc{color:var(--text-muted);font-size:13px;margin-bottom:18px}.batch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}.batch-field{display:flex;flex-direction:column;gap:4px;font-size:12px}.batch-field>span{font-weight:600;color:var(--text-muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px}.batch-field input,.batch-field select{padding:6px 10px;border:1px solid var(--border);border-radius:6px;font:inherit;background:var(--bg)}.batch-field.mock-field{flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap}.batch-field.mock-field>span{flex:none}.batch-field.mock-field small{color:var(--text-muted);font-size:11px;flex-basis:100%}.batch-field-recipe{position:relative}.batch-recipe-dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;max-height:260px;overflow-y:auto;background:var(--bg, #fff);border:1px solid var(--border);border-radius:6px;box-shadow:0 4px 12px #0000001f;margin-top:2px}.batch-recipe-option{padding:6px 10px;cursor:pointer;font-size:13px}.batch-recipe-option:hover,.batch-recipe-option.active{background:var(--bg-hover, #eef)}.batch-recipe-empty{padding:6px 10px;color:var(--text-muted);font-size:12px}.batch-mode-toggle{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;margin-bottom:10px}.batch-mode-toggle .seg-btn{all:unset;padding:6px 14px;font-size:12px;cursor:pointer;color:var(--text-muted);border-right:1px solid var(--border)}.batch-mode-toggle .seg-btn:last-child{border-right:none}.batch-mode-toggle .seg-btn.active{background:var(--accent-soft);color:var(--accent)}.batch-editor{margin-bottom:12px}.batch-editor-hint{font-size:12px;color:var(--text-muted);margin-bottom:6px}.batch-editor textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:12px;padding:8px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elev);resize:vertical}.batch-subfield{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.batch-subfield>span{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}.batch-preview{font-size:13px;padding:10px 12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:6px;margin-bottom:12px}.batch-preview-err{color:#a40e26}.batch-actions{display:flex;gap:8px}.auth-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid #3a3a3a;border-radius:999px;font-size:12px;color:#bbb;background:#1b1b1b}.auth-chip .auth-user{font-weight:600;color:#ddd}.auth-chip .auth-logout{background:transparent;border:0;color:#9ab;cursor:pointer;padding:0 2px;font-size:12px;text-decoration:underline}.auth-chip .auth-logout:hover{color:#cde}.batch-by{color:#bbb;font-size:12px}.batch-detail-by{color:#9ab;font-size:12px;margin-left:6px}.batch-split{display:flex;flex-direction:column;height:100%}.batch-split-body{display:flex;flex:1;min-height:0;overflow:hidden}.batch-runs-sidebar{width:280px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;background:var(--bg-elev);display:flex;flex-direction:column;padding:8px 0}.batch-runs-sidebar .sidebar-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);padding:4px 14px 8px}.batch-split-right{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.batch-summary-pane{padding:16px 20px;overflow-y:auto;flex:1}.batch-run-pane{display:grid;grid-template-columns:1fr 360px;grid-template-rows:1fr auto;flex:1;min-height:0}.batch-run-pane .graph{grid-row:1 / span 2;min-height:0;overflow:hidden}.batch-run-pane .node-inspector{grid-column:2;grid-row:1;overflow-y:auto}.batch-run-open-link{grid-column:2;grid-row:2;padding:8px 12px;border-top:1px solid var(--border);text-align:right}.status-node.input-stale{outline:2px dashed #bf8700;outline-offset:-2px}.attempt-badge{margin-left:auto;padding:1px 6px;border-radius:10px;font-size:10px;font-weight:600;background:var(--bg-elev-3);color:var(--text-muted);border:1px solid var(--border)}.node-mock-badge{margin-left:auto;padding:1px 6px;border-radius:10px;font-size:9.5px;font-weight:700;letter-spacing:.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;border:1px solid;flex-shrink:0}.node-mock-badge.mock-engine{background:#fff4d6;color:#8a5a00;border-color:#e7c16b}.node-mock-badge.mock-upstream{background:#ddf4ff;color:#0969da;border-color:#8cc4f5}.node-mock-badge+.attempt-badge,.attempt-badge+.node-mock-badge{margin-left:4px}.node-ctx-btn{margin-left:6px;width:20px;height:20px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--text-muted);font-size:16px;line-height:1;cursor:pointer;flex-shrink:0}.node-ctx-btn:hover,.node-ctx-btn:focus-visible{background:var(--bg-elev-3, rgba(110, 118, 129, .15));color:var(--text);border-color:var(--border);outline:none}.node-stale-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#bf8700;margin-left:4px}.node-ctx-menu{position:fixed;z-index:1000;min-width:220px;padding:4px 0;background:var(--bg-elev, #1f232a);border:1px solid var(--border, #30363d);border-radius:6px;box-shadow:0 6px 24px #00000059;font-size:13px;color:var(--text, #e6edf3)}.node-ctx-item{display:flex;align-items:center;gap:12px;width:100%;padding:6px 12px;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer;font:inherit}.node-ctx-item:hover:not(:disabled){background:#6e768133}.node-ctx-item:disabled{color:var(--text-muted, #8b949e);cursor:not-allowed}.node-ctx-label{flex:1}.node-ctx-hint{color:var(--text-muted, #8b949e);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.node-ctx-sep{height:1px;margin:4px 0;background:var(--border, #30363d)}.stale-badge{margin-left:8px;padding:1px 6px;border-radius:3px;background:#fff8c5;border:1px solid #d4a72c;color:#7d4e00;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.inspector-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.inspector-actions .btn-sm{padding:3px 10px;font-size:12px}.inspector-action-hint{color:var(--text-subtle);font-size:11px}.attempts-strip{margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.attempts-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-subtle);margin-bottom:4px}.attempts-chips{display:flex;flex-wrap:wrap;gap:4px}.attempt-chip{padding:2px 8px;font-size:11px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elev-2);color:var(--text-muted);cursor:pointer}.attempt-chip:hover{background:var(--bg-elev-3)}.attempt-chip.selected{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-hover)}.attempt-chip.failed{border-color:#ffccd0;color:var(--status-failed)}.attempt-chip.done{border-color:#b3e2c3;color:var(--status-done)}.attempt-chip.latest{font-weight:600}.rerun-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f232866;display:flex;align-items:center;justify-content:center;z-index:1000}.rerun-dialog{background:var(--bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 16px 48px #1f232838;width:620px;max-width:92vw;max-height:88vh;display:flex;flex-direction:column}.rerun-header{padding:16px 20px 14px;border-bottom:1px solid var(--border);background:var(--bg-elev);border-radius:10px 10px 0 0}.rerun-header-eyebrow{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.rerun-header-title{font-size:18px;font-weight:600;margin:2px 0 0;line-height:1.25;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--text)}.rerun-header-endpoint{margin-top:4px;font-size:11.5px;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;word-break:break-all}.rerun-body{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.rerun-section{display:flex;flex-direction:column;gap:8px}.rerun-section+.rerun-section{padding-top:12px;border-top:1px solid var(--border)}.rerun-section-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.rerun-cascade-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.rerun-cascade-row input[type=checkbox]{margin-top:3px;width:15px;height:15px;cursor:pointer}.rerun-cascade-copy{display:flex;flex-direction:column;gap:1px}.rerun-cascade-headline{font-size:13.5px;font-weight:500;color:var(--text)}.rerun-cascade-sub{font-size:11.5px;color:var(--text-muted)}.rerun-descendants{margin-left:25px}.rerun-descendants summary{font-size:11.5px;color:var(--text-muted);cursor:pointer;padding:2px 0}.rerun-descendants-list{margin-top:4px;padding:6px 8px;font-size:11.5px;background:var(--bg-elev-2);border-radius:4px;max-height:140px;overflow:auto}.rerun-settings{display:grid;grid-template-columns:1fr auto;gap:14px 24px;align-items:start}.rerun-setting{display:flex;flex-direction:column;gap:5px;min-width:0}.rerun-setting-label{font-size:11.5px;color:var(--text-muted);font-weight:500}.rerun-setting-hint{font-size:11px;color:var(--text-muted)}.rerun-priority-group{display:inline-flex;align-items:center;gap:8px}.rerun-payload-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.rerun-payload-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.rerun-payload-toggle input[type=checkbox]{width:15px;height:15px;cursor:pointer}.rerun-input-editor{display:flex;flex-direction:column;gap:8px}.rerun-input-textarea{width:100%;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;padding:10px 12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elev-2);line-height:1.45}.rerun-input-error{color:var(--status-failed);font-size:12px;margin-top:4px}.rerun-input-hint{font-size:11.5px;color:var(--text-muted)}.rerun-input-notice{font-size:12px;line-height:1.45;padding:8px 10px;margin-bottom:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg-elev-2);color:var(--text-muted)}.rerun-input-notice code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:11.5px;color:inherit;background:transparent;padding:0}.rerun-priority{width:64px;font-size:13px;padding:5px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:inherit}.seg{display:inline-flex;border:1px solid var(--border);border-radius:5px;overflow:hidden;background:var(--bg)}.seg-btn{font-size:12px;padding:4px 12px;border:0;background:transparent;cursor:pointer;color:var(--text-muted);border-right:1px solid var(--border);line-height:1.4;font-weight:500}.seg-btn:last-child{border-right:0}.seg-btn:hover:not(.active){background:var(--bg-elev-2);color:var(--text)}.seg-btn.active{background:var(--accent, #2d6cdf);color:#fff}.seg-btn-hidden{display:none}.schema-form,.schema-section{display:flex;flex-direction:column;gap:8px}.schema-advanced{border:1px solid var(--border);border-radius:4px;padding:2px 8px;background:var(--bg-elev-2)}.schema-advanced>summary{cursor:pointer;font-size:11px;color:var(--text-muted, #777);padding:2px 0;text-transform:uppercase;letter-spacing:.02em}.schema-advanced .schema-section-body{display:flex;flex-direction:column;gap:8px;margin-top:6px;padding-bottom:4px}.schema-field{display:flex;flex-direction:column;gap:2px}.schema-field-label{font-size:12px;font-weight:600;display:flex;gap:4px;align-items:baseline}.schema-field-req{color:var(--status-failed);font-weight:700}.schema-field-desc{font-size:11px;color:var(--text-muted, #777);line-height:1.35}.schema-field-hint{font-size:12px;font-style:italic;color:var(--text-muted, #777);padding:6px 0}.schema-input{width:100%;font-size:13px;padding:6px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-elev-1, #fff);color:inherit;box-sizing:border-box}.schema-input-multiline{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;resize:vertical}.schema-input-autogrow{resize:none;overflow-y:hidden}.schema-input-json{background:var(--bg-elev-2)}.schema-field-info{font-size:12px;color:var(--text-muted, #777);cursor:help;-webkit-user-select:none;user-select:none;line-height:1}.rerun-blocked{padding:10px 12px;background:#ffebe9;border:1px solid #ffccd0;border-radius:6px;color:var(--status-failed);font-size:12.5px}.rerun-actions{padding:14px 20px;border-top:1px solid var(--border);background:var(--bg-elev);border-radius:0 0 10px 10px;display:flex;justify-content:flex-end;gap:8px}.author-panel{display:grid;grid-template-columns:360px 1fr;gap:16px;padding:16px;min-height:calc(100vh - 80px)}.author-side{display:flex;flex-direction:column;gap:14px;background:var(--bg-elev);border:1px solid var(--border);border-radius:10px;padding:14px;min-width:0}.author-mode-tabs{display:flex;gap:6px;border-bottom:1px solid var(--border);padding-bottom:10px}.author-mode-tab{flex:1;padding:8px 10px;background:transparent;border:1px solid var(--border);border-radius:6px;color:inherit;cursor:pointer;font-size:13px}.author-mode-tab.active{background:var(--accent, #3b82f6);color:#fff;border-color:var(--accent, #3b82f6)}.author-label{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted, #94a3b8);margin-bottom:4px;display:block}.author-select,.author-name-input,.author-prompt{width:100%;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;color:inherit;font-size:13px;font-family:inherit;box-sizing:border-box}.author-combo{position:relative}.author-combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;max-height:260px;overflow-y:auto;margin:0;padding:4px 0;list-style:none;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 8px 20px #00000040;z-index:30}.author-combo-item{padding:6px 10px;font-size:13px;cursor:pointer;color:inherit}.author-combo-item.hl{background:#60a5fa26}.author-combo-item.selected{color:#60a5fa}.author-combo-empty{padding:6px 10px;font-size:12px;color:var(--muted, #94a3b8);font-style:italic}.author-prompt{resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:12.5px;line-height:1.4}.author-blank-btn{margin-top:8px;width:100%}.author-source-hint{margin-top:8px;font-size:12px;padding:6px 8px;border-radius:4px;background:#ffffff0a;color:var(--muted, #94a3b8)}.author-source-hint.src-user{color:#60a5fa;background:#60a5fa1a}.author-source-hint.src-file{color:#fbbf24;background:#fbbf241a}.author-source-hint.src-new{color:#4ade80;background:#4ade801a}.author-name-block{border-top:1px solid var(--border);padding-top:12px}.author-name-hint,.author-chat-hint{margin-top:6px;font-size:11.5px;color:var(--muted, #94a3b8);line-height:1.4}.author-chat{display:flex;flex-direction:column;gap:8px}.author-actions{display:flex;gap:8px;flex-wrap:wrap}.author-actions .btn{flex:1;min-width:90px}.btn-danger{background:#dc2626;color:#fff;border:1px solid #b91c1c}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.author-validate-msg{font-size:12px;padding:8px 10px;border-radius:6px;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace}.author-validate-msg.msg-ok{background:#4ade801f;color:#4ade80;border:1px solid rgba(74,222,128,.3)}.author-validate-msg.msg-err{background:#f871711f;color:#f87171;border:1px solid rgba(248,113,113,.3)}.author-validate-msg.msg-pending{background:#94a3b81f;color:var(--muted, #94a3b8);border:1px solid var(--border)}.author-editor{border:1px solid var(--border);border-radius:10px;overflow:hidden;min-width:0;background:#282c34;display:flex;flex-direction:column}.author-editor-empty{padding:40px 20px;text-align:center;color:var(--muted, #94a3b8);font-size:13px}.author-editor-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 12px;border-bottom:1px solid var(--border);background:#0003;flex-shrink:0}.author-editor-title{display:flex;flex-direction:column;gap:1px;min-width:0}.author-editor-eyebrow{font-size:10px;letter-spacing:.08em;font-weight:600;color:var(--muted, #94a3b8)}.author-editor-name{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace;font-size:13px;color:#e5e7eb;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.author-editor-tabs{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:#ffffff08}.author-editor-tab{background:transparent;color:var(--muted, #94a3b8);border:none;padding:5px 12px;font-size:12px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.author-editor-tab+.author-editor-tab{border-left:1px solid var(--border)}.author-editor-tab.active{background:#60a5fa26;color:#e5e7eb}.author-view-spinner{font-size:11px;color:var(--muted, #94a3b8)}.author-editor-wrap{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted, #94a3b8);cursor:pointer;-webkit-user-select:none;user-select:none;margin-left:10px}.author-editor-wrap input[type=checkbox]{cursor:pointer;accent-color:#60a5fa}.author-editor-graph{flex:1;min-height:400px;display:flex;flex-direction:column;background:var(--bg)}.author-editor-graph .recipe-graph{flex:1;height:auto;min-height:360px}.author-editor-graph-stale{font-size:12px;padding:6px 10px;background:#fbbf241a;color:#fbbf24;border-top:1px solid rgba(251,191,36,.3)}.author-chat-sublabel{font-size:12px;color:var(--muted, #94a3b8);line-height:1.45;margin-top:-4px}.author-chat-sublabel strong{color:#e5e7eb;font-weight:600}.yaml-editor{flex:1;min-height:400px;height:100%}.yaml-editor .cm-editor{height:100%;font-size:13px}.yaml-editor .cm-scroller{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,monospace}.runs-table-page{flex:1;display:flex;flex-direction:column;padding:18px 22px;gap:14px;overflow:hidden;min-height:0}.runs-table-header{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.runs-table-stats{display:flex;gap:10px;flex-wrap:wrap}.runs-table-stat{display:flex;flex-direction:column;padding:10px 16px;border:1px solid var(--border);border-radius:8px;background:var(--bg);min-width:96px;box-shadow:0 1px 2px #0f172a0a}.runs-table-stat-value{font-size:20px;font-weight:600;color:var(--text);font-variant-numeric:tabular-nums}.runs-table-stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-top:2px}.runs-table-stat.running{border-left:3px solid var(--status-running)}.runs-table-stat.running .runs-table-stat-value{color:var(--status-running)}.runs-table-stat.succeeded{border-left:3px solid var(--status-done)}.runs-table-stat.succeeded .runs-table-stat-value{color:var(--status-done)}.runs-table-stat.failed{border-left:3px solid var(--status-failed)}.runs-table-stat.failed .runs-table-stat-value{color:var(--status-failed)}.runs-table-filters{display:flex;gap:8px}.runs-table-search,.runs-table-submitter{padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text);font-size:13px}.runs-table-search{min-width:240px}.runs-table-search:focus,.runs-table-submitter:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.runs-table-wrap{flex:1;overflow:auto;border:1px solid var(--border);border-radius:8px;background:var(--bg)}.runs-table{width:100%;border-collapse:collapse;font-size:13px}.runs-table thead th{position:sticky;top:0;background:var(--bg-elev-2);color:var(--text-muted);text-align:left;padding:10px 12px;font-weight:600;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);z-index:1;-webkit-user-select:none;user-select:none}.runs-table-th-sortable{cursor:pointer}.runs-table-th-sortable:hover{color:var(--text)}.runs-table tbody td{padding:10px 12px;border-bottom:1px solid var(--bg-elev-3);color:var(--text)}.runs-table tbody tr:nth-child(2n) td{background:var(--bg-elev)}.runs-table-row{cursor:pointer;transition:background 80ms ease}.runs-table-row:hover td,.runs-table-row:hover:nth-child(2n) td{background:var(--accent-soft)}.runs-table-row.status-failed .cell-recipe-name{color:var(--status-failed)}.runs-table-row.status-running .cell-recipe-name:after{content:" •";color:var(--status-running)}.cell-recipe{display:flex;align-items:center;gap:8px;max-width:320px}.cell-recipe-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.cell-mock-chip{font-size:10px;padding:2px 6px;border-radius:10px;background:#fff4d6;color:#9a6700;border:1px solid #eac54f;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0}.cell-by{color:var(--text-muted)}.cell-when{color:var(--text-muted);white-space:nowrap}.cell-duration{font-variant-numeric:tabular-nums;white-space:nowrap}.cell-progress{min-width:120px}.cell-progress-text{font-variant-numeric:tabular-nums;font-size:12px;color:var(--text-muted);margin-right:8px}.cell-progress-bar{display:inline-block;width:60px;height:5px;vertical-align:middle;background:var(--bg-elev-3);border-radius:3px;overflow:hidden}.cell-progress-fill{display:block;height:100%;background:var(--status-done);transition:width .2s ease}.runs-table-row.status-failed .cell-progress-fill{background:var(--status-failed)}.runs-table-row.status-running .cell-progress-fill{background:var(--status-running)}.cell-uid code{font-size:11px;color:var(--text-subtle);background:transparent;padding:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.col-uid-head{min-width:280px}.cell-uid-primary code{font-size:13px;font-weight:600;color:var(--accent);letter-spacing:0}.cell-note{min-width:180px;max-width:320px;vertical-align:top}.note-view{display:inline-block;max-width:100%;padding:4px 8px;border:1px dashed transparent;border-radius:6px;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:text;white-space:normal;overflow-wrap:anywhere;line-height:1.3}.note-view:hover{border-color:var(--border);background:var(--bg-elev)}.note-view-empty{color:var(--text-subtle);font-style:italic}.note-edit{display:flex;flex-direction:column;gap:4px}.note-edit-input{width:100%;min-height:48px;padding:6px 8px;font:inherit;border:1px solid var(--accent);border-radius:6px;resize:vertical;background:var(--bg);color:var(--text)}.note-edit-input:focus{outline:none;box-shadow:0 0 0 2px var(--accent-soft)}.note-edit-actions{display:flex;gap:6px}.note-btn{padding:3px 10px;font-size:12px;border-radius:4px;border:1px solid var(--border);cursor:pointer;background:var(--bg-elev);color:var(--text)}.note-btn-save{background:var(--accent);border-color:var(--accent);color:#fff}.note-btn-save:disabled,.note-btn-cancel:disabled{opacity:.6;cursor:default}.note-edit-error{color:var(--status-failed);font-size:11px}.recipe-schema-body{display:flex;flex-direction:column;gap:8px;margin-top:6px}.recipe-schema-subsection>summary{cursor:pointer;-webkit-user-select:none;user-select:none;padding:2px 0;font-weight:600;font-size:12px;color:var(--text-muted, var(--text-subtle))}.recipe-schema-sub-title{list-style:revert}.recipe-schema-pre{margin:6px 0 0;padding:8px 10px;background:var(--bg-elev);border:1px solid var(--border);border-radius:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11.5px;line-height:1.45;color:var(--text);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;max-height:50vh;overflow-y:auto}.recipe-schema-hint{font-weight:400;font-size:11px;color:var(--text-subtle);margin-left:6px}.recipe-schema-error{color:var(--status-failed);font-size:12px;padding:6px 0}.runs-table-empty{text-align:center;padding:40px 12px}.app-checking{min-height:100vh;display:flex;align-items:center;justify-content:center;font-size:14px}.login-page{min-height:100vh;background:var(--bg-elev-2);display:flex;align-items:center;justify-content:center;padding:24px 16px}.login-card{width:100%;max-width:340px;background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:24px 24px 20px;display:flex;flex-direction:column;gap:12px;box-shadow:0 1px 3px #0000000d}.login-card h1{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em}.login-sub{margin:0 0 6px;font-size:13px;color:var(--text-muted)}.login-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--text-muted)}.login-field input{padding:9px 10px;font-size:14px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.login-field input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.login-error{font-size:12px;color:var(--status-failed);background:#fff5f5;border:1px solid #f4b7ba;padding:6px 8px;border-radius:6px}.login-submit{margin-top:4px;padding:9px 12px;font-size:14px;font-weight:500;background:var(--accent);color:#fff;border:0;border-radius:6px;cursor:pointer}.login-submit:hover:not(:disabled){background:var(--accent-hover)}.login-submit:disabled{opacity:.6;cursor:default}.datasets-panel{padding:16px 20px 40px;display:flex;flex-direction:column;gap:14px;min-width:0}.datasets-topbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.datasets-tabs{display:inline-flex;gap:4px;padding:3px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:8px}.datasets-subtab{background:transparent;border:0;padding:6px 12px;font-size:13px;border-radius:6px;color:var(--text-muted);cursor:pointer}.datasets-subtab:hover{color:var(--text)}.datasets-subtab.active{background:var(--bg);color:var(--text);box-shadow:0 1px 2px #00000014}.datasets-search{flex:1;min-width:220px;max-width:480px;padding:6px 10px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.datasets-search:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.datasets-error{background:#fff5f5;border:1px solid #f4b7ba;padding:12px 14px;border-radius:8px;font-size:13px;color:var(--text)}.datasets-error code{font-size:12px}.datasets-loading,.datasets-empty{padding:32px 8px;text-align:center;color:var(--text-muted);font-size:13px}.datasets-chips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.datasets-chip{padding:4px 10px;font-size:12px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:999px;color:var(--text-muted);cursor:pointer}.datasets-chip:hover{border-color:var(--border-strong);color:var(--text)}.datasets-chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.datasets-chip-count{opacity:.65;margin-left:4px}.datasets-chip-clear{color:var(--text-subtle)}.datasets-count-label{margin-left:8px;font-size:12px;color:var(--text-muted)}.datasets-uc-list{display:flex;flex-direction:column;gap:16px}.datasets-uc-card{background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:14px 16px}.datasets-uc-head h3{margin:0 0 4px;font-size:15px;font-weight:600}.datasets-uc-head.clickable{cursor:pointer;border-radius:6px;margin:-6px -6px 6px;padding:6px;transition:background .1s ease}.datasets-uc-head.clickable:hover,.datasets-uc-head.clickable:focus-visible{background:var(--bg-elev-2);outline:none}.datasets-uc-head.clickable:hover h3,.datasets-uc-head.clickable:focus-visible h3{color:var(--accent)}.datasets-uc-open-hint{margin-left:auto;color:var(--accent);font-weight:600;opacity:0;transition:opacity .1s ease}.datasets-uc-head.clickable:hover .datasets-uc-open-hint,.datasets-uc-head.clickable:focus-visible .datasets-uc-open-hint{opacity:1}.datasets-uc-sub{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--text-muted);margin-bottom:6px}.datasets-uc-folder{background:var(--bg-elev-3);padding:1px 8px;border-radius:999px;color:var(--text);font-weight:500}.datasets-uc-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.datasets-uc-desc{margin:6px 0 0;font-size:13px;color:var(--text-muted)}.datasets-uc-tags{margin-top:6px;display:flex;gap:4px;flex-wrap:wrap}.datasets-tag{font-size:11px;padding:1px 6px;background:var(--bg-elev-2);border:1px solid var(--border);border-radius:4px;color:var(--text-muted)}.datasets-asset-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-top:10px}.datasets-asset{display:flex;flex-direction:column;background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin:0;min-width:0}.datasets-asset-media{aspect-ratio:1 / 1;background:var(--bg-elev-3);display:flex;align-items:center;justify-content:center;overflow:hidden}.datasets-asset-media img,.datasets-asset-media video{width:100%;height:100%;object-fit:cover}.datasets-asset-media.audio,.datasets-asset-media.other{aspect-ratio:auto;padding:10px;min-height:70px}.datasets-asset-audio-wrap{width:100%}.datasets-asset-audio-wrap audio{width:100%}.datasets-asset-ph{color:var(--text-subtle);font-size:12px}.datasets-asset-cap{padding:6px 8px 8px;display:flex;flex-direction:column;gap:4px;min-width:0}.datasets-asset-title{font-size:12px;font-weight:500;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.datasets-asset-desc{font-size:11px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.datasets-asset-actions{display:flex;gap:4px;margin-top:2px}.datasets-asset-copy,.datasets-asset-open{flex:1;text-align:center;font-size:11px;padding:3px 6px;border:1px solid var(--border);border-radius:5px;background:var(--bg);color:var(--text-muted);cursor:pointer;text-decoration:none}.datasets-asset-copy:hover,.datasets-asset-open:hover{color:var(--accent);border-color:var(--accent)}.datasets-uc-expand{margin-top:8px;font-size:12px;padding:4px 10px;background:transparent;border:1px solid var(--border);border-radius:5px;color:var(--text-muted);cursor:pointer}.datasets-uc-expand:hover{color:var(--accent);border-color:var(--accent)}.datasets-tree-wrap{display:grid;grid-template-columns:280px 1fr;gap:12px;min-height:0}.datasets-tree{border:1px solid var(--border);border-radius:8px;background:var(--bg-elev);padding:6px 0;max-height:70vh;overflow:auto}.datasets-tree-row{width:100%;text-align:left;background:transparent;border:0;padding:2px 10px;font-size:12px;cursor:pointer;color:var(--text);display:flex;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.datasets-tree-row:hover{background:var(--bg-elev-2)}.datasets-tree-row.active{background:var(--accent-soft);color:var(--accent)}.datasets-tree-row.dir{color:var(--text-muted)}.datasets-tree-caret{width:10px;color:var(--text-subtle)}.datasets-file{border:1px solid var(--border);border-radius:8px;background:var(--bg-elev);padding:10px 12px;min-width:0;overflow:hidden;display:flex;flex-direction:column}.datasets-file-head{font-size:12px;color:var(--text-muted);margin-bottom:6px}.datasets-file-head code{font-size:12px;color:var(--text)}.datasets-file-body{margin:0;padding:10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;font-size:12px;line-height:1.5;color:var(--text);overflow:auto;max-height:65vh;white-space:pre-wrap;word-break:break-word}@media(max-width:720px){.topbar{flex-wrap:wrap;gap:6px 10px;padding:8px 10px}.topbar h1{font-size:15px}.topbar h1 span{display:none}.tab-group{flex-wrap:wrap;gap:4px;width:100%;order:3}.topbar-right{margin-left:auto}.tab-btn{padding:8px 10px;font-size:13px;min-height:36px}.run-summary{flex-wrap:wrap;gap:6px;font-size:12px}.main{flex-direction:column}.runs-sidebar{width:100%;max-width:none;min-width:0;border-right:0;border-bottom:1px solid var(--border);max-height:40vh}.runs-sidebar.collapsed{max-height:none}.graph{min-height:50vh}.datasets-panel{padding:10px 10px 32px}.datasets-topbar{gap:8px}.datasets-search{width:100%;max-width:none;min-width:0;font-size:14px;padding:8px 10px}.datasets-subtab{padding:8px 12px;font-size:13px;min-height:36px}.datasets-chip{padding:6px 12px;font-size:12px;min-height:32px}.datasets-asset-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.datasets-asset-copy,.datasets-asset-open{font-size:12px;padding:6px 8px;min-height:32px}.datasets-tree-wrap{grid-template-columns:1fr}.datasets-tree{max-height:40vh}.datasets-file-body{max-height:50vh}.login-card{padding:20px 18px 16px}}.tl-page{--tl-track-label-w: 48px;--tl-clip-radius: 4px;--tl-kind-video: #0969da;--tl-kind-audio: #1a7f37;--tl-kind-image: #bf3989;display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0;background:var(--bg-elev);position:relative}.tl-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0}.tl-toolbar-left,.tl-toolbar-right{display:flex;align-items:center;gap:10px}.tl-zoom-group{display:flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg)}.tl-zoom-group button{padding:2px 8px;min-width:22px;font-weight:600}.tl-zoom-readout{font-family:monospace;font-size:12px;color:var(--text-subtle);min-width:42px;text-align:center}.tl-project-name{padding:6px 10px;border:1px solid var(--border);border-radius:4px;background:var(--bg);min-width:180px;font-weight:600}.tl-aspect-label{display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-size:12px}.tl-aspect-label select{padding:5px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);font-weight:500;color:var(--text)}.tl-saved-indicator{color:var(--text-subtle);font-size:11px;text-transform:uppercase;letter-spacing:.4px}.tl-saved-indicator.dirty{color:var(--status-failed)}.tl-file-menu{position:relative;display:inline-block}.tl-file-menu-btn{padding:6px 12px}.tl-file-menu-panel{position:absolute;top:calc(100% + 4px);left:0;z-index:50;min-width:320px;max-width:420px;background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 20px #00000038;padding:6px 0;display:flex;flex-direction:column;font-size:13px}.tl-file-menu-item{text-align:left!important;border:none!important;background:transparent!important;padding:8px 14px!important;border-radius:0!important;font-weight:500!important;cursor:pointer}.tl-file-menu-item:hover:not(:disabled){background:var(--bg-elev-2)!important}.tl-file-menu-sep{height:1px;background:var(--border);margin:4px 0}.tl-file-menu-list-label{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-subtle);padding:4px 14px 2px}.tl-file-menu-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column}.tl-file-menu-hint,.tl-file-menu-error{padding:8px 14px;font-size:12px;color:var(--text-muted)}.tl-file-menu-error{color:var(--status-failed)}.tl-file-menu-row{display:flex;align-items:stretch;gap:2px}.tl-file-menu-row.current{background:var(--bg-elev-2)}.tl-file-menu-open-btn{flex:1;text-align:left!important;border:none!important;background:transparent!important;padding:6px 14px!important;border-radius:0!important;display:flex;flex-direction:column;gap:2px;cursor:pointer}.tl-file-menu-open-btn:hover:not(:disabled){background:var(--bg-elev-2)!important}.tl-file-menu-row-name{font-weight:500;color:var(--text)}.tl-file-menu-row-meta{font-size:11px;color:var(--text-subtle)}.tl-file-menu-delete{border:none!important;background:transparent!important;color:var(--text-subtle)!important;padding:0 10px!important;cursor:pointer;font-size:18px;line-height:1}.tl-file-menu-delete:hover:not(:disabled){background:var(--status-failed)!important;color:#fff!important}.tl-toolbar-error{color:var(--status-failed);font-size:12px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tl-toolbar button{padding:6px 12px;border:1px solid var(--border);border-radius:4px;background:var(--bg);cursor:pointer;color:var(--text);font-weight:500}.tl-toolbar button:hover:not(:disabled){background:var(--bg-elev-3)}.tl-toolbar button:disabled{opacity:.5;cursor:not-allowed}.tl-toolbar button.danger{background:var(--status-failed);color:#fff;border-color:var(--status-failed)}.tl-toolbar button.danger:hover{background:#a00}.tl-render-btn{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important;font-weight:600!important}.tl-render-btn:hover:not(:disabled){background:var(--accent-hover)!important}.tl-confirm-question{color:var(--text-muted);font-size:12px}.tl-body{display:grid;grid-template-columns:240px minmax(0,1fr) 280px;gap:1px;background:var(--border);flex:1;min-height:0;overflow:hidden}.tl-center{display:flex;flex-direction:column;background:var(--bg);min-height:0;overflow:hidden}.tl-library{background:var(--bg);display:flex;flex-direction:column;min-height:0;overflow:hidden}.tl-library-title{padding:10px 12px;font-weight:600;border-bottom:1px solid var(--border);background:var(--bg-elev-2);font-size:12px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}.tl-import{padding:10px 12px;display:flex;flex-direction:column;gap:6px;border-bottom:1px solid var(--border)}.tl-import input[type=url]{padding:6px 8px;border:1px solid var(--border);border-radius:4px;width:100%}.tl-import button{padding:5px 8px;border:1px solid var(--accent);background:var(--accent);color:#fff;border-radius:4px;cursor:pointer;font-weight:500}.tl-import button:disabled{opacity:.5;cursor:not-allowed}.tl-import-hint{color:var(--text-muted);font-size:11px}.tl-import-error{color:var(--status-failed);font-size:11px;word-break:break-word}.tl-library-list{flex:1;overflow:auto;padding:6px;display:flex;flex-direction:column;gap:4px}.tl-library-empty{color:var(--text-subtle);font-size:12px;padding:10px}.tl-library-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-elev);border:1px solid var(--border);border-radius:4px;cursor:grab;transition:background .1s}.tl-library-item:hover{background:var(--bg-elev-2)}.tl-library-item:active{cursor:grabbing}.tl-library-badge{width:22px;height:22px;border-radius:3px;display:flex;align-items:center;justify-content:center;color:#fff;font-size:11px;font-weight:700;flex-shrink:0}.tl-library-badge.kind-video{background:var(--tl-kind-video)}.tl-library-badge.kind-audio{background:var(--tl-kind-audio)}.tl-library-badge.kind-image{background:var(--tl-kind-image)}.tl-library-thumb{width:56px;height:32px;flex-shrink:0;border-radius:3px;overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid rgba(0,0,0,.25);box-shadow:inset 0 0 0 1px #ffffff0d;background:#222}.tl-library-thumb.kind-video{background:var(--tl-kind-video)}.tl-library-thumb.kind-audio{background:repeating-linear-gradient(90deg,#fff0 0,#fff0 3px,#ffffff4d 3px,#ffffff4d 4px),var(--tl-kind-audio)}.tl-library-thumb.kind-image{background:var(--tl-kind-image)}.tl-library-thumb-img{width:100%;height:100%;object-fit:cover;display:block}.tl-library-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.tl-library-label{font-weight:500;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-library-meta{color:var(--text-muted);font-size:11px;display:flex;gap:4px;align-items:center}.tl-library-image-dur input{width:50px;padding:1px 4px;border:1px solid var(--border);border-radius:3px;font-size:11px}.tl-library-remove{background:none;border:none;color:var(--text-subtle);cursor:pointer;font-size:16px;padding:0 4px}.tl-library-remove:hover{color:var(--status-failed)}.tl-preview{display:flex;flex-direction:column;background:#1f2328;padding:10px;gap:8px;flex-shrink:0;align-items:center}.tl-preview-frame{position:relative;background:#000;height:40vh;max-width:100%;width:auto;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:4px}.tl-preview-video,.tl-preview-image{width:100%;height:100%;object-fit:contain;background:#000;display:block}.tl-preview-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--text-subtle);font-size:13px;text-align:center;padding:20px}.tl-preview-badge{position:absolute;top:6px;right:6px;background:#0009;color:#fff;padding:2px 6px;border-radius:3px;font-size:10px;font-family:monospace}.tl-preview-controls{display:flex;align-items:center;gap:10px;color:#fff}.tl-preview-controls button{padding:4px 12px;border:1px solid #444;background:#2a2e33;color:#fff;border-radius:4px;cursor:pointer;font-weight:500}.tl-preview-controls button:hover:not(:disabled){background:#3a3f45}.tl-preview-controls button:disabled{opacity:.4;cursor:not-allowed}.tl-preview-time{font-family:monospace;font-size:12px;color:#aaa}.tl-timeline{position:relative;flex:1;overflow:auto;background:var(--bg-elev-2);border-top:1px solid var(--border)}.tl-ruler{position:sticky;top:0;z-index:2;height:24px;margin-left:var(--tl-track-label-w);background:var(--bg-elev-3);border-bottom:1px solid var(--border);cursor:pointer}.tl-ruler-tick{position:absolute;top:0;bottom:0;border-left:1px solid var(--border-strong)}.tl-ruler-tick.major .tl-ruler-label{position:absolute;top:3px;left:3px;font-size:10px;color:var(--text-muted);pointer-events:none;font-family:monospace}.tl-tracks{display:flex;flex-direction:column}.tl-track-row{display:flex;height:50px;border-bottom:1px solid var(--border)}.tl-track-label{width:var(--tl-track-label-w);flex-shrink:0;background:var(--bg-elev-3);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;font-family:monospace;color:var(--text-muted);font-weight:600;position:sticky;left:0;z-index:1}.tl-track-label small{font-size:9px;color:var(--text-subtle);font-weight:400}.tl-track-surface{position:relative;flex:1;background-image:repeating-linear-gradient(to right,transparent 0,transparent 49px,var(--border) 49px,var(--border) 50px)}.tl-clip{position:absolute;top:4px;bottom:4px;border-radius:var(--tl-clip-radius);display:flex;align-items:stretch;overflow:hidden;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 1px 3px #0003;border:1px solid rgba(0,0,0,.2)}.tl-clip.selected{outline:2px solid var(--accent);outline-offset:1px;z-index:2}.tl-clip.kind-video{background:linear-gradient(180deg,#2282f5,#0969da);color:#fff}.tl-clip.kind-audio{background:linear-gradient(180deg,#2da44e,#1a7f37);color:#fff}.tl-clip.kind-image{background:linear-gradient(180deg,#d35aa2,#bf3989);color:#fff}.tl-clip.kind-unknown{background:var(--text-subtle);color:#fff}.tl-clip-body{flex:1;padding:4px 6px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;min-width:0;position:relative}.tl-clip-row-top,.tl-clip-row-bot{display:flex;align-items:center;gap:4px;min-width:0}.tl-clip-row-bot{justify-content:space-between}.tl-clip-chip{font-size:9px;font-family:monospace;font-weight:700;letter-spacing:.5px;padding:1px 4px;border-radius:2px;background:#0000008c;color:#fff;flex-shrink:0;line-height:1.1}.tl-clip-chip.kind-video{box-shadow:inset 0 0 0 1px var(--tl-kind-video)}.tl-clip-chip.kind-audio{box-shadow:inset 0 0 0 1px var(--tl-kind-audio)}.tl-clip-chip.kind-image{box-shadow:inset 0 0 0 1px var(--tl-kind-image)}.tl-clip-label{font-size:11px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.5);min-width:0}.tl-clip-dur{font-size:10px;font-family:monospace;opacity:.85;text-shadow:0 1px 2px rgba(0,0,0,.5)}.tl-clip.kind-audio{background:repeating-linear-gradient(90deg,#fff0 0,#fff0 3px,#ffffff47 3px,#ffffff47 4px),linear-gradient(180deg,#2da44e,#1a7f37)}.tl-clip.muted{opacity:.55}.tl-clip.muted:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(135deg,transparent 0 8px,rgba(0,0,0,.35) 8px 10px)}.tl-clip-audio-ctrls{display:flex;align-items:center;gap:4px;flex-shrink:0}.tl-clip-mute{width:18px;height:16px;padding:0;border:1px solid rgba(255,255,255,.4);background:#00000059;color:#fff;border-radius:3px;font-size:10px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.tl-clip-mute:hover{background:#0009}.tl-clip-mute.is-muted{background:#b91c1c;border-color:#fca5a5}.tl-clip-vol{width:54px;height:12px;cursor:pointer;accent-color:#fff}.tl-clip.has-thumb .tl-clip-body{background:linear-gradient(180deg,#00000026,#0000000d 40%,#000000bf)}.tl-clip.has-thumb{background-color:#111}.tl-clip-handle-l,.tl-clip-handle-r{width:6px;cursor:ew-resize;background:#fff3;flex-shrink:0}.tl-clip-handle-l:hover,.tl-clip-handle-r:hover{background:#ffffff80}.tl-playhead{position:absolute;top:0;bottom:0;width:2px;background:#e11d48;pointer-events:none;z-index:3;box-shadow:0 0 2px #e11d4880}.tl-inspector{background:var(--bg);display:flex;flex-direction:column;min-height:0;overflow:auto;padding:12px;gap:12px}.tl-inspector.empty{color:var(--text-muted)}.tl-inspector-empty{color:var(--text-muted);padding:14px 4px;font-size:13px}.tl-inspector-hint{margin-top:14px;padding-top:10px;border-top:1px dashed var(--border)}.tl-inspector-hint ul{margin:6px 0 0;padding-left:16px;font-size:12px}.tl-inspector-hint kbd{background:var(--bg-elev-3);padding:0 4px;border-radius:3px;border:1px solid var(--border);font-family:monospace;font-size:11px}.tl-inspector-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.tl-inspector-title{font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.tl-inspector-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-subtle)}.tl-inspector-close:hover{color:var(--text)}.tl-inspector-meta{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;font-size:11px;color:var(--text-muted)}.tl-inspector-meta span{text-transform:uppercase;letter-spacing:.4px}.tl-inspector-meta code{color:var(--text);font-family:monospace;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-inspector-fs{border:1px solid var(--border);border-radius:4px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;margin:0}.tl-inspector-fs legend{padding:0 4px;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.tl-inspector-label{display:flex;align-items:center;gap:6px;font-size:12px}.tl-inspector-label span{color:var(--text-muted);width:64px;flex-shrink:0}.tl-inspector-label input[type=number]{flex:1;padding:4px 6px;border:1px solid var(--border);border-radius:3px;font-family:monospace;font-size:12px}.tl-inspector-label input[type=range]{flex:1}.tl-inspector-label code{font-family:monospace;font-size:11px;color:var(--text-muted);width:42px;text-align:right}.tl-inspector-note{font-size:11px;color:var(--text-subtle);padding:2px 0}.tl-inspector-mute{padding:4px 10px;border-radius:4px;border:1px solid var(--border);background:var(--bg);cursor:pointer;font-weight:600;font-size:11px}.tl-inspector-mute.is-muted{background:#b91c1c;color:#fff;border-color:#fca5a5}.tl-inspector-actions{display:flex;gap:8px;margin-top:auto}.tl-inspector-actions button{flex:1;padding:6px 10px;border:1px solid var(--border);border-radius:4px;background:var(--bg);cursor:pointer;font-weight:500}.tl-inspector-actions button:hover{background:var(--bg-elev-3)}.tl-inspector-actions button.danger{background:var(--bg);color:var(--status-failed);border-color:var(--status-failed)}.tl-inspector-actions button.danger:hover{background:var(--status-failed);color:#fff}.tl-render-result{position:absolute;right:16px;bottom:16px;width:360px;max-width:calc(100% - 32px);background:var(--bg);border:1px solid var(--border);border-radius:6px;box-shadow:0 6px 20px #00000026;overflow:hidden;z-index:10}.tl-render-result.status-succeeded{border-color:var(--status-done)}.tl-render-result.status-failed{border-color:var(--status-failed)}.tl-render-result-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-elev-2);border-bottom:1px solid var(--border)}.tl-render-result-close{background:none;border:none;font-size:16px;cursor:pointer;color:var(--text-subtle)}.tl-render-result-body{padding:10px 12px;display:flex;flex-direction:column;gap:8px;font-size:12px}.tl-render-result-video{width:100%;background:#000;border-radius:4px}.tl-render-result-error{color:var(--status-failed);font-size:11px;white-space:pre-wrap;max-height:80px;overflow:auto}.tl-link{background:none;border:none;color:var(--accent);cursor:pointer;font-family:monospace;padding:0;text-decoration:underline}.import-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f23288c;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px}.import-modal{background:var(--bg);border-radius:8px;box-shadow:0 12px 40px #0000004d;width:min(1080px,100%);max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden}.import-modal-head{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid var(--border);background:var(--bg-elev)}.import-modal-tabs{display:flex;gap:4px}.import-modal-tab{padding:6px 12px;border:1px solid transparent;border-bottom:none;background:transparent;color:var(--text-muted);border-radius:4px 4px 0 0;cursor:pointer;font-size:13px}.import-modal-tab:hover{color:var(--text)}.import-modal-tab.active{color:var(--text);background:var(--bg);border-color:var(--border);border-bottom-color:var(--bg);margin-bottom:-1px}.import-modal-close{width:28px;height:28px;border:none;background:transparent;color:var(--text-muted);font-size:22px;line-height:1;cursor:pointer;border-radius:4px}.import-modal-close:hover{background:var(--bg-elev-3);color:var(--text)}.import-modal-body{flex:1;overflow:auto;padding:12px 16px;min-height:240px}.import-modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:8px 12px;border-top:1px solid var(--border);background:var(--bg-elev)}.import-modal-count{margin-right:auto;color:var(--text-muted);font-size:12px}.import-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:12px}.import-toggle{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.import-toggle-btn{padding:4px 10px;border:none;background:var(--bg);color:var(--text-muted);cursor:pointer;font-size:12px}.import-toggle-btn.active{background:var(--accent);color:#fff}.import-search{flex:1;padding:5px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg);font-size:13px}.import-loading,.import-empty,.import-error{padding:24px;text-align:center;color:var(--text-muted);font-size:13px}.import-error{color:var(--status-failed)}.import-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.import-card{display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:0;border:1px solid var(--border);border-radius:6px;background:var(--bg);cursor:pointer;overflow:hidden;min-width:0}.import-card:hover{border-color:var(--border-strong)}.import-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.import-card-media{position:relative;aspect-ratio:1 / 1;background:var(--bg-elev-3);display:flex;align-items:center;justify-content:center;overflow:hidden}.import-card-media img,.import-card-media video{width:100%;height:100%;object-fit:cover;display:block}.import-card-audio{font-size:32px;color:var(--text-subtle)}.import-card-ph{color:var(--text-subtle);font-size:12px}.import-card-check{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:#ffffffeb;border:1px solid var(--border);font-size:13px;color:var(--accent);display:flex;align-items:center;justify-content:center;line-height:1}.import-card.selected .import-card-check{background:var(--accent);color:#fff;border-color:var(--accent)}.import-card-label{padding:6px 8px;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.import-tree{border:1px solid var(--border);border-radius:4px;max-height:480px;overflow:auto;background:var(--bg)}.import-tree-row{display:flex;align-items:center;gap:6px;width:100%;padding:4px 8px;border:none;background:transparent;text-align:left;cursor:pointer;font-size:13px;color:var(--text)}.import-tree-row:hover{background:var(--bg-elev-2)}.import-tree-row.selected{background:var(--accent-soft)}.import-tree-caret{color:var(--text-subtle);width:10px;display:inline-block}.import-tree-name{font-family:monospace}.import-upload{display:flex;flex-direction:column;gap:12px}.import-upload-row{display:flex;align-items:center;gap:8px}.import-upload-paste input[type=url]{flex:1;padding:6px 8px;border:1px solid var(--border);border-radius:4px;font-size:13px}.import-upload-hint{color:var(--text-subtle);font-size:12px}.import-upload-history-title{margin:8px 0 6px;color:var(--text-muted);font-size:12px;text-transform:uppercase;letter-spacing:.5px}.recipe-view-toggle{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--bg-elev-1)}.recipe-view-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:none;color:var(--text-muted);font-size:12px;font-weight:600;padding:4px 14px;cursor:pointer;transition:background .12s ease,color .12s ease}.recipe-view-btn+.recipe-view-btn{border-left:1px solid var(--border)}.recipe-view-btn:hover{background:var(--bg-elev-2);color:var(--text)}.recipe-view-btn.active{background:var(--accent);color:#fff}.rv-view{flex:1;min-height:0;display:flex;flex-direction:row;align-items:stretch;gap:12px;padding:12px 14px 14px;overflow:hidden;background:var(--bg-elev)}.rv-result,.rv-form{background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 1px 2px #0000000a;display:flex;flex-direction:column;min-width:0;min-height:0}.rv-form{flex:0 0 340px;max-width:360px;overflow-y:auto}.rv-result{flex:1 1 auto;overflow-y:auto}@media(max-width:900px){.rv-view{flex-direction:column;overflow-y:auto}.rv-form{flex:0 0 auto;max-width:none}}.rv-view-readonly .rv-result{flex:1 1 auto;max-width:1080px;margin:0 auto;width:100%}.rv-result-head,.rv-form-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--bg-elev-1);border-top-left-radius:8px;border-top-right-radius:8px}.rv-result-title,.rv-form-title{margin:0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-subtle)}.rv-form-recipe{margin-left:auto;color:var(--text-muted);font-family:SF Mono,Menlo,Monaco,monospace;font-size:11.5px}.rv-status{display:inline-flex;align-items:center;gap:8px;font-size:11.5px;color:var(--text-muted)}.rv-status-label{font-weight:600;color:var(--text);text-transform:capitalize}.rv-progress{color:var(--text-subtle);font-variant-numeric:tabular-nums}.rv-empty,.rv-pending{margin:14px;padding:20px;color:var(--text-muted);background:var(--bg-elev-1);border:1px dashed var(--border);border-radius:6px;font-size:13px;display:inline-flex;align-items:center;gap:10px;align-self:flex-start}.rv-media-list{display:grid;grid-template-columns:1fr;gap:14px;padding:14px}@media(min-width:1180px){.rv-media-list:has(.rv-media-card:nth-child(2)){grid-template-columns:repeat(2,1fr)}}.rv-media-card{border:1px solid var(--border);border-radius:6px;background:#000;overflow:hidden;display:flex;flex-direction:column}.rv-media-media{display:flex;align-items:center;justify-content:center;background:#000;min-height:200px;max-height:60vh}.rv-media-media img,.rv-media-media video{display:block;max-width:100%;max-height:60vh;object-fit:contain;background:#000}.rv-media-media audio{width:calc(100% - 24px);margin:12px}.rv-media-footer{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-elev-1);border-top:1px solid var(--border);font-size:11.5px}.rv-media-key{color:var(--text-muted);font-family:SF Mono,Menlo,Monaco,monospace;font-size:11px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rv-payload{padding:14px}.rv-payload-note{color:var(--text-muted);font-size:12px;margin-bottom:8px}.rv-error{margin:0 14px 14px;padding:10px 12px;color:#fff;background:var(--status-failed);border-radius:4px;font-size:12px}.rv-form-body{padding:10px 12px 12px}.rv-form-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}.schema-compact .form-field{margin-bottom:8px}.schema-compact label{font-size:11.5px;margin-bottom:2px}.schema-compact input,.schema-compact select,.schema-compact textarea{font-size:12px;padding:4px 6px}.schema-compact textarea{min-height:48px}.field-info{display:inline-block;margin-left:4px;font-size:11px;color:var(--text-muted);cursor:help;-webkit-user-select:none;user-select:none;line-height:1;vertical-align:baseline}.schema-advanced-bar{margin-top:10px;border-top:1px dashed var(--border);padding-top:8px}.schema-advanced-summary{display:flex;align-items:baseline;gap:8px;cursor:pointer;list-style:none;padding:4px 2px;-webkit-user-select:none;user-select:none;color:var(--text-subtle);font-size:11px;text-transform:uppercase;letter-spacing:.5px;font-weight:700}.schema-advanced-summary::-webkit-details-marker{display:none}.schema-advanced-summary:before{content:"▸";display:inline-block;width:10px;transition:transform .12s ease;color:var(--text-subtle);font-size:10px}.schema-advanced-bar[open]>.schema-advanced-summary:before{transform:rotate(90deg)}.schema-advanced-label{color:var(--text)}.schema-advanced-meta{text-transform:none;letter-spacing:normal;font-weight:500;font-size:11px;color:var(--text-muted)}.schema-advanced-modified-count{margin-left:4px;color:var(--status-warning, #c58900);font-weight:600}.schema-advanced-body{padding-top:8px}.field-modified-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--status-warning, #c58900);margin-right:6px;vertical-align:middle}.field-label-modified{color:var(--status-warning, #c58900)}.rv-form-control{border:1px solid var(--border);border-radius:6px;padding:6px 10px;margin:0;display:inline-flex;align-items:center;gap:8px;background:var(--bg-elev-1)}.rv-form-control legend{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-subtle);padding:0 4px}.rv-form-control input[type=number]{width:56px;padding:3px 6px;font-size:12px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text)}.rv-mock-options{display:inline-flex;gap:10px}.rv-mock-option{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--text-muted);cursor:pointer}.rv-mock-option input{margin:0}.rv-form-actions{margin-top:14px;display:flex;gap:8px}.datasets-datasets-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.datasets-dataset-card{background:#fff;border:1px solid var(--border, #d1d5db);border-radius:12px;padding:14px 16px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:8px;font:inherit;color:inherit;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease}.datasets-dataset-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0f172a14;border-color:#5eead4}.datasets-dataset-title{font-weight:600;font-size:15px;color:#0f172a}.datasets-dataset-id{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:12px;color:#0f766e}.datasets-dataset-chips{display:flex;flex-wrap:wrap;gap:6px}.datasets-chip{display:inline-block;padding:2px 8px;font-size:11px;border-radius:999px;border:1px solid var(--border, #d1d5db);background:#f8fafc;color:#334155}.datasets-chip-template{background:#ecfeff;border-color:#67e8f9;color:#115e59}.datasets-chip-image{background:#dcfce7;border-color:#86efac;color:#166534}.datasets-chip-audio{background:#fef3c7;border-color:#fcd34d;color:#92400e}.datasets-chip-video{background:#ede9fe;border-color:#c4b5fd;color:#5b21b6}.datasets-dataset-desc{font-size:12px;color:#475569;line-height:1.4}.datasets-dataset-footer{font-size:11px;color:#6b7280;margin-top:auto;display:flex;justify-content:space-between}.datasets-dataset-detail{padding:4px 2px 20px}.datasets-dataset-detail-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.datasets-backlink{border:1px solid var(--border, #d1d5db);background:#fff;border-radius:8px;padding:4px 10px;cursor:pointer;font-size:12px;color:#0f766e}.datasets-backlink:hover{background:#ecfeff}.datasets-dataset-detail-title{font-size:17px;font-weight:700;color:#0f172a;flex:1;min-width:200px}.datasets-dataset-detail-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.datasets-dataset-detail-desc{flex-basis:100%;color:#475569;font-size:13px}.datasets-sample-list{display:flex;flex-direction:column;gap:14px}.datasets-sample-card{background:#fff;border:1px solid var(--border, #d1d5db);border-radius:12px;padding:12px 14px}.datasets-sample-head{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}.datasets-sample-id{font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;color:#0f172a}.datasets-sample-comment{color:#475569;font-size:13px;flex:1;min-width:200px}.datasets-sample-media{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.datasets-media-block{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px}.datasets-media-block-head{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:11px;color:#64748b;text-transform:uppercase;letter-spacing:.4px}.datasets-media-bits{color:#334155;font-size:11px;text-transform:none;letter-spacing:0;font-weight:500}.datasets-media-body img{max-width:100%;max-height:320px;display:block;margin:auto;border-radius:8px;background:#fff}.datasets-media-body video{width:100%;max-height:320px;border-radius:8px;background:#000}.datasets-media-body audio{width:100%}.datasets-media-footer{display:flex;justify-content:space-between;gap:8px;align-items:center}.datasets-media-url{color:#0f766e;text-decoration:none;font-size:11px;word-break:break-all;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.datasets-media-url:hover{text-decoration:underline}
