.acc-steps{font-size:12px;color:var(--muted);margin:0 0 12px;font-family:JetBrains Mono Variable,ui-monospace,monospace}.acc-code-input{font-family:JetBrains Mono Variable,ui-monospace,monospace;letter-spacing:.3em;font-size:18px;text-align:center}.acc-link-box{display:flex;gap:8px;align-items:stretch}.acc-link-box input{flex:1;font-family:JetBrains Mono Variable,ui-monospace,monospace;font-size:12px}.acc-codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;padding:12px;border:1px solid var(--border);background:var(--bg);font-family:JetBrains Mono Variable,ui-monospace,monospace;font-size:13px;margin:8px 0}.acc-qr{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.acc-qr img{width:180px;height:180px;border:1px solid var(--border);image-rendering:pixelated}.acc-secret{font-family:JetBrains Mono Variable,ui-monospace,monospace;font-size:12px;word-break:break-all}.acc-roles{display:flex;flex-direction:column;gap:6px;margin:4px 0 12px}.acc-roles label{display:flex;gap:8px;align-items:baseline;font-size:13px}.acc-roles .muted{font-size:12px}.acc-role-badges{display:flex;gap:4px;flex-wrap:wrap}.acc-row-actions{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.acc-inactive td{color:var(--muted)}.acc-menu{position:relative}.acc-menu-btn{border:1px solid var(--border-strong);background:var(--card);padding:5px 12px;cursor:pointer;font:inherit;font-size:13px;color:var(--text);white-space:nowrap;display:inline-flex;gap:6px;align-items:center}.acc-menu-btn .caret{color:var(--muted);font-size:10px}.acc-menu-list{position:absolute;right:0;top:calc(100% + 4px);min-width:200px;background:var(--card);border:1px solid var(--border-strong);z-index:50;padding:4px 0}.acc-menu-list .acc-menu-head{padding:8px 12px;border-bottom:1px solid var(--border);font-size:12px;color:var(--muted)}.acc-menu-list .acc-menu-head strong{display:block;color:var(--text);font-size:13px}.acc-menu-list a,.acc-menu-list button{display:block;width:100%;text-align:left;padding:7px 12px;background:none;border:none;font:inherit;font-size:13px;color:var(--text);cursor:pointer;text-decoration:none}.acc-menu-list a:hover,.acc-menu-list button:hover{background:var(--bg)}.acc-section h2{margin-top:0}.acc-modal-actions{margin-top:8px}.rel-kicker{font-family:var(--mono, "JetBrains Mono Variable", monospace);font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px}.rel-focus{border-left:3px solid var(--text);margin-bottom:16px}.rel-gate-focus{margin-top:8px;display:grid;gap:4px}.rel-versions{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}.rel-summary{display:grid;gap:16px;margin-top:10px}.rel-comp-head{border-bottom:1px solid var(--border);padding:4px 0;margin-bottom:4px}.rel-check{display:grid;gap:10px;margin-top:10px}.rel-anyfail{border:1px solid var(--red);border-left-width:4px;padding:10px 12px;background:#fff}.rel-anyfail-head{font-family:var(--mono, monospace);font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--red);font-weight:600;margin-bottom:4px}.rel-blocking{margin:8px 0 0;padding-left:0;list-style:none;display:grid;gap:6px}.rel-blocking ul{margin:2px 0 0 18px;padding:0}.rel-blocked{border:1px dashed var(--border-strong);padding:8px 10px;margin:10px 0}.rel-blocked ul{margin:4px 0 0 18px;padding:0}.rel-req{margin-top:12px;display:grid;gap:8px}.rel-hash{word-break:break-all}.rel-hash-box{border:1px solid var(--border);padding:6px 8px;word-break:break-all;margin:4px 0 8px;background:#fafbfc}.rel-meaning{display:flex;gap:8px;align-items:flex-start;margin:12px 0}.rel-reason{color:var(--red);margin-top:2px}.rel-compare{display:grid;gap:8px;margin-top:10px}.rel-cmp ul{margin:2px 0 0 18px;padding:0}.rel-my{margin-bottom:18px}section.card{margin-bottom:16px}.rel-verdict{border-left:3px solid var(--border-strong)}.rel-verdict-ok{border-left-color:var(--green)}.rel-verdict-bad{border-left-color:var(--red)}.rel-verdict-wait{border-left-color:var(--amber)}.rel-verdict-text{font-size:20px;font-weight:600;letter-spacing:-.01em}.rel-verdict-ok .rel-verdict-text{color:var(--green)}.rel-verdict-bad .rel-verdict-text{color:var(--red)}.rel-verdict-facts{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border);font-size:13px}.rel-comp .disclosure{margin:4px 0 0}.rel-req.card{box-shadow:none}.rel-anyfail{border-width:0 0 0 3px;background:var(--red-soft)}.ch-section{border-top:1px solid var(--border);padding-top:14px;margin-top:14px}.ch-section:first-child{border-top:none;margin-top:0;padding-top:0}.ch-section h3{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 10px}.ch-yn{display:inline-flex;gap:0;border:1px solid var(--border-strong)}.ch-yn label{padding:3px 12px;cursor:pointer;font-size:12.5px;-webkit-user-select:none;user-select:none}.ch-yn label+label{border-left:1px solid var(--border-strong)}.ch-yn input{position:absolute;opacity:0;pointer-events:none}.ch-yn label.on{background:var(--text);color:var(--card)}.ch-yn label.on.yes{background:var(--amber);color:#fff}.ch-impact{display:grid;grid-template-columns:minmax(180px,240px) auto minmax(0,1fr);gap:6px 12px;align-items:center}.ch-impact .label{font-size:13px}.ch-impact input[type=text]{width:100%}.ch-row{display:flex;gap:12px;align-items:center;margin-bottom:10px;flex-wrap:wrap}.ch-row>.ch-q{min-width:260px;font-size:13px}.ch-chips{display:flex;gap:6px;flex-wrap:wrap}.ch-chip{border:1px solid var(--border-strong);padding:3px 10px;font-size:12.5px;cursor:pointer;background:var(--card);font:inherit}.ch-chip.on{background:var(--text);color:var(--card);border-color:var(--text)}.ch-missing{font-size:12.5px;color:var(--amber);margin:6px 0 0;padding-left:18px}.ch-timeline{list-style:none;margin:0;padding:0}.ch-timeline li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:8px;padding:10px 0;border-bottom:1px solid #f1f5f9}.ch-timeline li:last-child{border-bottom:none}.ch-dot{width:14px;height:14px;border:2px solid var(--border-strong);margin-top:3px}.ch-dot.done{background:var(--green);border-color:var(--green)}.ch-dot.rejected{background:var(--red);border-color:var(--red)}.ch-dot.next{border-color:var(--primary)}.ch-flag{border-left:3px solid var(--border-strong);padding:6px 10px;margin-bottom:8px;background:#fafbfc;font-size:13px}.ch-flag.sev-high{border-color:var(--red)}.ch-flag.sev-medium{border-color:var(--amber)}.ch-flag.sev-low{border-color:var(--blue)}.ch-key{font-family:JetBrains Mono Variable,ui-monospace,monospace;font-size:12.5px}.ch-sticky{position:sticky;top:calc(env(safe-area-inset-top,0px) + 8px)}@media(max-width:900px){.ch-impact{grid-template-columns:1fr}}.ch-fieldset{border:none;padding:0;margin:0;min-width:0}.card.ch-fieldset{border:1px solid var(--border);padding:var(--s4, 16px);margin-bottom:var(--s4, 16px)}.ch-fieldset>div[hidden]{display:none}.ch-section h3{text-transform:none;letter-spacing:0;font-size:14px;color:var(--text);font-weight:600}.ch-help{margin:-4px 0 10px}.ch-impact{grid-template-columns:minmax(200px,280px) auto}.ch-notes{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 12px}.ch-row>.ch-q{font-size:13.5px}.ch-desc{margin:16px 0 0;white-space:pre-wrap;max-width:75ch}.ch-flag{background:transparent}.ch-prescreen{padding:4px 0 8px}.ch-sticky .card{margin-bottom:12px}.devci-small{font-size:12.5px}.devci-inline{display:inline-flex;align-items:center;gap:6px}.devci-rules{list-style:none;margin:4px 0 8px;padding:0;display:grid;gap:4px}.devci-rule{display:grid;grid-template-columns:18px minmax(220px,auto) 1fr;gap:8px;align-items:baseline;font-size:13px}.devci-rule-mark{font-weight:700;text-align:center}.devci-rule-pass .devci-rule-mark{color:var(--green)}.devci-rule-fail .devci-rule-mark,.devci-rule-fail .devci-rule-detail{color:var(--red)}.devci-rule-unknown .devci-rule-mark{color:var(--amber)}.devci-rule-detail{color:var(--muted)}.devci-checks{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.devci-detail-row td{background:#fafbfc}.devci-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.devci-card{display:block;color:inherit;text-decoration:none}.devci-card:hover{border-color:var(--border-strong);text-decoration:none}.devci-card h3{margin:0}.devci-req{display:inline-block;margin:0 4px 2px 0;padding:0 5px;background:var(--blue-soft);color:var(--blue);font-size:11.5px}.devci-msg{max-width:360px;white-space:pre-wrap;font-size:12.5px;color:var(--muted)}.devci-hash{word-break:break-all;font-size:11.5px}.devci-clickable{cursor:pointer}.devci-practice{margin:0 0 8px;padding-left:18px}.devci-code{white-space:pre-wrap;word-break:break-all}.dr-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.dr-summary-main{display:flex;flex-wrap:wrap;align-items:center;gap:28px;flex:1}.dr-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dr-checks{list-style:none;padding:0;margin:0;display:grid;gap:6px}.dr-gaps{border-left:3px solid var(--red);margin:12px 0}.dr-gaps ul,.dr-blockers{margin:4px 0 0;padding-left:18px}.dr-blockers{color:var(--red);font-size:12px}.dr-sbom-list{margin-top:8px;max-height:260px;overflow:auto}.dr-stage{margin-bottom:8px}.dr-body{white-space:pre-wrap;font-size:12px;background:var(--surface-2);padding:8px;margin:6px 0 0;max-width:620px}.dr-progress{position:relative;height:18px;min-width:120px;background:var(--surface-2);border:1px solid var(--border)}.dr-progress>div{position:absolute;inset:0 auto 0 0;background:var(--green-soft);border-right:2px solid var(--green)}.dr-progress>span{position:relative;font-size:11px;padding-left:6px;font-family:var(--mono)}.dr-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;width:100%}.dr-actions input{min-width:240px}.dr-blocked{width:100%;color:var(--amber);background:var(--amber-soft);padding:4px 8px}.dr-notes{margin:0 0 12px;padding-left:18px;color:var(--muted);font-size:13px}.dr-timeline{list-style:none;padding:0;margin:0;border-left:2px solid var(--border)}.dr-step{position:relative;padding:10px 12px 12px 18px;margin-bottom:8px;background:var(--card);box-shadow:var(--shadow);margin-left:14px}.dr-step:before{content:"";position:absolute;left:-22px;top:16px;width:10px;height:10px;background:var(--card);border:2px solid var(--border-strong)}.dr-step-in_progress:before{border-color:var(--blue);background:var(--blue-soft)}.dr-step-monitoring_ok:before,.dr-step-done:before{border-color:var(--green);background:var(--green)}.dr-step-halted:before{border-color:var(--amber);background:var(--amber-soft)}.dr-step-rolled_back:before{border-color:var(--red);background:var(--red)}.dr-step-pending{opacity:.75}.dr-monitoring{margin-top:6px}.dr-monitor-form{margin-top:10px;padding-top:10px;border-top:1px dashed var(--border)}.dr-actions-row{display:flex;gap:8px;align-items:center}.dr-doc-details{padding:0 12px}.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))}.cell-sub{font-size:12px;color:var(--muted)}.run-cell a{font-weight:500}.form-section{margin-bottom:var(--s4, 16px)}.form-section>h4{margin:0 0 var(--s2, 8px)}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,d09GMgABAAAAAAfsABQAAAAAEAwAAAeCAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoP0hWQVJbBmA/U1RBVIFiJyYAdC9qEQgKhGSEAAsgADCGCAE2AiQDOgQgBYlMB4EUDAcbLQ4onoexrSC/2ZyLAa8p8VHB8/x3Vue+V0hVJalMJg2nx/TCrQXxBeqLjQG7FyM1WEa/X1tEXN7cFz9EJEMmMUz3RihWSSKeQCbcIou0izz/C8v+fq3VfajEa9gDD11CImXS7qL/RJFVzC1qiB6KmKeD6TZdQ6IRGv78dL6uSVVCfgni5mzu7kcgQBgAEAQTQRCoL++STTYybkJxNfQxAAIAGu8OdEB9teW2jh4BpgDqFjAeSEByW3zFP0CBBgNMsMCGEDjgggdhiEAUAeIIED7ABTDUEnkIE9Q9ahFgKttcVhApo4ACB4qobHaccgDfEjFO6aaWUhjMLt2SyIvHKoDqoA4CSUwEIYQCEjhAO9R1G6keDeDZGjNo+AhxOjCEGTr1WeIF3kYBiLAOKvkJSMiKX0VdAyQt3SDJClCkxJCHkCzfqyVTriJZLcolS32JZHUekq2TYNkYtCtjYHMQXSxGjXDz2t/yLWXzDzxz+o3zFwDEaN23F+13pyMdQAEaSKAR9vcGq4A4MTSKCElGW+M7UcY7xqkggITb28ZJhlqc9q2twYKTt0NjixBgYvO9BIihEBLYuOFXQzfIQ7dXGUEEEgFDooBfAzqiQbpJrhiWSuKJCRFKYbHCyJKI2G5GiZbNAvgAu5pc3vwx4G+g3aDkhklABiSz0BICXrYghtYhx/cdJ+44rY2oZ0aMNRFz3VZjb6W33F3gzltqtOCV8tTHSpOeXuItfvr5lCdfzFpqtEitvqdcdGGFd28ZqqC0tPbeChGXgrIlnhSWu/eUso4uKWFLugyDzQJhflY4659+WjQ++6x72WUMv9G8mw6QJl7BVxX5fe/kpUsOvnZwee9uQ0cGXYd0o89XB2748sDSnt8d2VphdOTTgceDVvOds0v9P/s7HPq15aGun/6Vllb56f1dl0t1LejqrNkpdRZsG8TOnM5vkBG5oiVyVGnS8LHps5cfNWJs6qKPfaNSxiQNBUm3cKNWROr0GSur7Za31k1vieq7LH11VF+jXdRIasRKflc7jkobm1Z9te1IyZA0pDkhLR98+H37Zf1c/8at+dB7x+7GfVyTfJMPiYztsnl59Y5l4j+0n1RXlpHnF3Tq7HecmNF/CJodEMAikruxiyJaGLvHOdAfoA+oDvpjBm2b91cHGRZMU9n25xEU0A8fgEEAdKI3Q1iDtc034sug5YVMkE2jsE+BIkwSoQ3gxXMqz9tELp48bd0cFKOKS7xYjEuXBnZP5ia7DyiO/X/YI+PQSbt2uSdqAkWL9nQbV1XB94/+uPfdZz8dnXYFBYrcTl2SIR/ybxJNJPz/Gupb0JaZeens2ekC7EKr8t+Ls/P5VJPYJdHKyqfg2nqU6bhlidzcddQV/7MmecTzJ5VPcKXkNKSEogHjYFx6QZ7rQ+FSe8njaiNuOnXS8H2ScQ619c2mC3VTtauL0rRbXd/CkSOP37FY9Zkjz8+GibYUMOEWF+RdrFS8Ecv1SHOpPUPZGEIpjPvFyU5cXKjd6OXqorTqy9GwRd++HVufPGnVsW+aO3vggKZ18jR9sXaTC1PWTEsVUaK0FkNySbTQDqlm2PfDjZcu4aalnSLKjnOoYQ0nUlqqXcGpPu/4VgV/xU2pAqW4BW3qzhQ8/hFKhV2qE3+BKAtDqBXjfgnVdH4y0wg5tbVNRenNdTWOrenWLcupQdmsbq5b+18piTe/xRdp1xbILxNPJGInm2z6hoB21Lal0i+ePTtd7B45+3XhFJ329evskXm7qurUVREotqSluSo/L29d3qDhI4YOQqWhI4YNvBNfsMHeXKemXrxQfKeuPOGRVayA3JtkJKEgbPp+dXUDluddutRYLFoXGXWX6N3WFaGLbQtRSitVYNacTNSdy7AaG/HSaUEANcBoGXNdcZvZsOqQ1icBDv21/gzAoYPHH/WDW0qNR3QTYKEAEHig6o13NXbND06CQPlRtYjGNnSktRc09k1mAMDvAlDKfQjgy6fssInlfzmNAjKkDxoxHOBLdVRAIVt9j4qo+hA1w9T1aNBNTUOTTNUHLbqokE+UAfJXCIGw/IxCSL5GRUJeR40rL/UxTm4Q08H6MbCs70ObuNyIIXrINHQYInF06UUlevTjbQzTh5upiDMzMMogUtEnjPs/Y7jAHCJeB0GBHh04tC6FiB6ZFB1oArUSIoFoqhzCeAN6lHwm0T4C3VVPWvjpSMXReuWesMEcoqrmgtNBGd2noWeV0hNAz9rFeShNJxHGsPa3HXeKTk8b55hahySYHaYKKFFLpCfN8rsoaJn01CR04Gkc+5k7KVTCmClX8Q10HCrUEkVlSX+XO33oQR9609tJ516H497WSobWs5Up6TLaS10/dessIskgJSLiDlWvHVUywpkQ7hdPZqGyiEF0uVQerVcPamT1A3eKXdyI1vG9OoflrSXihZ1qqGE3nhmAgiIbRCQgPLEPtOM3UQwTLYaYYomNlpA44opnjV6jkD6id80OOrzf6BzmMD6eEa1zKyeYG1fzfEf16V6jw9XYOaar1/b2kP/IYX8oR2mcFvv2GtBV3JXgd437AQAA) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--bg: #fafafa;--bg-deep: #ececec;--card: #ffffff;--surface-2: #f4f4f4;--text: #000000;--text-secondary: #212121;--muted: #5a5a5a;--border: #dedede;--border-strong: #9e9e9e;--primary: #3264eb;--primary-ink: #ffffff;--primary-soft: #3264eb1f;--gate-fill: #eef1fd;--gate-border: #3264eb;--gate-text: #1c3781;--target-fill: #eaf6ef;--target-border: #2e8a5b;--target-text: #0f4d30;--block-fill: #fdeeee;--block-border: #c8372d;--green: #1e7a46;--green-soft: #e3f3e9;--red: #b42318;--red-soft: #fdeceb;--amber: #9a5b00;--amber-soft: #fbf1dc;--blue: #274eb7;--blue-soft: #e6ecfc;--purple: #5b3cc4;--purple-soft: #efebfb;--radius: 0;--shadow: 0 0 0 1px rgb(0 0 0 / .06), 0 1px 3px rgb(0 0 0 / .05), 0 4px 10px -4px rgb(0 0 0 / .05);--shadow-hover: 0 0 0 1px rgb(0 0 0 / .09), 0 1px 3px rgb(0 0 0 / .07), 0 4px 10px -4px rgb(0 0 0 / .08);--sans: "Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font-family:var(--sans);color:var(--text);background:var(--bg);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0;font-weight:650}h2{font-size:17px;margin:0}h3{font-size:15px;margin:20px 0 10px;font-weight:600}h4{font-size:13px;margin:0 0 8px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}input,select,textarea{font:inherit;color:inherit;border:1px solid var(--border-strong);border-radius:0;padding:7px 9px;background:var(--card);min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);border-color:var(--primary)}textarea{resize:vertical;width:100%}.mono,code,pre{font-family:var(--mono)}.small{font-size:12px}.muted{color:var(--muted)}.nowrap{white-space:nowrap}.grow{flex:1;text-align:left}.pad{padding:16px}.pad-t{padding-top:6px}.amber-text{color:var(--amber)}.red-text{color:var(--red)}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;padding:0 20px;height:56px;background:var(--card);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:8px;font-weight:650;white-space:nowrap}.brand-lg{font-size:18px;margin-bottom:4px}.brand-mark{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:0;background:var(--gate-border);color:#fff;font-weight:700}.nav{display:flex;gap:2px;overflow-x:auto}.nav a{padding:7px 11px;border-radius:0;color:var(--muted);font-weight:500;white-space:nowrap}.nav a:hover{background:var(--bg);text-decoration:none;color:var(--text)}.nav a.active{background:var(--primary-soft);color:var(--primary)}.topbar-right{margin-left:auto;display:flex;gap:8px;align-items:center}.actor-chip{border:1px solid var(--border-strong);border-radius:0;background:var(--card);padding:5px 12px;cursor:pointer;font:inherit;font-size:13px;color:var(--muted);white-space:nowrap}.actor-chip strong{color:var(--text)}.main{padding:24px}.page{max-width:1280px;margin:0 auto}.page-full{max-width:none}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}.subtitle{color:var(--muted);margin-top:4px}.h-sub{font-size:15px;font-weight:400}.actions,.inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions-row{margin-top:14px;display:flex;justify-content:flex-end}.row-between{display:flex;justify-content:space-between;align-items:center;gap:8px}.crumbs{color:var(--muted);font-size:13px;margin-bottom:8px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);margin-bottom:14px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}.grid-3,.kv-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 16px}.span-3{grid-column:1 / -1}.grid-2-wide{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);gap:16px;align-items:start}.grid-2-even{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.kv-k{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:2px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--card)}.w-sm{width:110px}.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border-strong);background:var(--card);color:var(--text);padding:7px 13px;border-radius:0;font:inherit;font-weight:500;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--bg);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);border-color:var(--primary);color:var(--primary-ink)}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-danger{background:var(--red);border-color:var(--red);color:#fff}.btn-danger-ghost{color:var(--red);border-color:#fca5a5}.btn-ghost{border-color:transparent}.btn-sm{padding:4px 9px;font-size:12px}.btn-block{width:100%;justify-content:center;margin-top:8px}.btn-icon{border:none;background:none;cursor:pointer;font-size:16px;color:var(--muted);padding:2px 6px;border-radius:0}.btn-icon:hover{background:var(--bg)}.link-btn{border:none;background:none;color:var(--primary);cursor:pointer;padding:0 4px;font:inherit}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:0;overflow:hidden;margin:6px 0 12px}.seg button{border:none;background:var(--card);padding:6px 12px;cursor:pointer;font:inherit}.seg button.active{background:var(--primary-soft);color:var(--primary);font-weight:600}.badge{display:inline-block;padding:1px 8px;border-radius:0;font-size:11.5px;font-weight:600;text-transform:lowercase;vertical-align:middle;white-space:nowrap}.badge-green{background:var(--green-soft);color:var(--green)}.badge-red{background:var(--red-soft);color:var(--red)}.badge-amber{background:var(--amber-soft);color:var(--amber)}.badge-blue{background:var(--blue-soft);color:var(--blue)}.badge-purple{background:var(--purple-soft);color:var(--purple)}.badge-grey{background:#f1f5f9;color:#475569}.tag{display:inline-block;background:#f1f5f9;border:1px solid var(--border);border-radius:0;padding:0 6px;margin-right:4px;font-size:12px}.person{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:baseline}.unverified{font-size:11px;color:var(--amber);background:var(--amber-soft);border-radius:0;padding:0 5px}.unverified-dot{color:var(--amber);font-weight:700;margin-left:2px}.alert{padding:10px 12px;border-radius:0;margin:10px 0;border:1px solid}.alert ul{margin:6px 0 0;padding-left:18px}.alert-error{background:var(--red-soft);border-color:#fca5a5;color:#7f1d1d}.alert-ok{background:var(--green-soft);border-color:#86efac;color:#14532d}.alert-warn{background:var(--amber-soft);border-color:#fcd34d;color:#78350f}.alert-info{background:var(--blue-soft);border-color:#93c5fd;color:#1e3a8a}.banner{padding:10px 14px;border-radius:0;margin:0 0 14px;border:1px solid}.banner-amber{background:var(--amber-soft);border-color:var(--amber);color:#78350f}.banner-red{background:var(--red-soft);border-color:var(--red);color:#7f1d1d}.banner-blue{background:var(--blue-soft);border-color:var(--blue);color:#1e3a8a}.banner .check{margin-top:8px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field>input,.field>select,.field>textarea{width:100%}.field-label{font-size:12px;font-weight:600;color:#334155}.field-hint{font-size:12px;color:var(--muted)}.field-error{font-size:12px;color:var(--red)}.check{display:flex;gap:8px;align-items:center;margin:6px 0;cursor:pointer}.check-inline{margin-right:8px;font-size:12px}.checklist{max-height:260px;overflow:auto;border:1px solid var(--border);border-radius:0;padding:6px 10px}.code-input{font-family:var(--mono);font-size:12.5px;background:#0f172a;color:#e2e8f0;border-radius:0;padding:12px;line-height:1.5}.code-block{font-size:12.5px;background:#0f172a;color:#e2e8f0;border-radius:0;padding:12px;overflow:auto;margin:0;max-height:520px;white-space:pre}.steps-editor{display:flex;flex-direction:column;gap:6px}.step-row{display:grid;grid-template-columns:24px 1fr 1fr auto auto auto;gap:6px;align-items:center}.step-no{color:var(--muted);text-align:right;font-weight:600}.steps-list{margin:0 0 8px;padding-left:20px}.steps-list li{margin-bottom:6px}ul.plain{margin:0;padding-left:18px}.table-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;padding:9px 12px;border-bottom:1px solid var(--border);background:#fafbfc}.table td{padding:9px 12px;border-bottom:1px solid #f1f5f9;vertical-align:top}.table tr:last-child td{border-bottom:none}.table-dense td,.table-dense th{padding:5px 9px;font-size:12.5px}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.row-selected td{background:var(--primary-soft)}.row-slow td{background:var(--amber-soft)}.row-failed td{background:var(--red-soft);color:#7f1d1d}.url-cell{max-width:480px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.net-summary{display:flex;gap:18px;margin-bottom:8px}.modal-backdrop{position:fixed;inset:0;background:#0f172a73;display:grid;place-items:center;z-index:100;padding:20px}.modal{background:var(--card);border-radius:0;width:min(520px,100%);max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 50px #0f172a40}.modal-wide{width:min(860px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}.modal-body{padding:16px 18px;overflow:auto}.modal-foot{padding:12px 18px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(380px,100%)}.flow-wrap{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.flow-canvas{height:calc(100vh - 240px);min-height:560px}.fnode{position:relative;border-radius:0;padding:6px 10px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;cursor:pointer;background:var(--card);border:1.5px solid #94a3b8;color:var(--text);overflow:hidden}.fnode:hover{box-shadow:0 0 0 3px #2563eb26}.fnode-label{font-weight:650;font-size:13px;line-height:1.2}.fnode-sub{font-size:11px;color:var(--muted);line-height:1.25}.fnode-detail{font-size:10.5px;font-weight:700;line-height:1.25;margin-top:2px}.fnode-gate{background:var(--gate-fill);border-color:var(--gate-border);color:var(--gate-text)}.fnode-gate .fnode-sub{color:var(--gate-text);opacity:.8}.fnode-target{background:var(--target-fill);border-color:var(--target-border);color:var(--target-text);padding:4px}.fnode-target .fnode-label{font-size:12px}.fnode-target .fnode-sub{color:var(--target-text);font-size:10.5px}.fnode-blocking{background:var(--block-fill);border:1.5px dashed var(--block-border);color:#8a1f1b}.fnode-side{background:var(--card);border-color:#94a3b8}.fnode-step{background:var(--card)}.fstate-planned{opacity:.55;border-style:dashed}.fnode-badge{position:absolute;top:3px;right:4px;font-size:9px;text-transform:uppercase;letter-spacing:.05em;background:#e2e8f0;color:#475569;border-radius:0;padding:0 4px}.fnode-status{font-size:10.5px;font-weight:700;margin-top:2px;border-radius:0;padding:0 4px}.fnode-status.ok{color:var(--green);background:var(--card)}.fnode-status.bad{color:var(--red);background:var(--card)}.fnode-status.warn{color:var(--amber);background:var(--card)}.fstate-failing{border-color:var(--red);box-shadow:0 0 0 2px var(--red-soft)}.fstate-passing{box-shadow:0 0 0 2px var(--green-soft)}.fgroup{width:100%;height:100%;border:1.5px dashed #94a3b8;border-radius:0;background:#f8fafcb3;position:relative;pointer-events:none}.fgroup-label{position:absolute;top:8px;left:14px;font-size:12px;font-weight:600;color:#475569}.react-flow__handle{opacity:0;pointer-events:none}.legend{display:flex;gap:18px;padding:10px 14px;border-top:1px solid var(--border);font-size:12.5px;color:var(--muted);flex-wrap:wrap}.legend-item{display:inline-flex;align-items:center;gap:6px}.legend-swatch{display:inline-block;width:22px;height:13px;border-radius:0;border:1.5px solid;padding:0}.legend-planned{background:var(--card);border:1.5px dashed #94a3b8;opacity:.55}.progress-wrap{display:flex;align-items:center;gap:12px;margin-bottom:12px}.progress{flex:1;height:8px;background:#e2e8f0;border-radius:0;overflow:hidden}.progress-bar{height:100%;background:var(--primary);transition:width .4s}.result{padding:0;overflow:hidden}.result-head{width:100%;display:flex;gap:10px;align-items:center;padding:11px 14px;background:none;border:none;font:inherit;cursor:pointer;text-align:left;color:inherit}.result-head:hover{background:#fafbfc}.outcome-fail,.outcome-error{border-left:3px solid var(--red)}.outcome-pass{border-left:3px solid var(--green)}.caret{color:var(--muted);width:12px}.failure{padding:0 14px 10px 36px;color:#7f1d1d}.result-body{border-top:1px solid var(--border);padding:12px 14px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:12px;flex-wrap:wrap}.tabs button{border:none;background:none;padding:7px 12px;cursor:pointer;font:inherit;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}.tabs button.active{color:var(--primary);border-color:var(--primary);font-weight:600}.video-tab{display:grid;grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:12px}.video{width:100%;background:#000;border-radius:0}.step-markers{display:flex;flex-direction:column;gap:4px;max-height:420px;overflow:auto}.marker{text-align:left;border:1px solid var(--border);background:var(--card);border-radius:0;padding:5px 8px;cursor:pointer;font:inherit;font-size:12.5px}.marker:hover{border-color:var(--primary)}.marker-failed{border-color:var(--red);background:var(--red-soft)}.filmstrip{display:flex;gap:10px;overflow-x:auto;padding-bottom:6px}.frame{flex:0 0 200px;margin:0;border:1px solid var(--border);border-radius:0;overflow:hidden;background:var(--card)}.frame img{display:block;width:100%;height:125px;object-fit:cover;object-position:top}.frame-empty{height:125px;display:grid;place-items:center;color:var(--muted);background:#f8fafc;font-size:12px}.frame figcaption{padding:6px 8px;font-size:12px}.frame-failed{border:2px solid var(--red)}.frame-failed figcaption{background:var(--red-soft)}.log{margin-bottom:12px}.log-head{font-weight:600;margin-bottom:4px}.log-body{background:#0f172a;color:#cbd5e1;font-size:12px;padding:10px;border-radius:0;max-height:420px;overflow:auto;margin:0}.log-err{color:#fca5a5;background:#ef444426}.log-warn{color:#fcd34d}.shot{width:100%;border:1px solid var(--border);border-radius:0;display:block}.check-cell{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.diff{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--card);margin-bottom:14px}.diff-head{display:grid;grid-template-columns:1fr 1fr;background:#fafbfc;border-bottom:1px solid var(--border);font-weight:600;font-size:12px}.diff-head div{padding:6px 10px}.diff-body{max-height:520px;overflow:auto;font-size:12px}.diff-row{display:grid;grid-template-columns:1fr 1fr}.diff-cell{display:flex;gap:8px;padding:0 8px;white-space:pre-wrap;word-break:break-all;min-height:18px}.diff-cell+.diff-cell{border-left:1px solid var(--border)}.ln{color:#94a3b8;width:30px;text-align:right;flex:none;-webkit-user-select:none;user-select:none;font-family:var(--mono)}.d-del{background:#fee2e2}.d-add{background:#dcfce7}.d-empty{background:#f8fafc}.agent-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,1fr);gap:16px;align-items:start}.transcript{display:flex;flex-direction:column;height:calc(100vh - 280px);min-height:480px}.goal{padding-bottom:10px;border-bottom:1px solid var(--border);margin-bottom:8px}.events{flex:1;overflow:auto;display:flex;flex-direction:column;gap:8px;padding-right:4px}.ev{border-radius:0;padding:8px 10px}.ev-who{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--muted)}.ev-text{white-space:pre-wrap}.ev-assistant{background:#f8fafc;border:1px solid var(--border)}.ev-user{background:var(--primary-soft);align-self:flex-end;max-width:85%}.ev-action{border:1px dashed var(--border-strong);font-size:12.5px;padding:5px 10px}.ev-action summary{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ev-action pre{white-space:pre-wrap;margin:6px 0 0}.ev-status{font-size:12.5px;color:var(--muted);padding:2px 10px}.composer{display:flex;gap:8px;margin-top:10px;align-items:flex-end}.side-col{display:flex;flex-direction:column}.draft{border:1px solid var(--border);border-radius:0;padding:10px;margin-bottom:10px;display:flex;flex-direction:column;gap:8px}@media(max-width:960px){.grid-2-wide,.grid-2-even,.agent-grid,.video-tab{grid-template-columns:1fr}.grid-3,.kv-grid{grid-template-columns:1fr 1fr}.topbar{flex-wrap:wrap;height:auto;padding:8px 12px}}.fnode{transition:transform .12s ease,box-shadow .12s ease}.fnode:hover{transform:translateY(-1px);box-shadow:0 0 0 3px #2563eb38,0 4px 10px #0f172a14}.fstate-planned:hover{opacity:.9}.fnode-selected{box-shadow:0 0 0 3px #2563eb!important;opacity:1!important}.fnode-side .fnode-badge,.fnode-blocking .fnode-badge{top:auto;bottom:2px}.flow-layout{display:grid;grid-template-columns:1fr;gap:16px;align-items:start}.flow-layout.with-panel{grid-template-columns:minmax(0,1fr) min(440px,40%)}.flow-panel{background:var(--card);border:1px solid var(--border, #e2e8f0);border-radius:0;box-shadow:0 10px 30px #0f172a14;max-height:calc(100vh - 140px);overflow:auto;position:sticky;top:72px;animation:flowPanelIn .16s ease-out}.flow-panel-head{display:flex;justify-content:space-between;gap:12px;padding:16px 16px 8px;border-bottom:1px solid var(--border, #e2e8f0)}.flow-panel-head h2{margin:2px 0;font-size:18px}.flow-panel-kind{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted, #64748b)}.flow-panel-actions{display:flex;flex-wrap:wrap;gap:8px;padding:12px 16px;border-bottom:1px solid var(--border, #e2e8f0)}.flow-panel-body{padding:12px 16px 16px}.flow-panel-body .card{margin-bottom:12px}@keyframes flowPanelIn{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:none}}@media(max-width:900px){.flow-layout.with-panel{grid-template-columns:1fr}.flow-panel{position:static;max-height:none}}.tabs a{padding:7px 12px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none}.tabs a:hover{color:var(--text)}.tabs a.active{color:var(--primary);border-color:var(--primary);font-weight:600}.truncate{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}.test-ok{color:var(--green)}html,body{background:var(--bg)}::selection{background:#d0d0d0}h1{font-weight:600;letter-spacing:-.02em}h2,h3{font-weight:600;letter-spacing:-.01em}h4,th,.crumbs,.flow-panel-kind,.fgroup-label,.legend,.badge,.nav a,.kv-grid dt,.label,label>span:first-child{font-family:var(--mono);letter-spacing:0}h4,th,.flow-panel-kind{font-size:11px;text-transform:uppercase;font-weight:500;color:var(--muted)}.nav a{font-size:13px}.nav a.active{background:var(--text);color:var(--card)}.nav a:hover{background:var(--bg-deep)}.nav a.active:hover{background:var(--text);color:var(--card)}.topbar{box-shadow:none;border-bottom:1px solid var(--border)}.brand{gap:10px}.brand-logo{height:18px;width:auto;display:block}.brand-lg .brand-logo{height:26px}.brand-name{font-family:var(--mono);font-size:12px;font-weight:500;text-transform:uppercase;color:var(--muted);padding-left:10px;border-left:1px solid var(--border-strong)}.card{border-color:var(--border);box-shadow:var(--shadow)}.btn{font-weight:500}.btn-primary{background:var(--text);border-color:var(--text);color:var(--card)}.btn-primary:hover{background:var(--text-secondary);border-color:var(--text-secondary)}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary-soft);outline-offset:0;border-color:var(--primary)}.mono,code,pre,.hash{font-family:var(--mono);font-size:12.5px}.fnode{box-shadow:none}.fnode:hover{box-shadow:var(--shadow-hover)}.m0{margin:0}.mt0{margin-top:0}.strong{font-weight:600}.num{text-align:right;font-variant-numeric:tabular-nums}th.num{text-align:right}.page-wide{max-width:1680px}.page-narrow{max-width:760px}.seg-tight{margin:0}.seg button:disabled{opacity:.5;cursor:not-allowed}.th-btn{all:unset;cursor:pointer;display:inline-block;width:100%}th.num .th-btn{text-align:right}.th-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--surface-2)}.kv-compact{padding:12px 16px;gap:8px 16px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.35}}.spinner{display:inline-block;width:12px;height:12px;border:2px solid var(--blue-soft);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite;flex:none}.st{display:inline-grid;place-items:center;width:14px;flex:none;font-weight:700;font-size:12px;line-height:1}.st-pass{color:var(--green)}.st-fail{color:var(--red)}.st-skip,.st-pending{color:var(--border-strong)}.live-viewer{position:relative;background:#0b0b0b;border:1px solid var(--text)}.live-screen{position:relative;aspect-ratio:16 / 10;background:#0b0b0b;display:grid;place-items:center;overflow:hidden}.live-frame{width:100%;height:100%;object-fit:contain;display:block}.live-preload{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.live-waiting{color:#9e9e9e;font-family:var(--mono);font-size:12.5px}.live-overlay{position:absolute;left:0;right:0;bottom:0;display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:7px 12px;background:#000000b8;color:#f4f4f4;font-size:12.5px}.live-overlay .mono{font-size:12px}.live-label{font-weight:600}.live-step{color:#d6d6d6;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.live-elapsed{margin-left:auto;color:#d6d6d6}.live-dot{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.06em;color:#fff}.live-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:#e5484d;animation:livePulse 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.live-dot:before,.spinner{animation:none}}.run-stage{display:grid;grid-template-columns:minmax(0,7fr) minmax(300px,3fr);gap:16px;align-items:start;margin-bottom:16px}.run-stage-main{display:flex;flex-direction:column;gap:12px;min-width:0}.run-stage-side{position:sticky;top:72px;max-height:calc(100vh - 96px);overflow:auto;margin:0}.run-stage-side .progress-wrap{margin-bottom:6px}.side-meta{margin-bottom:12px}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.tl-scenario{border-top:1px solid var(--border)}.tl-scenario:first-child{border-top:none}.tl-head{all:unset;box-sizing:border-box;width:100%;display:flex;align-items:center;gap:8px;padding:8px 4px;cursor:pointer}.tl-head:hover{background:var(--surface-2)}.tl-head:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.tl-selected>.tl-head{background:var(--surface-2);box-shadow:inset 2px 0 0 var(--text)}.tl-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.tl-steps{padding:4px 4px 10px 26px}.tl-steps ol{list-style:none;margin:0;padding:0}.tl-step{display:flex;gap:8px;align-items:center;padding:3px 0;font-size:12.5px}.tl-step-failed{color:var(--red)}.tl-failure{margin-top:6px;padding:6px 8px;background:var(--red-soft);border-left:2px solid var(--red);color:#7f1d1d;font-size:12.5px;word-break:break-word}.live-feed{background:var(--card);border:1px solid var(--border)}.live-feed-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:8px 10px;border-bottom:1px solid var(--border);flex-wrap:wrap}.live-feed-head h4{margin:0}.live-feed-body{max-height:300px;overflow:auto}.live-feed-body .url-cell{max-width:0;width:100%}.video-panel{display:flex;flex-direction:column;gap:8px}.video-panel .video{aspect-ratio:16 / 10;border:1px solid var(--text)}.step-markers-row{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.step-markers-row .marker{flex:none;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-evidence h3{font-size:15px}.stats-filters{align-items:flex-end;gap:16px}.stats-filters .field{margin-bottom:0}.drill{margin-top:16px}.chart{margin:12px 0 16px}.chart-svg{width:100%;height:auto;display:block;max-height:260px}.chart-grid{stroke:var(--border);stroke-width:1}.chart-axis{font-family:var(--mono);font-size:10px;fill:var(--muted)}.chart-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-p95{stroke:var(--text)}.chart-p50{stroke:var(--primary);stroke-dasharray:4 3}.chart-dot-p95{fill:var(--text)}.chart-dot-p50{fill:var(--primary)}.chart-legend{display:flex;gap:16px;font-family:var(--mono);color:var(--muted);margin-bottom:4px}.sw{display:inline-block;width:14px;height:2px;vertical-align:middle;margin-right:4px}.sw-p95{background:var(--text)}.sw-p50{background:var(--primary)}.studio{display:grid;grid-template-columns:minmax(340px,2fr) minmax(0,3fr);gap:16px;align-items:stretch;height:calc(100vh - 128px);min-height:560px}.studio>.card{margin:0;min-height:0}.studio-chat{display:flex;flex-direction:column;padding:0}.chat-head{padding:12px 14px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:6px}.chat-goal{font-size:13.5px}.chat-goal .kv-k{display:inline;margin-right:6px}.status-chip{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:12px;padding:3px 9px;border:1px solid var(--border-strong);background:var(--card)}.status-waiting_for_user{border-color:var(--amber);background:var(--amber-soft);color:var(--amber);font-weight:600}.status-running{border-color:var(--blue);color:var(--blue)}.status-error{border-color:var(--red);color:var(--red)}.status-completed{border-color:var(--green);color:var(--green)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot-live{background:var(--blue);animation:livePulse 1.4s ease-in-out infinite}.dot-amber{background:var(--amber);animation:livePulse 1s ease-in-out infinite}.chat-log{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px;background:var(--bg)}.bubble{padding:8px 11px;max-width:88%;border:1px solid var(--border);background:var(--card)}.bubble-agent{align-self:flex-start}.bubble-note{border-style:dashed}.bubble-user{align-self:flex-end;background:var(--text);color:var(--card);border-color:var(--text)}.bubble-user .ev-who{color:#bdbdbd}.pending-card{border:1px solid var(--border-strong);background:var(--card);padding:10px 12px;display:flex;flex-direction:column;gap:8px;max-width:92%}.pending-open{border-color:var(--amber);box-shadow:inset 3px 0 0 var(--amber)}.pending-proposal{font-weight:600}.pending-proposal .kv-k{display:inline;margin-right:6px}.log-line{font-size:12px;color:var(--muted);padding:0 2px}.log-line summary{cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;list-style:none}.log-line summary::-webkit-details-marker{display:none}.log-line .mono{font-size:11.5px}.log-line pre{white-space:pre-wrap;margin:4px 0 0 14px}.log-glyph{display:inline-block;width:12px;color:var(--border-strong)}.sys-line{font-size:12px;color:var(--muted);text-align:center;padding:2px 0}.draft-card{border:1px solid var(--text);background:var(--card);padding:10px 12px;display:flex;flex-direction:column;gap:8px;max-width:92%}.draft-card .kv-k{display:inline}.draft-card textarea{margin-bottom:6px}.chat-composer{display:flex;gap:8px;align-items:flex-end;padding:10px 14px 4px;border-top:1px solid var(--border)}.chat-composer textarea{resize:none}.chat-foot{padding:0 14px 8px}.studio-side{display:flex;flex-direction:column;overflow:auto}.studio-side>.tabs{position:sticky;top:-16px;background:var(--card);z-index:1;margin-top:-4px}.draft-panel,.runs-panel{display:flex;flex-direction:column;gap:12px}.meta-row{display:flex;flex-wrap:wrap;gap:6px 18px}.meta-row .kv-k{display:inline;margin-right:4px}.version-list{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--border-strong);background:var(--card);padding:3px 9px;font:inherit;font-size:12.5px;cursor:pointer}.chip:hover{background:var(--surface-2)}.chip-active{background:var(--text);color:var(--card);border-color:var(--text)}.chip-active .muted{color:#bdbdbd}.trial-run{border:1px solid var(--border);padding:10px 12px;display:flex;flex-direction:column;gap:8px}.trial-run.outcome-fail,.trial-run.outcome-error{border-left:3px solid var(--red)}.trial-run.outcome-pass{border-left:3px solid var(--green)}.drawer-root{position:fixed;inset:0;z-index:60}.drawer-backdrop{position:absolute;inset:0;background:#00000052;animation:fadeIn .16s ease-out}.drawer{position:absolute;top:0;right:0;bottom:0;width:max(70vw,720px);max-width:100vw;background:var(--card);border-left:1px solid var(--text);box-shadow:-12px 0 32px #0000001f;overflow:auto;outline:none;animation:drawerIn .2s cubic-bezier(.2,.8,.2,1);padding-bottom:env(safe-area-inset-bottom,0px)}.drawer .flow-panel-head{position:sticky;top:0;background:var(--card);z-index:1;padding:18px 24px 12px}.drawer .flow-panel-actions{padding:12px 24px}.drawer .flow-panel-body{padding:16px 24px 24px}.node-split{display:grid;grid-template-columns:minmax(260px,1fr) minmax(0,2fr);gap:16px;align-items:start}@keyframes drawerIn{0%{transform:translate(32px);opacity:0}to{transform:none;opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.drawer,.drawer-backdrop{animation:none}}@media(max-width:1100px){.run-stage{grid-template-columns:1fr}.run-stage-side{position:static;max-height:none}.studio{grid-template-columns:1fr;height:auto}.studio-chat{height:70vh}}@media(max-width:760px){.drawer{width:100vw}.node-split{grid-template-columns:1fr}}.roadmap-statement{font-size:16px;line-height:1.55;max-width:72ch;margin:4px 0 14px}.roadmap-meter{height:8px;background:var(--bg-deep);margin-top:6px}.roadmap-meter span{display:block;height:100%;background:var(--text)}.roadmap-principles{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.roadmap-principle{display:flex;flex-direction:column;gap:4px;margin:0}.roadmap-principle p{margin:0;font-size:13px}.roadmap-phases{list-style:none;padding:0;margin:0}.roadmap-phase{display:grid;grid-template-columns:36px 1fr;gap:12px}.roadmap-marker{width:28px;height:28px;display:grid;place-items:center;border:1px solid var(--border-strong);background:var(--card);font-size:13px;margin-top:16px}.roadmap-done .roadmap-marker{background:var(--text);color:var(--card);border-color:var(--text)}.roadmap-in_progress .roadmap-marker{border-color:var(--primary);color:var(--primary)}.roadmap-status{font-size:11px;text-transform:uppercase;padding:2px 8px;border:1px solid var(--border-strong)}.roadmap-status-done{background:var(--green-soft);color:var(--green);border-color:transparent}.roadmap-status-in_progress{background:var(--blue-soft);color:var(--blue);border-color:transparent}.roadmap-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px 24px;margin-top:12px}.roadmap-list{margin:0;padding-left:18px}.roadmap-list li{margin:2px 0}.roadmap-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.roadmap-chip{font-family:var(--mono);font-size:12px;padding:3px 8px;border:1px dashed var(--border-strong);color:var(--muted)}.roadmap-chip.is-live{border-style:solid;color:var(--text);background:var(--surface-2)}.roadmap-chip:hover{text-decoration:none;border-color:var(--text)}.nav{position:relative;overflow:visible;align-items:center}.nav-items{display:flex;gap:2px;align-items:center}.nav-toggle{display:none}.nav-group{position:relative}.nav-trigger{font:inherit;font-size:13px;padding:7px 11px;border:0;border-radius:0;background:transparent;color:var(--muted);font-weight:500;cursor:pointer;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em}.nav-trigger:hover{background:var(--bg-deep);color:var(--text)}.nav-trigger.active,.nav-trigger.active:hover{background:var(--text);color:var(--card)}.nav-trigger[aria-expanded=true]:not(.active){background:var(--bg-deep);color:var(--text)}.nav-trigger:focus-visible,.nav-menu a:focus-visible,.nav-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.nav-caret{margin-left:6px;font-size:10px}.nav-menu{position:absolute;top:100%;left:0;min-width:190px;padding:4px 0;background:var(--card);border:1px solid var(--border-strong);box-shadow:var(--shadow);z-index:30;display:flex;flex-direction:column}.nav-menu[hidden]{display:none}.nav-menu a{padding:8px 14px;color:var(--text);font-size:13px;text-transform:none;letter-spacing:0}.nav-menu a:hover{background:var(--bg-deep)}.nav-menu a.active{background:var(--text);color:var(--card)}@media(max-width:899px){.nav{flex:1;flex-direction:column;align-items:flex-start}.nav-toggle{display:inline-block;font:inherit;font-size:13px;padding:7px 12px;border:1px solid var(--border-strong);border-radius:0;background:var(--card);color:var(--text);cursor:pointer;text-transform:uppercase;letter-spacing:.04em}.nav-open .nav-toggle{background:var(--text);color:var(--card)}.nav-items{display:none;flex-direction:column;align-items:stretch;width:100%;gap:0;padding-top:6px}.nav-open .nav-items{display:flex}.nav-items>a,.nav-trigger{text-align:left;width:100%}.nav-caret{display:none}.nav-menu,.nav-menu[hidden]{display:flex;position:static;border:0;box-shadow:none;padding:0 0 4px 12px;min-width:0}}:root{--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--shadow: none;--shadow-hover: 0 0 0 1px var(--border-strong)}.main{padding:var(--s5) var(--s5) var(--s6)}h1{font-size:21px}h3{font-size:14px;margin:var(--s5) 0 var(--s2)}.card{box-shadow:none;padding:var(--s4);margin-bottom:var(--s4)}.card .card{border:0;padding:0;margin:var(--s3) 0 0}.card .table-wrap,.card .empty{border-left:0;border-right:0}.table-wrap,.flow-wrap{box-shadow:none}.table th{background:transparent;font-size:11px;padding:8px 12px}.table td{border-bottom-color:var(--border);padding:10px 12px}.page-head-wrap{margin-bottom:var(--s4)}.page-head-wrap .page-head{margin-bottom:0;align-items:center}.page-head-text{min-width:0;max-width:80ch}.subtitle{margin-top:2px;font-size:13px}.crumbs{margin-bottom:var(--s1)}.crumbs a{color:var(--muted)}.crumbs a:hover{color:var(--text)}.badge{padding:1px 6px;font-weight:500;font-size:11.5px}.badge-plain{background:transparent;color:var(--muted);padding:0;font-family:var(--mono)}.badge-grey,.badge-purple{background:transparent;color:var(--muted);padding:0}.tag{background:transparent;border:0;padding:0;margin-right:8px;color:var(--muted);font-family:var(--mono);font-size:12px}.banner,.alert{border-width:0 0 0 2px;background:var(--card);color:var(--text)}.banner-blue,.alert-info{border-color:var(--border-strong);background:var(--surface-2)}.banner-amber,.alert-warn{border-color:var(--amber);background:var(--amber-soft);color:var(--text)}.banner-red,.alert-error{border-color:var(--red);background:var(--red-soft);color:#5c0f0a}.alert-ok{border-color:var(--green);background:var(--green-soft);color:var(--text)}.more{position:relative}.more-caret{font-size:10px}.more-menu{position:absolute;right:0;top:calc(100% + 2px);min-width:200px;background:var(--card);border:1px solid var(--border-strong);z-index:40;display:flex;flex-direction:column;padding:var(--s1) 0}.more-menu a,.more-menu button{all:unset;box-sizing:border-box;padding:7px 14px;cursor:pointer;font-size:13px;color:var(--text);white-space:nowrap}.more-menu a:hover,.more-menu button:hover,.more-menu a:focus-visible,.more-menu button:focus-visible{background:var(--bg-deep);text-decoration:none}.more-menu .danger{color:var(--red)}.btn-on{background:var(--text);color:var(--card);border-color:var(--text)}.btn-on:hover:not(:disabled){background:var(--text-secondary)}.filterbar{margin-bottom:var(--s3)}.filterbar-row{display:flex;gap:var(--s2);align-items:center;flex-wrap:wrap}.filterbar-row>input[type=search],.filterbar-row>input:not([type]),.filterbar-row>input[type=text]{width:280px;max-width:100%}.filterbar-right{margin-left:auto;display:flex;gap:var(--s2);align-items:center}.filterbar-more{display:flex;gap:var(--s2);flex-wrap:wrap;padding-top:var(--s2);align-items:center}.filterbar-more .field{margin-bottom:0}.empty{border-style:solid;border-color:var(--border);padding:var(--s5)}.empty-action{margin-top:var(--s3);display:flex;justify-content:center}.disclosure{margin:var(--s3) 0}.disclosure>summary{cursor:pointer;font-family:var(--mono);font-size:12px;color:var(--muted);list-style:none;padding:var(--s1) 0}.disclosure>summary::-webkit-details-marker{display:none}.disclosure>summary:before{content:"+ "}.disclosure[open]>summary:before{content:"− "}.disclosure>summary:hover{color:var(--text)}.disclosure-body{padding-top:var(--s2)}.section{margin-bottom:var(--s5)}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);margin-bottom:var(--s2)}.section-head h3{margin:0}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s3) var(--s5);margin:0}.kv-row dt{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--muted)}.kv-row dd{margin:2px 0 0}.stepper{list-style:none;display:flex;gap:0;padding:0;margin:0 0 var(--s4);border-bottom:1px solid var(--border);flex-wrap:wrap}.stepper button{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;gap:var(--s2);align-items:center;padding:var(--s2) var(--s3);color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px;font-size:13px}.stepper button:disabled{cursor:default}.stepper button:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.stepper-n{font-family:var(--mono);font-size:11px;width:18px;height:18px;display:inline-grid;place-items:center;border:1px solid var(--border-strong)}.stepper .is-current button{color:var(--text);border-color:var(--text);font-weight:600}.stepper .is-current .stepper-n,.stepper .is-done .stepper-n{background:var(--text);color:var(--card);border-color:var(--text)}.stepper-foot{display:flex;justify-content:space-between;gap:var(--s2);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--border)}.home-grid{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:var(--s4);align-items:start}.mywork{background:var(--card);border:1px solid var(--border)}.mywork-head{display:flex;justify-content:space-between;align-items:baseline;padding:var(--s3) var(--s4);border-bottom:1px solid var(--border)}.mywork-head h2{font-size:15px}.mywork-list{list-style:none;margin:0;padding:0;max-height:calc(100vh - 220px);overflow:auto}.mywork-item a{display:grid;grid-template-columns:8px 1fr;gap:var(--s3);padding:10px var(--s4);border-bottom:1px solid var(--border);color:var(--text)}.mywork-item:last-child a{border-bottom:0}.mywork-item a:hover{background:var(--surface-2);text-decoration:none}.mywork-dot{width:8px;height:8px;margin-top:6px;background:var(--border-strong)}.sev-blocked .mywork-dot{background:var(--red)}.sev-action .mywork-dot{background:var(--amber)}.mywork-kind{font-family:var(--mono);font-size:11px;text-transform:uppercase;color:var(--muted)}.mywork-title{font-weight:500}.mywork-sub{font-size:12.5px;color:var(--muted)}.mywork-empty{padding:var(--s5) var(--s4);color:var(--muted)}@media(max-width:1100px){.home-grid{grid-template-columns:1fr}.mywork-list{max-height:none}}.fnode-gate,.fnode-target,.fnode-side,.fnode-step{background:var(--card);color:var(--text);border-color:var(--border-strong);border-width:1px}.fnode-gate{border-color:var(--text)}.fnode-gate .fnode-sub,.fnode-target .fnode-sub{color:var(--muted);opacity:1}.fnode-blocking{background:var(--card);color:var(--text);border:1px dashed var(--border-strong)}.fstate-passing{box-shadow:inset 0 -3px 0 var(--green)}.fstate-failing{border-color:var(--red);box-shadow:inset 0 -3px 0 var(--red)}.fstate-not_run .fnode-status.warn{color:var(--muted);font-weight:500}.fgroup{border:1px dashed var(--border);background:transparent}.legend{gap:var(--s4);padding:6px var(--s3);font-size:11.5px}.legend-swatch{width:12px;height:8px;border-width:1px}.legend-pass{background:var(--green);border-color:var(--green)}.legend-fail{background:var(--red);border-color:var(--red)}.legend-wait{background:var(--card);border-color:var(--border-strong)}.flow-canvas{height:calc(100vh - 210px);min-height:520px}.drawer .flow-panel-actions{border-bottom:0;padding-bottom:0}.drawer-status{display:flex;gap:var(--s3);align-items:baseline;flex-wrap:wrap;margin-bottom:var(--s3)}.drawer-desc{color:var(--muted);max-width:70ch}.drawer{width:min(640px,100vw)}.nav-sign{font-weight:600;color:var(--text)!important}.nav-count{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:6px;padding:0 5px;font-size:11px;font-family:var(--mono);background:var(--amber);color:#fff}.plain-list{list-style:none;margin:0;padding:0}.plain-list li{padding:6px 0;border-bottom:1px solid var(--border)}.plain-list li:last-child{border-bottom:0}.drawer .flow-panel-body .actions{margin-bottom:var(--s4)}
