.canvas{--canvas-bg:var(--color-surface);--canvas-section:var(--color-bg);--canvas-card:var(--color-bg);--canvas-dot:color-mix(in oklab, var(--color-ink) 18%, transparent);--canvas-edge:color-mix(in oklab, var(--color-ink) 45%, transparent);--canvas-line:color-mix(in oklab, var(--color-ink) 8%, transparent);--canvas-shadow:0 0 0 1px var(--canvas-line), 0 1px 3px #00000012;--canvas-float:0 0 0 1px var(--canvas-line), 0 2px 6px #00000014, 0 10px 24px #00000014;--canvas-map-node:color-mix(in oklab, var(--color-ink) 30%, transparent);--canvas-map-section:color-mix(in oklab, var(--color-ink) 8%, transparent);--canvas-map-mask:color-mix(in oklab, var(--canvas-bg) 70%, transparent);--canvas-accent:#0d99ff;background:var(--canvas-bg);position:absolute;inset:0}@property --canvas-inset{syntax:"<length>";inherits:true;initial-value:0}.canvas,.canvas-chat{transition-duration:.38s;transition-timing-function:cubic-bezier(.2,0,0,1)}.canvas{transition-property:--canvas-inset}.canvas-chat-resizing>.canvas{transition:none}.canvas-chat{transform-origin:bottom;transition-property:opacity,translate,scale,visibility}.canvas-chat-card{border-radius:14px;transition:background-color .38s cubic-bezier(.2,0,0,1),box-shadow .38s cubic-bezier(.2,0,0,1)}.canvas-chat-card.shown{background:var(--color-bg);overflow:hidden;box-shadow:0 12px 32px -8px #00000047}:root:where(.dark) .canvas-chat-card.shown{box-shadow:0 16px 40px #00000080}.canvas-chat.collapsed{visibility:hidden;opacity:0;translate:0 24px;scale:.97}@media (prefers-reduced-motion:reduce){.canvas,.canvas-chat,.canvas-chat-card{transition:none}}:root:where(.dark) .canvas{--canvas-accent:#0c8ce9;--canvas-bg:var(--color-bg);--canvas-section:var(--color-surface);--canvas-card:var(--color-surface-2);--canvas-dot:color-mix(in oklab, var(--color-ink) 14%, transparent);--canvas-shadow:0 0 0 1px var(--canvas-line), 0 1px 3px #0006;--canvas-float:0 0 0 1px color-mix(in oklab, var(--color-ink) 12%, transparent), 0 10px 28px #00000073}.canvas .react-flow__pane{cursor:default}.canvas .react-flow__pane.dragging,.canvas.tool-hand .react-flow__pane,.canvas.tool-hand .react-flow__node{cursor:grab}.canvas.tool-hand .react-flow__node *{pointer-events:none}.canvas.canvas-connecting .react-flow__node{cursor:crosshair}.canvas-busy .canvas-card,.canvas-busy .canvas-edge-label{pointer-events:none}.canvas-overlay{z-index:5}.canvas-item-label{z-index:4;white-space:nowrap;width:max-content;max-width:100%;color:var(--color-ink-2);align-items:center;gap:6px;margin-bottom:7px;font-size:12px;display:flex;position:absolute;bottom:100%;left:2px}.canvas-badge{font:600 9.5px/1 var(--font-mono);letter-spacing:.02em;background:color-mix(in oklab, var(--color-ink) 7%, transparent);border-radius:4px;flex:none;padding:3px 4px}.react-flow__node.selected .canvas-item-label{color:var(--canvas-accent)}.canvas-card{background:var(--canvas-card);box-shadow:var(--canvas-shadow);border-radius:12px;position:absolute;inset:0;overflow:hidden}.react-flow__node.selected .canvas-card,.react-flow__node.selected .canvas-sticky,.react-flow__node.selected .canvas-text{box-shadow:0 0 0 1px var(--canvas-accent), var(--canvas-shadow)}.canvas-connect-source{box-shadow:0 0 0 2px var(--canvas-accent), var(--canvas-shadow)!important}.canvas-shield,.canvas-fill{position:absolute;inset:0}.canvas-frame{background:0 0;border:0;width:100%;height:100%;display:block}.canvas-viewer,.canvas-viewer-body{position:absolute;inset:0}.canvas-viewer-body.inert{pointer-events:none}.canvas-viewer-body.paper{background:#fff}.canvas-viewer-toolbar{background:var(--canvas-card);white-space:nowrap;max-width:calc(100% - 16px);color:var(--color-ink-2);opacity:0;border-radius:8px;align-items:center;gap:8px;padding:4px;font-size:11.5px;display:flex;position:absolute;top:8px;right:8px}.canvas-viewer-status{text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.canvas-viewer-controls{gap:2px;display:flex}.canvas-viewer-controls button,.canvas-focus{height:24px;color:var(--color-ink-2);border-radius:7px;padding:0 9px;font-size:12px;transition-property:background-color,color,opacity;transition-duration:.15s}.canvas-viewer-controls button:hover,.canvas-viewer-controls button.on{color:var(--color-ink);background:var(--color-list-hover)}.canvas-focus{color:var(--color-ink);background:var(--color-list-hover);font-weight:500}.canvas-focus.on{color:#fff;background:var(--canvas-accent)}.react-flow__node:hover .canvas-viewer-toolbar,.react-flow__node.selected .canvas-viewer-toolbar{opacity:1}.canvas-viewer-toolbar:has(.canvas-viewer-status){opacity:1}.canvas-viewer-toolbar:has(.canvas-focus.on){opacity:1}.canvas-busy .canvas-viewer-toolbar:not(:has(.canvas-focus.on)){opacity:0}.react-flow__node:has(.canvas-focus.on){z-index:1000!important}.react-flow__node:has(.canvas-focus.on) .canvas-card{box-shadow:0 0 0 2px var(--canvas-accent), 0 16px 48px #0000004d}.canvas-viewer-empty,.canvas-component-error{white-space:pre-wrap;height:100%;color:var(--color-ink-3);place-items:center;padding:16px;font-size:12px;display:grid}.canvas-component-error{font-family:var(--font-mono);color:var(--color-danger);place-items:start}.canvas-component-error.overlay{background:var(--color-danger-soft);height:auto;position:absolute;inset:auto 0 0}.canvas-image{object-fit:contain;width:100%;height:100%}.canvas-text-file{-webkit-user-select:text;user-select:text;height:100%;padding:12px 16px;font-size:13px}.canvas-fit{width:100%;height:100%;overflow:clip}.canvas-fit-content{transform-origin:0 0;display:flow-root}.canvas-fit-content :is(pre,.overflow-x-auto){overflow:visible}.canvas-csv{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.canvas-csv th,.canvas-csv td{border-bottom:1px solid var(--canvas-line);text-align:left;padding:6px 8px}.canvas-csv th{color:var(--color-ink-2);font-weight:500}.canvas .react-flow__node-group,.canvas .react-flow__node-group.selected,.canvas .react-flow__node-group:focus,.canvas .react-flow__node-group:focus-visible{box-shadow:none;background:0 0;border:0;outline:none}.canvas-section{border-radius:calc(8px / var(--canvas-zoom,1));background:var(--canvas-section);box-shadow:inset 0 0 0 1px var(--canvas-line);transition-property:box-shadow,background-color;transition-duration:.15s;position:absolute;inset:0}.canvas-section.target{background:color-mix(in oklab, var(--canvas-accent) 6%, var(--canvas-section));box-shadow:inset 0 0 0 2px var(--canvas-accent)}.react-flow__node-group.selected .canvas-section{box-shadow:inset 0 0 0 1px var(--canvas-accent)}.canvas-section-label{z-index:4;max-width:calc(100% * var(--canvas-zoom,1));white-space:nowrap;text-overflow:ellipsis;color:var(--color-ink-2);cursor:grab;scale:calc(1 / var(--canvas-zoom,1));transform-origin:0 100%;padding-bottom:6px;font-size:12px;font-weight:500;position:absolute;bottom:100%;left:0;overflow:hidden}.react-flow__node.selected .canvas-section-label{color:var(--canvas-accent)}.canvas-section-label input,.canvas-edge-label input{font:inherit;color:var(--color-ink);background:0 0;border:0;outline:0;padding:0}.canvas-sticky,.canvas-text{position:absolute;inset:0}.canvas-sticky{--color-ink:oklch(23% .012 264);--color-ink-2:oklch(38% .012 264);--color-ink-3:oklch(46% .012 264);--color-surface:oklab(100% 0 5.96046e-8/.5);--color-surface-2:oklab(100% 0 5.96046e-8/.55);--color-border:color-mix(in oklab, var(--color-ink) 16%, transparent);color:var(--color-ink);border-radius:4px;padding:16px;font-size:16px;line-height:1.4;box-shadow:0 1px 2px #0000001f,0 8px 20px #0000001a}.canvas-sticky-1{background:#ffc7c2}.canvas-sticky-2{background:#ffd3a8}.canvas-sticky-3{background:#ffe08a}.canvas-sticky-4{background:#c4e8b8}.canvas-sticky-5{background:#b9e4f0}.canvas-sticky-6{background:#dcccff}.canvas-text{color:var(--color-ink);border-radius:4px;padding:2px 4px;font-size:24px;font-weight:500}.canvas-text-editor{resize:none;width:100%;height:100%;font:inherit;color:inherit;scrollbar-width:none;background:0 0;border:0;outline:0;padding:0;display:block}.canvas .react-flow__handle.canvas-dot{border:1.5px solid var(--canvas-accent);background:var(--canvas-card);opacity:0;border-radius:50%;width:8px;min-width:0;height:8px;min-height:0;transition:opacity .15s}.canvas .react-flow__node:not(.selected):hover .canvas-dot,.canvas.canvas-connecting .canvas-dot{opacity:1}.canvas.canvas-busy:not(.canvas-connecting) .canvas-dot{opacity:0}.canvas .react-flow__node-group .canvas-dot{display:none}.canvas-edge{stroke:var(--canvas-edge);stroke-width:1.5px}.canvas-edge.selected{stroke:var(--canvas-accent)}.canvas-edge-label{white-space:nowrap;color:var(--color-ink-2);background:var(--canvas-bg);pointer-events:all;border-radius:6px;padding:2px 6px;font-size:11.5px;position:absolute}.canvas-edge-label.selected{color:var(--canvas-accent)}.canvas .react-flow__edge.selected .react-flow__edgeupdater{fill:var(--canvas-card);stroke:var(--canvas-accent);stroke-width:1.5px}.canvas .react-flow__resize-control.handle.canvas-resize-handle{z-index:3;border:1px solid var(--canvas-accent);background:#fff;border-radius:1px;width:8px;height:8px}.canvas-resize-handle:after{content:"";width:40px;height:40px;position:absolute}.canvas-resize-handle.top:after{bottom:0}.canvas-resize-handle.bottom:after{top:0}.canvas-resize-handle.left:after{right:0}.canvas-resize-handle.right:after{left:0}.canvas .react-flow__resize-control.line.canvas-resize-line{z-index:2;border:0}.canvas .react-flow__resize-control.line.canvas-resize-line.left,.canvas .react-flow__resize-control.line.canvas-resize-line.right{width:calc(12px / var(--canvas-zoom,1));background:linear-gradient(var(--canvas-accent), var(--canvas-accent)) center / 1px 100% no-repeat}.canvas .react-flow__resize-control.line.canvas-resize-line.top,.canvas .react-flow__resize-control.line.canvas-resize-line.bottom{height:calc(12px / var(--canvas-zoom,1));background:linear-gradient(var(--canvas-accent), var(--canvas-accent)) center / 100% 1px no-repeat}.canvas .canvas-resize-line.left{background-position:100%;transform:translate(-100%)}.canvas .canvas-resize-line.right{background-position:0;transform:none}.canvas .canvas-resize-line.top{background-position:bottom;transform:translateY(-100%)}.canvas .canvas-resize-line.bottom{background-position:top;transform:none}.canvas .react-flow__selection,.canvas .react-flow__nodesselection-rect{border:1px solid var(--canvas-accent);background:color-mix(in oklab, var(--canvas-accent) 8%, transparent)}.canvas-dock{bottom:14px;left:calc(50% + var(--canvas-inset) / 2);background:var(--canvas-card);box-shadow:var(--canvas-float);border-radius:14px;gap:6px;padding:6px;display:flex;position:absolute;translate:-50%}.canvas-dock-group{gap:2px;display:flex}.canvas-dock-group+.canvas-dock-group{border-left:1px solid var(--canvas-line);padding-left:6px}.canvas-dock button{width:36px;height:36px;color:var(--color-ink-2);border-radius:9px;place-items:center;transition-property:background-color,color;transition-duration:.15s;display:grid;position:relative}.canvas-dock button:hover{color:var(--color-ink);background:var(--color-list-hover)}.canvas-dock button.on{color:#fff;background:var(--canvas-accent)}.canvas-dock button:after{content:attr(data-tip);white-space:pre;color:var(--color-bg);background:var(--color-ink);opacity:0;pointer-events:none;border-radius:6px;padding:4px 8px;font-size:12px;transition:opacity .15s;position:absolute;bottom:calc(100% + 10px);left:50%;translate:-50%}.canvas-dock button:hover:after{opacity:1;transition-delay:.4s}.canvas-tool-layer{z-index:4;cursor:crosshair;position:absolute;inset:0}.canvas-section-draft{background:color-mix(in oklab, var(--canvas-accent) 8%, transparent);box-shadow:inset 0 0 0 1px var(--canvas-accent);border-radius:12px;position:absolute}.canvas-map{background:var(--canvas-card);box-shadow:var(--canvas-float);border-radius:12px;margin:14px;overflow:hidden}.canvas-map .react-flow__minimap-svg{display:block}.canvas-zoom{border-top:1px solid var(--canvas-line);color:var(--color-ink-2);justify-content:space-between;align-items:center;padding:2px 4px;font-size:12px;display:flex}.canvas-zoom button{border-radius:8px;place-items:center;min-width:28px;height:28px;padding:0 6px;display:grid}.canvas-zoom button:hover{color:var(--color-ink);background:var(--color-list-hover)}.canvas-banner{top:12px;left:calc(50% + var(--canvas-inset) / 2);white-space:nowrap;height:40px;color:var(--color-ink);background:var(--canvas-card);box-shadow:var(--canvas-float);border-radius:12px;align-items:center;gap:10px;padding:0 6px 0 14px;font-size:13px;display:flex;position:absolute;translate:-50%}.canvas-banner.danger{color:var(--color-danger);padding-right:14px}.canvas-banner strong{font-weight:500}.canvas-banner-dot{background:var(--canvas-accent);border-radius:50%;width:8px;height:8px}.canvas-banner button{color:#fff;background:var(--canvas-accent);border-radius:8px;height:28px;padding:0 12px;font-weight:500}.canvas-flash{border-radius:inherit;background:color-mix(in oklab, var(--canvas-accent) 10%, transparent);box-shadow:inset 0 0 0 2px var(--canvas-accent);pointer-events:none;animation:1.4s ease-out forwards canvas-flash;position:absolute;inset:0}.react-flow__node-text>.canvas-flash{border-radius:4px}@keyframes canvas-flash{to{opacity:0}}@media (prefers-reduced-motion:reduce){.canvas-flash{animation-duration:10ms}}
