:root,:root[data-theme=dark]{--bg-canvas:#091512;--bg-panel:#0c1b18;--bg-panel-raised:#142d28;--bg-input:#10231f;--border:#b7bfbe24;--border-strong:#b7bfbe47;--text:#e8eaea;--text-muted:#94a09e;--text-faint:#506560;--flow-green:#00b67a;--danger:#ff3d2e;--warn:#ffc305;--send-idle:#3a4b47;--scroll-thumb:#94a09e38;--scroll-thumb-hover:#94a09e61;--on-green:#06241a;--hero-grid-line:#b7bfbe1a;--shadow-node:0 2px 10px #00000059;--shadow-panel:0 12px 40px #00000080;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg-canvas:#f5f7f7;--bg-panel:#fff;--bg-panel-raised:#f0f2f2;--bg-input:#f5f7f7;--border:#3a4b4729;--border-strong:#3a4b4752;--text:#0c1b18;--text-muted:#455a56;--text-faint:#94a09e;--flow-green:#00b67a;--danger:#d92d20;--warn:#b78600;--send-idle:#94a09e;--scroll-thumb:#455a5640;--scroll-thumb-hover:#455a5673;--on-green:#fff;--hero-grid-line:#0c1b180f;--shadow-node:0 2px 8px #0c1b181f;--shadow-panel:0 12px 36px #0c1b182e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace;font-family:var(--font-sans);color:var(--text);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;overflow:hidden}.app-shell{width:100vw;height:100vh;display:flex}.canvas-area{background:var(--bg-canvas);flex:1;min-width:0;position:relative}.palette,.chat{background:var(--bg-panel);flex-direction:column;flex-shrink:0;display:flex}.palette{border-right:1px solid var(--border);width:288px}.chat{border:1px solid var(--border-strong);width:min(400px,100vw - 48px);height:min(680px,100vh - 48px);box-shadow:var(--shadow-panel);z-index:45;border-radius:16px;animation:.18s ease-out chat-pop;position:fixed;bottom:24px;right:24px;overflow:hidden}@keyframes chat-pop{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.palette-collapsed,.chat-collapsed{align-items:center;gap:4px;width:48px;padding-top:8px}.panel-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.panel-title{letter-spacing:.02em;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.palette-logo{-webkit-user-select:none;user-select:none;width:auto;height:24px;display:block}.icon-button,.rail-button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:color .15s,background .15s;display:inline-flex}.icon-button:hover,.rail-button:hover{color:var(--text);background:var(--bg-panel-raised)}.rail-divider{background:var(--border);width:24px;height:1px;margin:4px 0}.rail-category{color:var(--accent,var(--text-muted));opacity:.75}.rail-category:hover{opacity:1;color:var(--accent)}.rail-ai{color:var(--flow-green)}.palette-search{background:var(--bg-input);border:1px solid var(--border);color:var(--text-faint);border-radius:8px;flex-shrink:0;align-items:center;gap:8px;margin:10px 12px;padding:7px 10px;display:flex}.palette-search input{color:var(--text);font-size:13px;font-family:var(--font-sans);background:0 0;border:none;outline:none;flex:1}.palette-search input::placeholder{color:var(--text-faint)}.palette-search:focus-within{border-color:var(--border-strong)}.palette-scroll{flex:1;padding:0 8px 16px;overflow-y:auto}.palette-section-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint);background:var(--bg-panel);z-index:1;padding:10px 8px 6px;font-size:10px;font-weight:600;position:sticky;top:0}.palette-category{margin-bottom:2px}.palette-category-header{width:100%;color:var(--text-muted);font-size:12.5px;font-weight:600;font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 8px;transition:background .15s;display:flex}.palette-category-header:hover{background:var(--bg-panel-raised);color:var(--text)}.palette-category-glyph{color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.palette-category-name{text-align:left;flex:1}.palette-category-count{font-family:var(--font-mono);color:var(--text-faint);font-size:10.5px}.palette-items{grid-template-columns:1fr 1fr;gap:5px;padding:4px 4px 10px 20px;display:grid}.palette-item{background:var(--bg-panel-raised);border:1px solid var(--border);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:7px;padding:7px 8px;transition:border-color .15s,transform .1s;display:flex}.palette-item:hover{border-color:var(--accent)}.palette-item:active{cursor:grabbing;transform:scale(.98)}.palette-item-icon{color:var(--accent);flex-shrink:0;display:flex}.palette-item-label{color:var(--text);font-size:11.5px;line-height:1.25}.palette-custom-btn{border:1px dashed var(--border-strong);color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;background:0 0;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;gap:7px;margin:8px 12px 12px;padding:8px 0;font-size:12px;font-weight:600;transition:color .15s,border-color .15s;display:flex}.palette-custom-btn:hover{color:var(--flow-green);border-color:var(--flow-green)}.custom-dialog{background:var(--bg-panel);border:1px solid var(--border-strong);width:min(520px,100vw - 60px);max-height:min(680px,100vh - 80px);box-shadow:var(--shadow-panel);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.custom-dialog-body{padding:14px 16px;overflow-y:auto}.custom-dialog-row{grid-template-columns:180px 1fr;gap:12px;display:grid}.custom-icon-grid{flex-wrap:wrap;gap:4px;display:flex}.custom-icon-grid button{background:var(--bg-panel-raised);border:1px solid var(--border);width:30px;height:30px;color:var(--text-muted);cursor:pointer;border-radius:7px;justify-content:center;align-items:center;display:flex}.custom-icon-grid button.active{border-color:var(--flow-green);color:var(--flow-green)}.custom-create-btn{justify-content:center;align-items:center;gap:6px;width:100%;margin-top:4px;display:inline-flex}.custom-list{flex-direction:column;gap:7px;margin-top:16px;display:flex}.palette-empty{color:var(--text-faint);padding:16px 12px;font-size:12.5px}.react-flow{background:var(--bg-canvas)}.react-flow__pane{cursor:default}.canvas-area.space-pan .react-flow__pane{cursor:grab}.canvas-area.space-pan .react-flow__pane.dragging{cursor:grabbing}.canvas-area.tidying .react-flow__node{transition:transform .45s cubic-bezier(.22,1,.36,1)}.system-node{background:linear-gradient(180deg, color-mix(in srgb, var(--accent) 9%, var(--bg-panel)), color-mix(in srgb, var(--accent) 3%, var(--bg-panel)));border:var(--node-ow,1px) solid var(--node-oc,color-mix(in srgb, var(--accent) 45%, var(--border-strong)));border-left:4px solid var(--accent);min-width:172px;box-shadow:var(--shadow-node);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;transition:border-color .15s,box-shadow .15s;display:flex}.system-node:hover{border-color:color-mix(in srgb, var(--accent) 75%, var(--border-strong));box-shadow:0 4px 14px color-mix(in srgb, var(--accent) 20%, transparent), var(--shadow-node)}.system-node.selected{border-color:var(--accent);box-shadow:0 0 0 2.5px color-mix(in srgb, var(--accent) 40%, transparent), var(--shadow-node)}.system-node-icon{background:color-mix(in srgb, var(--accent) 20%, transparent);width:32px;height:32px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent);color:var(--accent);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.system-node-body{flex-direction:column;gap:1px;display:flex}.system-node-label{color:var(--text);white-space:nowrap;font-size:13px;font-weight:600}.system-node-category{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);white-space:nowrap;font-size:9.5px}.system-node-links{z-index:6;gap:4px;display:none;position:absolute;bottom:-26px;left:50%;transform:translate(-50%)}.system-node:hover .system-node-links{display:flex}.system-node-links a{background:var(--bg-panel);border:1px solid var(--border-strong);color:var(--text-muted);font-family:var(--font-mono);white-space:nowrap;box-shadow:var(--shadow-node);border-radius:999px;align-items:center;gap:3px;padding:2px 8px;font-size:9px;text-decoration:none;display:inline-flex}.system-node-links a:hover{color:var(--flow-green);border-color:var(--flow-green)}.config-links{flex-direction:column;gap:6px;display:flex}.config-link-row{background:var(--bg-panel-raised);border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:5px 10px;display:flex}.config-link-row a{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--flow-green);flex:1;font-size:12px;text-decoration:none;overflow:hidden}.config-link-row a:hover{text-decoration:underline}.config-link-add{gap:6px;display:flex}.config-link-add input{background:var(--bg-input);border:1px solid var(--border-strong);min-width:0;font:inherit;color:var(--text);border-radius:8px;outline:none;padding:6px 9px;font-size:12px}.config-link-add input:first-child{flex-shrink:0;width:90px}.config-link-add input:nth-child(2){flex:1}.config-link-add input:focus{border-color:var(--flow-green)}.system-node-comments{background:var(--warn);color:#1a1503;font-family:var(--font-mono);box-shadow:var(--shadow-node);border-radius:999px;align-items:center;gap:3px;padding:2px 6px;font-size:9px;font-weight:700;display:inline-flex;position:absolute;top:-8px;right:-8px}.comments-panel .details-scroll{flex-direction:column;gap:10px;display:flex}.comments-empty,.comments-error{color:var(--text-faint);padding:6px 2px;font-size:12px}.comments-error{color:var(--danger)}.comment{background:var(--bg-panel-raised);border:1px solid var(--border);border-radius:10px;padding:8px 10px}.comment.resolved{opacity:.72}.comment-reply{background:var(--bg-input);margin-top:6px}.comment-head{align-items:center;gap:6px;display:flex}.comment-head img{border-radius:50%}.comment-author{color:var(--text);font-size:11.5px;font-weight:600}.comment-time{font-family:var(--font-mono);color:var(--text-faint);font-size:9.5px}.comment-actions{gap:2px;margin-left:auto;display:inline-flex}.comment-body{color:var(--text-muted);white-space:pre-wrap;word-break:break-word;margin-top:4px;font-size:12px;line-height:1.45}.comment-thread-foot{margin-top:6px}.comment-reply-btn{color:var(--flow-green);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;padding:2px 0;font-size:11px;font-weight:600}.comment-composer{align-items:center;gap:6px;display:flex}.comment-composer input{background:var(--bg-input);border:1px solid var(--border-strong);min-width:0;font:inherit;color:var(--text);border-radius:8px;outline:none;flex:1;padding:7px 10px;font-size:12px}.comment-composer input:focus{border-color:var(--flow-green)}.comments-panel-composer{border-top:1px solid var(--border);padding:10px 14px}.comments-resolved summary{color:var(--text-faint);cursor:pointer;margin:4px 0;font-size:11px}.react-flow__node.diff-added .system-node{outline-offset:3px;outline:2px solid #22c55e}.react-flow__node.diff-changed .system-node{outline:2px solid var(--warn);outline-offset:3px}.react-flow__node.diff-removed .system-node{outline:2px dashed var(--danger);outline-offset:3px;opacity:.55;filter:grayscale(.4)}.react-flow__edge.diff-added-edge .react-flow__edge-path{stroke:#22c55e!important;stroke-width:2.4px!important}.react-flow__edge.diff-removed-edge .react-flow__edge-path{opacity:.6;stroke:var(--danger)!important;stroke-dasharray:6 5!important}.react-flow__edge.diff-removed-edge .sd-flow-dot{display:none}.diff-banner{z-index:30;background:var(--bg-panel);border:1px solid var(--border-strong);max-width:640px;box-shadow:var(--shadow-panel);color:var(--text);border-radius:10px;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;font-size:12px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.diff-banner-title strong{color:var(--flow-green)}.diff-chip{font-family:var(--font-mono);font-size:11px;font-weight:700}.diff-chip-added{color:#22c55e}.diff-chip-removed{color:var(--danger)}.diff-chip-changed{color:var(--warn)}.diff-banner>button{background:var(--bg-panel-raised);border:1px solid var(--border-strong);color:var(--text);font-family:var(--font-sans);cursor:pointer;border-radius:7px;margin-left:4px;padding:4px 10px;font-size:11.5px;font-weight:600}.diff-banner>button:hover{border-color:var(--flow-green)}.diff-summary{border-top:1px solid var(--border);font-family:var(--font-mono);flex-wrap:wrap;flex-basis:100%;gap:4px 10px;padding-top:4px;font-size:10px;display:flex}.adr-dialog{background:var(--bg-panel);border:1px solid var(--border-strong);width:min(680px,100vw - 60px);height:min(640px,100vh - 80px);box-shadow:var(--shadow-panel);border-radius:14px;flex-direction:column;display:flex;overflow:hidden}.adr-body{flex:1;min-height:0;padding:12px 14px;display:flex}.adr-loading{color:var(--text-muted);align-items:center;gap:10px;margin:auto;font-size:12.5px;display:flex}.adr-text{resize:none;background:var(--bg-input);border:1px solid var(--border);font-family:var(--font-mono);color:var(--text);border-radius:10px;outline:none;flex:1;padding:12px;font-size:11.5px;line-height:1.55}.adr-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:10px 14px;display:flex}.adr-actions button{background:var(--bg-panel-raised);border:1px solid var(--border-strong);color:var(--text);font-family:var(--font-sans);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:600;display:inline-flex}.adr-actions button:hover{border-color:var(--flow-green)}.react-flow__node.risk-critical .system-node{outline:2px solid var(--danger);outline-offset:3px;animation:1.6s ease-in-out infinite risk-pulse}.react-flow__node.risk-warning .system-node{outline:2px solid var(--warn);outline-offset:3px}@keyframes risk-pulse{0%,to{outline-color:var(--danger)}50%{outline-color:color-mix(in srgb, var(--danger) 35%, transparent)}}.resilience-clear{text-align:center;color:var(--flow-green);flex-direction:column;align-items:center;gap:10px;padding:28px 12px;display:flex}.resilience-clear p{color:var(--text-muted);font-size:12px;line-height:1.5}.resilience-finding{background:var(--bg-panel-raised);border:1px solid var(--border);text-align:left;cursor:pointer;width:100%;font-family:var(--font-sans);border-left-width:3px;border-radius:10px;flex-direction:column;gap:4px;margin-bottom:8px;padding:10px 12px;transition:border-color .15s;display:flex}.resilience-finding:hover{border-color:var(--border-strong)}.resilience-finding.severity-critical{border-left-color:var(--danger)}.resilience-finding.severity-warning{border-left-color:var(--warn)}.resilience-finding.severity-info{border-left-color:#3b82f6}.resilience-finding-head{color:var(--text);align-items:center;gap:6px;font-size:12px;display:flex}.severity-critical .resilience-finding-head svg{color:var(--danger)}.severity-warning .resilience-finding-head svg{color:var(--warn)}.severity-info .resilience-finding-head svg{color:#3b82f6}.resilience-finding-detail{color:var(--text-muted);font-size:11.5px;line-height:1.45}.versions-save-row{gap:6px;padding:12px 14px 0;display:flex}.versions-save-row input{background:var(--bg-input);border:1px solid var(--border-strong);min-width:0;font:inherit;color:var(--text);border-radius:8px;outline:none;flex:1;padding:7px 10px;font-size:12px}.versions-save-row input:focus{border-color:var(--flow-green)}.versions-save-btn{background:var(--flow-green);color:var(--on-green);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:5px;padding:7px 12px;font-size:12px;font-weight:700;display:inline-flex}.versions-save-btn:disabled{opacity:.4;cursor:default}.versions-note{font-family:var(--font-mono);color:var(--flow-green);padding:6px 14px 0;font-size:10.5px}.version-row{background:var(--bg-panel-raised);border:1px solid var(--border);border-radius:10px;align-items:center;gap:6px;margin-bottom:8px;padding:8px 10px;display:flex}.version-meta{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.version-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.version-sub{font-family:var(--font-mono);color:var(--text-faint);font-size:9.5px}.version-delete-armed{color:var(--danger)!important}.system-node-capacity{flex-wrap:wrap;gap:4px;margin-top:3px;display:flex}.system-node-capacity span{background:color-mix(in srgb, var(--accent) 10%, transparent);border:1px solid color-mix(in srgb, var(--accent) 22%, transparent);font-family:var(--font-mono);letter-spacing:.02em;color:var(--text-muted);white-space:nowrap;border-radius:999px;padding:1px 6px;font-size:8.5px}.node-handle{border:2px solid color-mix(in srgb, var(--accent) 70%, var(--text-muted));background:var(--bg-panel);width:10px;height:10px;transition:background .15s,border-color .15s}.node-handle:hover{background:var(--flow-green);border-color:var(--flow-green)}.system-node.fill-solid{background:color-mix(in srgb, var(--accent) 24%, var(--bg-panel))}.system-node.fill-transparent{box-shadow:none;background:0 0}.system-node.outline-dashed{border-style:dashed dashed dashed solid}.system-node.outline-none,.system-node.outline-none:hover{border-color:#0000;border-left-color:var(--accent)}.system-node.shape-sharp{border-radius:0}.system-node.shape-sharp .system-node-icon{border-radius:2px}.system-node.shape-pill{border-radius:999px;padding-left:16px;padding-right:18px}.system-node.shape-pill .system-node-icon{border-radius:50%}.system-node.outline-dotted{border-style:dotted dotted dotted solid}.system-node.shape-ellipse{border-radius:50%;padding:14px 26px}.system-node.shape-ellipse .system-node-icon{border-radius:50%}.system-node.shape-slant,.system-node.shape-hex{background:color-mix(in srgb, var(--accent) 20%, var(--bg-panel));border:none;border-radius:0}.system-node.shape-slant{clip-path:polygon(16px 0,100% 0,calc(100% - 16px) 100%,0 100%);padding:11px 26px}.system-node.shape-hex{clip-path:polygon(20px 0,calc(100% - 20px) 0,100% 50%,calc(100% - 20px) 100%,20px 100%,0 50%);padding:11px 30px}.system-node.fill-transparent.shape-slant,.system-node.fill-transparent.shape-hex{background:color-mix(in srgb, var(--accent) 7%, transparent)}.system-node.selected.shape-slant,.system-node.selected.shape-hex{background:color-mix(in srgb, var(--accent) 34%, var(--bg-panel))}.canvas-search{z-index:30;background:var(--bg-panel);border:1px solid var(--border-strong);width:320px;box-shadow:var(--shadow-panel);color:var(--text-faint);border-radius:10px;align-items:center;gap:8px;padding:8px 12px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.canvas-search input{min-width:0;font:inherit;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:13px}.canvas-search-results{background:var(--bg-panel);border:1px solid var(--border-strong);box-shadow:var(--shadow-panel);border-radius:10px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:0;right:0}.canvas-search-results button{color:var(--text);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:7px 10px;font-size:12.5px;display:flex}.canvas-search-results button:hover{background:var(--bg-panel-raised)}.canvas-search-kind{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:9.5px}.canvas-search-none{color:var(--text-faint);padding:7px 10px;font-size:12px}.cheatsheet-overlay{z-index:50;background:color-mix(in srgb, var(--bg-canvas) 65%, transparent);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.cheatsheet{background:var(--bg-panel);border:1px solid var(--border-strong);width:440px;max-height:80%;box-shadow:var(--shadow-panel);border-radius:14px;padding:20px 22px;overflow-y:auto}.cheatsheet h3{color:var(--text);margin-bottom:14px;font-size:14px}.cheatsheet-grid{grid-template-columns:auto 1fr;align-items:center;gap:8px 16px;display:grid}.cheatsheet-grid kbd{background:var(--bg-panel-raised);border:1px solid var(--border-strong);font-family:var(--font-mono);color:var(--text);white-space:nowrap;border-bottom-width:2px;border-radius:6px;justify-self:start;padding:3px 8px;font-size:10.5px}.cheatsheet-grid span{color:var(--text-muted);font-size:12px}.annotation{position:relative}.annotation-note{background:color-mix(in srgb, var(--note-color,#f59e0b) 16%, var(--bg-panel));border:1px solid color-mix(in srgb, var(--note-color,#f59e0b) 45%, transparent);border-top:3px solid var(--note-color,#f59e0b);width:190px;min-height:56px;box-shadow:var(--shadow-node);color:var(--text);border-radius:3px 3px 8px 8px;padding:10px 12px;font-size:12px;line-height:1.45}.annotation-note.selected{box-shadow:0 0 0 2px color-mix(in srgb, var(--note-color,#f59e0b) 45%, transparent), var(--shadow-node)}.annotation-label{letter-spacing:.01em;color:var(--text-muted);white-space:nowrap;padding:4px 8px;font-size:22px;font-weight:700}.annotation-label.selected{outline:1.5px dashed var(--border-strong);outline-offset:3px;border-radius:6px}.annotation-text{white-space:pre-wrap;word-break:break-word}.annotation-editor{resize:none;width:100%;min-width:140px;font:inherit;color:inherit;background:0 0;border:none;outline:none;overflow:hidden}.annotation-label .annotation-editor{min-width:220px}.annotation-colors{background:var(--bg-panel);border:1px solid var(--border-strong);box-shadow:var(--shadow-panel);border-radius:999px;gap:6px;padding:5px 8px;display:flex;position:absolute;bottom:-30px;left:50%;transform:translate(-50%)}.annotation-colors button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:15px;height:15px;padding:0}.annotation-colors button.active{border-color:var(--text)}.react-flow__edge:hover .react-flow__edge-path{stroke-width:2.4px!important}.edge-label{pointer-events:all;background:var(--bg-panel);border:1px solid color-mix(in srgb, var(--edge-color,var(--flow-green)) 45%, var(--border-strong));max-width:220px;box-shadow:var(--shadow-node);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;padding:2px 8px;display:flex;position:absolute}.edge-label.dragging{cursor:grabbing}.edge-label.selected,.edge-label:hover{border-color:var(--edge-color,var(--flow-green))}.edge-label-text{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;font-weight:500;overflow:hidden}.edge-label:hover .edge-label-text{color:var(--text)}.edge-label-input{width:168px;font-family:var(--font-sans);color:var(--text);background:0 0;border:none;outline:none;font-size:10.5px}.edge-label-input::placeholder{color:var(--text-faint)}.canvas-empty{pointer-events:none;z-index:4;text-align:center;background:radial-gradient(560px 380px at 50% 46%, #54b02b17, transparent 70%), linear-gradient(var(--hero-grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--hero-grid-line) 1px, transparent 1px), var(--bg-canvas);background-size:auto,44px 44px,44px 44px,auto;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:0 40px;display:flex;position:absolute;inset:0;-webkit-mask-image:radial-gradient(74% 66% at 50% 46%,#000 44%,#0000 97%);mask-image:radial-gradient(74% 66% at 50% 46%,#000 44%,#0000 97%)}.template-gallery{pointer-events:auto;flex-direction:column;align-items:center;gap:12px;margin-top:22px;display:flex}.template-gallery-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.1em;color:var(--text-faint);font-size:10.5px}.template-grid{grid-template-columns:repeat(auto-fit,minmax(210px,230px));justify-content:center;gap:10px;max-width:760px;display:grid}.template-card{background:var(--bg-panel);border:1px solid var(--border-strong);text-align:left;cursor:pointer;border-radius:11px;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex}.template-card:hover{border-color:var(--flow-green);box-shadow:var(--shadow-node);transform:translateY(-2px)}.template-name{color:var(--text);font-size:12.5px;font-weight:700}.template-tagline{color:var(--text-muted);font-size:11px;line-height:1.4}.template-meta{font-family:var(--font-mono);color:var(--text-faint);margin-top:2px;font-size:9.5px}.canvas-empty h2{color:var(--text-muted);letter-spacing:-.01em;font-size:19px;font-weight:650}.canvas-empty p{max-width:420px;color:var(--text-faint);font-size:13px}.react-flow__controls{box-shadow:none;border:1px solid var(--border);border-radius:8px;overflow:hidden}.react-flow__controls-button{background:var(--bg-panel);border-bottom:1px solid var(--border);color:var(--text-muted)}.react-flow__controls-button svg{fill:currentColor}.react-flow__minimap{background:var(--bg-panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}.details-panel{background:var(--bg-panel);border:1px solid var(--border-strong);width:380px;max-width:calc(100% - 24px);box-shadow:var(--shadow-panel);z-index:10;border-radius:12px;flex-direction:column;display:flex;position:absolute;top:12px;bottom:12px;right:12px;overflow:hidden}.details-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:flex-start;padding:14px 14px 12px;display:flex}.details-title{align-items:center;gap:10px;display:flex}.details-icon{background:color-mix(in srgb, var(--accent) 16%, transparent);width:36px;height:36px;color:var(--accent);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.details-title h2{letter-spacing:-.01em;font-size:15px;font-weight:650}.details-meta{color:var(--text-faint);font-size:11px}.details-meta code{font-family:var(--font-mono);color:var(--accent);font-size:10.5px}.details-scroll{flex:1;padding:14px 16px 20px;overflow-y:auto}.details-what{color:var(--text-muted);margin-bottom:16px;font-size:13px}.details-section{margin-bottom:16px}.details-section h3{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--accent);margin-bottom:6px;font-size:10px;font-weight:600}.details-section ul{flex-direction:column;gap:5px;list-style:none;display:flex}.details-section li{color:var(--text-muted);padding-left:14px;font-size:12.5px;position:relative}.details-section li:before{content:"";background:var(--text-faint);border-radius:50%;width:4px;height:4px;position:absolute;top:8px;left:2px}.details-section p{color:var(--text-muted);font-size:12.5px}.details-connections li{flex-direction:column;gap:2px;display:flex}.details-connections code{font-family:var(--font-mono);color:var(--text);font-size:11px}.chat-messages{flex-direction:column;flex:1;gap:12px;padding:14px;display:flex;overflow-y:auto}.chat-message{align-items:flex-start;gap:8px;display:flex}.chat-user{justify-content:flex-end}.chat-avatar{background:color-mix(in srgb, var(--flow-green) 18%, transparent);width:22px;height:22px;color:var(--flow-green);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:3px;display:flex}.chat-bubble{white-space:pre-wrap;border-radius:12px;max-width:85%;padding:9px 12px;font-size:13px;line-height:1.5}.chat-assistant .chat-bubble{background:var(--bg-panel-raised);border:1px solid var(--border);color:var(--text-muted);border-top-left-radius:4px}.chat-user .chat-bubble{background:color-mix(in srgb, var(--flow-green) 14%, var(--bg-panel-raised));border:1px solid color-mix(in srgb, var(--flow-green) 25%, transparent);color:var(--text);border-top-right-radius:4px}.chat-composer{flex-shrink:0;padding:10px 12px 12px}.composer-card{background:var(--bg-panel-raised);border:1px solid var(--border);border-radius:22px;flex-direction:column;padding:14px 14px 10px 16px;transition:border-color .15s;display:flex}.composer-card:focus-within{border-color:var(--border-strong)}.composer-card textarea{resize:none;width:100%;color:var(--text);font-family:var(--font-sans);background:0 0;border:none;outline:none;font-size:14px;line-height:1.5}.composer-card textarea::placeholder{color:var(--text-faint)}.composer-actions{align-items:center;gap:6px;margin-top:6px;display:flex}.composer-attach{color:var(--text-faint)}.composer-mode{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-mono);cursor:pointer;border-radius:7px;outline:none;margin-left:-2px;padding:5px 6px;font-size:10.5px}.composer-mode:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.composer-mode:disabled{opacity:.5;cursor:default}.composer-send{background:var(--send-idle);color:#fff;cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:38px;height:38px;margin-left:auto;transition:background .15s,opacity .15s;display:flex}.composer-send:hover:not(:disabled){background:var(--flow-green)}.composer-send:disabled{opacity:.35;cursor:default}.canvas-column{flex-direction:column;flex:1;min-width:0;display:flex}.screen-tabs{background:var(--bg-panel);border-top:1px solid var(--border);flex-shrink:0;align-items:center;gap:4px;height:38px;padding:0 8px;display:flex}.screen-tabs.locked{opacity:.55;pointer-events:none}.screen-tabs-scroll{scrollbar-width:thin;align-items:center;gap:2px;min-width:0;display:flex;overflow-x:auto}.screen-tab{max-width:190px;color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:6px;padding:5px 12px;font-size:12px;transition:background .12s,color .12s;display:inline-flex}.screen-tab:hover{background:var(--bg-panel-raised);color:var(--text)}.screen-tab.active{background:var(--bg-panel-raised);color:var(--text);box-shadow:inset 0 -2px 0 var(--flow-green);font-weight:600}.screen-tab-name{text-overflow:ellipsis;overflow:hidden}.screen-tab-cloud,.screen-tab-lock{color:var(--text-faint);flex-shrink:0}.screen-tab.active .screen-tab-cloud{color:var(--flow-green)}.screen-tab-rename{background:var(--bg-input);border:1px solid var(--flow-green);width:130px;color:var(--text);font-family:var(--font-sans);border-radius:7px;outline:none;padding:4px 10px;font-size:12px}.screen-tab-add{border:1px dashed var(--border-strong);width:26px;height:26px;color:var(--text-muted);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:border-color .12s,color .12s;display:inline-flex}.screen-tab-add:hover:not(:disabled){border-color:var(--flow-green);color:var(--flow-green)}.screen-tab-menu{z-index:60;background:var(--bg-panel);border:1px solid var(--border-strong);min-width:200px;box-shadow:var(--shadow-panel);border-radius:10px;flex-direction:column;padding:5px;display:flex;position:fixed}.screen-tab-menu button{color:var(--text);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex}.screen-tab-menu button:hover:not(:disabled){background:var(--bg-panel-raised)}.screen-tab-menu button:disabled{opacity:.4;cursor:default}.screen-tab-menu button.danger{color:var(--danger)}.screen-tab-menu-divider{background:var(--border);height:1px;margin:4px 6px}.canvas-design-name{background:var(--bg-panel);border:1px solid var(--border);max-width:220px;color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:8px;padding:6px 11px;font-size:12.5px;font-weight:600;overflow:hidden}.screen-tab-controls{flex-shrink:0;align-items:center;gap:4px;display:flex}.screen-perm-select{background:var(--bg-input);border:1px solid var(--border);color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;border-radius:7px;outline:none;padding:5px 7px;font-size:11.5px}.screen-perm-select:hover{border-color:var(--border-strong)}.canvas-readonly-badge{background:var(--bg-panel);border:1px solid var(--border);color:var(--text-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-size:10.5px;display:inline-flex}.config-readonly-note{color:var(--warn)}.chat-approval{background:color-mix(in srgb, var(--warn) 8%, transparent);border:1px solid color-mix(in srgb, var(--warn) 30%, transparent);border-radius:10px;flex-shrink:0;margin:0 12px 8px;padding:10px 12px}.chat-approval-text{color:var(--warn);align-items:center;gap:7px;margin-bottom:8px;font-size:12.5px;display:flex}.chat-approval-actions{gap:8px;display:flex}.chat-approve,.chat-discard{font-family:var(--font-sans);cursor:pointer;border-radius:7px;flex:1;padding:6px 0;font-size:12px;font-weight:600;transition:filter .15s}.chat-approve{background:var(--flow-green);color:var(--on-green);border:none}.chat-approve:hover{filter:brightness(1.1)}.chat-discard{border:1px solid var(--border-strong);color:var(--text-muted);background:0 0}.chat-discard:hover{color:var(--text);border-color:var(--text-faint)}.context-menu button:disabled{opacity:.4;cursor:default}.context-menu button:disabled:hover{color:var(--text-muted);background:0 0}.config-field input:disabled,.config-field textarea:disabled{opacity:.55;cursor:not-allowed}.option-rail{background:var(--bg-panel);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;height:46px;padding:0 10px;display:flex}.option-rail-btn{background:var(--bg-panel);border:1px solid var(--border-strong);color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:6px 11px;font-size:12px;font-weight:600;transition:color .15s,border-color .15s;display:inline-flex}.option-rail-btn:hover:not(:disabled),.option-rail-dots.open{color:var(--text);border-color:var(--flow-green)}.option-rail-btn:disabled{opacity:.4;cursor:default}.option-rail-play,.option-rail-icon{justify-content:center;width:32px;height:30px;padding:0}.option-rail-play.playing{color:var(--flow-green);border-color:color-mix(in srgb, var(--flow-green) 55%, transparent);background:color-mix(in srgb, var(--flow-green) 8%, var(--bg-panel))}.option-rail-divider{background:var(--border);flex-shrink:0;width:1px;height:20px}.design-rail{align-items:center;gap:8px;display:flex;position:relative}.design-group-label{font-family:var(--font-mono);color:var(--text-faint);flex-shrink:0;align-items:center;gap:4px;font-size:11px;display:inline-flex}.design-control{flex-shrink:0;position:relative}.design-control-btn{gap:5px;padding:5px 8px;font-size:11px}.design-control-key{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint);font-size:9px}.design-select-menu{z-index:60;background:var(--bg-panel);border:1px solid var(--border-strong);min-width:118px;box-shadow:var(--shadow-panel);border-radius:9px;flex-direction:column;padding:4px;display:flex;position:absolute;top:calc(100% + 6px);left:0}.design-select-menu button{color:var(--text-muted);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:11.5px}.design-select-menu button:hover{background:var(--bg-panel-raised);color:var(--text)}.design-select-menu button.active{color:var(--flow-green);font-weight:600}.design-rps-input{cursor:text}.design-rps-input input{width:58px;font:inherit;color:var(--text);-moz-appearance:textfield;background:0 0;border:none;outline:none}.design-rps-input input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.design-rps-input input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.design-color-menu{flex-flow:wrap;gap:7px;width:132px;padding:9px}.design-color-chip{border-radius:50%;flex-shrink:0;width:14px;height:14px}.design-color-chip.auto{background:linear-gradient(135deg, transparent 44%, var(--text-muted) 44%, var(--text-muted) 56%, transparent 56%);box-shadow:inset 0 0 0 1px var(--border-strong)}.design-color-chip.mixed{background:conic-gradient(#8b5cf6,#06b6d4,#10b981,#f59e0b,#ef4444,#8b5cf6)}.design-swatch,.design-select-menu .design-swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:21px;height:21px;padding:0;transition:transform .12s,border-color .12s}.design-swatch:hover{transform:scale(1.12)}.design-swatch.active{border-color:var(--text)}.design-swatch.auto{background:linear-gradient(135deg, transparent 44%, var(--text-muted) 44%, var(--text-muted) 56%, transparent 56%);border-color:var(--border-strong)}.design-swatch.auto.active{border-color:var(--text)}.option-rail-active{color:var(--flow-green);border-color:color-mix(in srgb, var(--flow-green) 55%, transparent);background:color-mix(in srgb, var(--flow-green) 8%, var(--bg-panel))}.align-guide{pointer-events:none;z-index:5;background:var(--flow-green);opacity:.85;position:absolute}.align-guide-v{width:1px}.align-guide-h{height:1px}.option-rail-more{flex-shrink:0;margin-left:auto;position:relative}.option-rail-dots{padding:6px 8px}.option-rail-menu{z-index:60;background:var(--bg-panel);border:1px solid var(--border-strong);min-width:190px;box-shadow:var(--shadow-panel);border-radius:10px;flex-direction:column;padding:5px;display:flex;position:absolute;top:calc(100% + 6px);right:0}.option-rail-menu button{color:var(--text);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:7px 10px;font-size:12px;display:flex}.option-rail-menu button:hover:not(:disabled){background:var(--bg-panel-raised)}.option-rail-menu button:disabled{opacity:.4;cursor:default}.canvas-toolbar-note{font-family:var(--font-mono);color:var(--flow-green);background:var(--bg-panel);border:1px solid var(--border);border-radius:7px;max-width:420px;padding:5px 9px;font-size:10.5px}.canvas-agentlock-badge{background:color-mix(in srgb, var(--flow-green) 10%, var(--bg-panel));border:1px solid color-mix(in srgb, var(--flow-green) 45%, transparent);color:var(--flow-green);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;border-radius:8px;align-items:center;gap:5px;padding:5px 10px;font-size:10.5px;animation:1.8s ease-in-out infinite agentlock-pulse;display:inline-flex}@keyframes agentlock-pulse{0%,to{opacity:1}50%{opacity:.62}}.canvas-snackbar{background:var(--bg-panel);border:1px solid color-mix(in srgb, var(--flow-green) 45%, transparent);color:var(--text);z-index:40;border-radius:10px;align-items:center;gap:8px;max-width:min(520px,100% - 48px);padding:10px 16px;font-size:12.5px;animation:.22s ease-out snackbar-in;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.canvas-snackbar svg{color:var(--flow-green);flex-shrink:0}@keyframes snackbar-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.context-menu{z-index:20;background:var(--bg-panel);border:1px solid var(--border-strong);min-width:178px;box-shadow:var(--shadow-panel);border-radius:10px;flex-direction:column;padding:5px;display:flex;position:absolute}.context-menu button{color:var(--text-muted);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:9px;padding:8px 10px;font-size:12.5px;display:flex}.context-menu button:hover{background:var(--bg-panel-raised);color:var(--text)}.context-menu-divider{background:var(--border);height:1px;margin:4px 6px}.context-menu-danger:hover{color:var(--danger)!important}.group-backdrop{border:1.5px dashed var(--accent);background:color-mix(in srgb, var(--accent) 6%, transparent);border-radius:14px;width:100%;height:100%;position:relative}.group-backdrop.selected{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 35%, transparent);border-style:solid}.group-third-party{background:color-mix(in srgb, var(--accent) 9%, transparent)}.group-backdrop-header{background:var(--bg-panel);border:1px solid var(--accent);white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:2px 9px;display:flex;position:absolute;top:-13px;left:12px}.group-backdrop-dot{background:var(--accent);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;width:9px;height:9px;padding:0;transition:transform .12s}.group-backdrop-dot:not(:disabled):hover{transform:scale(1.35)}.group-backdrop-dot:disabled{cursor:default}.group-color-swatches{align-items:center;gap:6px;display:inline-flex}.group-color-swatch{cursor:pointer;color:#fff;border:1px solid #0003;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;padding:0;transition:transform .12s,box-shadow .12s;display:inline-flex}.group-color-swatch:hover{transform:scale(1.15)}.group-color-swatch.active{box-shadow:0 0 0 2px var(--bg-panel), 0 0 0 3.5px var(--text-muted)}.group-backdrop-label{color:var(--text);font-size:12px;font-weight:650}.group-backdrop-kind{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);font-size:9px}.group-backdrop-actions{align-items:center;gap:2px;margin-left:4px;display:flex}.group-backdrop-actions button{color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;display:inline-flex}.group-backdrop-actions button:hover{color:var(--text);background:var(--bg-panel-raised)}.group-node{background:var(--bg-panel-raised);border:1.5px dashed var(--accent);min-width:190px;box-shadow:var(--shadow-node);border-radius:12px;align-items:center;gap:10px;padding:11px 12px 11px 14px;display:flex}.group-node.selected{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent), var(--shadow-node)}.group-node-icon{background:color-mix(in srgb, var(--accent) 18%, transparent);width:34px;height:34px;color:var(--accent);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.group-node-body{flex-direction:column;flex:1;gap:1px;display:flex}.group-node-label{color:var(--text);white-space:nowrap;font-size:13px;font-weight:650}.group-node-meta{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);white-space:nowrap;font-size:9px}.group-node-eye{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:5px;display:inline-flex}.group-node-eye:hover{color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, transparent)}.group-dialog{background:var(--bg-panel);border:1px solid var(--border-strong);width:420px;max-width:calc(100% - 40px);box-shadow:var(--shadow-panel);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.group-dialog-body{flex-direction:column;gap:12px;padding:14px;display:flex}.group-dialog-members{color:var(--text-faint);font-size:11.5px;line-height:1.5}.group-kind-choice{gap:8px;display:flex}.group-kind-option{background:var(--bg-panel-raised);border:1px solid var(--border);color:var(--text-muted);text-align:left;cursor:pointer;border-radius:10px;flex-direction:column;flex:1;gap:4px;padding:11px 10px;transition:border-color .15s;display:flex}.group-kind-option.active{border-color:var(--flow-green);color:var(--text)}.group-kind-title{font-size:12.5px;font-weight:650}.group-kind-desc{color:var(--text-faint);font-size:10.5px;line-height:1.4}.group-collapse-toggle{color:var(--text-muted);cursor:pointer;align-items:center;gap:8px;font-size:12.5px;display:flex}.group-collapse-toggle input{accent-color:var(--flow-green);width:15px;height:15px}.group-dialog-footer{border-top:1px solid var(--border);padding:12px 14px}.group-create-btn{background:var(--flow-green);width:100%;color:var(--on-green);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:9px;padding:10px 0;font-size:13px;font-weight:700}.group-create-btn:hover{filter:brightness(1.08)}.canvas-toolbar-group{border-color:var(--flow-green)!important;color:var(--flow-green)!important}.system-node-replicas{font-family:var(--font-mono);color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:6px;margin-left:4px;padding:2px 5px;font-size:10px;font-weight:600}.config-field{flex-direction:column;gap:5px;margin-bottom:14px;display:flex}.config-field>span{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-faint);font-size:10px;font-weight:600}.config-field input,.config-field textarea{background:var(--bg-input);border:1px solid var(--border);color:var(--text);font-family:var(--font-sans);resize:vertical;border-radius:8px;outline:none;padding:8px 10px;font-size:13px}.config-field input:focus,.config-field textarea:focus{border-color:var(--border-strong)}.config-hint{color:var(--text-faint);margin-bottom:8px;font-size:11.5px}.config-capabilities{flex-direction:column;gap:4px;display:flex}.config-capability{background:var(--bg-panel-raised);border:1px solid var(--border);color:var(--text-muted);cursor:pointer;border-radius:7px;align-items:flex-start;gap:8px;padding:6px 8px;font-size:12px;display:flex}.config-capability input{accent-color:var(--accent,#22c55e);flex-shrink:0;margin-top:2px}.config-capability.off{opacity:.5}.config-capability.off span{text-decoration:line-through}.replace-overlay{z-index:30;background:#080a0f8c;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.replace-picker{background:var(--bg-panel);border:1px solid var(--border-strong);width:400px;max-width:calc(100% - 40px);max-height:70%;box-shadow:var(--shadow-panel);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.replace-search{margin:10px 12px 6px}.replace-list{flex-direction:column;flex:1;gap:3px;padding:4px 8px 12px;display:flex;overflow-y:auto}.replace-item{color:var(--text);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:9px;padding:8px 10px;font-size:12.5px;display:flex}.replace-item:hover{background:var(--bg-panel-raised);border-color:var(--accent)}.replace-item-label{flex:1}.replace-item-category{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);font-size:9.5px}.import-dialog{background:var(--bg-panel);border:1px solid var(--border-strong);width:520px;max-width:calc(100% - 40px);max-height:80%;box-shadow:var(--shadow-panel);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.import-body{flex-direction:column;gap:10px;padding:14px;display:flex;overflow-y:auto}.import-hint{color:var(--text-faint);font-size:12px;line-height:1.55}.import-hint code{font-family:var(--font-mono);color:var(--text-muted);font-size:10.5px}.import-textarea{resize:vertical;background:var(--bg-input);border:1px solid var(--border);width:100%;min-height:220px;color:var(--text);font-family:var(--font-mono);border-radius:9px;outline:none;padding:10px 12px;font-size:11.5px;line-height:1.55}.import-textarea:focus{border-color:var(--border-strong)}.import-error{color:var(--danger);background:color-mix(in srgb, var(--danger) 8%, transparent);border:1px solid color-mix(in srgb, var(--danger) 25%, transparent);border-radius:8px;padding:8px 10px;font-size:12px}.import-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.import-file-btn{border:1px dashed var(--border-strong);color:var(--text-muted);font-family:var(--font-sans);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:8px;align-items:center;gap:7px;max-width:60%;padding:8px 12px;font-size:12px;display:inline-flex;overflow:hidden}.import-file-btn:hover{color:var(--text);border-color:var(--text-faint)}.import-submit{background:var(--flow-green);color:var(--on-green);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:8px;padding:8px 22px;font-size:12.5px;font-weight:700;transition:filter .15s,opacity .15s}.import-submit:hover:not(:disabled){filter:brightness(1.1)}.import-submit:disabled{opacity:.35;cursor:default}.export-dialog{background:var(--bg-panel);border:1px solid var(--border-strong);width:440px;max-width:calc(100% - 40px);max-height:88vh;box-shadow:var(--shadow-panel);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.export-body{flex-direction:column;gap:12px;padding:14px;display:flex;overflow-y:auto}.export-preview-tabs{background:var(--bg-input);border:1px solid var(--border);border-radius:9px;gap:4px;padding:3px;display:flex}.export-preview-tab{color:var(--text-faint);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:6px 0;font-size:12px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.export-preview-tab:hover{color:var(--text-muted)}.export-preview-tab.active{background:var(--bg-panel-raised);color:var(--text)}.export-preview-wrap{flex-direction:column;align-items:center;gap:6px;display:flex}.mermaid-preview{background:var(--bg-input);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:140px;max-height:320px;padding:12px;display:flex;overflow:auto}.mermaid-preview.empty{color:var(--text-faint);font-size:12px}.mermaid-loading,.mermaid-error{color:var(--text-faint);align-items:center;gap:8px;font-size:12px;display:flex}.mermaid-error{color:var(--danger)}.mermaid-svg{justify-content:center;width:100%;display:flex}.mermaid-svg svg{max-width:100%;height:auto}.export-preview-box{background:var(--bg-input);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:100px;padding:10px;display:flex;position:relative}.export-preview-canvas{border-radius:4px;max-width:100%;box-shadow:0 2px 12px #00000040}.export-preview-empty{color:var(--text-faint);font-size:12px;position:absolute}.export-preview-dims{font-family:var(--font-mono);color:var(--text-faint);letter-spacing:.02em;font-size:10.5px}.export-controls{grid-template-columns:1fr 1fr;gap:10px;display:grid}.export-controls .config-field{margin-bottom:0}.export-controls select{background:var(--bg-input);border:1px solid var(--border);color:var(--text);font-family:var(--font-sans);cursor:pointer;border-radius:8px;outline:none;padding:8px 10px;font-size:12.5px}.export-controls select:hover{border-color:var(--border-strong)}.export-options{flex-direction:column;gap:6px;display:flex}.export-group-label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint);margin-top:4px;font-size:9.5px;font-weight:600}.export-empty{color:var(--warn);font-size:12.5px}.export-option-tag{font-family:var(--font-mono);color:var(--text-faint);font-size:9.5px;font-style:normal;font-weight:500}.export-note{color:var(--text-faint);border-top:1px solid var(--border);padding-top:10px;font-size:11px;line-height:1.5}.export-footer{border-top:1px solid var(--border);flex-shrink:0;padding:12px 14px}.export-zip-btn{background:var(--flow-green);width:100%;color:var(--on-green);font-family:var(--font-sans);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:11px 0;font-size:13px;font-weight:700;transition:filter .15s,opacity .15s;display:inline-flex}.export-zip-btn:hover:not(:disabled){filter:brightness(1.08)}.export-zip-btn:disabled{opacity:.4;cursor:default}.export-select-head{justify-content:space-between;align-items:center;padding:0 2px;display:flex}.export-check{color:var(--text-muted);cursor:pointer;align-items:center;gap:7px;font-size:12px;font-weight:600;display:inline-flex}.export-check input{accent-color:var(--flow-green);cursor:pointer;width:15px;height:15px}.export-select-hint{color:var(--text-faint);font-size:11px}.export-option{background:var(--bg-panel-raised);border:1px solid var(--border);border-radius:10px;align-items:stretch;gap:0;transition:border-color .15s;display:flex;overflow:hidden}.export-option.checked{border-color:color-mix(in srgb, var(--flow-green) 55%, var(--border))}.export-option .export-check{border-right:1px solid var(--border);background:color-mix(in srgb, var(--flow-green) 6%, transparent);padding:0 10px}.export-option-main{color:var(--text);font-family:var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:none;flex:1;align-items:center;gap:12px;padding:11px 12px;display:flex}.export-option-main:hover:not(:disabled){background:color-mix(in srgb, var(--flow-green) 5%, transparent)}.export-option-main:disabled{opacity:.5;cursor:default}.export-option-icon{background:color-mix(in srgb, var(--flow-green) 14%, transparent);width:34px;height:34px;color:var(--flow-green);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.export-option-text{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.export-option-label{font-size:13px;font-weight:650}.export-option-hint{color:var(--text-faint);font-size:11.5px}.export-option-dl{color:var(--text-faint);flex-shrink:0}.panel-actions{align-items:center;gap:2px;display:flex}.icon-button.active{color:var(--flow-green);background:color-mix(in srgb, var(--flow-green) 12%, transparent)}.settings-view{flex:1;padding:16px 14px;overflow-y:auto}.settings-test{background:var(--bg-panel-raised);border:1px solid var(--border-strong);color:var(--text);font-family:var(--font-sans);cursor:pointer;border-radius:8px;align-items:center;gap:7px;padding:8px 14px;font-size:12.5px;font-weight:600;display:inline-flex}.settings-test:hover:not(:disabled){border-color:var(--flow-green)}.settings-test:disabled{opacity:.45;cursor:default}.settings-status{align-items:flex-start;gap:6px;margin-top:10px;font-size:12px;line-height:1.45;display:flex}.settings-status.ok{color:var(--flow-green)}.settings-status.fail{color:var(--danger)}.settings-status svg{flex-shrink:0;margin-top:2px}.settings-note{border-top:1px solid var(--border);color:var(--text-faint);margin-top:16px;padding-top:12px;font-size:11.5px;line-height:1.55}.mcp-settings{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.mcp-heading{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--flow-green);margin-bottom:8px;font-size:10px;font-weight:600}.mcp-intro{border-top:none;margin-top:0;margin-bottom:12px;padding-top:0}.mcp-tabs{background:var(--bg-input);border:1px solid var(--border);border-radius:9px;gap:4px;margin-bottom:12px;padding:3px;display:flex}.mcp-tab{color:var(--text-faint);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;padding:6px 0;font-size:12px;font-weight:600;transition:background .15s,color .15s}.mcp-tab:hover{color:var(--text-muted)}.mcp-tab.active{background:var(--bg-panel-raised);color:var(--text)}.mcp-snippet{margin-bottom:14px}.mcp-snippet-head{justify-content:space-between;align-items:center;margin-bottom:2px;display:flex}.mcp-snippet-title{color:var(--text);font-size:12px;font-weight:600}.mcp-copy{padding:4px}.mcp-snippet-hint{color:var(--text-faint);margin-bottom:6px;font-size:11px;line-height:1.5}.mcp-code{background:var(--bg-input);border:1px solid var(--border);font-family:var(--font-mono);color:var(--text-muted);white-space:pre;border-radius:8px;padding:9px 11px;font-size:10.5px;line-height:1.55;overflow-x:auto}.theme-toggle{background:var(--bg-input);border:1px solid var(--border);border-radius:9px;gap:4px;padding:3px;display:flex}.theme-option{color:var(--text-faint);font-family:var(--font-sans);cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:6px 0;font-size:12px;font-weight:600;transition:background .15s,color .15s;display:inline-flex}.theme-option:hover{color:var(--text-muted)}.theme-option.active{background:var(--bg-panel-raised);color:var(--text)}.chat-connected-dot{background:var(--flow-green);width:7px;height:7px;box-shadow:0 0 6px color-mix(in srgb, var(--flow-green) 70%, transparent);border-radius:50%}.chat-status{background:color-mix(in srgb, var(--flow-green) 8%, transparent);border:1px solid color-mix(in srgb, var(--flow-green) 20%, transparent);max-width:92%;color:var(--flow-green);font-family:var(--font-mono);white-space:pre-wrap;border-radius:8px;align-self:center;padding:6px 10px;font-size:11px;line-height:1.5}.chat-status.error{background:color-mix(in srgb, var(--danger) 8%, transparent);border-color:color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger)}.chat-thinking{color:var(--text-faint);align-items:center;gap:8px;display:flex}.chat-attachment{background:var(--bg-panel-raised);border:1px solid var(--border);color:var(--text-muted);border-radius:8px;flex-shrink:0;align-items:center;gap:7px;margin:0 12px;padding:6px 10px;font-size:12px;display:flex}.chat-free-banner{background:color-mix(in srgb, var(--flow-green) 7%, var(--bg-panel));border:1px solid color-mix(in srgb, var(--flow-green) 30%, transparent);color:var(--text-muted);border-radius:8px;flex-shrink:0;align-items:center;gap:6px;margin:0 12px;padding:5px 10px;font-size:11.5px;display:flex}.chat-free-banner svg{color:var(--flow-green);flex-shrink:0}.chat-free-banner a{color:var(--flow-green);white-space:nowrap;margin-left:auto;font-weight:600;text-decoration:none}.chat-free-banner a:hover{text-decoration:underline}.chat-credits-chip{background:color-mix(in srgb, var(--flow-green) 10%, transparent);border:1px solid color-mix(in srgb, var(--flow-green) 30%, transparent);font-family:var(--font-mono);color:var(--flow-green);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;margin-left:6px;padding:2px 8px;font-size:10px;display:inline-flex}.chat-credits-chip.empty{background:color-mix(in srgb, var(--warn) 12%, transparent);border-color:color-mix(in srgb, var(--warn) 40%, transparent);color:var(--warn)}.chat-exhausted-banner{background:color-mix(in srgb, var(--warn) 8%, var(--bg-panel));border:1px solid color-mix(in srgb, var(--warn) 35%, transparent);color:var(--text-muted);border-radius:8px;flex-shrink:0;align-items:center;gap:6px;margin:0 12px;padding:6px 10px;font-size:11.5px;display:flex}.chat-exhausted-banner svg{color:var(--warn);flex-shrink:0}.chat-exhausted-banner a{color:var(--warn);white-space:nowrap;margin-left:auto;font-weight:600;text-decoration:none}.chat-exhausted-banner a:hover{text-decoration:underline}.chat-attachment span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.chat-attach{align-self:flex-end;margin-bottom:2px}.chat-composer textarea:disabled{opacity:.55}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}::-webkit-scrollbar-track{background:0 0}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.cloud-error-banner{background:var(--bg-panel);border:1px solid color-mix(in srgb, var(--warn) 50%, transparent);color:var(--warn);z-index:60;border-radius:10px;align-items:center;gap:12px;max-width:min(560px,100% - 48px);padding:10px 16px;font-size:12.5px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000040}.cloud-error-banner button{color:var(--text-faint);cursor:pointer;background:0 0;border:none;font-size:13px}.chat-signin{background:color-mix(in srgb, var(--flow-green) 8%, transparent);border:1px solid color-mix(in srgb, var(--flow-green) 30%, transparent);color:var(--text-muted);border-radius:10px;flex-direction:column;flex-shrink:0;gap:8px;margin:0 12px 8px;padding:12px;font-size:12.5px;display:flex}.chat-signin-button{color:#fff;background:#54b02b;border-radius:7px;justify-content:center;align-items:center;padding:8px 0;font-size:12.5px;font-weight:600;text-decoration:none;transition:filter .15s;display:inline-flex}.chat-signin-button:hover{filter:brightness(1.08)}.chat-upsell{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:10px;padding:24px 20px;display:flex}.chat-upsell h3{color:var(--text);margin:0;font-size:14px}.chat-upsell p{color:var(--text-muted);margin:0;font-size:12.5px;line-height:1.5}.chat-upsell .chat-signin-button{gap:6px;padding:8px 16px}.gienie-fab{z-index:30;background:var(--bg-panel);cursor:pointer;border:1.5px solid #54b02b8c;border-radius:50%;place-items:center;width:56px;height:56px;transition:transform .15s,border-color .15s,box-shadow .15s;display:grid;position:fixed;bottom:24px;right:24px;box-shadow:0 6px 24px #0000004d}.gienie-fab:hover{border-color:#54b02b;transform:translateY(-2px)scale(1.05);box-shadow:0 10px 30px #00000059,0 0 0 4px #54b02b26}.gienie-fab:active{transform:scale(.97)}.canvas-area.presenting{height:100%}.present-bar{background:color-mix(in srgb, var(--bg-panel) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);z-index:45;border-radius:12px;align-items:center;gap:6px;padding:8px 10px;animation:.25s present-bar-in;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%);box-shadow:0 8px 28px #0000004d}@keyframes present-bar-in{0%{opacity:0;transform:translate(-50%)translateY(8px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.present-bar-btn{width:30px;height:30px;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:8px;place-items:center;transition:background .12s,color .12s;display:grid}.present-bar-btn:hover:not(:disabled){background:color-mix(in srgb, var(--text) 10%, transparent)}.present-bar-btn:disabled{opacity:.35;cursor:default}.present-bar-play.playing{color:var(--flow-green,#54b02b)}.present-bar-screen{flex-direction:column;align-items:center;min-width:120px;max-width:260px;padding:0 6px;line-height:1.25;display:flex}.present-bar-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:12.5px;font-weight:600;overflow:hidden}.present-bar-count{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:10.5px}.present-bar-divider{background:var(--border);width:1px;height:20px;margin:0 2px}.interview-dialog{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;width:min(680px,100vw - 48px);max-height:min(78vh,720px);display:flex;overflow:hidden;box-shadow:0 16px 48px #00000059}.interview-intro{color:var(--text-muted);border-bottom:1px solid var(--border);margin:0;padding:10px 16px;font-size:12px;line-height:1.5}.interview-list{flex-direction:column;gap:4px;padding:8px;display:flex;overflow-y:auto}.interview-problem{cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;border-radius:9px;align-items:center;gap:12px;width:100%;padding:9px 11px;transition:background .12s,border-color .12s;display:flex}.interview-problem:hover{background:color-mix(in srgb, var(--text) 6%, transparent);border-color:var(--border)}.interview-problem-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.interview-problem-title{color:var(--text);font-size:12.5px;font-weight:600}.interview-problem-brief{color:var(--text-muted);-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:11px;line-height:1.4;display:-webkit-box;overflow:hidden}.interview-problem-meta{flex-shrink:0;align-items:center;gap:5px;display:flex}.interview-chip{color:var(--text-muted);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:10px;font-weight:600;display:inline-flex}.interview-diff-easy{color:#4c9a4c;border-color:#4c9a4c73}.interview-diff-medium{color:#c8892a;border-color:#c8892a73}.interview-diff-hard{color:#cf5252;border-color:#cf525273}.interview-chip-pro{color:#a58aff;border-color:#a58aff73}.interview-locked{opacity:.75}.interview-hud{background:color-mix(in srgb, var(--bg-panel) 96%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);z-index:30;border-radius:12px;flex-direction:column;gap:8px;width:300px;max-height:calc(100% - 28px);padding:12px;display:flex;position:absolute;top:14px;left:14px;overflow-y:auto;box-shadow:0 8px 28px #00000047}.interview-hud-header{color:var(--text);align-items:center;gap:7px;display:flex}.interview-hud-title{flex:1;font-size:12.5px;font-weight:600;line-height:1.3}.interview-timer{font-variant-numeric:tabular-nums;text-align:center;color:var(--text);padding:4px 0;font-size:26px;font-weight:700}.interview-timer.urgent{color:#c8892a}.interview-timer.done{color:#cf5252;font-size:13.5px;font-weight:600}.interview-brief-toggle{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-size:11px;font-weight:600;display:inline-flex}.interview-brief{color:var(--text-muted);font-size:11.5px;line-height:1.45}.interview-brief p{color:var(--text);margin:0 0 6px}.interview-brief ul{margin:2px 0 8px;padding-left:16px}.interview-brief li{margin:2px 0}.interview-return-btn{border:1px dashed var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:8px;padding:6px 10px;font-size:11.5px}.interview-return-btn:hover{color:var(--text);border-color:var(--text-muted)}.interview-submit-btn{justify-content:center}.interview-scorecard{flex-direction:column;gap:10px;display:flex}.interview-overall{align-items:center;gap:12px;padding:6px 2px;display:flex}.interview-overall-number{color:var(--text);font-variant-numeric:tabular-nums;font-size:38px;font-weight:800;line-height:1}.interview-overall-meta{flex-direction:column;gap:2px;display:flex}.interview-verdict{color:var(--text);font-size:13px;font-weight:700}.interview-overall-sub{color:var(--text-muted);font-size:10.5px}.interview-dimensions{flex-direction:column;gap:8px;display:flex}.interview-dimension-head{color:var(--text);justify-content:space-between;margin-bottom:3px;font-size:11.5px;font-weight:600;display:flex}.interview-dimension-score{color:var(--text-muted);font-variant-numeric:tabular-nums}.interview-dimension-bar{background:color-mix(in srgb, var(--text) 10%, transparent);border-radius:999px;height:5px;overflow:hidden}.interview-dimension-bar>div{background:var(--flow-green,#54b02b);border-radius:999px;height:100%;transition:width .4s}.interview-dimension-comment{color:var(--text-muted);margin:3px 0 0;font-size:11px;line-height:1.4}.interview-feedback{flex-direction:column;gap:3px;display:flex}.interview-feedback-line{color:var(--text);align-items:flex-start;gap:6px;margin:0;font-size:11.5px;line-height:1.4;display:flex}.interview-feedback-line svg{flex-shrink:0;margin-top:1.5px}.interview-good{color:#4c9a4c}.interview-bad{color:#cf5252}.interview-raw-review{color:var(--text);white-space:pre-wrap;max-height:320px;font-size:11.5px;line-height:1.5;overflow-y:auto}.node-search-pill{background:color-mix(in srgb, var(--bg-panel) 94%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);width:300px;color:var(--text-muted);z-index:35;border-radius:999px;align-items:center;gap:7px;padding:7px 13px;transition:border-color .15s,box-shadow .15s,width .15s;display:flex;position:absolute;bottom:8px;left:50%;transform:translate(-50%);box-shadow:0 4px 18px #0000002e}.node-search-pill.focused{border-color:color-mix(in srgb, var(--flow-green,#54b02b) 55%, transparent);width:340px;box-shadow:0 6px 24px #0000003d}.node-search-pill input{min-width:0;color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:12.5px}.node-search-pill input::placeholder{color:var(--text-muted)}.node-search-pill-none{white-space:nowrap;color:var(--text-muted);font-size:10.5px}.node-search-suggestions{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;padding:5px;display:flex;position:absolute;bottom:calc(100% + 6px);left:0;right:0;overflow:hidden;box-shadow:0 10px 30px #00000047}.node-search-suggestion{cursor:pointer;text-align:left;color:var(--text);background:0 0;border:none;border-radius:8px;align-items:center;gap:9px;padding:6px 9px;display:flex}.node-search-suggestion.active{background:color-mix(in srgb, var(--accent) 14%, transparent)}.node-search-suggestion-icon{width:24px;height:24px;color:var(--accent);background:color-mix(in srgb, var(--accent) 15%, transparent);border-radius:7px;flex-shrink:0;place-items:center;display:grid}.node-search-suggestion-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:12px;font-weight:600;overflow:hidden}.node-search-suggestion-cat{color:var(--text-muted);white-space:nowrap;font-size:10px}.export-tf-head{justify-content:space-between;align-items:center;gap:10px;width:100%;display:flex}.export-tf-coverage{color:var(--text);font-size:11px;font-weight:600}.export-tf-copy{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:7px;flex-shrink:0;align-items:center;gap:4px;padding:4px 9px;font-size:11px;font-weight:600;display:inline-flex}.export-tf-copy:hover{color:var(--text);border-color:var(--text-muted)}.export-tf-stubs{color:#c8892a;width:100%;font-size:10.5px}.export-tf-preview{width:100%;max-height:240px;color:var(--text);background:color-mix(in srgb, var(--text) 4%, transparent);border:1px solid var(--border);white-space:pre;border-radius:9px;margin:0;padding:10px 12px;font-family:ui-monospace,Cascadia Code,monospace;font-size:10.5px;line-height:1.5;overflow:auto}.export-tf-provider{background:var(--bg-panel);border:1px solid var(--border);color:var(--text);border-radius:7px;flex-shrink:0;padding:4px 8px;font-size:11px;font-weight:600}.canvas-context-badge{color:#4c7ee8;white-space:nowrap;border:1px solid #4c7ee873;border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.group-node.context-system,.group-node.context-external{background:color-mix(in srgb, var(--accent) 8%, var(--bg-panel));border-style:solid}.system-node-internals{letter-spacing:.03em;text-transform:uppercase;color:#4c7ee8;background:var(--bg-panel);cursor:pointer;border:1px solid #4c7ee880;border-radius:999px;align-items:center;gap:3px;padding:2px 7px;font-size:9px;font-weight:700;display:inline-flex;position:absolute;bottom:-9px;right:8px}.system-node-internals:hover{background:color-mix(in srgb, #4c7ee8 12%, var(--bg-panel))}.canvas-breadcrumb{color:var(--text-muted);background:color-mix(in srgb, var(--bg-panel) 94%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border);cursor:pointer;z-index:30;border-radius:999px;align-items:center;gap:5px;padding:6px 13px;font-size:12px;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%);box-shadow:0 3px 14px #00000029}.canvas-breadcrumb strong{color:var(--text)}.canvas-breadcrumb:hover{color:var(--text);border-color:#4c7ee88c}.present-bar-level{color:#4c7ee8;font-style:normal;font-weight:500}.edge-api-chip{letter-spacing:.02em;color:#4c7ee8;background:color-mix(in srgb, #4c7ee8 10%, var(--bg-panel));cursor:pointer;white-space:nowrap;border:1px solid #4c7ee873;border-radius:999px;align-items:center;gap:3px;margin-left:5px;padding:1px 7px;font-family:ui-monospace,monospace;font-size:9.5px;font-weight:700;display:inline-flex}.edge-label .edge-api-chip:only-child{margin-left:0}.edge-api-chip:hover{background:color-mix(in srgb, #4c7ee8 20%, var(--bg-panel))}.edge-api-dialog{width:min(440px,100vw - 48px)}.edge-api-actions{justify-content:flex-end;align-items:center;gap:10px;display:flex}.edge-api-remove{border:1px solid var(--border);color:#cf5252;cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:5px;padding:7px 12px;font-size:12px;display:inline-flex}.edge-api-remove:hover{border-color:#cf525280}.presence-chip{color:var(--text);border:1px solid var(--border);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:3px 10px 3px 4px;font-size:11px;font-weight:600;display:inline-flex}.presence-chip img,.presence-chip i{color:#fff;border:1.5px solid;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;margin-right:-6px;font-size:10px;font-style:normal;font-weight:700;display:inline-flex}.presence-chip img:last-of-type,.presence-chip i:last-of-type{margin-right:4px}.peer-cursor{pointer-events:none;z-index:60;align-items:flex-start;gap:2px;transition:transform 60ms linear;display:flex;position:absolute;top:0;left:0}.peer-cursor-name{color:#fff;background:var(--peer-color);white-space:nowrap;border-radius:999px;margin-top:10px;padding:1px 7px;font-size:10px;font-weight:600}.react-flow{--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:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--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:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--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 #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.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:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--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:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--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:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--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 #00000014;--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{width:100%;height:100%;position:absolute;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{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.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;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:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.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:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;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%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;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{z-index:5;margin:15px;position:absolute}.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{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.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{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.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{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;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));padding:10px;font-size:12px}.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{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.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-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.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))}
