@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";.react-flow{direction:ltr}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;cursor:-webkit-grab;cursor:grab}.react-flow__pane.selection{cursor:pointer}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.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 .react-flow__edges{pointer-events:none;overflow:visible}.react-flow__edge-path,.react-flow__connection-path{stroke:#b1b1b7;stroke-width:1;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;-webkit-animation: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:focus .react-flow__edge-path,.react-flow__edge:focus-visible .react-flow__edge-path{stroke:#555}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge-textbg{fill:#fff}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;-webkit-animation:dashdraw .5s linear infinite;animation:dashdraw .5s linear infinite}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background:#1a192b;border:1px solid white;border-radius:100%}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:-4px;transform:translate(-50%)}.react-flow__handle-top{left:50%;top:-4px;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{right:-4px;top:50%;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{font-size:10px;background:#ffffff80;padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@-webkit-keyframes dashdraw{0%{stroke-dashoffset:10}}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.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-default,.react-flow__node-input,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:3px;width:150px;font-size:12px;color:#222;text-align:center;border-width:1px;border-style:solid;border-color:#1a192b;background-color:#fff}.react-flow__node-default.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:0 1px 4px 1px #00000014}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.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:0 0 0 .5px #1a192b}.react-flow__node-group{background-color:#f0f0f040}.react-flow__nodesselection-rect,.react-flow__selection{background:#0059dc14;border:1px dotted rgba(0,89,220,.8)}.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{box-shadow:0 0 2px 1px #00000014}.react-flow__controls-button{border:none;background:#fefefe;border-bottom:1px solid #eee;box-sizing:content-box;display:flex;justify-content:center;align-items:center;width:16px;height:16px;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding:5px}.react-flow__controls-button:hover{background:#f4f4f4}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__minimap{background-color:#fff}.react-flow__minimap svg{display:block}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:4px;height:4px;border:1px solid #fff;border-radius:1px;background-color:#3367d9;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:#3367d9;border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #1c1c1e;--bg-2: #242424;--bg-3: #2a2a2a;--surface: #2f2f2f;--surface-2: #363636;--surface-hover: #3a3a3a;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--border-focus: rgba(255, 53, 112, .5);--text: #f0f0f0;--text-muted: #9a9a9a;--text-dim: #5a5a5a;--accent: #FF3570;--accent-2: #e0245a;--accent-light: #ff6b9d;--accent-glow: rgba(255, 53, 112, .22);--accent-bg: rgba(255, 53, 112, .1);--success: #10b981;--error: #ef4444;--warning: #f59e0b;--radius: 8px;--radius-lg: 12px;--radius-xl: 16px;--font: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--transition-fast: .12s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1)}body{font-family:var(--font);background:var(--bg);color:var(--text);height:100vh;overflow:hidden}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px}.app{display:flex;flex-direction:column;height:100vh}.header{display:flex;align-items:center;gap:12px;padding:0 20px;height:54px;background:var(--bg-2);border-bottom:1px solid var(--border);position:relative;z-index:100;flex-shrink:0}.header-brand{display:flex;align-items:center;gap:10px}.logo-icon{width:28px;height:28px;background:var(--accent);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.88rem;flex-shrink:0}.logo{font-size:1.08rem;font-weight:800;letter-spacing:-.04em;color:var(--text)}.tagline{font-size:.68rem;color:var(--text-muted);padding:3px 9px;background:var(--surface);border:1px solid var(--border-strong);border-radius:99px;font-weight:500}.header-spacer{flex:1}.header-actions{display:flex;align-items:center;gap:5px}.main{display:flex;flex:1;overflow:hidden}.left-panel,.right-panel{width:272px;min-width:272px;background:var(--bg-2);border-right:1px solid var(--border);display:flex;flex-direction:column;gap:16px;padding:16px;overflow-y:auto}.right-panel{border-right:none;border-left:1px solid var(--border);overflow-x:hidden}.flow-canvas{flex:1;min-height:0;width:100%;background:var(--bg);position:relative}.panel-divider{height:1px;background:var(--border);margin:0 -16px}.panel-title{font-size:.66rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;display:flex;align-items:center;gap:8px}.panel-title:after{content:"";flex:1;height:1px;background:var(--border)}.prompt-input-panel{display:flex;flex-direction:column;gap:8px}.textarea-wrap{position:relative}.btn-paste{position:absolute;top:8px;right:8px;width:30px;height:30px;padding:0;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);z-index:2}.btn-paste:hover{background:var(--surface-hover);color:var(--accent);border-color:var(--border-focus)}.btn-paste:active{transform:scale(.92)}.prompt-textarea{width:100%;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);padding:10px 12px;font-size:.8rem;resize:vertical;font-family:var(--font);line-height:1.65;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.prompt-textarea::placeholder{color:var(--text-dim)}.prompt-textarea:focus{outline:none;border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-glow)}.error-msg{font-size:.72rem;color:var(--error);display:flex;align-items:flex-start;gap:6px;padding:8px 10px;background:#ef444412;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius);line-height:1.5}.btn{padding:9px 18px;border-radius:99px;border:none;font-size:.8rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);width:100%;display:flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font);letter-spacing:-.01em}.btn:disabled{opacity:.35;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-light);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0);background:var(--accent-2)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-strong);margin-bottom:6px}.btn-secondary:hover:not(:disabled){background:var(--surface-hover)}.btn-icon{width:30px;height:30px;padding:0;background:var(--surface);color:var(--text-muted);border:1px solid var(--border-strong);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.82rem;cursor:pointer;transition:all var(--transition-fast);font-family:var(--font)}.btn-icon:hover:not(:disabled){background:var(--surface-hover);color:var(--text);border-color:var(--border-focus)}.btn-icon:disabled{opacity:.28;cursor:not-allowed}.btn-locale{height:30px;padding:0 10px;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text-muted);font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:all var(--transition-fast)}.btn-locale:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-focus)}.sidebar{display:flex;flex-direction:column;gap:6px}.sidebar-hint{font-size:.67rem;color:var(--text-dim);margin-bottom:2px}.block-list{display:flex;flex-direction:column;gap:3px}.block-pill{padding:7px 11px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);font-size:.76rem;font-weight:500;cursor:pointer;text-align:left;transition:all var(--transition-fast);display:flex;align-items:center;gap:9px;font-family:var(--font);color:var(--text-muted)}.block-pill:hover{background:var(--surface-hover);color:var(--text);border-color:var(--border-strong);transform:translate(2px)}.block-pill-icon{font-size:.85rem;display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;background:var(--accent-bg);flex-shrink:0}.block-node{background:var(--bg-3);border:1px solid var(--border-strong);border-left:3px solid var(--block-color, var(--border-strong));border-radius:var(--radius);min-width:260px;max-width:320px;transition:box-shadow var(--transition-fast),border-color var(--transition-fast);animation:node-enter .2s cubic-bezier(.34,1.4,.64,1);overflow:visible;position:relative}@keyframes node-enter{0%{opacity:0;transform:scale(.9) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.block-node:hover{box-shadow:0 4px 20px #00000073;border-color:#ffffff2e;border-left-color:var(--block-color, var(--border-strong))}.block-node.selected{box-shadow:0 0 0 1.5px var(--block-color, var(--accent)),0 6px 24px #00000080;border-left-color:var(--block-color, var(--accent))}.block-header{display:flex;justify-content:space-between;align-items:center;padding:8px 8px 8px 12px;border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;border-bottom:1px solid var(--border);background:#ffffff05}.block-header-left{display:flex;align-items:flex-start;gap:8px;min-width:0;flex:1}.block-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:5px;background:color-mix(in srgb,var(--block-color, #fff) 14%,transparent);color:var(--block-color, var(--text-muted));flex-shrink:0}.block-label-wrap{display:flex;flex-direction:column;gap:1px;min-width:0}.block-label{font-size:.66rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.09em;word-break:break-word}.block-type-badge{font-size:.52rem;font-weight:600;color:var(--block-color, var(--text-dim));text-transform:uppercase;letter-spacing:.06em;opacity:.7}.block-actions{display:flex;align-items:center;gap:2px;flex-shrink:0;margin-left:4px}.block-collapse,.block-remove{background:none;border:none;color:var(--text-dim);cursor:pointer;font-size:.68rem;line-height:1;padding:4px 5px;border-radius:5px;transition:all var(--transition-fast)}.block-collapse:hover{background:var(--surface-2);color:var(--text-muted)}.block-remove:hover{background:#ef44441f;color:var(--error)}.block-body{animation:expand-body .14s ease-out}@keyframes expand-body{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.block-content{width:100%;background:transparent;border:none;color:var(--text);padding:10px 12px 6px 16px;font-size:.78rem;resize:none;font-family:var(--font);line-height:1.65;min-height:60px;display:block}.block-content::placeholder{color:var(--text-dim)}.block-content:focus{outline:none}.block-footer{padding:3px 12px 8px 16px;display:flex;justify-content:flex-end}.block-char-count{font-size:.6rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.block-node[data-block-type=input]{border-radius:20px 20px var(--radius) var(--radius);border-top:3px solid var(--block-color);border-right:1px solid var(--block-color);border-left:1px solid var(--block-color)}.block-node[data-block-type=input] .block-header{border-radius:18px 18px 0 0}.block-node[data-block-type=input] .block-icon{background:color-mix(in srgb,var(--block-color) 22%,transparent)}.block-node[data-block-type=output_format]{border-radius:var(--radius) var(--radius) 20px 20px;border-bottom:3px solid var(--block-color);border-right:1px solid var(--block-color);border-left:1px solid var(--block-color)}.block-node[data-block-type=output_format] .block-icon{background:color-mix(in srgb,var(--block-color) 22%,transparent)}.block-node[data-block-type=role]{background:transparent;border-color:transparent;border-left-color:transparent;min-width:280px}.block-node[data-block-type=role]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--block-color);clip-path:polygon(8% 0%,92% 0%,100% 50%,92% 100%,8% 100%,0% 50%);z-index:0}.block-node[data-block-type=role]:after{content:"";position:absolute;top:.5px;right:.5px;bottom:.5px;left:.5px;background:var(--bg-3);clip-path:polygon(8% 0%,92% 0%,100% 50%,92% 100%,8% 100%,0% 50%);z-index:0}.block-node[data-block-type=role] .block-header,.block-node[data-block-type=role] .block-body{position:relative;z-index:1}.block-node[data-block-type=role] .block-header{background:transparent;padding-left:36px;padding-right:32px;border-bottom:none;background-image:linear-gradient(var(--border),var(--border));background-size:calc(100% - 52px) 1px;background-position:center bottom;background-repeat:no-repeat}.block-node[data-block-type=role] .block-content,.block-node[data-block-type=role] .block-footer{padding-left:38px;padding-right:36px}.block-node[data-block-type=role]:hover{border-color:transparent;box-shadow:none}.block-node[data-block-type=role]:hover:before{filter:drop-shadow(0 0 4px var(--block-color))}.block-node[data-block-type=role].selected{border-color:transparent;box-shadow:none}.block-node[data-block-type=role].selected:before{filter:drop-shadow(0 0 6px var(--block-color))}.block-node[data-block-type=context]{transform:skew(-6deg)}.block-node[data-block-type=context]>*{transform:skew(6deg)}.block-node[data-block-type=objective]{border-width:2px;border-left:5px solid var(--block-color);border-right:5px solid var(--block-color)}.block-node[data-block-type=constraints]{background:transparent;border-color:transparent;border-left-color:transparent;min-width:280px}.block-node[data-block-type=constraints]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--block-color);clip-path:polygon(10% 0%,90% 0%,100% 18%,100% 82%,90% 100%,10% 100%,0% 82%,0% 18%);z-index:0}.block-node[data-block-type=constraints]:after{content:"";position:absolute;top:1.5px;right:1.5px;bottom:1.5px;left:1.5px;background:var(--bg-3);clip-path:polygon(10% 0%,90% 0%,100% 18%,100% 82%,90% 100%,10% 100%,0% 82%,0% 18%);z-index:0}.block-node[data-block-type=constraints] .block-header,.block-node[data-block-type=constraints] .block-body{position:relative;z-index:1}.block-node[data-block-type=constraints] .block-header{background:transparent;padding-left:34px;padding-right:30px;border-bottom:none;background-image:linear-gradient(var(--border),var(--border));background-size:calc(100% - 48px) 1px;background-position:center bottom;background-repeat:no-repeat}.block-node[data-block-type=constraints] .block-content,.block-node[data-block-type=constraints] .block-footer{padding-left:36px;padding-right:34px}.block-node[data-block-type=constraints]:hover{border-color:transparent;box-shadow:none}.block-node[data-block-type=constraints]:hover:before{filter:drop-shadow(0 0 4px var(--block-color))}.block-node[data-block-type=constraints].selected{border-color:transparent;box-shadow:none}.block-node[data-block-type=constraints].selected:before{filter:drop-shadow(0 0 6px var(--block-color))}.block-node[data-block-type=examples]{border-style:dashed;border-left:1px dashed var(--border-strong)}.block-node[data-block-type=examples]:before{content:"";position:absolute;top:0;bottom:0;left:0;width:2px;background:repeating-linear-gradient(to bottom,var(--block-color) 0px,var(--block-color) 4px,transparent 4px,transparent 8px)}.block-node[data-block-type=examples]:after{content:"";position:absolute;top:0;bottom:0;right:0;width:2px;background:repeating-linear-gradient(to bottom,var(--block-color) 0px,var(--block-color) 4px,transparent 4px,transparent 8px)}.block-node[data-block-type=chain_of_thought]{border-radius:var(--radius-xl);border-left-width:3px}.block-node[data-block-type=chain_of_thought] .block-header{border-radius:calc(var(--radius-xl) - 1px) calc(var(--radius-xl) - 1px) 0 0}.block-node[data-block-type=language]{border-radius:99px;border:1.5px solid var(--block-color);border-left:1.5px solid var(--block-color);min-width:auto;max-width:none;overflow:visible}.block-node--language .language-block-inner{display:flex;align-items:center;gap:8px;padding:6px 8px 6px 10px}.block-node--language .block-icon{background:color-mix(in srgb,var(--block-color) 22%,transparent);width:22px;height:22px;flex-shrink:0}.block-node--language .block-label{font-size:.66rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.09em;white-space:nowrap;flex-shrink:0}.language-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;color:var(--text);font-family:var(--font);font-size:.76rem;font-weight:600;padding:4px 24px 4px 8px;cursor:pointer;outline:none;transition:border-color var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239a9a9a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;min-width:90px}.language-select:focus{border-color:var(--border-focus);box-shadow:0 0 0 2px var(--accent-glow)}.language-select option{background:var(--bg-3);color:var(--text)}.block-node--language .block-remove{margin-left:2px;flex-shrink:0}.prompt-output-panel{display:flex;flex-direction:column;gap:8px;flex:1}.output-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.token-badge{font-size:.66rem;font-weight:600;background:var(--accent);color:#fff;padding:2px 10px;border-radius:99px;font-variant-numeric:tabular-nums}.compiled-output{flex:1;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:12px;font-size:.73rem;overflow-y:auto;overflow-x:hidden;color:var(--text);max-height:280px;font-family:var(--font-mono);line-height:1.75;animation:fade-in .2s ease;word-break:break-word;overflow-wrap:break-word;white-space:pre-wrap}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.output-placeholder{font-size:.76rem;color:var(--text-muted);flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px 16px;border:1px dashed var(--border-strong);border-radius:var(--radius);min-height:100px;line-height:1.6}.output-placeholder-icon{font-size:2rem;opacity:.2}.main.is-decomposing .left-panel,.main.is-decomposing .right-panel{pointer-events:none;opacity:.4}.loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;z-index:10;background:#1c1c1ed9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:fade-in .2s ease}.loading-content{display:flex;flex-direction:column;align-items:center;gap:16px}.loading-spinner{color:var(--accent);animation:fade-in .3s ease}.loading-text{font-size:.82rem;font-weight:600;color:var(--text-muted);letter-spacing:.02em}.loading-blocks{display:flex;align-items:center;gap:8px;margin-top:6px}.loading-block-pill{width:36px;height:6px;border-radius:99px;background:var(--accent);animation:loading-pill 1.6s ease-in-out infinite}@keyframes loading-pill{0%,to{opacity:.12;transform:scaleX(.7)}50%{opacity:.6;transform:scaleX(1)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.prompt-textarea:focus-visible{outline:none}.block-content:focus-visible{outline:none}.canvas-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none;z-index:5;animation:fade-in .4s ease}.canvas-empty-icon{font-size:2.6rem;opacity:.07;line-height:1}.canvas-empty-title{font-size:.85rem;font-weight:700;color:var(--text-dim);letter-spacing:-.01em}.canvas-empty-hint{font-size:.73rem;color:var(--text-dim);text-align:center;line-height:1.7;max-width:280px}.canvas-empty-hint strong{color:var(--text-muted)}.canvas-fab{display:none;position:absolute;bottom:16px;right:16px;z-index:10;width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;align-items:center;justify-content:center;background:var(--accent);color:#fff;box-shadow:0 4px 16px #ff357066;transition:transform var(--transition-fast),background var(--transition-fast)}.canvas-fab:active{transform:scale(.9)}.canvas-fab:hover{background:var(--accent-light)}@media (max-width: 768px){.canvas-fab{display:flex}}.btn-clear-desktop{color:var(--text-muted);border-color:var(--border-strong)}.btn-clear-desktop:hover{color:var(--error);background:#ef44441a;border-color:#ef444440}.compile-loading{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px 16px;animation:fade-in .2s ease}.compile-loading-icon{color:var(--accent);animation:compile-bounce 1.2s ease-in-out infinite}@keyframes compile-bounce{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.2) rotate(-8deg)}50%{transform:scale(.9) rotate(6deg)}75%{transform:scale(1.1) rotate(-4deg)}}.compile-sparkle{filter:drop-shadow(0 0 8px var(--accent))}.compile-loading-text{font-size:.78rem;font-weight:600;color:var(--text-muted);letter-spacing:.02em}.compile-loading-dots{display:flex;gap:6px}.compile-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);animation:compile-dot-jump .8s ease-in-out infinite}@keyframes compile-dot-jump{0%,to{transform:translateY(0);opacity:.3}50%{transform:translateY(-10px);opacity:1}}.backend-status{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:99px;border:1px solid var(--border-strong);font-size:.67rem;font-weight:500;background:var(--surface);margin-right:6px}.backend-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.backend-status--online .backend-dot{background:#10b981;box-shadow:0 0 5px #10b981;animation:pulse-dot 2s infinite}.backend-status--online .backend-label{color:#10b981}.backend-status--offline .backend-dot{background:var(--error)}.backend-status--offline .backend-label{color:var(--error)}.backend-status--checking .backend-dot{background:var(--text-dim);animation:pulse-dot .9s infinite}.backend-status--checking .backend-label{color:var(--text-dim)}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.35}}.node-count{font-size:.67rem;color:var(--text-muted);padding:3px 9px;background:var(--surface);border:1px solid var(--border-strong);border-radius:99px;margin-right:4px;font-variant-numeric:tabular-nums;font-weight:500}.export-actions{display:flex;flex-direction:column;gap:5px;margin-bottom:6px}.export-copy{width:100%;margin-bottom:0!important}.export-row2{display:flex;gap:5px}.export-row2 .btn{flex:1;margin-bottom:0!important}.export-btn{font-size:.76rem!important}.tab-bar{display:none}.canvas-wrap{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column;min-width:0}.react-flow__background{background:var(--bg)!important}.react-flow__background pattern circle{fill:#ffffff0f!important}@media (max-width: 1024px){.left-panel,.right-panel{width:240px;min-width:240px;padding:14px;gap:14px}.panel-divider{margin:0 -14px}.tagline{display:none}}@media (max-width: 768px){body{overflow:hidden}.app{height:100dvh}.header{padding:0 14px;height:48px}.hide-mobile{display:none}.main{flex-direction:column;flex:1;overflow:hidden;position:relative}.left-panel,.right-panel{width:100%;min-width:unset;flex:1;min-height:0;border-right:none;border-left:none;border-bottom:none;overflow-y:auto;padding:16px}.canvas-wrap{flex:1;width:100%;min-height:0}.canvas-wrap .flow-canvas{height:100%;width:100%}.panel-hidden{display:none!important}.tab-bar{display:flex;align-items:stretch;background:var(--bg-2);border-top:1px solid var(--border);flex-shrink:0;z-index:200;padding-bottom:env(safe-area-inset-bottom,0px)}.tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:10px 6px;background:none;border:none;color:var(--text-dim);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font);position:relative}.tab-btn--active{color:var(--accent)}.tab-btn--active:before{content:"";position:absolute;top:0;left:20%;right:20%;height:2px;background:var(--accent);border-radius:0 0 99px 99px}.tab-icon{font-size:1.1rem;line-height:1}.tab-label{font-size:.61rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.block-list{display:grid;grid-template-columns:1fr 1fr;gap:5px}.compiled-output{max-height:45vh}.skeleton-block{width:140px;height:90px}.react-flow__minimap{display:none!important}.react-flow__edgedrag,.react-flow__connection{z-index:1!important}}@media (max-width: 380px){.block-list{grid-template-columns:1fr}.header-actions{gap:4px}.btn-icon{width:26px;height:26px;font-size:.75rem}}@keyframes edge-flow{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.edge-delete-btn{z-index:10}.edge-delete-btn button{width:22px;height:22px;border-radius:50%;border:1.5px solid rgba(239,68,68,.5);background:var(--bg-2);color:var(--error);font-size:.65rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.edge-delete-btn button:hover{background:#ef444426;border-color:var(--error);transform:scale(1.2)}@media (max-width: 768px){.edge-delete-btn button{width:34px;height:34px;font-size:.85rem;border-width:2px;background:#1c1c1ef2;box-shadow:0 2px 8px #00000080}}.autosave-indicator{font-size:.63rem;color:var(--text-dim);font-variant-numeric:tabular-nums;padding:3px 9px;background:var(--surface);border:1px solid var(--border);border-radius:99px;white-space:nowrap;animation:fade-in .3s ease}.shortcuts-btn{font-size:.75rem;font-weight:700;font-family:var(--font-mono)}.shortcuts-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:999;background:#0009;display:flex;align-items:center;justify-content:center;animation:fade-in .15s ease}.shortcuts-modal{background:var(--bg-3);border:1px solid var(--border-strong);border-radius:var(--radius-xl);padding:20px;min-width:320px;max-width:90vw;box-shadow:0 24px 64px #000000b3;animation:scale-in .15s ease}@keyframes scale-in{0%{transform:scale(.94);opacity:0}to{transform:scale(1);opacity:1}}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.shortcuts-title{font-size:.85rem;font-weight:700;color:var(--text)}.shortcuts-list{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.shortcut-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.shortcut-keys{display:flex;align-items:center;gap:4px;flex-shrink:0}.shortcut-key{display:inline-flex;align-items:center;justify-content:center;padding:2px 7px;background:var(--surface-2);border:1px solid var(--border-strong);border-radius:5px;font-family:var(--font-mono);font-size:.65rem;font-weight:600;color:var(--text-muted);white-space:nowrap;min-width:24px}.shortcut-label{font-size:.75rem;color:var(--text-muted);text-align:right}.shortcuts-hint{font-size:.66rem;color:var(--text-dim);text-align:center;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}@keyframes spin{to{transform:rotate(360deg)}}.icon-spin{animation:spin .8s linear infinite}.btn svg,.btn-icon svg{display:block;flex-shrink:0}.autosave-indicator{display:flex;align-items:center;gap:5px}.output-placeholder-icon{opacity:.2}.tab-btn .tab-icon{display:block}.react-flow__node{overflow:visible!important}.react-flow__controls{background:var(--bg-3)!important;border:1px solid var(--border-strong)!important;border-radius:var(--radius)!important;box-shadow:0 4px 16px #0006!important}.react-flow__controls-button{background:transparent!important;border:none!important;border-bottom:1px solid var(--border)!important;color:var(--text-muted)!important;fill:var(--text-muted)!important}.react-flow__controls-button:hover{background:var(--surface-hover)!important;fill:var(--accent)!important}.react-flow__controls-button:last-child{border-bottom:none!important}.react-flow__minimap{background:var(--bg-3)!important;border:1px solid var(--border-strong)!important;border-radius:var(--radius)!important}.react-flow__handle{background:var(--accent)!important;border:2px solid var(--bg-3)!important;width:12px!important;height:12px!important;z-index:10!important;translate:-50% -50%!important;transition:transform .15s ease,background .15s ease,box-shadow .15s ease}.react-flow__handle-top{top:0!important;left:50%!important}.react-flow__handle-bottom{top:100%!important;left:50%!important}.react-flow__handle:hover{background:var(--accent-light)!important;transform:scale(1.8)}@media (max-width: 768px){.react-flow__handle{width:16px!important;height:16px!important;border-width:2px!important;z-index:10!important}.react-flow__handle:hover{transform:scale(1.5)}.react-flow.connecting .react-flow__handle{transform:scale(1.8);background:var(--accent-light)!important;box-shadow:0 0 10px var(--accent-glow)}}
