.vue-flow{z-index:0;direction:ltr;width:100%;height:100%;position:relative;overflow:hidden}.vue-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.vue-flow__pane{z-index:1}.vue-flow__pane.draggable{cursor:grab}.vue-flow__pane.selection{cursor:pointer}.vue-flow__pane.dragging{cursor:grabbing}.vue-flow__transformationpane{transform-origin:0 0;z-index:2;pointer-events:none}.vue-flow__viewport{z-index:4;overflow:clip}.vue-flow__selection{z-index:6}.vue-flow__edge-labels{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible{outline:none}.vue-flow .vue-flow__edges{pointer-events:none;overflow:visible}.vue-flow__edge-path,.vue-flow__connection-path{stroke:#b1b1b7;stroke-width:1px;fill:none}.vue-flow__edge{pointer-events:visibleStroke;cursor:pointer}.vue-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.vue-flow__edge.animated path.vue-flow__edge-interaction{stroke-dasharray:none;animation:none}.vue-flow__edge.inactive{pointer-events:none}.vue-flow__edge.selected,.vue-flow__edge:focus,.vue-flow__edge:focus-visible{outline:none}.vue-flow__edge.selected .vue-flow__edge-path,.vue-flow__edge:focus .vue-flow__edge-path,.vue-flow__edge:focus-visible .vue-flow__edge-path{stroke:#555}.vue-flow__edge-textwrapper{pointer-events:all}.vue-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.vue-flow__connection{pointer-events:none}.vue-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.vue-flow__connectionline{z-index:1001}.vue-flow__nodes{pointer-events:none;transform-origin:0 0}.vue-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.vue-flow__node.draggable{cursor:grab;pointer-events:all}.vue-flow__node.draggable.dragging{cursor:grabbing}.vue-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.vue-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.vue-flow__nodesselection-rect.dragging{cursor:grabbing}.vue-flow__handle{pointer-events:none;min-width:5px;min-height:5px;position:absolute}.vue-flow__handle.connectable{pointer-events:all;cursor:crosshair}.vue-flow__handle-bottom{bottom:0;left:50%;transform:translate(-50%,50%)}.vue-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.vue-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.vue-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.vue-flow__edgeupdater{cursor:move;pointer-events:all}.vue-flow__panel{z-index:5;margin:15px;position:absolute}.vue-flow__panel.top{top:0}.vue-flow__panel.bottom{bottom:0}.vue-flow__panel.left{left:0}.vue-flow__panel.right{right:0}.vue-flow__panel.center{left:50%;transform:translate(-50%)}@keyframes dashdraw{0%{stroke-dashoffset:10px}}:root{--vf-node-bg:#fff;--vf-node-text:#222;--vf-connection-path:#b1b1b7;--vf-handle:#555}.vue-flow__edge.updating .vue-flow__edge-path{stroke:#777}.vue-flow__edge-text{font-size:10px}.vue-flow__edge-textbg{fill:#fff}.vue-flow__connection-path{stroke:var(--vf-connection-path)}.vue-flow__node{cursor:grab}.vue-flow__node.selectable:focus,.vue-flow__node.selectable:focus-visible{outline:none}.vue-flow__node-default,.vue-flow__node-input,.vue-flow__node-output{text-align:center;width:150px;color:var(--vf-node-text);background-color:var(--vf-node-bg);border-style:solid;border-width:1px;border-color:var(--vf-node-color);border-radius:3px;padding:10px;font-size:12px}.vue-flow__node-default.selected,.vue-flow__node-default.selected:hover,.vue-flow__node-input.selected,.vue-flow__node-input.selected:hover,.vue-flow__node-output.selected,.vue-flow__node-output.selected:hover{box-shadow:0 0 0 .5px var(--vf-box-shadow)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible,.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible,.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{border:1px solid #555;outline:none}.vue-flow__node-default .vue-flow__handle,.vue-flow__node-input .vue-flow__handle,.vue-flow__node-output .vue-flow__handle{background:var(--vf-handle)}.vue-flow__node-default.selectable:hover,.vue-flow__node-input.selectable:hover,.vue-flow__node-output.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.vue-flow__node-input{--vf-node-color:var(--vf-node-color,#0041d0);--vf-handle:var(--vf-node-color,#0041d0);--vf-box-shadow:var(--vf-node-color,#0041d0);background:var(--vf-node-bg);border-color:var(--vf-node-color,#0041d0)}.vue-flow__node-input.selected,.vue-flow__node-input:focus,.vue-flow__node-input:focus-visible{border:1px solid var(--vf-node-color,#0041d0);outline:none}.vue-flow__node-default{--vf-handle:var(--vf-node-color,#1a192b);--vf-box-shadow:var(--vf-node-color,#1a192b);background:var(--vf-node-bg);border-color:var(--vf-node-color,#1a192b)}.vue-flow__node-default.selected,.vue-flow__node-default:focus,.vue-flow__node-default:focus-visible{border:1px solid var(--vf-node-color,#1a192b);outline:none}.vue-flow__node-output{--vf-handle:var(--vf-node-color,#ff0072);--vf-box-shadow:var(--vf-node-color,#ff0072);background:var(--vf-node-bg);border-color:var(--vf-node-color,#ff0072)}.vue-flow__node-output.selected,.vue-flow__node-output:focus,.vue-flow__node-output:focus-visible{border:1px solid var(--vf-node-color,#ff0072);outline:none}.vue-flow__nodesselection-rect,.vue-flow__selection{background:#0059dc14;border:1px dotted #0059dccc}.vue-flow__nodesselection-rect:focus,.vue-flow__nodesselection-rect:focus-visible,.vue-flow__selection:focus,.vue-flow__selection:focus-visible{outline:none}.vue-flow__handle{background:var(--vf-handle);border:1px solid #fff;border-radius:100%;width:6px;height:6px}.vue-flow__controls{box-shadow:0 0 2px 1px #00000014}.vue-flow__controls-button{box-sizing:content-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fefefe;border:none;border-bottom:1px solid #eee;justify-content:center;align-items:center;width:16px;height:16px;padding:5px;display:flex}.vue-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.vue-flow__controls-button:disabled{pointer-events:none}.vue-flow__controls-button:disabled svg{fill-opacity:.4}.vue-flow__minimap{background-color:#fff}.vue-flow__minimap.pannable{cursor:grab}.vue-flow__minimap.dragging{cursor:grabbing}.vue-flow__minimap-mask.pannable{cursor:grab}:root{--bg:#07090f;--bg-canvas:#090d16;--bg-panel:#0c111d;--bg-elev:#131a2b;--bg-elev-2:#1a2338;--border:#1d2740;--border-strong:#2d3b5e;--text:#e6ebf5;--text-dim:#93a1bb;--text-faint:#5e6c88;--accent:#38bdf8;--accent-soft:#38bdf821;--font-ui:"Spline Sans", ui-sans-serif, system-ui, sans-serif;--font-mono:"Spline Sans Mono", ui-monospace, SFMono-Regular, monospace;font-family:var(--font-ui)}*{box-sizing:border-box}html,body,#app{background:var(--bg);height:100%;color:var(--text);margin:0}#app{flex-direction:column;height:100vh;display:flex;overflow:hidden}::selection{background:#38bdf84d}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}::-webkit-scrollbar-track{background:0 0}.topbar{background:radial-gradient(620px 80px at 0% 0%, #38bdf812, transparent 70%), var(--bg-panel);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:18px;padding:11px 18px;display:flex}.icon-btn{background:var(--bg-elev);border:1px solid var(--border);width:32px;height:32px;color:var(--text-dim);cursor:pointer;border-radius:8px;flex:none;place-items:center;transition:background .14s,color .14s,border-color .14s;display:grid}.icon-btn:hover{background:var(--bg-elev-2);color:var(--text)}.icon-btn.active{color:var(--accent);border-color:#38bdf866}.brand{white-space:nowrap;align-items:baseline;gap:10px;margin:0;display:flex}.brand .brand-mark{flex:none;align-self:center;display:block}.brand .brand-name{font-family:var(--font-mono);letter-spacing:.16em;background:linear-gradient(100deg, #e6ebf5 30%, var(--accent) 90%);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:17px;font-weight:700}.brand .subtitle{letter-spacing:.02em;color:var(--text-faint);font-size:11px;font-weight:400}.topbar-flow{font-family:var(--font-mono);color:var(--text-dim);white-space:nowrap;margin-left:auto;font-size:11.5px}.topbar-flow .sep{color:var(--accent);margin:0 5px}.topbar-flow .flow-sep{color:var(--text-faint);margin:0 11px}.workspace{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:268px 1fr 7px 384px;min-height:0;display:grid}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);padding:18px 15px;overflow-y:auto}.sidebar.right{border-right:none}.resizer{z-index:6;background:var(--bg-panel);border-left:1px solid var(--border);cursor:col-resize;touch-action:none;place-items:center;transition:background .14s,border-color .14s;display:grid;position:relative}.resizer:hover,.resizer.active{background:var(--bg-elev);border-color:var(--border-strong)}.resizer-grip{background:var(--border-strong);border-radius:3px;width:3px;height:30px;transition:background .14s,height .14s}.resizer:hover .resizer-grip,.resizer.active .resizer-grip{background:var(--accent);height:42px}.canvas-host{min-width:0;min-height:0;position:relative}.canvas-wrap{position:absolute;inset:0}.panel-section{margin-bottom:24px;animation:.35s cubic-bezier(.2,.7,.3,1) both rise}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.panel-section{animation:none}}.panel-section h2{font-size:10.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim);align-items:center;gap:8px;margin:0 0 11px;font-weight:600;display:flex}.panel-section h2:after{content:"";background:linear-gradient(to right, var(--border), transparent);flex:1;height:1px}.faint{color:var(--text-faint);font-size:11.5px;line-height:1.5}.dot{border-radius:50%;flex:none;width:9px;height:9px}.pill{background:var(--bg-elev);border:1px solid var(--border);font-size:11px;font-family:var(--font-mono);letter-spacing:.03em;border-radius:999px;align-items:center;gap:6px;padding:3px 9px;display:inline-flex}.steps{flex-direction:column;gap:5px;margin:0;padding:0;list-style:none;display:flex}.step{cursor:pointer;border:1px solid #0000;border-radius:9px;grid-template-columns:22px 24px 1fr;align-items:center;gap:9px;padding:9px;transition:background .14s,border-color .14s,transform .1s;display:grid;position:relative}.step:hover{background:var(--bg-elev);transform:translate(2px)}.step.active{background:var(--accent-soft);border-color:#38bdf866}.step:not(:last-child):before{content:"";background:linear-gradient(var(--border-strong), transparent);width:1.5px;position:absolute;top:36px;bottom:-5px;left:20px}.step-n{width:22px;height:22px;font-family:var(--font-mono);color:var(--text-dim);background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:50%;place-items:center;font-size:11px;font-weight:600;display:grid}.step.active .step-n{background:var(--accent);color:#04141f;border-color:var(--accent)}.step-icon{color:var(--text-dim);place-items:center;display:grid}.step.active .step-icon{color:var(--accent)}.step-text{flex-direction:column;gap:1px;min-width:0;display:flex}.step-title{font-size:12.5px;font-weight:600}.step-desc{color:var(--text-faint);font-size:10.5px;line-height:1.35}.owner-btns{flex-direction:column;gap:8px;display:flex}.owner-btn{--owner:#38bdf8;text-align:left;background:var(--bg-elev);border:1px solid var(--border);width:100%;color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:9px 11px;transition:background .14s,border-color .14s,transform .1s;display:flex}.owner-btn:hover{background:var(--bg-elev-2);transform:translate(2px)}.owner-btn.active{border-color:color-mix(in srgb, var(--owner) 55%, transparent);background:color-mix(in srgb, var(--owner) 12%, var(--bg-elev))}.owner-avatar{width:30px;height:30px;color:var(--owner);background:color-mix(in srgb, var(--owner) 16%, transparent);border:1px solid color-mix(in srgb, var(--owner) 45%, transparent);border-radius:50%;flex:none;place-items:center;display:grid}.owner-btn-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.owner-btn-name{font-size:13px;font-weight:600}.owner-btn-role{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;line-height:1.35;overflow:hidden}.owner-btn-count{font-family:var(--font-mono);color:var(--owner);background:color-mix(in srgb, var(--owner) 14%, transparent);border:1px solid color-mix(in srgb, var(--owner) 40%, transparent);border-radius:999px;flex:none;place-items:center;min-width:22px;height:22px;padding:0 6px;font-size:11px;font-weight:600;display:grid}.legend{flex-direction:column;gap:7px;display:flex}.legend-row{grid-template-columns:10px auto 1fr;align-items:center;gap:8px;display:grid}.legend-label{font-size:12px;font-weight:500}.legend-blurb{color:var(--text-faint);font-size:10.5px;font-family:var(--font-mono)}.detail-head{--accent:#94a3b8;align-items:center;gap:11px;display:flex}.detail-icon{width:38px;height:38px;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent) 45%, transparent);border-radius:10px;flex:none;place-items:center;display:grid}.detail-title{font-size:14.5px;font-weight:600}.detail-sub{color:var(--text-faint);font-size:11.5px;font-family:var(--font-mono)}.detail-desc{color:var(--text-dim);margin:12px 0 0;font-size:12.5px;line-height:1.55}.engine-tag{font-size:11px;font-family:var(--font-mono);color:#bae6fd;background:var(--accent-soft);border:1px solid #38bdf852;border-radius:8px;align-items:center;gap:6px;margin-top:13px;padding:6px 10px;display:inline-flex}.engine-tag b{color:#e6ebf5;font-weight:600}.engine-tag svg{color:var(--accent)}.rel-block{margin-top:18px}.list{flex-direction:column;gap:2px;display:flex}.list-item{cursor:pointer;color:var(--text);border:1px solid #0000;border-radius:7px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;transition:background .12s,transform .12s;display:flex}.list-item:hover{background:var(--bg-elev);transform:translate(2px)}.list-item .label{text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:11.5px;overflow:hidden}.list-item .rel-arrow{color:var(--text-faint);margin-left:auto}.input-note{color:var(--text-faint);margin:7px 2px 0;font-size:11.5px;line-height:1.5}.doc-card{--card-accent:56, 189, 248;background:rgba(var(--card-accent), .1);border:1px solid rgba(var(--card-accent), .32);border-radius:9px;gap:9px;padding:10px 11px;display:flex}.golden-card{--card-accent:245, 158, 11}.doc-card-icon{color:rgb(var(--card-accent));flex:none;place-items:center;width:22px;height:22px;display:grid}.doc-list{flex-direction:column;gap:4px;display:flex}.doc-item{border:1px solid var(--border);background:var(--bg-elev);border-radius:8px;gap:9px;padding:8px 9px;transition:border-color .12s,background .12s;display:flex}.doc-item:hover{border-color:var(--border-strong);background:var(--bg-elev-2)}.doc-bullet{color:var(--text-dim);flex:none;place-items:center;width:20px;height:18px;display:grid}.doc-body{flex-direction:column;gap:2px;width:100%;min-width:0;display:flex}.doc-file-row{flex-wrap:wrap;align-items:flex-start;gap:7px;display:flex}.doc-file{font-family:var(--font-mono);color:#bae6fd;word-break:break-all;min-width:0;font-size:11px}.doc-card .doc-file{color:#e6ebf5}.doc-label{color:var(--text);margin-top:1px;font-size:12px;font-weight:600}.doc-purpose{color:var(--text-faint);font-size:11px;line-height:1.45}.owner-chip{--owner:#38bdf8;font-family:var(--font-mono);letter-spacing:.02em;white-space:nowrap;color:var(--owner);background:color-mix(in srgb, var(--owner) 14%, transparent);border:1px solid color-mix(in srgb, var(--owner) 45%, transparent);border-radius:999px;flex:none;align-items:center;gap:4px;margin-left:auto;padding:2px 7px 2px 5px;font-size:9.5px;font-weight:600;display:inline-flex}.owner-chip svg{opacity:.85}.flow-node{--accent:#94a3b8;background:linear-gradient(180deg, var(--bg-elev-2), var(--bg-elev));border:1.5px solid color-mix(in srgb, var(--accent) 55%, var(--border));cursor:pointer;border-left-width:5px;border-radius:12px;align-items:center;gap:11px;width:234px;height:78px;padding:0 14px;transition:box-shadow .16s,transform .12s,opacity .16s,border-color .16s;display:flex;position:relative;box-shadow:0 4px 14px #00000073}.flow-node .fn-icon{width:36px;height:36px;color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent);border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);border-radius:9px;flex:none;place-items:center;display:grid}.flow-node .fn-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.flow-node .fn-label{letter-spacing:.01em;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.flow-node .fn-sub{font-family:var(--font-mono);color:var(--text-faint);text-transform:uppercase;letter-spacing:.07em;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.flow-node .fn-engine{font-family:var(--font-mono);letter-spacing:.03em;color:#bae6fd;background:#0c1322;border:1px solid #38bdf866;border-radius:999px;align-items:center;gap:4px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-flex;position:absolute;top:-10px;right:10px}.flow-node .fn-engine svg{color:var(--accent)}.flow-node.is-input{background:var(--bg-elev);border-style:dashed;border-left-width:1.5px;box-shadow:0 1px 4px #0000004d}.flow-node.is-input .fn-icon{border-radius:50%}.flow-node .fn-tag{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-dim);border:1px dashed var(--border-strong);background:#0c1322;border-radius:999px;align-items:center;padding:2px 8px;font-size:9px;font-weight:600;display:inline-flex;position:absolute;top:-10px;right:10px}.flow-node.state-selected{box-shadow:0 0 0 2px var(--accent), 0 0 22px #38bdf880;transform:translateY(-1px)scale(1.03)}.flow-node.state-related{box-shadow:0 0 0 1.5px color-mix(in srgb, var(--accent) 80%, transparent)}.flow-node.state-dimmed{opacity:.32}.flow-node .vue-flow__handle{background:var(--border-strong);opacity:0;border:none;width:7px;height:7px}.vue-flow__node-flow.selected{z-index:5}.vue-flow{background:var(--bg-canvas)}.vue-flow__edge-text{font-family:var(--font-mono)}.vue-flow__controls{border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:0 4px 14px #00000073}.vue-flow__controls-button{background:var(--bg-elev);border-bottom:1px solid var(--border);fill:var(--text-dim)}.vue-flow__controls-button:hover{background:var(--bg-elev-2)}
