.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{--bg: #0b0e14;--bg-grid: #1a2030;--panel: #11151e;--panel-2: #161b26;--panel-3: #1d2331;--line: #262d3d;--line-2: #323a4d;--text: #e6e9f0;--text-2: #a3abbd;--text-3: #6b7489;--traffic: #8b95a8;--agent: #5b9cff;--data: #a78bfa;--eval: #f2b84b;--gate: #3ecf8e;--monitor: #f472b6;--pass: #3ecf8e;--fail: #ff5d5d;--warn: #f2b84b;--note: #ffe9a8;--font-ui: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--font-note: "Roboto", system-ui, sans-serif;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--shadow: 0 8px 30px rgba(0, 0, 0, .45);--topbar-h: 52px;--palette-w: 248px;--inspector-w: 380px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);font-size:14px;-webkit-font-smoothing:antialiased}button{font:inherit;color:inherit;cursor:pointer}.mono{font-family:var(--font-mono)}.muted{color:var(--text-2)}.faint{color:var(--text-3)}.pass{color:var(--pass)}.fail{color:var(--fail)}.warn{color:var(--warn)}.app{display:grid;grid-template-rows:var(--topbar-h) 1fr;grid-template-columns:var(--palette-w) 1fr var(--inspector-w);grid-template-areas:"top top top" "palette canvas inspector";height:100vh;overflow:hidden}.app.palette-closed{grid-template-columns:44px 1fr var(--inspector-w)}.topbar{grid-area:top}.palette{grid-area:palette}.canvas-wrap{grid-area:canvas;position:relative;min-width:0}.inspector{grid-area:inspector}.topbar{display:flex;align-items:center;gap:16px;padding:0 14px;background:var(--panel);border-bottom:1px solid var(--line);min-width:0}.logo{font-family:var(--font-mono);font-weight:600;font-size:16px;display:flex;align-items:center;gap:8px;white-space:nowrap}.logo-mark{width:18px;height:18px;border-radius:50%;border:3px solid var(--eval);border-right-color:transparent;transform:rotate(-30deg)}.levels{display:flex;gap:2px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);padding:3px;overflow-x:auto;scrollbar-width:none;min-width:0}.levels button{border:0;background:transparent;padding:5px 10px;border-radius:7px;color:var(--text-2);font-size:12.5px;white-space:nowrap;display:flex;align-items:center;gap:6px}.levels button:hover{color:var(--text);background:var(--panel-3)}.levels button.active{background:var(--panel-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}.levels .num{font-family:var(--font-mono);font-size:11px;color:var(--text-3)}.levels .done{color:var(--pass)}.topbar .spacer{flex:1}.big-stat{display:flex;align-items:baseline;gap:8px;white-space:nowrap}.big-stat .v{font-family:var(--font-mono);font-size:22px;font-weight:600}.big-stat .l{font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;line-height:1.2}.badge{font-size:11px;padding:3px 8px;border-radius:999px;border:1px dashed var(--line-2);color:var(--text-2);white-space:nowrap;cursor:help}.icon-btn{border:1px solid var(--line);background:var(--panel-2);border-radius:var(--r-sm);padding:6px 10px;font-size:12.5px;white-space:nowrap}.icon-btn:hover{background:var(--panel-3)}.palette{background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;padding:12px}.palette h4 span{text-transform:none;letter-spacing:0;font-weight:400}.palette h4{margin:14px 2px 8px;gap:8px;font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;display:flex;justify-content:space-between}.palette h4:first-child{margin-top:2px}.pal-card{display:grid;grid-template-columns:26px 1fr;gap:2px 10px;align-items:start;padding:9px 10px;margin-bottom:6px;border-radius:var(--r-md);background:var(--panel-2);border:1px solid var(--line);cursor:grab;-webkit-user-select:none;user-select:none}.pal-card:hover{border-color:var(--line-2);background:var(--panel-3)}.pal-card.on{border-color:color-mix(in srgb,var(--eval) 50%,transparent)}.pal-card.locked{opacity:.45;cursor:not-allowed}.pal-card .ic{grid-row:span 2;width:26px;height:26px;border-radius:7px;display:grid;place-items:center;font-size:13px}.pal-card .t{font-size:12.5px;font-weight:600}.pal-card .d{font-size:11.5px;color:var(--text-2);line-height:1.35}.pal-card .lock{font-size:10.5px;color:var(--text-3)}.palette-toggle{width:100%;text-align:left;border:0;background:transparent;color:var(--text-3);font-size:12px;padding:2px}.palette.closed{padding:8px 4px}.palette.closed .pal-body{display:none}.react-flow{background:var(--bg)}.react-flow__background{opacity:1}.react-flow__controls{box-shadow:none;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden}.react-flow__controls button{background:var(--panel-2);border-bottom:1px solid var(--line);fill:var(--text-2)}.react-flow__controls button:hover{background:var(--panel-3)}.react-flow__attribution{display:none}.react-flow__handle{width:8px;height:8px;background:var(--panel-3);border:1px solid var(--line-2)}.canvas-hint{position:absolute;top:10px;left:50%;transform:translate(-50%);font-size:10.5px;color:var(--text-3);letter-spacing:.08em;text-transform:uppercase;pointer-events:none;z-index:5;white-space:nowrap}.canvas-title{position:absolute;left:14px;top:12px;z-index:5;font-size:13px;color:var(--text-2);pointer-events:none}.drop-glow .react-flow{outline:2px dashed color-mix(in srgb,var(--eval) 60%,transparent);outline-offset:-8px}.node{width:210px;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden;position:relative}.node.selected{box-shadow:0 0 0 2px var(--accent, var(--agent)),var(--shadow)}.node .strip{height:3px;background:var(--accent)}.node .hd{display:flex;align-items:center;gap:8px;padding:9px 12px 2px;font-size:12px;font-weight:600}.node .hd .dot{width:8px;height:8px;border-radius:50%;background:var(--pass);flex:none}.node.warning .hd .dot{background:var(--warn)}.node.failing .hd .dot{background:var(--fail);animation:pulse 1.4s infinite}.node .hd .x{margin-left:auto;border:0;background:transparent;color:var(--text-3);font-size:14px;padding:0 2px;line-height:1}.node .hd .x:hover{color:var(--fail)}.node .sub{padding:0 12px;font-size:11px;color:var(--text-3)}.node .metrics{display:flex;gap:14px;padding:8px 12px 10px}.metric .v{font-family:var(--font-mono);font-size:19px;font-weight:600;line-height:1.1}.metric .l{font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-top:2px}.node .actions{padding:0 12px 10px;display:flex;gap:6px;flex-wrap:wrap}.node .btn-sm{font-size:11.5px;padding:4px 8px;border-radius:6px;border:1px solid var(--line-2);background:var(--panel-2)}.node .btn-sm:hover{background:var(--panel-3)}.node .btn-sm.primary{border-color:color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent)}.node .mini-bars{display:flex;gap:2px;align-items:flex-end;height:22px;padding:0 12px 10px}.node .mini-bars span{flex:1;background:var(--accent);opacity:.75;border-radius:2px 2px 0 0;min-height:2px}.node .cov{display:flex;flex-wrap:wrap;gap:3px;padding:0 12px 10px}.node .cov i{width:14px;height:6px;border-radius:2px;background:var(--panel-3)}.node .cov i.on{background:var(--data)}.node.drop-target{box-shadow:0 0 0 2px var(--data),0 0 30px color-mix(in srgb,var(--data) 40%,transparent)}.node .ship{margin:0 12px 10px;font-family:var(--font-mono);font-size:12px;font-weight:600;padding:4px 8px;border-radius:6px;text-align:center}.node .ship.ok{background:color-mix(in srgb,var(--pass) 18%,transparent);color:var(--pass)}.node .ship.no{background:color-mix(in srgb,var(--fail) 18%,transparent);color:var(--fail)}@keyframes pulse{0%,to{box-shadow:0 0 color-mix(in srgb,var(--fail) 60%,transparent)}50%{box-shadow:0 0 0 5px transparent}}.note-node{font-family:var(--font-note);font-size:15px;line-height:1.45;font-weight:500;color:var(--note);width:300px;padding:12px 14px;white-space:pre-line;cursor:grab;background:color-mix(in srgb,var(--panel) 92%,transparent);border:1px solid color-mix(in srgb,var(--note) 35%,transparent);border-radius:var(--r-md);box-shadow:var(--shadow)}.note-node .chal{margin-top:10px;padding-top:10px;border-top:1px solid var(--line);display:flex;gap:8px;align-items:flex-start;font-size:14px;font-weight:400;color:var(--text)}.note-node .box{width:18px;height:18px;border:2px solid var(--note);border-radius:4px;display:grid;place-items:center;font-family:var(--font-ui);font-size:12px;flex:none;margin-top:1px}.note-node .box.ok{background:var(--pass);border-color:var(--pass);color:#0b0e14}.note-node .next{margin-top:8px;font-size:14px;font-weight:500;color:var(--pass);background:none;border:0;padding:0;text-decoration:underline;font-family:var(--font-note)}.edge-label{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3);white-space:nowrap;pointer-events:none;text-shadow:0 0 4px var(--bg),0 0 8px var(--bg)}.inspector{background:var(--panel);border-left:1px solid var(--line);overflow-y:auto}.ins-head{padding:14px 16px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel);z-index:2}.ins-head .kind{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--accent, var(--text-3))}.ins-head h3{margin:3px 0 4px;font-size:16px}.ins-head p{margin:0;font-size:12.5px;color:var(--text-2);line-height:1.45}.sec{padding:14px 16px;border-bottom:1px solid var(--line)}.sec h5{margin:0 0 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3);display:flex;justify-content:space-between;align-items:baseline;gap:8px}.sec p{font-size:12.5px;color:var(--text-2);line-height:1.5;margin:6px 0}.lesson{font-size:12.5px;line-height:1.5;color:var(--text);background:var(--panel-2);border-left:3px solid var(--accent, var(--eval));padding:8px 10px;border-radius:0 6px 6px 0;margin-top:10px}.row{display:flex;align-items:center;gap:10px}.slider{display:grid;grid-template-columns:1fr auto;gap:4px 10px;margin:10px 0;align-items:center}.slider label{font-size:12.5px;color:var(--text-2)}.slider .val{font-family:var(--font-mono);font-size:12.5px;text-align:right;min-width:42px}.slider input{grid-column:span 2;width:100%}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:22px;background:transparent}input[type=range]::-webkit-slider-runnable-track{height:4px;background:var(--line-2);border-radius:2px}input[type=range]::-moz-range-track{height:4px;background:var(--line-2);border-radius:2px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--text);margin-top:-6px;border:3px solid var(--accent, var(--agent))}input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--text);border:3px solid var(--accent, var(--agent))}.seg{display:flex;flex-wrap:wrap;gap:4px;background:var(--panel-2);padding:3px;border-radius:var(--r-md);border:1px solid var(--line)}.seg button{flex:1 1 auto;border:0;background:transparent;padding:6px 8px;border-radius:7px;font-size:12px;color:var(--text-2)}.seg button.on{background:var(--panel-3);color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2)}.btn{border:1px solid var(--line-2);background:var(--panel-2);border-radius:var(--r-sm);padding:7px 12px;font-size:12.5px}.btn:hover:not(:disabled){background:var(--panel-3)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.primary{background:var(--accent, var(--agent));color:#0b0e14;border-color:transparent;font-weight:600}.btn.pass-btn{background:color-mix(in srgb,var(--pass) 20%,transparent);border-color:var(--pass);color:var(--pass);font-weight:700}.btn.fail-btn{background:color-mix(in srgb,var(--fail) 20%,transparent);border-color:var(--fail);color:var(--fail);font-weight:700}.check{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2);cursor:pointer;margin:8px 0}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-md);padding:8px 10px}.stat .v{font-family:var(--font-mono);font-size:18px;font-weight:600}.stat .l{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.stat .ci{font-family:var(--font-mono);font-size:10.5px;color:var(--text-3)}.stat.struck .v{text-decoration:line-through;text-decoration-color:var(--fail);color:var(--text-2)}.bars{display:grid;gap:5px}.bar-row{display:grid;grid-template-columns:118px 1fr 40px;align-items:center;gap:8px;font-size:11.5px}.bar-row .lab{color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row .track{height:8px;background:var(--panel-3);border-radius:4px;overflow:hidden;display:flex}.bar-row .track span{height:100%}.bar-row .num{font-family:var(--font-mono);text-align:right;color:var(--text-2)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;padding:4px 8px;border-radius:999px;background:var(--panel-2);border:1px solid var(--line-2);cursor:grab;-webkit-user-select:none;user-select:none;white-space:nowrap}.chip:hover{border-color:var(--data)}.chip .d{width:7px;height:7px;border-radius:50%;background:var(--fail)}.chip.in{opacity:.4;cursor:default}.chip .add{border:0;background:transparent;color:var(--data);padding:0;font-weight:700}.chip.cov-on{background:color-mix(in srgb,var(--data) 20%,transparent);border-color:var(--data);cursor:default}.cm{display:grid;grid-template-columns:70px 1fr 1fr;gap:4px;font-size:11.5px;text-align:center}.cm .h{color:var(--text-3);font-size:10.5px;align-self:end}.cm .rh{color:var(--text-3);font-size:10.5px;text-align:right;align-self:center}.cm .c{padding:10px 4px;border-radius:6px;font-family:var(--font-mono);font-size:16px;font-weight:600}.cm .c small{display:block;font-family:var(--font-ui);font-size:10px;font-weight:400;color:var(--text-2)}.cm .good{background:color-mix(in srgb,var(--pass) 16%,transparent)}.cm .bad{background:color-mix(in srgb,var(--fail) 16%,transparent)}.prompt-box{font-family:var(--font-mono);font-size:11.5px;background:var(--bg);border:1px solid var(--line);padding:8px 10px;border-radius:6px;color:var(--text-2);line-height:1.45}svg text{font-family:var(--font-mono)}.chart-wrap{position:relative}.chart-wrap svg{width:100%;height:auto;display:block;touch-action:none}.legend{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--text-2);margin-top:6px}.legend i{display:inline-block;width:12px;height:3px;border-radius:2px;margin-right:5px;vertical-align:middle}.runs{display:grid;grid-template-columns:repeat(15,1fr);gap:3px}.run-item{display:grid;grid-template-rows:repeat(8,1fr);gap:1px;background:var(--panel-2);padding:2px;border-radius:3px}.run-item i{height:4px;border-radius:1px;background:var(--pass)}.run-item i.f{background:var(--fail)}.run-item i.off{opacity:.18}.run-item.broken{box-shadow:0 0 0 1px var(--fail)}.drawer-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#05070c99;z-index:50;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.drawer{position:fixed;z-index:51;right:0;top:0;bottom:0;width:min(1080px,94vw);background:var(--panel);border-left:1px solid var(--line-2);box-shadow:var(--shadow);display:grid;grid-template-rows:auto 1fr auto;animation:slidein .22s ease-out}@keyframes slidein{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}.dr-head{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}.dr-head h3{margin:0;font-size:15px}.dr-head .tag{font-size:11px;padding:2px 8px;border-radius:999px;background:var(--panel-3);color:var(--text-2)}.dr-body{display:grid;grid-template-columns:1fr 340px;min-height:0}.chat{overflow-y:auto;overflow-x:hidden;padding:16px;display:flex;flex-direction:column;gap:10px;scroll-behavior:smooth}.msg{max-width:82%;padding:9px 12px;border-radius:12px;line-height:1.5;font-size:13.5px;position:relative;animation:pop .18s ease-out}@keyframes pop{0%{transform:translateY(4px);opacity:0}to{transform:none;opacity:1}}.msg.user{align-self:flex-end;background:#233250;border-bottom-right-radius:4px}.msg.agent{align-self:flex-start;background:var(--panel-3);border-bottom-left-radius:4px}.msg .who{font-size:10.5px;color:var(--text-3);margin-bottom:2px;text-transform:uppercase;letter-spacing:.06em}.msg.flagged,.tool.flagged{box-shadow:0 0 0 2px var(--warn)}.msg.broke,.tool.broke{box-shadow:0 0 0 2px var(--fail)}.claim{border-bottom:1.5px dotted var(--text-3);cursor:help;position:relative}.claim.ok{border-color:var(--pass)}.claim.bad{border-bottom:2px solid var(--fail);background:color-mix(in srgb,var(--fail) 22%,transparent);border-radius:3px;animation:glow 1.6s ease-in-out infinite}@keyframes glow{50%{background:color-mix(in srgb,var(--fail) 35%,transparent)}}.claim .tip{display:none;position:absolute;left:0;bottom:calc(100% + 6px);z-index:10;width:240px;background:var(--bg);border:1px solid var(--line-2);padding:7px 9px;border-radius:6px;font-size:11.5px;color:var(--text);line-height:1.4;box-shadow:var(--shadow)}.claim:hover .tip{display:block}.tool{align-self:stretch;margin:0 6%;border:1px solid var(--line);background:var(--bg);border-radius:8px;font-family:var(--font-mono);font-size:11.5px;animation:pop .18s ease-out}.tool summary{padding:6px 10px;cursor:pointer;display:flex;gap:8px;align-items:center;color:var(--text-2);list-style:none}.tool summary::-webkit-details-marker{display:none}.tool summary .nm{color:var(--eval)}.tool summary .st{margin-left:auto;font-size:10.5px}.tool pre{margin:0;padding:8px 10px;border-top:1px solid var(--line);white-space:pre-wrap;word-break:break-word;color:var(--text-2);max-height:220px;overflow:auto}.tool.err summary .st{color:var(--fail)}.flag-btn{position:absolute;right:4px;top:2px;border:0;background:transparent;opacity:0;font-size:14px}.msg:hover .flag-btn,.tool:hover .flag-btn,.flag-btn.on{opacity:1}.step-wrap{position:relative;display:flex;flex-direction:column}.step-wrap.user{align-items:flex-end}.step-wrap.agent{align-items:flex-start}.typing{align-self:flex-start;padding:10px 14px;background:var(--panel-3);border-radius:12px;display:flex;gap:4px}.typing i{width:6px;height:6px;border-radius:50%;background:var(--text-3);animation:blink 1s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}@keyframes blink{50%{opacity:.2}}.world{border-left:1px solid var(--line);overflow-y:auto;padding:14px;background:var(--panel-2)}.world h5{margin:0 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--text-3)}.screen{height:4px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--text-3),transparent);margin:0 10% 10px}.seats{display:grid;grid-template-columns:14px repeat(10,1fr);gap:3px;margin-bottom:16px}.seats .rl{font-family:var(--font-mono);font-size:9.5px;color:var(--text-3);display:grid;place-items:center}.seat{aspect-ratio:1;border-radius:3px 3px 5px 5px;background:transparent;border:1px solid #3d4760;transition:background .3s}.seat.taken{background:#4a5268;border-color:#4a5268}.seat.held{background:var(--warn);border-color:var(--warn)}.seat.booked{background:var(--pass);border-color:var(--pass)}.seat-legend{display:flex;gap:10px;font-size:10.5px;color:var(--text-3);margin:-8px 0 14px;flex-wrap:wrap}.seat-legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:-1px}.cart{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:16px;font-size:12px}.cart .ln{display:flex;justify-content:space-between;gap:8px;padding:3px 0}.cart .tot{border-top:1px solid var(--line);margin-top:4px;padding-top:6px;font-weight:700}.cart .empty{color:var(--text-3)}.policies{display:grid;gap:6px}.pol{display:flex;gap:8px;align-items:center;font-size:12px;padding:6px 8px;border-radius:6px;background:var(--panel);border:1px solid var(--line);transition:all .3s}.pol .ic{width:16px;text-align:center;font-weight:700}.pol.ok .ic{color:var(--pass)}.pol.fail{border-color:var(--fail);background:color-mix(in srgb,var(--fail) 12%,transparent)}.pol.fail .ic{color:var(--fail)}.pol.pending .ic,.pol.na .ic{color:var(--text-3)}.pol.na{opacity:.5}.dr-foot{display:flex;align-items:center;gap:10px;padding:10px 16px;border-top:1px solid var(--line);flex-wrap:wrap}.dr-foot input[type=range]{flex:1;min-width:120px}.label-bar{display:grid;gap:10px;padding:12px 16px;border-top:1px solid var(--line);background:var(--panel-2)}.label-bar .row{flex-wrap:wrap}.label-bar select{background:var(--panel-3);color:var(--text);border:1px solid var(--line-2);border-radius:6px;padding:6px 8px;font:inherit;font-size:12.5px}.reveal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.reveal .card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.reveal .card .l{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.reveal .card .v{font-family:var(--font-mono);font-weight:700;font-size:15px;margin-top:2px}.reveal .card .s{font-size:11.5px;color:var(--text-2);margin-top:2px}.kbd{font-family:var(--font-mono);font-size:10.5px;border:1px solid var(--line-2);border-bottom-width:2px;border-radius:4px;padding:0 4px;color:var(--text-3)}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);background:var(--panel-3);border:1px solid var(--line-2);padding:8px 14px;border-radius:8px;z-index:60;font-size:13px;box-shadow:var(--shadow)}.timeline svg rect.reg{fill:color-mix(in srgb,var(--fail) 10%,transparent)}@media (max-width: 860px){.app,.app.palette-closed{display:flex;flex-direction:column;height:auto;min-height:100vh;overflow:visible}.topbar{position:sticky;top:0;z-index:20;flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}.topbar .spacer{display:none}.levels{order:5;width:100%}.big-stat .v{font-size:18px}.canvas-wrap{height:56vh;border-bottom:1px solid var(--line)}.canvas-hint{display:none}.palette{border-right:0;border-bottom:1px solid var(--line);max-height:none;order:3}.palette .pal-body{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px}.palette .pal-body h4{grid-column:1 / -1}.palette.closed .pal-body{display:none}.inspector{border-left:0;order:2}.ins-head{position:static}.drawer{width:100vw}.dr-body{grid-template-columns:1fr;grid-template-rows:1fr auto;overflow-y:auto}.world{border-left:0;border-top:1px solid var(--line)}.flag-btn{right:-4px;top:-10px;opacity:1}.msg{max-width:92%}.reveal{grid-template-columns:1fr}}.tool .flag-btn{right:auto;left:-26px;top:3px}.msg:has(.flag-btn){padding-right:30px}.app.no-palette{grid-template-columns:1fr var(--inspector-w);grid-template-areas:"top top" "canvas inspector"}.node.ghost{opacity:.38;box-shadow:none;border-style:dashed;background:transparent}.node.ghost .strip{opacity:.4}.node.ghost .hd{color:var(--text-2);font-weight:500}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80}.tour-dim{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060ab8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tour-spot{position:fixed;border-radius:12px;pointer-events:none;box-shadow:0 0 0 9999px #04060ab8,0 0 0 2px var(--eval),0 0 30px color-mix(in srgb,var(--eval) 40%,transparent);transition:all .3s ease}.tour-card{position:fixed;width:360px;max-width:calc(100vw - 24px);background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:16px 18px 14px;animation:pop .2s ease-out}.tour-card h3{margin:6px 0;font-size:18px}.tour-body p{margin:0 0 8px;font-size:13.5px;line-height:1.55;color:var(--text-2)}.tour-body b{color:var(--text)}.tour-progress{display:flex;gap:4px}.tour-progress i{flex:1;height:3px;border-radius:2px;background:var(--line-2)}.tour-progress i.on{background:var(--eval)}.tour-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.tour-skip{border:0;background:transparent;color:var(--text-3);font-size:12.5px;padding:0}.tour-skip:hover{color:var(--text)}.tour-card .btn.primary{--accent: var(--eval)}@media (max-width: 860px){.app.no-palette{display:flex}}.verdict-banner{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:var(--r-md);border:1px solid;animation:pop .2s ease-out}.verdict-banner.right{background:color-mix(in srgb,var(--pass) 12%,transparent);border-color:color-mix(in srgb,var(--pass) 55%,transparent)}.verdict-banner.wrong{background:color-mix(in srgb,var(--fail) 12%,transparent);border-color:color-mix(in srgb,var(--fail) 55%,transparent)}.vb-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:16px;flex:none;color:#0b0e14}.verdict-banner.right .vb-icon{background:var(--pass)}.verdict-banner.wrong .vb-icon{background:var(--fail)}.vb-title{font-weight:700;font-size:15px}.vb-body{font-size:13px;color:var(--text-2);line-height:1.5;margin-top:2px}.watch-btn{border-color:color-mix(in srgb,var(--eval) 60%,transparent);color:var(--eval);font-weight:600}.watch-btn:hover{background:color-mix(in srgb,var(--eval) 14%,transparent)}.autopilot{position:fixed;left:50%;bottom:22px;transform:translate(-50%);z-index:70;width:min(720px,calc(100vw - 24px));padding:12px 18px 16px;background:color-mix(in srgb,var(--panel) 94%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid color-mix(in srgb,var(--eval) 45%,transparent);border-radius:var(--r-lg);box-shadow:0 12px 50px #0009,0 0 40px color-mix(in srgb,var(--eval) 12%,transparent)}.ap-top{display:flex;align-items:center;gap:12px;margin-bottom:6px}.ap-live{font-family:var(--font-mono);font-size:11px;letter-spacing:.1em;color:var(--eval);display:flex;align-items:center;gap:6px}.ap-live i{width:7px;height:7px;border-radius:50%;background:var(--fail);animation:blink 1.2s infinite}.autopilot.done .ap-live i{background:var(--pass);animation:none}.ap-steps{display:flex;gap:4px}.ap-steps i{width:26px;height:4px;border-radius:2px;background:var(--line-2);transition:background .3s}.ap-steps i.on{background:var(--eval)}.ap-steps i.done{background:var(--pass)}.ap-btn{border:1px solid var(--line-2);background:var(--panel-2);border-radius:6px;padding:3px 9px;font-size:12px;color:var(--text-2)}.ap-btn:hover{color:var(--text)}.ap-caption{font-size:20px;font-weight:700;line-height:1.3;animation:capin .35s ease-out}.ap-sub{font-size:14px;color:var(--text-2);margin-top:3px;line-height:1.45;animation:capin .45s ease-out}@keyframes capin{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ap-end{display:flex;gap:8px;margin-top:12px}.ap-end .btn.primary{--accent: var(--eval)}.big-stat .v{transition:color .4s}.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:75;pointer-events:none;display:grid;place-items:center}.cel-card{display:flex;align-items:center;gap:12px;padding:14px 22px;border-radius:999px;background:var(--panel);border:1px solid var(--pass);font-size:18px;font-weight:700;box-shadow:0 0 60px color-mix(in srgb,var(--pass) 35%,transparent),var(--shadow);animation:celpop 2.6s ease-out forwards}.cel-card small{font-weight:400;color:var(--text-2);font-size:14px}.cel-check{width:30px;height:30px;border-radius:50%;background:var(--pass);color:#0b0e14;display:grid;place-items:center;font-size:16px}@keyframes celpop{0%{transform:scale(.6);opacity:0}12%{transform:scale(1.08);opacity:1}20%{transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-20px)}}.burst{position:absolute;width:0;height:0}.burst i{position:absolute;width:8px;height:8px;border-radius:2px;background:var(--pass);transform:rotate(var(--a)) translateY(0);animation:shoot .9s ease-out forwards}.burst i:nth-child(3n){background:var(--eval)}.burst i:nth-child(3n+1){background:var(--agent)}@keyframes shoot{0%{transform:rotate(var(--a)) translateY(0) scale(1);opacity:1}to{transform:rotate(var(--a)) translateY(-170px) scale(.4);opacity:0}}@media (max-width: 860px){.watch-btn{order:-1}.ap-caption{font-size:17px}.autopilot{bottom:10px}}.autopilot.top{top:12px;bottom:auto}.drawer.with-ap{top:128px;border-top:1px solid var(--line-2);border-top-left-radius:var(--r-lg)}.tour-card:has(.paths){width:520px}.paths{display:grid;gap:8px;margin-top:4px}.path{display:grid;grid-template-columns:36px 1fr;gap:2px 12px;text-align:left;align-items:start;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--panel-2);transition:border-color .15s,background .15s,transform .15s}.path:hover{border-color:var(--eval);background:var(--panel-3);transform:translateY(-1px)}.path.primary{border-color:color-mix(in srgb,var(--eval) 55%,transparent)}.p-ic{grid-row:span 2;font-size:22px;line-height:36px;text-align:center;width:36px;height:36px;border-radius:9px;background:var(--panel)}.p-t{font-weight:700;font-size:14.5px}.p-t em{font-style:normal;font-weight:400;color:var(--text-3);font-size:12px;margin-left:6px;font-family:var(--font-mono)}.p-d{font-size:12.5px;color:var(--text-2);line-height:1.45}.ap-btn.primary{border-color:var(--eval);color:var(--eval);font-weight:600}.ap-next-row{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12.5px}.ap-next-row .faint{flex:1}.ap-next{border:0;border-radius:8px;padding:8px 16px;font-weight:700;font-size:14px;background:var(--panel-3);color:var(--text-3);display:flex;align-items:center;gap:8px;transition:all .2s}.ap-next .kbd{color:inherit;border-color:currentColor;opacity:.6}.ap-next.ready{background:var(--eval);color:#0b0e14;animation:nudge 1.8s ease-in-out infinite}.ap-next:disabled{cursor:default}@keyframes nudge{0%,to{box-shadow:0 0 color-mix(in srgb,var(--eval) 50%,transparent)}50%{box-shadow:0 0 0 6px transparent}}.note-chapter{font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);margin-bottom:6px}.chapter-card{background:var(--panel-2);border-bottom:0}.chapter-card .ch-title{font-weight:700;font-size:14px;margin-bottom:4px}.chapter-card p b{color:var(--text)}.chapter-card a{font-size:12.5px;color:var(--eval);text-decoration:none}.chapter-card a:hover{text-decoration:underline}a.icon-btn{text-decoration:none;color:var(--text-2)}.tour-body a,.ap-end a{color:var(--eval)}.ap-end a.btn{text-decoration:none}.lf-link{color:var(--eval);border-color:color-mix(in srgb,var(--eval) 45%,transparent)}.ins-head{padding:18px 18px 14px}.ins-head .kind{font-size:11px;font-weight:600}.ins-head h3{font-size:19px;margin:4px 0 6px;letter-spacing:-.01em}.ins-head p{font-size:13px}.sec{padding:16px 18px 18px}.sec h5{font-size:14px;font-weight:700;color:var(--text);text-transform:none;letter-spacing:0;margin:0 0 12px;padding-left:10px;border-left:3px solid var(--accent, var(--line-2));align-items:center}.sec h5 .faint,.sec h5 .mono{font-size:11.5px;font-weight:400;color:var(--text-3)}.sec+.sec{border-top:0}.sec{border-bottom:1px solid var(--line)}.inspector .lesson{font-size:13px}.link-btn{border:0;background:none;padding:0;margin-top:10px;color:var(--eval);font-size:12.5px}.link-btn:hover{text-decoration:underline}.chapter-card h5{border-left-color:var(--eval)}.dim{opacity:.32;transition:opacity .4s}.dim:hover{opacity:1}.wrong-card{border:1px solid color-mix(in srgb,var(--fail) 55%,transparent);border-radius:var(--r-md);background:color-mix(in srgb,var(--fail) 9%,var(--panel));padding:12px 12px 10px;animation:pop .25s ease-out}.wc-k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fail);font-weight:600}.wc-t{font-size:16px;font-weight:700;margin:4px 0 6px}.wrong-card p{margin:0 0 10px;font-size:13px;line-height:1.5;color:var(--text-2)}.passed-line{font-size:12.5px;color:var(--pass);margin:12px 2px}.world-more{border-top:1px solid var(--line);padding-top:10px}.world-more summary{cursor:pointer;font-size:12.5px;color:var(--text-2);margin-bottom:10px}.world-more summary:hover{color:var(--text)}.path.primary{border-color:var(--eval);background:color-mix(in srgb,var(--eval) 8%,var(--panel-2));box-shadow:0 0 0 1px color-mix(in srgb,var(--eval) 30%,transparent)}.p-badge{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;padding:2px 7px;border-radius:999px;background:var(--eval);color:#0b0e14;margin-left:6px;vertical-align:1px}.p-next{display:inline-block;font-weight:700;font-size:11.5px;padding:1px 7px;border-radius:5px;background:var(--eval);color:#0b0e14}.ap-running .react-flow__node-note,.ap-running [data-testid=rf__edge-note-edge]{display:none}.ap-running .inspector,.ap-running .palette{opacity:.45;transition:opacity .3s}.ap-running .inspector:hover,.ap-running .palette:hover{opacity:1}.app-stages{min-height:100vh;display:flex;flex-direction:column}.app-stages .topbar{position:sticky;top:0;z-index:30;height:60px}.app.finale{grid-template-rows:60px 1fr}.topbar .logo{background:none;border:0;color:var(--text);padding:0}.strip{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;min-width:0}.strip-step{display:flex;align-items:center;gap:8px;border:0;background:transparent;color:var(--text-2);padding:7px 12px;border-radius:999px;font-size:13.5px;white-space:nowrap}.strip-step .num{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-family:var(--font-mono);border:1px solid var(--line-2);color:var(--text-2)}.strip-step:hover{background:var(--panel-2);color:var(--text)}.strip-step.active{background:var(--panel-3);color:var(--text);font-weight:600}.strip-step.active .num{border-color:var(--eval);color:var(--eval)}.strip-step.done .num{background:var(--pass);border-color:var(--pass);color:#0b0e14}.topbar .icon-btn{font-size:13.5px;padding:7px 12px}.stage-wrap{flex:1;display:flex;justify-content:center;padding:40px 20px 80px}.ap-running .stage-wrap{padding-bottom:260px}.stage{width:100%;max-width:940px}.stage-kicker{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--eval);font-weight:600}.stage-q{font-size:32px;line-height:1.2;letter-spacing:-.015em;margin:10px 0;font-weight:700}.stage-hint{font-size:16px;line-height:1.55;color:var(--text-2);margin:0 0 24px;max-width:720px}.stage-body{font-size:15px}.stage-sub{font-size:15px;margin:28px 0 12px}.stage .faint,.stage-body p,.stage .slider label,.stage .slider .val,.stage .check{font-size:14px}.stage-reveal{display:flex;gap:28px;align-items:center;margin-top:32px;padding:24px 26px;border-radius:var(--r-lg);background:var(--panel);border:1px solid color-mix(in srgb,var(--pass) 45%,var(--line));animation:pop .3s ease-out}.stage-reveal .big .v{font-family:var(--font-mono);font-size:44px;font-weight:700;line-height:1;white-space:nowrap;color:var(--pass)}.stage-reveal .big .l{font-size:13.5px;color:var(--text-2);margin-top:6px;max-width:220px}.rv-text{font-size:16px;line-height:1.6}.stage-action{margin:14px 0 0;padding:14px 18px;border-left:3px solid var(--eval);background:var(--panel);border-radius:0 var(--r-md) var(--r-md) 0;font-size:15px;line-height:1.55;color:var(--text-2)}.stage-action b{color:var(--text)}.stage-foot{display:flex;align-items:center;gap:10px;margin-top:32px;padding-top:20px;border-top:1px solid var(--line)}.btn{font-size:14px;padding:9px 16px}.btn.primary{--accent: var(--eval)}.btn.ghost{background:transparent}.dots-row{display:flex;align-items:center;gap:6px;margin-bottom:14px;flex-wrap:wrap}.dot-step{width:32px;height:32px;border-radius:50%;border:1px solid var(--line-2);background:var(--panel);font-family:var(--font-mono);font-size:13px;color:var(--text-2)}.dot-step.now{border-color:var(--eval);color:var(--eval)}.dot-step.right{background:var(--pass);border-color:var(--pass);color:#0b0e14}.dot-step.wrong{background:var(--fail);border-color:var(--fail);color:#0b0e14}.dots-row .faint{margin-left:8px}.replay-inline{border:1px solid var(--line-2);border-radius:var(--r-lg);overflow:hidden;background:var(--panel);display:grid;grid-template-rows:auto minmax(360px,60vh) auto}.replay-inline .dr-body{min-height:0}.replay-inline .msg{font-size:14.5px}.summary-list{display:grid;gap:6px}.summary-row{display:grid;grid-template-columns:40px 110px 1fr 24px;gap:10px;align-items:center;text-align:left;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--panel);font-size:14px}.summary-row:hover{border-color:var(--line-2)}.cov-bar{height:8px;border-radius:4px;background:var(--panel-3);overflow:hidden}.cov-bar span{display:block;height:100%;background:var(--data);transition:width .3s}.type-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:16px}.type-card{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--panel);overflow:hidden}.type-card.on{border-color:var(--data);background:color-mix(in srgb,var(--data) 10%,var(--panel))}.tc-main{display:grid;grid-template-columns:26px 1fr;gap:2px 10px;width:100%;text-align:left;border:0;background:none;padding:12px 14px 6px}.tc-check{grid-row:span 2;width:24px;height:24px;border-radius:6px;border:1px solid var(--line-2);display:grid;place-items:center;font-weight:700;color:var(--text-2)}.type-card.on .tc-check{background:var(--data);border-color:var(--data);color:#0b0e14}.tc-name{font-size:14.5px;font-weight:600}.tc-n{font-size:13px;color:var(--text-3);font-family:var(--font-mono)}.tc-link{border:0;background:none;color:var(--eval);font-size:13px;padding:0 14px 10px 50px}.tc-link:hover{text-decoration:underline}.live-number{display:flex;align-items:baseline;gap:14px;margin-bottom:18px}.live-number .v{font-family:var(--font-mono);font-size:40px;font-weight:700}.live-number .l{font-size:15px;color:var(--text-2)}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.check-card{text-align:left;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--panel);padding:14px;display:grid;gap:6px}.check-card.on{border-color:var(--eval);background:color-mix(in srgb,var(--eval) 8%,var(--panel))}.cc-top{display:flex;align-items:center;gap:10px;font-weight:600;font-size:14.5px}.cc-toggle{width:32px;height:18px;border-radius:9px;background:var(--panel-3);position:relative;flex:none;transition:background .2s}.cc-toggle:after{content:"";position:absolute;left:2px;top:2px;width:14px;height:14px;border-radius:50%;background:var(--text-2);transition:left .2s}.check-card.on .cc-toggle{background:var(--eval)}.check-card.on .cc-toggle:after{left:16px;background:#0b0e14}.cc-desc{font-size:13.5px;color:var(--text-2);line-height:1.5}.stage .bar-row{grid-template-columns:150px 1fr 44px;font-size:13.5px}.stage .bar-row .track{height:10px}.stage .legend{font-size:13px}.big-seg button{font-size:14px;padding:8px 12px}.stage .prompt-box{font-size:13.5px}.duo{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.duo.three{grid-template-columns:repeat(3,1fr)}.duo-cell{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--panel);padding:16px 18px}.duo-cell .v{font-family:var(--font-mono);font-size:36px;font-weight:700;line-height:1.1}.duo-cell .l{font-size:13.5px;color:var(--text-2);margin-top:6px;line-height:1.45}.duo-cell.muted .v{color:var(--text-2)}.link-btn{font-size:14px}.math{margin-top:12px;padding:16px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel)}.math p{font-size:13.5px;color:var(--text-2);line-height:1.55}.stage .cm{font-size:13px}.stage .cm .h,.stage .cm .rh{font-size:12.5px}.stage .chart-wrap{background:var(--panel);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 14px 10px}.more{margin-top:14px}.more summary{cursor:pointer;font-size:14px;color:var(--text-2);margin-bottom:10px}.ap-body{display:flex;gap:20px;align-items:center}.ap-metric{flex:none;padding-right:20px;border-right:1px solid var(--line-2);animation:capin .35s ease-out}.ap-metric .v{font-family:var(--font-mono);font-size:30px;font-weight:700;color:var(--eval);line-height:1;white-space:nowrap}.ap-metric .l{font-size:12.5px;color:var(--text-2);margin-top:4px;max-width:160px}.ap-level{font-size:12.5px;color:var(--text-2);font-weight:600}.ap-next.playing{background:var(--panel-3);color:var(--text)}.ap-sub,.ap-next-row{font-size:14px}.ap-caption{font-size:19px}.tour-card.welcome{left:50%;top:50%;transform:translate(-50%,-50%);width:560px;padding:24px 26px 22px}.tour-card.welcome h3{font-size:22px;margin:0 0 10px}.tour-card.welcome .tour-body p{font-size:15px}.path{padding:16px 18px;grid-template-columns:1fr}.p-t{font-size:16px}.p-d{font-size:14px}@media (max-width: 860px){.app-stages .topbar{height:auto;flex-wrap:wrap}.strip{order:5;width:100%}.strip-step .name{display:none}.strip-step.active .name{display:inline}.stage-wrap{padding:24px 16px 60px}.stage-q{font-size:25px}.stage-reveal{flex-direction:column;align-items:flex-start;gap:14px}.duo,.duo.three{grid-template-columns:1fr}.replay-inline{grid-template-rows:auto auto auto}.replay-inline .dr-body{max-height:none}.ap-body{flex-direction:column;align-items:flex-start;gap:8px}.ap-metric{border-right:0;padding-right:0}.tour-card.welcome{width:calc(100vw - 24px)}}:root{--text-3: #8b94a9;--panel-w: 540px}.workspace{display:grid;height:100vh;overflow:hidden;grid-template-rows:60px 1fr;grid-template-columns:minmax(0,1fr) var(--panel-w);grid-template-areas:"top top" "canvas panel"}.workspace .topbar{grid-area:top;height:60px}.workspace .canvas-wrap{grid-area:canvas;position:relative;min-width:0;border-right:1px solid var(--line)}.panel{grid-area:panel;overflow-y:auto;background:var(--panel);padding:26px 26px 48px}.panel .stage{max-width:none;animation:panelIn .25s ease-out}@keyframes panelIn{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}.panel .stage-kicker{font-size:12.5px}.panel .stage-q{font-size:25px;margin:8px 0}.panel .stage-hint{font-size:15px;margin-bottom:18px}.panel .rv-text{font-size:15px;line-height:1.6;margin:22px 0 12px;padding-top:18px;border-top:1px solid var(--line)}.panel .big .v{font-family:var(--font-mono);font-size:42px;font-weight:700;color:var(--pass);line-height:1.05}.panel .big .l{font-size:13.5px;color:var(--text-2);margin-top:4px}.panel .stage-action{margin-top:16px}.panel .stage-foot{margin-top:22px;padding-top:16px}.panel .stage-foot .btn{width:100%;padding:12px 16px;font-size:14.5px}.panel .type-grid,.panel .check-grid{grid-template-columns:1fr 1fr}.panel .duo.three{grid-template-columns:repeat(3,1fr)}.panel .duo-cell .v{font-size:30px}.panel .live-number .v{font-size:34px}.panel .stage .bar-row{grid-template-columns:120px 1fr 40px}.link-btn.pad{margin:16px 0 0}.freeplay-banner{margin:-6px 0 20px;padding:12px 14px;border-radius:var(--r-md);background:color-mix(in srgb,var(--pass) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--pass) 45%,transparent);font-size:14px;font-weight:600}.panel .ins-head{position:static;padding:0 0 14px;background:none}.panel .sec{padding:14px 0}.panel .replay-inline{grid-template-rows:auto auto auto}.panel .replay-inline .dr-body{grid-template-columns:1fr}.panel .replay-inline .chat{max-height:46vh}.panel .replay-inline .world{border-left:0;border-top:1px solid var(--line)}.panel .replay-inline .dr-head,.panel .replay-inline .dr-foot{gap:8px}.panel .replay-inline .dr-foot input[type=range]{min-width:80px}.panel .replay-inline .reveal{grid-template-columns:1fr}.panel .dots-row .dot-step{width:30px;height:30px}.node{width:230px;transition:opacity .4s,box-shadow .3s}.node.dim{opacity:.35}.node.dim:hover{opacity:.7}.node.active{box-shadow:0 0 0 2px var(--accent),0 0 34px color-mix(in srgb,var(--accent) 35%,transparent),var(--shadow)}.node .hd{font-size:14px;padding-top:11px}.node .hd .lvl{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-family:var(--font-mono);background:var(--panel-3);color:var(--text-2);flex:none}.node.active .hd .lvl{background:var(--accent);color:#0b0e14}.node .sub{font-size:12.5px}.metric .v{font-size:21px}.metric .l{font-size:12px}.node .fill{height:6px;margin:0 12px 12px;border-radius:3px;background:var(--panel-3);overflow:hidden}.node .fill span{display:block;height:100%;background:var(--data);transition:width .4s}.pulse-once{animation:pulseOnce .9s ease-out}@keyframes pulseOnce{0%{background:color-mix(in srgb,var(--accent) 40%,transparent)}to{background:transparent}}.react-flow__node{cursor:pointer}.edge-label{font-size:12px}.workspace .strip-step .name{font-size:13.5px}.workspace .strip-step.active .num{background:var(--eval);color:#0b0e14;border-color:var(--eval)}.workspace .autopilot{left:calc((100vw - var(--panel-w)) / 2);width:min(660px,calc(100vw - var(--panel-w) - 40px))}.workspace .autopilot.top{top:auto;bottom:22px}.chip,.legend,.faint,.cart,.pol,.tool,.seat-legend,.ap-btn,.kbd{font-size:max(12px,1em)}.tool summary,.tool pre,.seat-legend,.cart,.pol{font-size:12.5px}.msg .who{font-size:12px}@media (max-width: 960px){.workspace{display:flex;flex-direction:column;height:auto;overflow:visible}.workspace .topbar{position:sticky;top:0;z-index:30;height:auto;flex-wrap:wrap;padding:8px 12px}.workspace .canvas-wrap{height:42vh;border-right:0;border-bottom:1px solid var(--line)}.panel{padding:20px 16px 120px}.panel .type-grid,.panel .check-grid,.panel .duo.three{grid-template-columns:1fr}.workspace .autopilot{left:50%;width:calc(100vw - 24px)}}:root{--bg: hsl(0 0% 6%);--bg-grid: hsl(0 0% 12%);--panel: hsl(0 0% 7.5%);--panel-2: hsl(0 0% 11.6%);--panel-3: hsl(0 0% 18%);--line: hsl(0 0% 20%);--line-2: hsl(0 0% 26%);--text: hsl(0 0% 90%);--text-2: hsl(0 0% 70%);--text-3: hsl(0 0% 58%);--accent-ui: hsl(246 55% 70%);--primary-bg: hsl(0 0% 90%);--primary-fg: hsl(0 0% 3.5%);--pass: oklch(76.5% .177 163.2);--fail: oklch(76.5% .177 27.3);--warn: oklch(79.5% .184 86);--traffic: var(--text-3);--data: var(--accent-ui);--eval: var(--accent-ui);--agent: hsl(237 60% 72%);--gate: oklch(76.5% .177 163.2);--monitor: hsl(330 77% 73%);--note: hsl(38 90% 62%);--font-ui: "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-note: var(--font-ui);--r-sm: 4px;--r-md: 6px;--r-lg: 8px;--shadow: 0 1px 2px rgba(0, 0, 0, .5)}body{background:var(--bg)}h1,h2,h3,.stage-q,.ap-caption,.vb-title,.wc-t,.tc-name,.cc-top,.p-t,strong,b,.metric .v,.duo-cell .v,.big .v,.live-number .v,.stage-reveal .big .v,.ap-metric .v{font-weight:600}.btn.primary,.ap-next.ready,.panel .stage-foot .btn.primary{background:var(--primary-bg);color:var(--primary-fg);border-color:var(--primary-bg)}.btn.primary:hover:not(:disabled){background:#ccc}.ap-next.ready{animation:none}.p-next{background:var(--primary-bg);color:var(--primary-fg)}a,.link-btn,.tc-link,.chapter-card a,.tour-body a{color:var(--accent-ui)}.stage-kicker,.ap-level{color:var(--text-3);letter-spacing:.04em}.strip-step.active .num,.workspace .strip-step.active .num{background:var(--accent-ui);border-color:var(--accent-ui);color:var(--primary-fg)}.strip-step.done .num{background:transparent;border-color:var(--pass);color:var(--pass)}.node{box-shadow:var(--shadow);background:var(--panel);border-color:var(--line-2)}.node .strip{display:none}.node.active{box-shadow:0 0 0 1.5px var(--accent-ui);border-color:var(--accent-ui)}.node.active .hd .lvl{background:var(--accent-ui);color:var(--primary-fg)}.node.failing .hd .dot,.claim.bad,.pulse-once{animation:none}.autopilot{box-shadow:var(--shadow);border-color:var(--line-2);-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--panel)}.cel-card,.burst{display:none}.stage-reveal{border-color:var(--line-2)}.verdict-banner.right{background:color-mix(in srgb,var(--pass) 8%,var(--panel))}.verdict-banner.wrong{background:color-mix(in srgb,var(--fail) 8%,var(--panel))}.path.primary{background:var(--panel-2);border-color:var(--accent-ui);box-shadow:none}.screen{background:var(--line-2)}.strip-step,.chip,.badge,.tag,.p-badge,.seg,.seg button,.levels,.levels button,.dot-step{border-radius:var(--r-md)}.type-card.on,.check-card.on{background:var(--panel-2);border-color:var(--accent-ui)}.type-card.on .tc-check,.check-card.on .cc-toggle{background:var(--accent-ui);border-color:var(--accent-ui)}.cov-bar span,.node .fill span{background:var(--accent-ui)}.seg button.on{background:var(--panel-3)}.msg.user{background:#292929}.msg.agent{background:var(--panel-2)}input[type=range]::-webkit-slider-thumb{border-color:var(--accent-ui);background:var(--text)}input[type=range]::-moz-range-thumb{border-color:var(--accent-ui)}.logo-mark{border-color:var(--text);border-right-color:transparent}.freeplay-banner{background:var(--panel-2);border-color:var(--line-2)}.play-tabs{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 18px;padding-bottom:12px;border-bottom:1px solid var(--line)}.play-tabs button{border:1px solid transparent;background:transparent;color:var(--text-2);border-radius:var(--r-md);padding:6px 10px;font-size:13.5px}.play-tabs button:hover{color:var(--text);background:var(--panel-2)}.play-tabs button.on{color:var(--text);background:var(--panel-3);border-color:var(--line-2)}.strip-step.play{margin-left:6px;border:1px solid var(--line-2)}.strip-step.play.active{border-color:var(--accent-ui);color:var(--text)}.playground .ins-head .kind{color:var(--text-3)}.playground .ins-head h3{font-size:18px}.progress{margin-bottom:14px}.progress-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;margin-bottom:8px}.progress-bar span{height:3px;border-radius:2px;background:var(--line-2)}.progress-bar span.done{background:var(--pass)}.progress-bar span.now{background:var(--accent-ui)}.stage-lead{font-size:15px;line-height:1.5;color:var(--text);margin:0 0 6px;padding:10px 12px;background:var(--panel-2);border-left:2px solid var(--accent-ui);border-radius:0 var(--r-md) var(--r-md) 0}.panel .stage-q{margin-top:12px}.panel .duo.three .duo-cell .v{font-size:26px}.stat .ci{font-size:12px}.scorecard{display:grid;gap:6px;margin:18px 0 22px}.score-row{display:grid;grid-template-columns:26px 1fr;gap:2px 10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2)}.sr-n{grid-row:span 2;color:var(--text-3);font-size:13px;padding-top:1px}.sr-name{font-size:13px;color:var(--text-3)}.sr-v{font-size:14.5px;color:var(--text);line-height:1.45}.finish-actions{display:grid;gap:8px}.finish-actions .btn{text-align:center;text-decoration:none;padding:12px 16px}.topbar{position:relative}.topbar .icon-btn.on{background:var(--panel-3)}.agent-card{position:absolute;top:56px;right:14px;z-index:40;width:min(380px,calc(100vw - 24px));background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:14px 16px 12px;box-shadow:0 8px 24px #00000080;font-size:13.5px;line-height:1.5}.ac-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.ac-close{border:0;background:none;color:var(--text-2);font-size:20px;min-width:32px;min-height:32px}.agent-card p{margin:0 0 10px;color:var(--text-2)}.ac-label{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:8px 0 6px}.ac-tools{display:flex;flex-wrap:wrap;gap:4px}.ac-tools code{font-family:var(--font-mono);font-size:12px;padding:2px 6px;border-radius:var(--r-sm);background:var(--panel-2);border:1px solid var(--line)}.agent-card ul{margin:0;padding-left:18px;color:var(--text-2)}.agent-card li{margin:3px 0}.workspace.ap-running .canvas-wrap{padding-bottom:200px}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:#000000c7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px}.intro-card{width:min(580px,100%);max-height:min(720px,calc(100vh - 32px));display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line-2);border-radius:var(--r-lg);padding:22px 24px;box-shadow:0 16px 48px #0009}.intro-prompt{margin:0 0 14px;font-size:16px;line-height:1.5;color:var(--text)}.intro-convo{display:grid;gap:8px;align-content:start;overflow-y:auto;height:min(380px,50vh);padding-right:4px}.intro-choose h2{font-size:20px;margin:16px 0 10px}.ic-msg{max-width:88%;padding:9px 12px;border-radius:var(--r-lg);font-size:14.5px;line-height:1.5;background:var(--panel-2)}.ic-msg.user{justify-self:end;background:#292929}.ic-msg .who{display:block;font-size:12px;color:var(--text-3);margin-bottom:2px}.ic-tool{font-size:13px;color:var(--text-2);padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg)}.ict-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}.ict-tag{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3)}.ict-name{font-family:var(--font-mono);color:var(--text)}.ict-args{font-family:var(--font-mono);color:var(--text-3);font-size:12.5px}.ict-result{display:grid;gap:2px;margin-top:6px;padding-top:6px;border-top:1px dashed var(--line);font-family:var(--font-mono);font-size:12.5px}.ict-row{display:grid;grid-template-columns:96px 1fr;gap:8px}.ict-row .k{color:var(--text-3)}.ict-row .v{color:var(--text-2);word-break:break-word}.ic-tool.emph{border-color:var(--line-2);background:var(--panel-2)}.ic-tool.emph .ict-name,.ic-tool.emph .ict-row .v{color:var(--text);font-weight:600}.intro-step{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.intro-step h2{font-size:20px;margin:0 0 10px}.intro-step .verdict-banner{margin-bottom:14px}.ask-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ask-buttons .btn{min-height:48px;font-size:15px;font-weight:600}.loop-strip{display:flex;align-items:center;gap:4px;width:100%;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:var(--panel);overflow-x:auto;scrollbar-width:none;position:sticky;top:var(--topbar-mobile, 0px);z-index:25;min-height:48px}.ls-node{flex:none;font-size:12.5px;padding:6px 9px;border-radius:var(--r-md);color:var(--text-3);border:1px solid var(--line)}.ls-node.on{color:var(--primary-fg);background:var(--accent-ui);border-color:var(--accent-ui)}.ls-expand{flex:none;margin-left:auto;color:var(--text-2);font-size:16px;padding:0 6px}.loop-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--bg);display:flex;flex-direction:column}.lo-head{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}.lo-head .btn{min-height:44px}.loop-overlay .canvas-wrap{flex:1;height:auto;border:0}@media (max-width: 960px){.workspace .strip-step .name{display:none}.workspace .strip-step.active .name,.workspace .strip-step.play .name{display:inline}.topbar .icon-btn,.strip-step,.btn,.seg button,.dot-step,.play-tabs button,.dr-foot .btn,.label-bar .btn{min-height:44px}.dot-step{min-width:44px}.check-card,.tc-main,.path{min-height:48px}input[type=range]{height:44px}input[type=range]::-webkit-slider-thumb{width:26px;height:26px;margin-top:-11px}input[type=range]::-moz-range-thumb{width:22px;height:22px}.panel{overflow:visible}.panel .duo.three{grid-template-columns:1fr}.panel .replay-inline .dr-foot{display:grid;grid-template-columns:1fr 1fr 1fr}.panel .replay-inline .dr-foot input[type=range]{grid-column:1 / -1}.panel .replay-inline .dr-foot .seg{grid-column:span 2}.label-bar .row{gap:8px}.label-bar select{min-height:44px;width:100%}.flag-btn{min-width:44px;min-height:44px}.topbar .logo{min-height:44px}.agent-card{position:fixed;top:64px;left:12px;right:12px;width:auto}.workspace.ap-running .panel{padding-bottom:260px}.workspace .autopilot{left:50%;width:calc(100vw - 16px);bottom:8px}.ap-top{flex-wrap:wrap}.intro-card{padding:16px}html,body{overflow-x:hidden}}@media (max-width: 960px){.workspace .topbar{position:static;gap:6px}.workspace .topbar .spacer{display:block;flex:1}.workspace .topbar .icon-btn{padding:8px 10px;font-size:13px}.workspace .topbar .strip{order:5;width:100%}.loop-strip{top:0}}@media (max-width: 400px){.workspace .topbar .logo{font-size:14px}}.icon-btn .short{display:none}@media (max-width: 960px){.icon-btn .short{display:inline}.icon-btn .long{display:none}}.lf-link-secondary{font-size:12.5px;color:var(--text-3);text-decoration:underline;text-underline-offset:2px}.lf-link-secondary:hover{color:var(--text-2)}.intro-context{margin:-6px 0 14px;font-size:13.5px;color:var(--text-3)}
