.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: #555;--xy-background-pattern-lines-color-default: #333;--xy-background-pattern-cross-color-default: #333;--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;touch-action:none}.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{--viz-1: #0072B2;--viz-2: #E69F00;--viz-3: #009E73;--viz-4: #CC79A7;--viz-5: #56B4E9;--viz-6: #D55E00;--viz-7: #F0E442;--viz-8: #000000;--viz-kept: #009E73;--viz-out: #b9c0bc;--viz-cut: #D55E00;--viz-line: #3d4541;--q-fitted: var(--st-done);--q-fallback: #845716;--q-fixed: #4a5aa1;--viz-cut-text: #9b4500;--focus: 0 0 0 2px var(--panel), 0 0 0 4px color-mix(in srgb, var(--primary) 70%, transparent);--radius: 8px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 15px;--fs-xl: 19px}@media (prefers-color-scheme: dark){:root{--viz-out: #4a524e;--viz-line: #c9d2cd;--viz-8: #e6ebe8;--q-fallback: #e0a840;--q-fixed: #8c9cf0;--viz-cut-text: #e18b47}}:focus-visible{outline:none;box-shadow:var(--focus)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.muted{color:var(--muted)}.spacer{flex:1}.num{text-align:right}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.row-gap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.hidden{display:none!important}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.icon-btn{display:inline-grid;place-items:center;padding:5px}.seg-tabs{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.seg-tabs button{border:none;border-radius:0;padding:3px 10px;font-size:var(--fs-sm);color:var(--muted);background:var(--panel)}.seg-tabs button+button{border-left:1px solid var(--border)}.seg-tabs button.on{background:color-mix(in srgb,var(--primary) 14%,var(--panel));color:var(--primary);font-weight:600}.status-badge{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:650;padding:1px 7px;border-radius:999px;white-space:nowrap;color:var(--muted);background:color-mix(in srgb,var(--st-missing) 20%,transparent)}.sb-cached,.sb-done,.sb-fitted{color:var(--q-fitted);background:color-mix(in srgb,var(--q-fitted) 14%,transparent)}.sb-fallback,.sb-partial{color:var(--q-fallback);background:color-mix(in srgb,var(--q-fallback) 16%,transparent)}.sb-fixed,.sb-stale{color:var(--q-fixed);background:color-mix(in srgb,var(--q-fixed) 14%,transparent)}.sb-failed{color:var(--st-failed);background:color-mix(in srgb,var(--st-failed) 14%,transparent)}.sb-running{color:var(--st-running);background:color-mix(in srgb,var(--st-running) 16%,transparent)}.toasts{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:100;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:center;gap:12px;padding:8px 10px 8px 14px;background:var(--text);color:var(--bg);border-radius:9px;box-shadow:var(--shadow);font-size:var(--fs-sm)}.toast .link{color:color-mix(in srgb,var(--primary) 50%,var(--bg));font-weight:650}.toast-error{background:var(--st-failed);color:#fff}.toast-x{background:none;border:none;color:inherit;opacity:.7;padding:0 4px;font-size:15px}.resizable{position:relative;flex-shrink:0;display:flex;flex-direction:column;min-height:0}.resize-handle{position:absolute;top:0;bottom:0;width:7px;cursor:col-resize;z-index:3}.resize-handle.rh-left{right:-4px}.resize-handle.rh-right{left:-4px}.resize-handle:hover,.resize-handle:focus-visible{background:color-mix(in srgb,var(--primary) 30%,transparent)}.skeleton{display:grid;place-items:center;color:var(--muted);font-size:var(--fs-sm);border-radius:var(--radius);background:linear-gradient(90deg,var(--panel-2) 0,color-mix(in srgb,var(--panel-2) 40%,var(--panel)) 50%,var(--panel-2) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}:root{color-scheme:light;--bg: #f6f7f6;--panel: #ffffff;--panel-2: #f1f3f2;--border: #dde2df;--text: #1a1d1b;--muted: #59615c;--primary: #1b6b3a;--primary-ink: #ffffff;--danger: #a93226;--kind-fcs: #2471a3;--kind-gate: #8e44ad;--kind-scout: #138d75;--kind-selfgate: #b9770e;--st-missing: #b7bfba;--st-stale: #40648b;--st-queued: #b7bfba;--st-running: #89580a;--st-done: #196c3c;--st-cached: #196c3c;--st-partial: #915016;--st-failed: #a93226;--st-blocked: #9aa29d;--st-cancelled: #9aa29d;--shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .05);--cat-inputs: #3b6ea8;--cat-gating: #1b6b3a;--cat-scout: #7d4cb0;--cat-analysis: #b9770e;--cat-other: #66706a}@media (prefers-color-scheme: dark){:root{color-scheme:dark;--bg: #121514;--panel: #1a1e1c;--panel-2: #222826;--border: #2f3633;--text: #e6ebe8;--muted: #94a09a;--primary: #5cb37f;--primary-ink: #0b1a10;--st-done: #68ad85;--st-cached: #68ad85;--st-failed: #d78279;--st-partial: #d79254;--danger: #d78279;--kind-fcs: #5dade2;--kind-gate: #bb8fce;--kind-scout: #48c9b0;--kind-selfgate: #f0b27a;--st-missing: #56605b;--st-stale: #6d9fd6;--st-queued: #56605b;--st-blocked: #5f6863;--st-cancelled: #5f6863;--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 2px 10px rgba(0, 0, 0, .3);--cat-inputs: #6fa0d8;--cat-gating: #4fbf7d;--cat-scout: #b48be0;--cat-analysis: #e3a64a}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font:13px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Helvetica,Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--panel);border:1px solid var(--border);border-radius:6px;padding:5px 10px;cursor:pointer}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);font-weight:600}button.danger{color:var(--danger)}button.link{border:none;background:none;color:var(--primary);padding:2px 0}button.icon{padding:0 6px;border:none;background:none;color:var(--muted);font-size:16px}input,select,textarea{width:100%;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:5px 7px}input[type=checkbox]{width:auto}textarea{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}textarea.bad{border-color:var(--danger)}.app{display:flex;flex-direction:column;height:100%}.body{flex:1;display:flex;min-height:0}.main{flex:1;position:relative;min-width:0}.canvas{position:absolute;top:0;right:0;bottom:0;left:0}.loading{padding:40px;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:16px;padding:8px 14px;position:relative;background:var(--panel);border-bottom:1px solid var(--border);flex-wrap:wrap}.brand{display:flex;align-items:center;gap:10px;min-width:0;max-width:34%}.logo{color:var(--primary);font-size:20px}.brand .name{font-weight:650;font-size:14px}.brand .ws{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.actions{display:flex;gap:6px;flex-wrap:wrap}.status{margin-left:auto;display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px}.badge{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.badge-ok{color:var(--st-done)}.badge-warn{color:var(--st-partial)}.badge-err{color:var(--st-failed);border-color:var(--st-failed)}.save-error{color:var(--st-failed)}.dot{width:8px;height:8px;border-radius:50%;background:var(--st-failed);display:inline-block}.dot-on{background:var(--st-done)}.issues-pop{position:absolute;right:14px;top:100%;z-index:20;max-width:520px;max-height:50vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow)}.issues-pop ul{margin:0;padding:10px 14px 10px 28px}.issue-error{color:var(--st-failed)}.issue-warning{color:var(--st-partial)}.banner{background:color-mix(in srgb,var(--st-failed) 14%,var(--panel));color:var(--text);border-bottom:1px solid var(--st-failed);padding:6px 14px;cursor:pointer;font-size:12px;display:flex;justify-content:space-between;gap:12px;white-space:pre-wrap}.banner .x{font-weight:700}.palette{width:190px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:12px;overflow-y:auto}.panel-title{font-weight:650;font-size:13px;margin-bottom:2px}.hint{color:var(--muted);font-size:12px;margin:2px 0 10px}.palette-cat{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;color:var(--muted);margin:12px 0 6px}.palette-item{border:1px solid var(--border);border-radius:8px;padding:7px 9px;margin-bottom:6px;cursor:grab;background:var(--panel-2);display:flex;align-items:center;gap:9px}.palette-item:hover{border-color:var(--cat)}.palette-text{display:flex;flex-direction:column;gap:1px;min-width:0}.palette-cat{display:flex;align-items:center;gap:6px}.cat-swatch{width:8px;height:8px;border-radius:2px;background:var(--cat)}.palette-name{font-weight:600}.palette-mode{font-size:11px;color:var(--muted)}.side{width:clamp(300px,30vw,440px);flex-shrink:0;background:var(--panel);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.side-empty{padding:14px}.howto{padding-left:18px;color:var(--muted)}.howto li{margin-bottom:8px}.param-panel{padding:12px 14px;overflow-y:auto;max-height:52%;border-bottom:1px solid var(--border)}.field{display:block;margin:0 0 10px}.field>span{display:block;font-weight:600;font-size:12px;margin-bottom:3px;text-transform:capitalize}.field small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.field-bool{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.field-bool>span{margin:0}.field-bool small{flex-basis:100%}.error-text{color:var(--st-failed);font-size:11px}.issues{padding-left:18px;font-size:12px}.chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.samples-editor{display:flex;flex-direction:column;gap:4px}.sample-row{display:grid;grid-template-columns:110px 1fr auto;gap:6px;align-items:center}.sample-add{display:grid;grid-template-columns:1fr auto;gap:6px}.sample-path{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspector{flex:1;display:flex;flex-direction:column;min-height:0}.inspector.empty{padding:14px}.tabs{display:flex;gap:2px;padding:8px 10px 0;border-bottom:1px solid var(--border);align-items:flex-end}.tabs button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;text-transform:capitalize;padding:6px 8px;color:var(--muted)}.tabs button.on{border-bottom-color:var(--primary);color:var(--text);font-weight:600}.tabs .spacer{flex:1}.tab-body{flex:1;overflow:auto;padding:10px 12px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--panel)}.row-failed td{color:var(--st-failed)}.artifact-list{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.artifact-list button{font-size:11px;padding:3px 7px}.artifact-list button.on{border-color:var(--primary);color:var(--primary)}.artifact-img{max-width:100%;border:1px solid var(--border);border-radius:6px;background:#fff}pre.json,pre.log{margin:0;font:11.5px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word}.error-box{margin:8px 12px 0;padding:6px 8px;border-radius:6px;color:var(--st-failed);background:color-mix(in srgb,var(--st-failed) 10%,transparent);font-size:12px}.warnings{margin:8px 12px 0;padding-left:18px;color:var(--st-partial);font-size:12px}.zf-node{width:240px;background:var(--panel);border:1px solid var(--border);border-left:4px solid var(--st-missing);border-radius:9px;box-shadow:var(--shadow);font-size:12px}.zf-node.selected{outline:2px solid var(--primary);outline-offset:1px}.zf-node.has-error{border-color:var(--st-failed)}.zf-node.status-stale{border-left-color:var(--st-stale)}.zf-node.status-cached,.zf-node.status-done{border-left-color:var(--st-done)}.zf-node.status-running{border-left-color:var(--st-running)}.zf-node.status-partial{border-left-color:var(--st-partial)}.zf-node.status-failed{border-left-color:var(--st-failed)}.zf-node.status-blocked,.zf-node.status-cancelled{opacity:.6}.zf-node-head{display:flex;justify-content:space-between;align-items:flex-start;gap:6px;padding:7px 9px 2px}.zf-node-title{display:flex;flex-direction:column;min-width:0}.zf-node-type{font-weight:650}.zf-node-id{color:var(--muted);font-family:ui-monospace,Menlo,monospace;font-size:11px}.zf-node-sub{padding:0 9px 4px;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill{font-size:10.5px;padding:1px 7px;border-radius:999px;white-space:nowrap;font-weight:600;background:color-mix(in srgb,var(--st-missing) 22%,transparent);color:var(--muted)}.pill-cached,.pill-done{background:color-mix(in srgb,var(--st-done) 16%,transparent);color:var(--st-done)}.pill-stale{background:color-mix(in srgb,var(--st-stale) 16%,transparent);color:var(--st-stale)}.pill-running{background:color-mix(in srgb,var(--st-running) 18%,transparent);color:var(--st-running)}.pill-partial{background:color-mix(in srgb,var(--st-partial) 16%,transparent);color:var(--st-partial)}.pill-failed{background:color-mix(in srgb,var(--st-failed) 16%,transparent);color:var(--st-failed)}.zf-ports{display:flex;justify-content:space-between;gap:6px;padding:4px 0 6px}.zf-ports-col{display:flex;flex-direction:column;gap:3px;min-width:0}.zf-ports-col.right{align-items:flex-end;text-align:right}.port{position:relative;padding:0 12px;line-height:18px}.port-name{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:var(--muted)}.port .react-flow__handle{width:10px;height:10px;border:2px solid var(--panel)}.port .react-flow__handle.optional{opacity:.55}.zf-progress{height:3px;margin:0 9px 6px;background:var(--panel-2);border-radius:2px;overflow:hidden}.zf-progress>div{height:100%;background:var(--st-running);transition:width .3s}.zf-samples{display:flex;flex-wrap:wrap;gap:4px;padding:0 9px 8px}.chip{font-size:10.5px;padding:1px 6px;border-radius:5px;background:var(--panel-2);border:1px solid var(--border);color:var(--text)}.chip b{margin-left:4px;color:var(--muted);font-weight:600}.chip-failed{color:var(--st-failed);border-color:var(--st-failed)}.chip-on{border-color:var(--primary);color:var(--primary)}.zf-node-error{margin:0 9px 8px;color:var(--st-failed);font-size:11px;max-height:48px;overflow:hidden}.empty-state{position:absolute;top:30%;left:50%;transform:translate(-50%,-50%);max-width:460px;text-align:center;color:var(--muted);pointer-events:none}.empty-state h2{color:var(--text);font-size:18px}.k{padding:1px 6px;border-radius:4px;color:#fff;font-size:11px}.k-fcs{background:var(--kind-fcs)}.k-gate{background:var(--kind-gate)}.k-scout{background:var(--kind-scout)}.k-selfgate{background:var(--kind-selfgate)}.react-flow__background{background:var(--bg)}.react-flow__controls button{background:var(--panel);border-color:var(--border);color:var(--text)}.react-flow__controls button svg{fill:currentColor}.minimap{background:var(--panel)!important;border:1px solid var(--border);border-radius:6px}.react-flow__edge.selected .react-flow__edge-path{stroke-width:3.5!important}.toggle-steps.on{border-color:var(--primary);color:var(--primary)}.body{position:relative}@media (max-width: 1200px){.minimap{display:none}}@media (max-width: 1000px){.palette{position:absolute;left:0;top:0;bottom:0;z-index:16;box-shadow:var(--shadow)}.side{position:absolute;right:0;top:0;bottom:0;z-index:15;width:min(380px,92vw);box-shadow:var(--shadow)}.side:not(.open){display:none}.brand{max-width:100%}.brand .ws{max-width:220px}}.chip-pending{border-style:dashed;color:var(--muted);background:transparent}.checklist{display:flex;flex-direction:column;gap:2px;border:1px solid var(--border);border-radius:6px;padding:6px 8px;background:var(--panel-2);max-height:220px;overflow-y:auto}.checklist-actions{display:flex;gap:10px;align-items:baseline;margin-bottom:2px}.checklist-actions .hint{margin:0 0 0 auto}.check-row{display:flex;align-items:center;gap:8px;padding:2px 0;cursor:pointer}.check-row.missing{color:var(--st-partial)}.check-row em{font-style:normal;font-size:11px}.inputs-summary{margin:0 0 12px;padding:8px;border-radius:6px;background:var(--panel-2)}.section-label{display:block;font-weight:600;font-size:12px;margin-bottom:4px}.input-row{display:flex;gap:8px;align-items:flex-start;font-size:12px;margin:3px 0}.input-row code{font-size:11px;color:var(--muted);min-width:64px}.input-src{display:flex;flex-direction:column;gap:3px;min-width:0;word-break:break-all}.cat-inputs{--cat: var(--cat-inputs)}.cat-gating{--cat: var(--cat-gating)}.cat-scout{--cat: var(--cat-scout)}.cat-analysis{--cat: var(--cat-analysis)}.cat-other{--cat: var(--cat-other)}.zf-icon{display:inline-grid;place-items:center;flex-shrink:0;width:28px;height:28px;border-radius:7px;color:var(--cat);background:color-mix(in srgb,var(--cat) 14%,transparent)}.palette-item .zf-icon{width:30px;height:30px}.zf-node{border-top:3px solid color-mix(in srgb,var(--cat) 70%,transparent)}.zf-node-head{align-items:center;gap:8px}.zf-node-title{flex:1}.pill{display:inline-flex;align-items:center;gap:5px}.zf-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--st-missing)}.dot-stale{background:var(--st-stale)}.dot-cached,.dot-done{background:var(--st-done)}.dot-running{background:var(--st-running);animation:pulse 1.1s ease-in-out infinite}.dot-partial{background:var(--st-partial)}.dot-failed{background:var(--st-failed)}.dot-queued{background:transparent;box-shadow:inset 0 0 0 1.5px var(--st-queued)}.dot-blocked,.dot-cancelled{background:var(--st-blocked)}@keyframes pulse{50%{opacity:.35;transform:scale(.8)}}.zf-node.compact{width:auto;min-width:128px;max-width:200px;height:40px;padding:0 10px 0 6px;display:flex;align-items:center;gap:7px;border-top-width:1px;border-left-width:1px;border-radius:11px;position:relative;overflow:visible;background:linear-gradient(90deg,color-mix(in srgb,var(--cat) 9%,var(--panel)) 0,var(--panel) 70%);border-color:color-mix(in srgb,var(--cat) 45%,var(--border))}.zf-node.compact .zf-icon{width:26px;height:26px;border-radius:7px}.zf-node.compact.status-stale{box-shadow:var(--shadow),0 0 0 1.5px var(--st-stale)}.zf-node.compact.status-running{box-shadow:var(--shadow),0 0 0 2px var(--st-running)}.zf-node.compact.status-failed,.zf-node.compact.has-error{box-shadow:var(--shadow),0 0 0 2px var(--st-failed)}.zf-node.compact.status-partial{box-shadow:var(--shadow),0 0 0 1.5px var(--st-partial)}.zf-compact-id{font-weight:600;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.zf-count{font-size:10.5px;font-weight:700;min-width:18px;height:18px;padding:0 5px;border-radius:9px;display:inline-grid;place-items:center;background:var(--panel-2);color:var(--muted);border:1px solid var(--border)}.zf-count.pending{border-style:dashed;background:transparent}.zf-compact-progress{position:absolute;left:0;bottom:-1px;height:3px;border-radius:0 0 0 11px;background:var(--st-running);transition:width .3s}.react-flow__handle.compact-handle{width:9px;height:9px;border:2px solid var(--panel)}.react-flow__handle.compact-handle.optional{opacity:.55}button.with-icon{display:inline-flex;align-items:center;gap:6px}.segmented{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden;margin-left:4px}.segmented button{border:none;border-radius:0;padding:5px 8px;color:var(--muted);display:inline-grid;place-items:center}.segmented button+button{border-left:1px solid var(--border)}.segmented button.on{background:color-mix(in srgb,var(--primary) 14%,var(--panel));color:var(--primary)}.legend{position:absolute;left:56px;bottom:14px;z-index:5;display:flex;gap:12px;padding:4px 10px;font-size:11px;color:var(--muted);background:color-mix(in srgb,var(--panel) 88%,transparent);border:1px solid var(--border);border-radius:999px}.legend span{display:inline-flex;align-items:center;gap:5px}.k-dot{width:10px;height:3px;border-radius:2px;display:inline-block}@media (max-width: 700px){.legend{display:none}}.view-tabs{display:inline-flex;gap:2px;padding:2px;background:var(--panel-2);border-radius:9px;border:1px solid var(--border)}.view-tabs button{border:none;background:none;display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border-radius:7px;color:var(--muted);font-weight:550}.view-tabs button.on{background:var(--panel);color:var(--text);box-shadow:var(--shadow)}.app-name{color:var(--primary);font-weight:750;margin-right:4px}.logo{flex-shrink:0}.results{flex:1;display:flex;min-height:0}.results-tree{background:var(--panel);border-right:1px solid var(--border)}.tree-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.tree-head select{width:auto;flex:1;min-width:0}.pad{padding:12px}.results-main{flex:1;overflow:auto;min-width:0}.results-empty{padding:48px 24px;text-align:center;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:12px}.jtree{list-style:none;margin:0;padding:6px 0;overflow:auto;flex:1}.jrow{display:flex;align-items:center;gap:2px;padding-right:10px;min-height:26px}.jrow.on{background:color-mix(in srgb,var(--primary) 12%,transparent)}.jrow.on .jname{color:var(--primary);font-weight:650}.jrow.dim{opacity:.55}.twisty{width:16px;flex-shrink:0;border:none;background:none;padding:0;color:var(--muted);font-size:11px;text-align:center}.jlabel{flex:1;min-width:0;display:flex;align-items:center;gap:6px;border:none;background:none;padding:3px 4px;text-align:left;border-radius:5px}.jlabel:hover{background:var(--panel-2)}.jname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jk-node>.jlabel .jname,tr.jk-node .jname{font-weight:650}.jk-step .jname{color:var(--muted)}.jicon{display:inline-grid;place-items:center;color:var(--muted);flex-shrink:0}.jk-node .jicon{color:var(--primary)}.jk-population .jicon,.jk-port .jicon{color:var(--viz-1)}.jtag{font-style:normal;font-size:10px;color:var(--muted);border:1px solid var(--border);border-radius:4px;padding:0 4px}.jcount{font-variant-numeric:tabular-nums;font-size:var(--fs-sm);display:flex;gap:6px;align-items:baseline;white-space:nowrap}.jcount small{color:var(--muted);font-size:10.5px;min-width:30px;text-align:right}.result-panel{padding:16px 22px 40px;max-width:1280px}.result-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.result-head .zf-icon{--cat: var(--cat-gating);width:34px;height:34px}.result-title h2{margin:0;font-size:var(--fs-xl)}.result-title{display:flex;flex-direction:column}.result-panel h3{font-size:var(--fs-lg);margin:22px 0 8px}.lede{font-size:var(--fs-lg);margin:10px 0 14px}.sample-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.chip-btn{border-radius:999px;padding:3px 12px;font-size:var(--fs-sm)}.chip-btn.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink);font-weight:600}.gate-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.gate-card{display:flex;flex-direction:column;gap:4px;text-align:left;padding:8px 10px;border-radius:10px;background:var(--panel);box-shadow:var(--shadow)}.gate-card.on{border-color:var(--primary);box-shadow:0 0 0 1.5px var(--primary),var(--shadow)}.gate-card.split{border-style:dashed}.gate-card-head{display:flex;justify-content:space-between;align-items:center;gap:6px}.gate-name{font-weight:650}.gate-card-foot{display:flex;gap:8px;align-items:baseline;font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}.gate-card-foot b{font-size:var(--fs-lg);color:var(--text)}.hist{width:100%}.hist svg{display:block;overflow:visible}.hist-out{fill:var(--viz-out);opacity:.75}.hist-in{fill:var(--viz-kept);opacity:.55}.hist-line{fill:none;stroke:var(--viz-line);stroke-width:1}.hist .axis{stroke:var(--border)}.hist .tick{font-size:10px;fill:var(--muted)}.hist .axis-title{font-size:11px;fill:var(--muted)}.hist .cut{stroke:var(--viz-cut);stroke-width:1.8;stroke-dasharray:5 3}.hist .cut-label{font-size:10.5px;fill:var(--viz-cut-text);font-weight:650}.hist-key{display:flex;gap:14px;font-size:var(--fs-xs);color:var(--muted);margin-top:2px}.hist-key span{display:inline-flex;align-items:center;gap:5px}.hist-key i{width:12px;height:8px;border-radius:2px;display:inline-block}.key-in{background:var(--viz-kept);opacity:.6}.key-out{background:var(--viz-out)}.key-cut{height:0!important;border-top:2px dashed var(--viz-cut)}.step-detail{margin-top:16px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.step-detail h3{margin:0}.step-grid{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;margin-top:10px}@media (max-width: 900px){.step-grid{grid-template-columns:1fr}}.why{border-radius:10px;padding:10px 12px;background:var(--panel-2);border-left:4px solid var(--q-fitted);font-size:var(--fs-sm)}.why-fallback{border-left-color:var(--q-fallback)}.why-fixed{border-left-color:var(--q-fixed)}.why-title{text-transform:uppercase;letter-spacing:.06em;font-size:10.5px;color:var(--muted);font-weight:650}.why-headline{font-weight:650;font-size:var(--fs-md);margin:3px 0 4px}.why p{margin:0 0 8px}.facts{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;margin:0;font-variant-numeric:tabular-nums}.facts dt{color:var(--muted)}.facts dd{margin:0}.compare{margin-top:16px;border-top:1px solid var(--border);padding-top:12px}.legend-row{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--fs-sm);margin-top:4px}.legend-row span{display:inline-flex;align-items:center;gap:6px}.legend-row i{width:14px;height:3px;border-radius:2px;display:inline-block}.legend-row em{font-style:normal;color:var(--muted);font-size:var(--fs-xs)}.small-multiples{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}.sm-cell{border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:var(--fs-sm)}.bar-cell{position:relative;display:inline-block;min-width:90px;padding:0 2px}.bar-cell i{position:absolute;left:0;top:2px;bottom:2px;background:color-mix(in srgb,var(--viz-1) 22%,transparent);border-radius:2px;z-index:0}td.num,th.num{text-align:right}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:8px}.thumb{padding:6px;display:flex;flex-direction:column;gap:4px;text-align:left;font-size:var(--fs-xs);color:var(--muted)}.thumb img{width:100%;height:150px;object-fit:contain;background:#fff;border-radius:4px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#0a0e0cb8;display:grid;place-items:center;padding:24px}.lightbox figure{margin:0;max-width:96vw;max-height:92vh;display:flex;flex-direction:column;gap:8px}.lightbox img{max-width:96vw;max-height:84vh;object-fit:contain;background:#fff;border-radius:8px}.lightbox figcaption{color:#fff;display:flex;gap:16px;align-items:center}.lightbox .link{color:#9fe3b9}.journey{flex:1;overflow:auto;padding:16px 22px 40px}.journey-head{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-bottom:10px}.journey-head h2{margin:0;font-size:var(--fs-xl)}.journey-head .hint{margin:2px 0 0}.journey-table{background:var(--panel);border:1px solid var(--border);border-radius:10px}.journey-table th small{display:block;font-weight:500;font-size:10.5px}.journey-table td{padding:2px 10px}.jcell-label{display:flex;align-items:center;gap:2px;min-width:240px}.jcell-label em{font-style:normal;font-size:var(--fs-xs);margin-left:4px}.jcell{position:relative;min-width:128px}.jcell b{font-weight:600;position:relative}.jcell small{position:relative;color:var(--muted);display:inline-block;min-width:46px;margin-left:8px;font-size:var(--fs-xs)}.jbar{position:absolute;left:0;top:4px;bottom:4px;background:color-mix(in srgb,var(--viz-1) 13%,transparent);border-radius:0 3px 3px 0}tr.jk-node td{background:color-mix(in srgb,var(--panel-2) 60%,transparent)}tr.jk-step td{font-size:var(--fs-xs)}.plot-bg{fill:var(--panel-2)}.gate-outline{fill:none;stroke:var(--viz-cut);stroke-width:2}.kept-band{fill:var(--viz-kept);opacity:.08}.density-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.density-title{display:flex;align-items:center;gap:6px;font-size:var(--fs-sm);font-weight:600;margin-bottom:2px}.density-title i{width:10px;height:10px;border-radius:2px;display:inline-block}.chart-frame{margin:0;min-width:0}.chart-head{display:flex;align-items:center;gap:8px;min-height:20px}.chart-head figcaption{font-size:var(--fs-sm)}.export-menu{display:inline-flex;gap:10px;opacity:.55;transition:opacity .15s}.chart-frame:hover .export-menu,.export-menu:focus-within{opacity:1}.export-menu .link{font-size:var(--fs-xs);font-weight:650}.facts.wide{grid-template-columns:max-content 1fr;max-width:640px;margin:8px 0}.path-cell{max-width:520px;overflow:hidden;text-overflow:ellipsis}details.more{margin-top:22px}details.more>summary{cursor:pointer;color:var(--muted);font-weight:600}.heatmap td.hm{min-width:82px;font-variant-numeric:tabular-nums}.heatmap tr.on td{outline:1px solid var(--primary)}.heatmap th small{display:block;font-weight:500;font-size:10.5px}.spider-wrap{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.spider{width:auto}.spider-base{fill:none;stroke:var(--viz-out);stroke-width:2;stroke-dasharray:4 3}.failure-card{margin:4px 0 16px;padding:12px 14px;border-radius:10px;border:1px solid var(--st-failed);background:color-mix(in srgb,var(--st-failed) 7%,var(--panel))}.failure-title{font-weight:700;font-size:var(--fs-lg);color:var(--danger)}.failure-card p{margin:4px 0 10px}.failure-card details{margin-top:10px;font-size:var(--fs-xs);color:var(--muted)}.edge-tip{position:absolute;pointer-events:none;z-index:1000;min-width:150px;max-width:260px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:6px 9px;font-size:11.5px}.edge-tip-head{margin-bottom:3px;white-space:nowrap}.edge-tip-row{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.edge-tip-hint{color:var(--muted);font-size:10.5px;margin-top:4px}.pad-sm{padding:8px 10px 4px}.pop-list{overflow:auto;flex:1;padding-bottom:12px}.pop-group-head{display:flex;align-items:center;gap:6px;width:100%;border:none;background:none;padding:5px 10px;text-align:left}.pop-group-head:hover{background:var(--panel-2)}.pop-row{padding:2px 10px 2px 32px;font-size:var(--fs-sm)}.pop-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compare-controls{margin:4px 0 10px}.inline-field{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:var(--fs-sm)}.inline-field select{width:auto}.view-tabs{flex-wrap:wrap}.report-controls{max-width:1000px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border)}.report-controls h2{margin:0}.report-include{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:10px}.report-page{max-width:1000px;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:26px 32px}.report-title h1{margin:0 0 2px;font-size:24px}.report-page h2{font-size:17px;margin:22px 0 8px;border-bottom:1px solid var(--border);padding-bottom:4px}.report-page p{max-width:80ch}.report-gates{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.report-gate{border:1px solid var(--border);border-radius:8px;padding:6px 8px;font-size:var(--fs-sm);break-inside:avoid}.report-gate-why{font-size:var(--fs-xs);color:var(--muted)}.journey-embedded .journey-table{border-radius:6px}@media print{@page{margin:14mm}:root{color-scheme:light;--bg: #fff;--panel: #fff;--panel-2: #f3f4f3;--text: #111;--muted: #555;--border: #d6dbd8;--viz-out: #c3c9c5;--viz-line: #333}html,body,#root,.app{height:auto!important;overflow:visible!important;background:#fff}.toolbar,.banner,.report-controls,.export-menu,.toasts,.twisty,details.more,.seg-tabs,.link{display:none!important}.journey{padding:0;overflow:visible}.report-page{border:none;padding:0;max-width:none}.report-section,.step-detail,.chart-frame,table{break-inside:avoid}.report-section{break-before:auto}.step-grid{grid-template-columns:1fr 260px}.jlabel,button{color:inherit}}.edge-plus{position:absolute;pointer-events:all;width:24px;height:24px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:16px;font-weight:700;line-height:1;background:var(--primary);color:var(--primary-ink);border:2px solid var(--panel);box-shadow:var(--shadow);cursor:pointer}.quickadd-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60}.quickadd{position:fixed;width:300px;max-height:360px;display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:8px;transform:translate(8px,8px)}.quickadd-title{font-weight:650;font-size:var(--fs-sm);color:var(--muted)}.quickadd ul{list-style:none;margin:0;padding:0;overflow:auto}.quickadd-item{width:100%;display:flex;gap:8px;align-items:flex-start;text-align:left;border:none;background:none;padding:6px;border-radius:7px}.quickadd-item.on{background:color-mix(in srgb,var(--primary) 10%,transparent)}.quickadd-item small{display:block;color:var(--muted);font-size:11px;line-height:1.3}.quickadd-item .zf-icon{width:24px;height:24px}.shortcuts{display:grid;grid-template-columns:max-content 1fr;gap:4px 10px;font-size:var(--fs-sm);margin:6px 0 0}.shortcuts dd{margin:0;color:var(--muted)}kbd{font:11px ui-monospace,Menlo,monospace;padding:1px 5px;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;background:var(--panel-2)}.react-flow__nodesselection-rect,.react-flow__selection{background:color-mix(in srgb,var(--primary) 8%,transparent);border:1px dashed var(--primary)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}button.soft-disabled{opacity:.6}.cmdk-trigger{display:inline-flex;align-items:center;gap:10px;color:var(--muted);padding:4px 8px 4px 12px;min-width:150px;justify-content:space-between}.toolbar{flex-wrap:nowrap;gap:12px}.actions{flex-wrap:nowrap}.brand{max-width:28%;flex-shrink:1}@media (max-width: 1320px){.actions .lbl,.cmdk-trigger .lbl,.status .lbl{display:none}.cmdk-trigger{min-width:0}}@media (max-width: 1050px){.view-tabs .lbl,.brand .ws{display:none}.view-tabs button{padding:4px 8px}}@media (max-width: 760px){.toolbar{flex-wrap:wrap}.brand .doc-name,.actions .secondary{display:none}}.palette-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;background:#0a0e0c47;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}.cmdk{width:min(620px,92vw);max-height:64vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 18px 50px #00000040;overflow:hidden}.cmdk input{border:none;border-bottom:1px solid var(--border);border-radius:0;padding:14px 16px;font-size:var(--fs-lg);background:var(--panel)}.cmdk input:focus-visible{box-shadow:none}.cmdk ul{list-style:none;margin:0;padding:6px;overflow:auto}.cmdk-group{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 10px 3px}.cmdk-item{width:100%;display:flex;align-items:center;gap:10px;border:none;background:none;padding:7px 10px;border-radius:7px;text-align:left}.cmdk-item.on{background:color-mix(in srgb,var(--primary) 12%,transparent)}.cmdk-icon{width:18px;display:inline-grid;place-items:center;color:var(--muted)}.cmdk-title{flex:1}.cmdk-hint{color:var(--muted);font-size:var(--fs-xs)}dialog.dialog{border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);padding:18px 22px;width:min(560px,92vw);box-shadow:0 18px 50px #00000040}dialog.dialog::backdrop{background:#0a0e0c4d}dialog.dialog h2{margin:0;font-size:var(--fs-xl)}.shortcuts.big{gap:8px 16px;font-size:var(--fs-md);margin:14px 0}.marker-picker{display:flex;flex-direction:column;gap:6px}.marker-chips{display:flex;flex-wrap:wrap;gap:4px;max-height:160px;overflow:auto;padding:2px}.mchip{border-radius:999px;padding:2px 9px;font-size:var(--fs-xs)}.mchip.on{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.mchip.partial{border-style:dashed}.mapping table{font-size:var(--fs-xs)}.mapping td{white-space:normal;vertical-align:top}.mapping select{font-size:var(--fs-xs)}.library-field{display:flex;flex-direction:column;gap:6px}.library-card{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--panel-2)}.library-card .hint{margin:0 0 6px}.chain{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-wrap:wrap;gap:4px;align-items:center;counter-reset:s}.chain li{display:flex;flex-direction:column;padding:3px 8px;border-radius:7px;background:var(--panel);border:1px solid var(--border);font-size:11px;line-height:1.25}.chain li+li:before{content:"→";position:relative;left:-11px;top:7px;width:0;color:var(--muted)}.chain li{margin-left:8px}.chain li:first-child{margin-left:0}.chain li span{color:var(--muted);font-size:10.5px}.chain li.split{border-style:dashed}.chain li.terminal{border-color:var(--primary)}.origin{font-size:10.5px;padding:1px 7px;border-radius:999px;background:var(--panel);border:1px solid var(--border);color:var(--muted)}.origin-workspace{color:var(--primary);border-color:var(--primary)}.field.flash{animation:flash 1.6s ease-out;border-radius:6px}@keyframes flash{0%{box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 45%,transparent)}to{box-shadow:none}}.brand>div{min-width:0}.brand .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.home{height:100%;overflow:auto;box-sizing:border-box;padding:40px max(24px,6vw) 60px;max-width:1200px;margin:0 auto}.home-hero{display:flex;align-items:center;gap:18px;margin-bottom:26px}.home-hero .logo{width:52px;height:52px}.home-hero h1{margin:0;font-size:30px;color:var(--primary);letter-spacing:-.01em}.home-hero p{margin:2px 0 0;color:var(--muted);font-size:var(--fs-lg);max-width:60ch}.home h2{font-size:var(--fs-lg);margin:26px 0 10px}.home-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.ws-card{position:relative;display:flex;border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:var(--shadow)}.ws-card.current{border-color:var(--primary)}.ws-card-main{flex:1;display:flex;gap:12px;align-items:flex-start;text-align:left;border:none;background:none;padding:14px;min-width:0;border-radius:12px}.ws-card-main:hover{background:color-mix(in srgb,var(--primary) 5%,transparent)}.ws-card-text{display:flex;flex-direction:column;gap:2px;min-width:0}.ws-card-text .path{font-size:var(--fs-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ws-card .zf-icon{width:36px;height:36px}.ws-forget{position:absolute;top:6px;right:4px;opacity:0}.ws-card:hover .ws-forget,.ws-forget:focus-visible{opacity:1}.tpl-card{display:flex;flex-direction:column;gap:6px;text-align:left;padding:14px 16px;border-radius:12px;background:var(--panel);box-shadow:var(--shadow);min-height:112px}.tpl-card p{margin:0;color:var(--muted);font-size:var(--fs-sm)}.tpl-card.recommended{border:2px solid var(--primary)}.badge-rec{font-size:10.5px;font-weight:700;color:var(--primary-ink);background:var(--primary);border-radius:999px;padding:1px 8px}.create-dialog{width:min(520px,92vw);background:var(--panel);border-radius:12px;padding:18px 22px;box-shadow:0 18px 50px #00000040;align-self:flex-start}.create-dialog h2{margin:0 0 4px;font-size:var(--fs-xl)}.path-preview{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-xs);padding:6px 8px;background:var(--panel-2);border-radius:6px}.row-gap.end{justify-content:flex-end;margin-top:12px}.brand-home{border:none;background:none;padding:0;display:inline-grid}.link-plain{border:none;background:none;padding:0;text-align:left;cursor:pointer}.link-plain:hover{color:var(--primary);text-decoration:underline}.tour-ring{position:fixed;z-index:95;border-radius:10px;box-shadow:0 0 0 3px var(--primary),0 0 0 9999px #0a0e0c52;pointer-events:none;transition:all .25s}.tour-card{position:fixed;z-index:96;background:var(--panel);border-radius:12px;padding:14px 16px;box-shadow:0 18px 50px #0000004d;font-size:var(--fs-md)}.tour-card p{margin:6px 0 4px;color:var(--muted)}.tour-step{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--primary);font-weight:700}.sample-row.missing input{border-color:var(--st-partial)}.sample-row.missing .sample-path{color:var(--st-partial)}.locate-box{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border-radius:6px;background:color-mix(in srgb,var(--st-partial) 12%,transparent);font-size:var(--fs-sm)}.run-state{display:inline-flex;align-items:center;gap:6px;border:none;background:none;color:var(--muted);padding:3px 6px}.run-state.on{color:var(--st-running);font-weight:600}.activity{position:absolute;right:14px;top:100%;z-index:30;width:min(420px,94vw);max-height:75vh;overflow:auto;background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 34px #0000002e;padding:4px 16px 14px}.activity h3{font-size:var(--fs-md);margin:12px 0 6px}.run-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.run-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:var(--fs-sm)}.run-when{font-variant-numeric:tabular-nums;min-width:92px}.disk-bar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--panel-2);margin:4px 0}.disk-bar i,.disk-legend i{display:inline-block;height:100%}.disk-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:var(--fs-xs);color:var(--muted);margin-bottom:10px}.disk-legend i{width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.db-current{background:var(--viz-1)}.db-failure{background:var(--q-fallback)}.db-stale{background:var(--viz-out)}.confirm-box{border:1px solid var(--border);border-radius:8px;padding:8px 10px;background:var(--panel-2);font-size:var(--fs-sm)}.confirm-box p{margin:0}button.danger-solid{background:var(--danger);border-color:var(--danger);color:var(--panel);font-weight:600}.status .run-state.on .lbl{display:inline}.above-thr{font-weight:700;color:var(--st-done)}.toolbar{flex-wrap:nowrap;gap:10px;padding:7px 12px;min-height:52px}.toolbar button,.toolbar .view-tabs,.toolbar .segmented{white-space:nowrap;flex-shrink:0}.brand{flex:0 1 auto;min-width:0;max-width:260px;gap:8px}.brand-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650;font-size:14px;color:var(--text)}.view-tabs{flex-wrap:nowrap}.run-group{position:relative;display:inline-flex;flex-shrink:0}.run-main{border-top-right-radius:0;border-bottom-right-radius:0;padding:5px 12px}.run-group .danger.run-main{border-radius:6px}.run-more{border-top-left-radius:0;border-bottom-left-radius:0;padding:5px 7px;border-left:1px solid color-mix(in srgb,var(--primary-ink) 30%,transparent)}.run-eta{font-weight:500;opacity:.85;margin-left:4px;font-variant-numeric:tabular-nums}.menu{position:absolute;top:calc(100% + 4px);left:0;z-index:40;min-width:250px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 34px #0000002e;padding:4px;display:flex;flex-direction:column}.menu button{border:none;background:none;text-align:left;display:grid;grid-template-columns:20px 1fr;gap:0 6px;padding:7px 8px;border-radius:7px;white-space:normal}.menu button:hover:not(:disabled){background:color-mix(in srgb,var(--primary) 10%,transparent)}.menu button small{grid-column:2;color:var(--muted)}.segmented .icon-btn{border:none;border-radius:0;padding:5px 8px;color:var(--muted);background:var(--panel)}.segmented .icon-btn+.icon-btn{border-left:1px solid var(--border)}.segmented .icon-btn.on{background:color-mix(in srgb,var(--primary) 14%,var(--panel));color:var(--primary)}.cmdk-trigger{min-width:0;gap:8px;padding:4px 8px}.status{gap:8px;flex-shrink:0}.activity-btn{border:none;background:none;color:var(--muted);padding:4px;position:relative}.activity-btn.on{color:var(--st-running)}.activity-btn.last-failed:after{content:"";position:absolute;top:2px;right:2px;width:7px;height:7px;border-radius:50%;background:var(--st-failed)}.offline{font-size:var(--fs-xs);color:var(--st-failed);font-weight:650}@media (max-width: 1500px){.cmdk-trigger .lbl{display:none}}@media (max-width: 1280px){.view-tabs .lbl{display:none}.view-tabs button{padding:4px 9px}}@media (max-width: 980px){.brand-name .doc-name,.run-eta{display:none}}@media (max-width: 760px){.toolbar{flex-wrap:wrap}}@media (max-width: 1320px){.actions .lbl,.status .lbl{display:inline}}.side{position:relative}.side.resizable{flex-shrink:0}.panel-hide{position:absolute;top:8px;right:8px;z-index:4;border:none;background:none;color:var(--muted);padding:4px}.panel-hide:hover{color:var(--text)}.panel-hide-inline{border:none;background:none;color:var(--muted);padding:2px 4px}.param-panel .panel-title{padding-right:28px}.tabs button{white-space:nowrap}.tabs{overflow-x:auto;scrollbar-width:none}.zf-node.far{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr auto;align-items:center;gap:4px 12px;padding:12px 14px;position:relative;border-top-width:6px}.zf-node.far .zf-icon{width:54px;height:54px;border-radius:12px;grid-row:span 2}.far-name{font-size:26px;font-weight:700;line-height:1.1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.far-meta{display:flex;align-items:center;gap:8px;font-size:18px;color:var(--muted);font-weight:600}.far-meta .zf-dot{width:16px;height:16px}.name-field input{font-weight:600;font-size:var(--fs-lg)}.zf-node-type{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-frame{position:absolute;left:0;top:0;border-radius:16px;pointer-events:none;z-index:-1;background:color-mix(in srgb,var(--g) 7%,transparent);border:2px solid color-mix(in srgb,var(--g) 45%,transparent)}.group-head{position:absolute;left:10px;top:6px;display:flex;align-items:center;gap:4px;pointer-events:all}.group-name{border:none;background:none;font-weight:700;font-size:15px;color:color-mix(in srgb,var(--g) 80%,var(--text));padding:2px 6px;border-radius:6px}.group-name:hover{background:color-mix(in srgb,var(--g) 14%,transparent)}.group-head input{width:200px;font-weight:700;font-size:15px;padding:2px 6px}.group-tool{border:none;background:none;color:var(--muted);padding:0 6px;font-size:16px}.group-menu{position:absolute;top:100%;left:0;z-index:5;display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);padding:4px;min-width:150px}.group-menu>button{border:none;background:none;text-align:left;padding:5px 8px;border-radius:6px}.group-menu>button:hover{background:var(--panel-2)}.group-colors{display:flex;gap:4px;padding:4px 8px}.swatch{width:18px;height:18px;padding:0;border-radius:50%;background:var(--g);border:2px solid var(--panel)}.swatch.on{box-shadow:0 0 0 2px var(--g)}.grp-green{--g: #009E73}.grp-blue{--g: #0072B2}.grp-orange{--g: #E69F00}.grp-purple{--g: #7d4cb0}.grp-pink{--g: #CC79A7}.grp-grey{--g: #6b746f}.react-flow__viewport-portal{z-index:0}.inspector.lite{border-top:1px solid var(--border)}.insp-head{display:flex;align-items:center;gap:10px;padding:8px 12px 0;font-size:var(--fs-sm)}.insp-head .section-label{margin:0}.inspector.lite .tab-body{padding-top:6px}.open-results{margin-top:10px;width:100%;justify-content:center}.param-panel{max-height:none;flex:1 1 auto;border-bottom:none}.inspector.lite{flex:0 1 auto;max-height:45%}.zf-node-id{font-family:inherit;font-size:11px}.graph-nav{padding-bottom:12px}.nav-section{padding:10px 10px 4px;border-bottom:1px solid var(--border)}.nav-head{font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:700;margin-bottom:4px}.nav-fold{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;border-radius:3px}.nav-fold:hover{color:var(--text)}.nav-fold:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.nav-chevron{display:inline-block;width:10px;font-size:10px}.nav-count{font-weight:400;letter-spacing:0;margin-left:2px}.nav-section.folded{padding-bottom:6px}.nav-section.folded .nav-head{margin-bottom:0}.nav-item{display:flex;align-items:center;gap:6px;width:100%;border:none;background:none;padding:4px 6px;border-radius:6px;text-align:left}.nav-item.on,.nav-item:hover{background:color-mix(in srgb,var(--primary) 10%,transparent)}.nav-item.on .pop-name,.nav-item.on{font-weight:650}.nav-label{display:flex;align-items:center;gap:6px;flex:1;min-width:0;border:none;background:none;padding:0;text-align:left}.nav-label input{padding:1px 4px}.graphs-main{display:flex;flex-direction:column}.graph-workspace{display:flex;flex-direction:column;height:100%;min-height:0}.graph-bar{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--border);background:var(--panel)}.graph-bar h2{margin:0;font-size:var(--fs-lg)}.graph-bar select{width:auto}.graph-split{flex:1;display:flex;min-height:0}.graph-canvas{flex:1;overflow:auto;min-width:0;padding:12px 18px;background:color-mix(in srgb,var(--bg) 70%,#d8dcd9)}.format-wrap{background:var(--panel);border-left:1px solid var(--border);overflow:auto}.graph-tabs{margin-bottom:10px}.prism-page{display:inline-block;background:#fff;padding:28px 32px;box-shadow:0 1px 4px #0000002e,0 8px 24px #00000014;border-radius:2px;color:#000;min-width:200px}.prism-graph{display:inline-block}.prism-graph svg{display:block}.pg-hit{cursor:pointer}.pg-hit:hover polygon[stroke-width]{filter:drop-shadow(0 0 1px rgba(0,114,178,.6))}.pg-sel{text-decoration:underline;text-decoration-color:#0072b2}.pg-sel-axis polygon{stroke:#0072b2!important}.pg-tip{position:absolute;pointer-events:none;background:#111;color:#fff;font:11px Arial,sans-serif;padding:3px 7px;border-radius:4px;white-space:nowrap;z-index:5}.prism-title{font-family:Arial,sans-serif;font-weight:700;text-align:center;margin-bottom:6px;color:#000}.cell-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:4px 10px;max-width:1100px}.pager{margin-top:10px;justify-content:center}.graph-note{margin:8px 0 0;color:#555}.format-panel{padding:8px 12px 30px;font-size:var(--fs-sm)}.fmt-title{font-weight:700;font-size:var(--fs-md);margin:4px 0 8px}.fmt-section{border-bottom:1px solid var(--border);padding:6px 0}.fmt-section>summary{cursor:pointer;font-weight:650;padding:3px 0}.fmt-section.focus>summary{color:var(--primary)}.fmt-body{display:flex;flex-direction:column;gap:6px;padding:6px 0 4px}.fmt-row{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:8px}.fmt-row>span:first-child{color:var(--muted)}.fmt-row select,.fmt-row input{width:100%}.fmt-row input[type=color]{height:26px;padding:1px}.fmt-num{display:flex;align-items:center;gap:4px}.fmt-num em{font-style:normal;color:var(--muted);font-size:var(--fs-xs)}.ds-box{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--primary);border-radius:8px;margin-bottom:6px}.ds-list{max-height:180px;overflow:auto;border-top:1px solid var(--border);padding-top:4px}.pop-picker{display:flex;flex-direction:column;gap:4px}.pop-picker-list{max-height:220px;overflow:auto;border:1px solid var(--border);border-radius:6px;padding:4px;background:var(--panel-2)}.pop-group-title{display:flex;gap:6px;align-items:baseline;font-size:var(--fs-xs);padding:3px 4px}.pop-group-title .link{margin-left:auto;font-size:var(--fs-xs)}.pop-picker .pop-row{padding-left:12px}.create-dialog.wide{width:min(760px,94vw)}.family-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0 14px}.family-card{display:flex;gap:10px;align-items:center;text-align:left;padding:8px 10px;border-radius:10px}.family-card.on{border-color:var(--primary);box-shadow:0 0 0 1.5px var(--primary)}.family-card small{display:block;color:var(--muted);font-size:var(--fs-xs);line-height:1.3;margin-top:2px}.family-card svg{flex-shrink:0;background:#fff;border-radius:6px}.design-editor h2{margin:0}.design-editor .prism-sheet td.cell-edit{padding:0}.design-editor .prism-sheet td.cell-edit input{border:none;border-radius:0;background:transparent;padding:5px 8px}.design-editor .prism-sheet td.cell-edit input:focus{background:color-mix(in srgb,var(--primary) 8%,transparent)}.prism-sheet table{border:1px solid var(--border)}.prism-sheet th,.prism-sheet td{border-right:1px solid var(--border)}.prism-sheet th{background:var(--panel-2)}.col-name{width:120px;font-weight:650;padding:2px 4px}.paste-box{border:1px dashed var(--border);border-radius:8px;padding:8px 10px;margin:10px 0}.prism-graph .sel-target{cursor:pointer}.prism-graph text.sel,.prism-graph .sel text{text-decoration:underline;text-decoration-color:#0072b2}.prism-graph g.sel>line,.prism-graph g.sel>g>line{stroke:#0072b2}.prism-graph g.sel circle,.prism-graph g.sel rect:not([fill=transparent]),.prism-graph g.sel polygon{stroke:#0072b2;stroke-width:2px}.prism-graph rect.sel-area{fill:#0072b20f}.prism-graph .col-label{cursor:grab;-webkit-user-select:none;user-select:none}.prism-graph .col-label:active{cursor:grabbing}.style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.style-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font-size:var(--fs-xs);border-radius:8px}.style-card svg{background:#fff;border-radius:4px}.style-card.on{border-color:var(--primary);box-shadow:0 0 0 1.5px var(--primary)}.col-order{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.col-order li{display:flex;align-items:center;gap:6px;padding:2px 4px;border-radius:6px}.col-order li.on{background:color-mix(in srgb,var(--primary) 12%,transparent)}.col-order .pop-name{flex:1}.col-swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0}.prism-sheet td.excluded{color:#2b6cb0;font-style:italic}.column-what{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;max-width:460px}.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:0}.kv dt{color:var(--muted)}.kv dd{margin:0}.design-editor input.inferred::placeholder{color:var(--muted);font-style:italic;opacity:1}.badge-inferred{font-size:var(--fs-xs);font-weight:500;color:var(--muted);border:1px solid var(--border);border-radius:6px;padding:0 4px;margin-left:4px}.prism-graph .xy-legend.off{opacity:.35}.prism-graph .xy-legend:hover text{text-decoration:underline}.prism-sheet td.row-x{font-weight:650}.hint.warn-text{color:var(--warn, #9a6700)}.layout-editor{display:flex;flex-direction:column;min-height:0}.layout-canvas{overflow:auto;padding:8px 0 24px}.layout-zoom{width:max-content;margin:0 auto}.layout-sheet{position:relative;background:#fff;box-shadow:0 1px 4px #0000002e,0 8px 24px #00000014;color:#000;overflow:hidden}.layout-margin{position:absolute;border:1px dashed #c9d2ce;pointer-events:none}.layout-item{position:absolute;transform-origin:0 0}.layout-sheet.editing .layout-item{cursor:grab}.layout-sheet.editing .layout-item:active{cursor:grabbing}.layout-sheet.editing .layout-item:hover{outline:1px dashed #9fb4ab}.layout-item.sel{outline:1.5px solid var(--primary)!important}.layout-figure{pointer-events:none}.layout-letter{position:absolute;left:0;top:0;transform:translate(-110%,-35%);font-weight:700;line-height:1;color:#000;pointer-events:none}.layout-resize{position:absolute;right:-6px;bottom:-6px;width:12px;height:12px;background:var(--primary);border:2px solid #fff;border-radius:3px;cursor:nwse-resize;box-shadow:0 0 0 1px var(--primary)}.layout-empty{position:absolute;inset:40% 15% auto;text-align:center;color:#777;font-size:14px}.add-graph{text-align:left}.layout-print-root{display:none}.report-figure{margin:10px 0 22px}.report-figure .layout-sheet{box-shadow:0 0 0 1px var(--border)}@media print{html.print-layout #root{display:none!important}html.print-layout .layout-print-root{display:block}html.print-layout .layout-print-root .layout-sheet{box-shadow:none}.report-figure{break-before:page;break-inside:avoid}}.design-editor .prism-sheet tr.group-start td{border-top:2px solid var(--border)}.events-editor .event-block{margin:14px 0}.events-editor .event-block>.row-between{margin-bottom:6px}.design-editor td.cell-edit input[type=number]{width:6em}.report-table{border-collapse:collapse}.report-table th,.report-table td{border-bottom:1px solid var(--border);padding:4px 10px;text-align:left}.legend-rename{box-sizing:border-box;font-family:Arial,Helvetica,sans-serif;padding:0 4px;border:1px solid var(--accent, #2f7d4f);border-radius:3px;background:#fff;color:#000;outline:none}.layout-item .graph-note{display:none}.layout-caption{position:absolute;color:#000;line-height:1.3;text-align:left}.layout-caption p{margin:0 0 .35em}.layout-caption p:last-child{margin-bottom:0}.layout-caption.editable{cursor:text}.layout-sheet.editing .layout-caption.editable:hover{outline:1px dashed #9fb4ab}.layout-caption-empty{color:#9a9a9a;font-style:italic}.layout-caption-edit{width:100%;min-height:6em;box-sizing:border-box;resize:vertical;line-height:1.3}.caption-box{width:100%;box-sizing:border-box;font-family:inherit;font-size:12px;line-height:1.35}.export-stage{position:fixed;left:-30000px;top:0;visibility:hidden;pointer-events:none}.export-stage .layout-sheet{margin-bottom:20px}.tables-page h2{margin:0 0 2px}.import-report{border:1px solid color-mix(in srgb,#b26a00 45%,var(--border));background:color-mix(in srgb,#ffcf66 14%,var(--panel));border-radius:8px;padding:8px 12px;margin:10px 0;font-size:var(--fs-sm)}.import-report ul{margin:6px 0 0;padding-left:18px}.import-report li{margin:2px 0}.preset-card{border:2px solid var(--primary);border-radius:10px;padding:10px 14px;margin:10px 0}.preset-card p{margin:4px 0 8px}.import-dialog{width:min(640px,94vw);max-height:86vh;overflow:auto}.import-files{columns:2;padding-left:18px;font-size:var(--fs-sm)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.hub-brand{display:inline-flex;align-items:center;gap:10px;color:var(--primary);text-decoration:none;font-weight:700;font-size:var(--fs-lg)}.hub-brand .logo{width:34px;height:34px}.hub-main{max-width:820px}.hub-card{border:1px solid var(--border);border-radius:12px;background:var(--panel);box-shadow:var(--shadow);padding:14px 18px;margin:14px 0}.hub-card h2,.hub-card h3{margin:0 0 10px}.hub-signin{max-width:380px}.hub-signin input{width:100%;box-sizing:border-box}.hub-table{width:100%;border-collapse:collapse}.hub-table td{padding:6px 4px;border-bottom:1px solid var(--border)}.hub-invite{margin-top:12px;display:flex;flex-direction:column;gap:6px}.hub-link{width:100%;box-sizing:border-box;font-family:var(--mono, ui-monospace, monospace);font-size:var(--fs-sm)}.hub-chip{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--border);border-radius:999px;padding:0 2px 0 8px;margin:0 4px}.hub-code{background:color-mix(in srgb,var(--text) 6%,var(--panel));border-radius:8px;padding:10px 12px;overflow:auto;font-size:var(--fs-sm)}.ws-settings{position:absolute;top:10px;right:12px;font-size:var(--fs-sm)}.primary-link{background:var(--primary);color:var(--primary-ink);border-radius:8px;padding:6px 14px;text-decoration:none;font-weight:600}.hub-people{display:inline-flex;align-items:center;gap:2px}.hub-avatar{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;font-size:10.5px;font-weight:700;color:#fff;background:var(--avatar, #5b6b8c);border:2px solid var(--panel);margin-left:-6px}.hub-people .hub-avatar:first-child{margin-left:0}.hub-role{font-size:var(--fs-xs);color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px;white-space:nowrap}.hub-banner{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}.hub-lock{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:#fff;background:var(--avatar, #5b6b8c);border-radius:999px;padding:1px 8px}.ms-block.locked{outline:2px solid var(--avatar, #5b6b8c);outline-offset:2px;border-radius:4px}.ms-block.locked .ms-view{cursor:not-allowed}.hub-mini{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;font-size:8.5px;font-weight:700;color:#fff;background:var(--avatar, #5b6b8c);margin-left:4px;vertical-align:middle}.ms-lock{position:absolute;top:-10px;right:6px;z-index:2}.hub a.ws-card-main{color:inherit;text-decoration:none}.hub a.ws-card-main b{color:var(--text)}
