.drawflow,.drawflow .parent-node{position:relative}.parent-drawflow{display:flex;overflow:hidden;touch-action:none;outline:0}.drawflow{width:100%;height:100%;-webkit-user-select:none;user-select:none;perspective:0}.drawflow .drawflow-node{display:flex;align-items:center;position:absolute;background:#0ff;width:160px;min-height:40px;border-radius:4px;border:2px solid #000;color:#000;z-index:2;padding:15px}.drawflow .drawflow-node.selected{background:red}.drawflow .drawflow-node:hover{cursor:move}.drawflow .drawflow-node .inputs,.drawflow .drawflow-node .outputs{width:0}.drawflow .drawflow-node .drawflow_content_node{width:100%;display:block}.drawflow .drawflow-node .input,.drawflow .drawflow-node .output{position:relative;width:20px;height:20px;background:#fff;border-radius:50%;border:2px solid #000;cursor:crosshair;z-index:1;margin-bottom:5px}.drawflow .drawflow-node .input{left:-27px;top:2px;background:#ff0}.drawflow .drawflow-node .output{right:-3px;top:2px}.drawflow svg{z-index:0;position:absolute;overflow:visible!important}.drawflow .connection{position:absolute;pointer-events:none;aspect-ratio:1/1}.drawflow .connection .main-path{fill:none;stroke-width:5px;stroke:#4682b4;pointer-events:all}.drawflow .connection .main-path:hover{stroke:#1266ab;cursor:pointer}.drawflow .connection .main-path.selected{stroke:#43b993}.drawflow .connection .point{cursor:move;stroke:#000;stroke-width:2;fill:#fff;pointer-events:all}.drawflow .connection .point.selected,.drawflow .connection .point:hover{fill:#1266ab}.drawflow .main-path{fill:none;stroke-width:5px;stroke:#4682b4}.drawflow-delete{position:absolute;display:block;width:30px;height:30px;background:#000;color:#fff;z-index:4;border:2px solid #fff;line-height:30px;font-weight:700;text-align:center;border-radius:50%;font-family:monospace;cursor:pointer}.drawflow>.drawflow-delete{margin-left:-15px;margin-top:15px}.parent-node .drawflow-delete{right:-15px;top:-15px}.workflow-builder{--primary: #02514a;--primary-hover: #013d38;--bg-body: #F8FAFC;--bg-white: #FFFFFF;--bg-sidebar: #FFFFFF;--bg-canvas: #F1F5F9;--text-dark: #1E293B;--text-medium: #64748B;--text-light: #94A3B8;--border: #E2E8F0;--border-dark: #CBD5E1;--node-bg: #FFFFFF;--node-border: #E2E8F0;--node-shadow: 0 1px 3px rgba(0,0,0,.1);--connection-color: #94A3B8;--dot-color: #02514a;--header-height: 56px;--sidebar-width: 240px;--properties-width: 280px;--radius: 8px}.workflow-builder.theme-dark{--bg-body: #0F172A;--bg-white: #1E293B;--bg-sidebar: #1E293B;--bg-canvas: #0F172A;--text-dark: #F1F5F9;--text-medium: #94A3B8;--text-light: #64748B;--border: #334155;--border-dark: #475569;--node-bg: #1E293B;--node-border: #334155;--node-shadow: 0 1px 3px rgba(0,0,0,.3);--connection-color: #64748B}.workflow-builder{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;color:var(--text-dark);background:var(--bg-body);width:100%;height:100vh;overflow:hidden}.workflow-wrapper{display:flex;flex-direction:column;height:100%}.workflow-main{display:flex;flex:1;overflow:hidden}.workflow-header{display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 20px;background:var(--bg-white);border-bottom:1px solid var(--border)}.workflow-title{display:flex;align-items:center;gap:10px}.workflow-title-link{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.workflow-title-link:hover{opacity:.8}.workflow-icon{width:36px;height:36px;background:#02514a;color:#fff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.workflow-title h1{margin:0;font-size:16px;font-weight:600;color:var(--text-dark)}.workflow-actions{display:flex;gap:8px;align-items:center}.dropdown{position:relative}.dropdown-toggle{display:flex;align-items:center;gap:6px}.dropdown-arrow{font-size:10px;transition:transform .2s}.dropdown.open .dropdown-arrow{transform:rotate(180deg)}.dropdown-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--bg-white);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #00000026;min-width:200px;z-index:1000;opacity:0;visibility:hidden;transform:translateY(-8px);transition:all .2s ease}.dropdown-menu.visible{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{padding:10px 14px;font-size:13px;color:var(--text-dark);cursor:pointer;transition:background .15s}.dropdown-item:first-child{border-radius:8px 8px 0 0}.dropdown-item:last-child{border-radius:0 0 8px 8px}.dropdown-item:hover{background:var(--bg-sidebar)}.dropdown-item.active{background:var(--primary);color:#fff;font-weight:500}.dropdown-item.active:hover{background:var(--primary-hover)}.dropdown-divider{height:1px;background:var(--border);margin:6px 0}.shortcuts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.shortcut{display:flex;align-items:center;gap:8px}.shortcut kbd{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;padding:0 6px;background:var(--bg-body);border:1px solid var(--border);border-radius:4px;font-family:inherit;font-size:11px;font-weight:500;color:var(--text-dark);box-shadow:0 1px 2px #0000000d}.shortcut span{color:var(--text-muted);font-size:12px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:all .15s;background:var(--bg-white);color:var(--text-dark)}.btn:hover{background:var(--bg-body);border-color:var(--border-dark)}.btn-primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-white)}.btn-danger{color:#dc2626;border-color:#fca5a5}.btn-danger:hover{background:#fef2f2}.btn-small{padding:6px 10px;font-size:12px}.btn-icon{font-size:14px}.workflow-sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:16px;border-bottom:1px solid var(--border)}.sidebar-header h2{margin:0 0 4px;font-size:12px;font-weight:600;color:var(--text-medium);text-transform:uppercase;letter-spacing:.5px}.sidebar-hint{font-size:11px;color:var(--text-light)}.node-palette{flex:1;overflow-y:auto;padding:12px}.node-item{display:flex;align-items:center;gap:10px;padding:10px;margin-bottom:6px;background:var(--bg-body);border:1px solid transparent;border-radius:var(--radius);cursor:grab;transition:all .15s}.node-item:hover{border-color:var(--primary);background:var(--bg-white)}.node-item:active,.node-item.dragging{cursor:grabbing;opacity:.6}.node-item-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:1px solid var(--border);border-radius:4px;font-size:11px;font-weight:600;color:#666}.node-item-info{flex:1;min-width:0}.node-item-name{display:block;font-size:13px;font-weight:500;color:var(--text-dark)}.node-item-desc{display:block;font-size:11px;color:var(--text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.workflow-canvas-container{flex:1;display:flex;flex-direction:column;overflow:visible}.canvas-toolbar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--bg-white);border-bottom:1px solid var(--border);overflow:visible;z-index:100}.zoom-controls,.history-controls,.toggle-controls,.execution-controls{display:flex;align-items:center;gap:4px;overflow:visible}.zoom-level{min-width:45px;text-align:center;font-size:12px;font-weight:500;color:var(--text-medium)}.toolbar-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--bg-body);border:1px solid var(--border);border-radius:4px;font-size:14px;cursor:pointer;color:var(--text-medium)}.toolbar-btn:hover:not(:disabled){background:var(--bg-white);border-color:var(--border-dark);color:var(--text-dark)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.workflow-canvas{flex:1;overflow:hidden;position:relative}#drawflow-canvas{width:100%;height:100%;position:relative;overflow:hidden}.workflow-properties{width:var(--properties-width);background:var(--bg-white);border-left:1px solid var(--border);display:flex;flex-direction:column}.properties-header{padding:16px;border-bottom:1px solid var(--border)}.properties-header h2{margin:0;font-size:12px;font-weight:600;color:var(--text-medium);text-transform:uppercase;letter-spacing:.5px}.properties-content{flex:1;overflow-y:auto;padding:16px}.properties-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:150px;text-align:center;color:var(--text-light)}.empty-icon{font-size:32px;margin-bottom:8px;opacity:.4}.properties-empty p{margin:0;font-size:13px}.properties-node-info{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg-body);border-radius:var(--radius);margin-bottom:16px}.properties-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f5f5f5;border:1px solid var(--border);border-radius:4px;font-size:12px;font-weight:600;color:#666}.properties-name{font-weight:600;color:var(--text-dark)}.properties-fields{display:flex;flex-direction:column;gap:14px}.property-field label{display:block;font-size:12px;font-weight:500;color:var(--text-medium);margin-bottom:5px}.property-field input,.property-field select,.property-field textarea{width:100%;padding:8px 10px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--bg-white);color:var(--text-dark)}.property-field input:focus,.property-field select:focus,.property-field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 2px #02514a1a}.property-field textarea{min-height:70px;resize:vertical}.properties-actions{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.no-properties{font-size:12px;color:var(--text-light);font-style:italic}.properties-section{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.properties-section h4{font-size:12px;font-weight:600;color:var(--text-medium);margin-bottom:10px;text-transform:uppercase;letter-spacing:.5px}.config-summary{background:#f8f9fc;border-radius:6px;padding:10px;margin-bottom:10px;font-size:12px;max-height:150px;overflow-y:auto}.config-summary-row{padding:4px 0;border-bottom:1px solid #e5e7eb}.config-summary-row:last-child{border-bottom:none}.config-key{font-weight:600;color:var(--text-dark)}.config-val{color:var(--text-medium);word-break:break-all}.config-empty-msg{color:var(--text-light);font-style:italic}.workflow-footer{display:flex;align-items:center;justify-content:space-between;height:32px;padding:0 16px;background:var(--bg-white);border-top:1px solid var(--border);font-size:11px;color:var(--text-light)}.status-left{display:flex;gap:16px}.status-message{color:var(--text-medium)}.workflow-node{min-width:180px;max-width:220px;background:#fff;border:1px solid #D4D4D4;border-radius:8px;box-shadow:0 2px 6px #00000014;position:relative}.workflow-node.icon-only{min-width:79px;max-width:79px;width:79px;height:79px;display:flex;align-items:center;justify-content:center;padding:0;border-radius:12px}.node-icon-large{width:40px;height:40px;display:flex;align-items:center;justify-content:center}.node-icon-large svg{width:36px;height:36px}.drawflow .drawflow-node .workflow-node.icon-only~.inputs .input,.drawflow .drawflow-node:has(.workflow-node.icon-only) .input{left:-10px!important}.drawflow .drawflow-node .workflow-node.icon-only~.outputs .output,.drawflow .drawflow-node:has(.workflow-node.icon-only) .output{right:62px!important}.node-header{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #EEEEEE}.node-header:only-child{border-bottom:none}.node-icon{width:26px;height:26px;min-width:26px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;border:1px solid #D4D4D4;border-radius:5px;font-size:11px;font-weight:700;color:#555;flex-shrink:0}.node-icon svg{width:16px;height:16px;color:#555}.node-label{font-size:14px;font-weight:600;color:#333}.node-body{padding:0 14px 10px}.node-field{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.node-field:last-child{margin-bottom:0}.node-field label{font-size:11px;color:#777;font-weight:500}.node-field input,.node-field select{width:100%;padding:7px 10px;font-size:12px;border:1px solid #DDD;border-radius:5px;background:#fafafa;color:#333;font-family:inherit}.node-field textarea{width:100%;padding:7px 10px;font-size:12px;border:1px solid #DDD;border-radius:5px;background:#fafafa;color:#333;font-family:inherit;min-height:50px;resize:vertical}.node-field input:focus,.node-field select:focus,.node-field textarea:focus{outline:none;border-color:#02514a;background:#fff}.node-field input[type=checkbox]{width:auto}.node-field-hint{font-size:11px;color:#999}#drawflow-canvas{background-color:#f8fafc!important;background-image:radial-gradient(circle,#D1D5DB 1px,transparent 1px)!important;background-size:20px 20px!important}.drawflow{background:transparent!important}.drawflow .drawflow-node{background:transparent!important;border:none!important;box-shadow:none!important}.drawflow .drawflow-node.selected .workflow-node{border-color:#02514a!important;box-shadow:0 0 0 2px #02514a33!important}.drawflow .drawflow-node .input{left:-7px!important;top:0!important;width:18px!important;height:18px!important;background:#fff!important;border:2px solid #94A3B8!important;border-radius:50%!important;cursor:crosshair!important}.drawflow .drawflow-node .output{right:-42px!important;top:0!important;width:18px!important;height:18px!important;background:#fff!important;border:2px solid #94A3B8!important;border-radius:50%!important;cursor:crosshair!important}.drawflow .drawflow-node .input:hover,.drawflow .drawflow-node .output:hover{border-color:#5a8dee!important;background:#5a8dee!important}.drawflow .connection .main-path{stroke:#5a8dee;stroke-width:2px;cursor:pointer;pointer-events:stroke}.drawflow .connection:hover .main-path,.drawflow .connection.selected .main-path{stroke:#3b7ddd}.drawflow .drawflow-node[data-type=condition] .outputs .output:first-child,.drawflow .drawflow-node[data-type=if] .outputs .output:first-child,.drawflow .drawflow-node[data-type=decision] .outputs .output:first-child{border-color:#22c55e!important}.drawflow .drawflow-node[data-type=condition] .outputs .output:first-child:hover,.drawflow .drawflow-node[data-type=if] .outputs .output:first-child:hover,.drawflow .drawflow-node[data-type=decision] .outputs .output:first-child:hover{border-color:#22c55e!important;background:#22c55e!important}.drawflow .drawflow-node[data-type=condition] .outputs .output:last-child,.drawflow .drawflow-node[data-type=if] .outputs .output:last-child,.drawflow .drawflow-node[data-type=decision] .outputs .output:last-child{border-color:#ef4444!important}.drawflow .drawflow-node[data-type=condition] .outputs .output:last-child:hover,.drawflow .drawflow-node[data-type=if] .outputs .output:last-child:hover,.drawflow .drawflow-node[data-type=decision] .outputs .output:last-child:hover{border-color:#ef4444!important;background:#ef4444!important}.drawflow .connection.condition-true .main-path{stroke:#22c55e}.drawflow .connection.condition-false .main-path{stroke:#ef4444}.drawflow .connection.exec-taken .main-path,.drawflow svg.connection.exec-taken .main-path{stroke:#22c55e!important;stroke-width:3px!important;filter:drop-shadow(0 0 4px rgba(34,197,94,.5))!important;opacity:1!important}.drawflow .connection.exec-not-taken .main-path,.drawflow svg.connection.exec-not-taken .main-path{stroke:#9ca3af!important;stroke-width:2px!important;opacity:.5!important;filter:none!important}.drawflow svg.connection{pointer-events:none;overflow:visible}.drawflow svg.connection .main-path{pointer-events:stroke;cursor:pointer}.drawflow .drawflow-delete{display:none!important}.workflow-builder ::-webkit-scrollbar{width:6px}.workflow-builder ::-webkit-scrollbar-track{background:transparent}.workflow-builder ::-webkit-scrollbar-thumb{background:var(--border-dark);border-radius:3px}@media (max-width: 900px){.workflow-properties{display:none}.workflow-minimap{display:none!important}}@media (max-width: 700px){.workflow-sidebar{display:none}}.workflow-builder.is-touch .toolbar-btn{min-width:40px;min-height:40px}.workflow-builder.is-touch .btn{min-height:40px;padding:10px 16px}.workflow-builder.is-touch .drawflow .drawflow-node .input,.workflow-builder.is-touch .drawflow .drawflow-node .output{width:22px!important;height:22px!important;border-width:3px!important}.workflow-builder.is-touch .node-item:hover{background:transparent;border-color:var(--border)}.workflow-builder.is-touch .node-item:active{background:var(--bg-body);border-color:var(--primary)}.workflow-builder.is-touch .workflow-canvas,.workflow-builder.is-touch .node-item,.workflow-builder.is-touch .drawflow-node{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.workflow-builder.is-mobile .workflow-header{padding:0 12px;gap:6px}.workflow-builder.is-mobile .workflow-title h1{font-size:14px}.workflow-builder.is-mobile .workflow-icon{width:32px;height:32px;font-size:11px}.workflow-builder.is-mobile .canvas-toolbar{padding:6px 8px;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.workflow-builder.is-mobile .canvas-toolbar::-webkit-scrollbar{display:none}.workflow-builder.is-mobile .toolbar-btn{width:34px;height:34px;font-size:14px;flex-shrink:0}.workflow-builder.is-mobile .zoom-level{min-width:45px;font-size:12px}.workflow-builder.is-mobile .node-item{padding:12px;min-height:48px}.workflow-builder.is-mobile .workflow-footer{padding:10px 12px;font-size:12px}.sidebar-search{padding:12px 16px;border-bottom:1px solid var(--border)}.sidebar-search input{width:100%;padding:8px 12px;font-size:13px;border:1px solid var(--border);border-radius:6px;background:var(--bg-body);color:var(--text-dark);outline:none}.sidebar-search input:focus{border-color:var(--primary);box-shadow:0 0 0 2px #02514a1a}.sidebar-search input::placeholder{color:var(--text-light)}.workflow-context-menu{position:fixed;z-index:1000;min-width:160px;background:var(--bg-white);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #00000026;padding:6px 0;opacity:0;visibility:hidden;transform:scale(.95);transition:all .1s ease}.workflow-context-menu.visible{opacity:1;visibility:visible;transform:scale(1)}.context-menu-item{padding:8px 14px;font-size:13px;color:var(--text-dark);cursor:pointer;transition:background .1s}.context-menu-item:hover{background:var(--bg-body)}.context-menu-item.disabled{color:var(--text-light);pointer-events:none}.context-menu-item.context-menu-danger{color:#dc2626}.context-menu-item.context-menu-danger:hover{background:#fef2f2}.context-menu-divider{height:1px;background:var(--border);margin:6px 0}.context-menu-submenu{position:relative}.context-menu-submenu .submenu-arrow{float:right;font-size:10px;opacity:.5}.context-submenu{position:absolute;left:100%;top:-6px;min-width:180px;background:var(--bg-white);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #00000026;padding:10px;opacity:0;visibility:hidden;transform:translate(-10px);transition:all .15s ease}.context-menu-submenu:hover .context-submenu{opacity:1;visibility:visible;transform:translate(0)}.color-picker-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:10px}.color-swatch{width:28px;height:28px;border-radius:6px;cursor:pointer;border:2px solid transparent;transition:all .15s ease}.color-swatch:hover{transform:scale(1.15);border-color:var(--text-dark);box-shadow:0 2px 8px #0003}.color-picker-custom{display:flex;align-items:center;gap:8px;padding-top:8px;border-top:1px solid var(--border)}.color-picker-custom input[type=color]{width:32px;height:28px;border:none;border-radius:4px;cursor:pointer;padding:0}.color-picker-custom span{font-size:12px;color:var(--text-medium)}.drawflow-node.custom-color .workflow-node{border-color:var(--node-color, var(--node-border));box-shadow:0 0 0 1px var(--node-color, transparent)}.drawflow-node.custom-color .workflow-node .node-header{background:var(--node-color, var(--primary))}.drawflow-node.custom-color .workflow-node .node-icon{color:#fff;background:#fff3}.drawflow-node.custom-color .workflow-node .node-label{color:#fff}.comment-node-wrapper .workflow-node.comment-node{min-width:160px;min-height:100px;width:180px;height:120px;background:linear-gradient(135deg,#fef9c3,#fef08a);border:none;border-radius:2px;box-shadow:2px 2px 6px #00000014,0 0 0 1px #eab30833;padding:0;display:flex;flex-direction:column;position:relative;overflow:visible}.comment-node-wrapper .workflow-node.comment-node:before{content:"";position:absolute;top:0;right:0;width:20px;height:20px;background:linear-gradient(135deg,#FDE047 50%,transparent 50%);box-shadow:-1px 1px 2px #0000000d}.theme-dark .comment-node-wrapper .workflow-node.comment-node{background:linear-gradient(135deg,#854d0e,#713f12);box-shadow:2px 2px 8px #0000004d,0 0 0 1px #a162074d}.theme-dark .comment-node-wrapper .workflow-node.comment-node:before{background:linear-gradient(135deg,#A16207 50%,transparent 50%)}.comment-delete{position:absolute;top:-8px;left:-8px;width:20px;height:20px;border-radius:50%;border:none;background:#ef4444;color:#fff;font-size:14px;font-weight:700;line-height:1;cursor:pointer;opacity:0;transition:opacity .15s,transform .15s;display:flex;align-items:center;justify-content:center;z-index:10;box-shadow:0 1px 3px #0003}.comment-node-wrapper:hover .comment-delete{opacity:1}.comment-delete:hover{background:#dc2626;transform:scale(1.1)}.comment-text{flex:1;width:100%;border:none;background:transparent;padding:12px 24px 12px 12px;font-size:13px;font-family:Segoe UI,system-ui,sans-serif;color:#78350f;resize:none;outline:none;line-height:1.4}.comment-text::placeholder{color:#a16207;font-style:italic}.theme-dark .comment-text{color:#fef3c7}.theme-dark .comment-text::placeholder{color:#d97706}.comment-resize-handle{position:absolute;bottom:2px;right:2px;width:12px;height:12px;cursor:nwse-resize;opacity:.4;transition:opacity .15s}.comment-resize-handle:before,.comment-resize-handle:after{content:"";position:absolute;background:#a16207;border-radius:1px}.comment-resize-handle:before{bottom:0;right:0;width:8px;height:2px}.comment-resize-handle:after{bottom:0;right:0;width:2px;height:8px}.comment-node-wrapper:hover .comment-resize-handle{opacity:.8}.comment-node-wrapper .inputs,.comment-node-wrapper .outputs{display:none!important}.group-box{position:absolute;border:2px dashed var(--group-color, #02514a);border-radius:12px;background:#02514a0d;pointer-events:none;z-index:0;transition:border-color .2s,background .2s,opacity .2s}.group-box:hover{background:#02514a1a}.group-box.dragging{border-style:solid;background:#02514a26}.group-header{position:absolute;top:-30px;left:0;right:0;display:flex;align-items:center;gap:4px;padding:4px 8px;pointer-events:auto;cursor:grab}.group-header:active{cursor:grabbing}.group-ungroup-btn{background:transparent;border:none;color:var(--group-color, #02514a);font-size:14px;cursor:pointer;padding:2px 6px;border-radius:4px;opacity:.6;transition:opacity .15s,background .15s;line-height:1}.group-ungroup-btn:hover{opacity:1;background:#ffffff80}.theme-dark .group-ungroup-btn:hover{background:#0000004d}.group-collapse-btn{background:transparent;border:none;color:var(--group-color, #02514a);font-size:16px;font-weight:700;cursor:pointer;padding:2px 6px;border-radius:4px;opacity:.6;transition:opacity .15s,background .15s;line-height:1}.group-collapse-btn:hover{opacity:1;background:#ffffff80}.theme-dark .group-collapse-btn:hover{background:#0000004d}.group-label{flex:1;background:transparent;border:none;color:var(--group-color, #02514a);font-size:12px;font-weight:600;outline:none;padding:2px 4px;border-radius:4px;min-width:60px}.group-label:hover,.group-label:focus{background:#fffc}.theme-dark .group-label:hover,.theme-dark .group-label:focus{background:#0000004d}.drawflow-node.grouped{box-shadow:0 0 0 2px var(--group-color, #02514a),0 2px 8px #0000001a}.theme-dark .group-box{background:#02514a14}.theme-dark .group-box:hover{background:#02514a1f}.drawflow-node.collapsed-group-node{min-width:180px;padding:0;border-radius:10px;overflow:visible!important;background:var(--node-bg);border:2px solid var(--border);box-shadow:0 4px 12px #00000026}.drawflow-node.collapsed-group-node .drawflow_content_node{padding:0;overflow:visible!important}.drawflow-node.collapsed-group-node>.inputs{position:absolute!important;left:-9px!important;top:50%!important;transform:translateY(-50%)!important;display:flex!important;align-items:center!important}.drawflow-node.collapsed-group-node>.outputs{position:absolute!important;right:-9px!important;left:auto!important;top:50%!important;transform:translateY(-50%)!important;display:flex!important;align-items:center!important}.drawflow-node.collapsed-group-node>.inputs .input,.drawflow-node.collapsed-group-node>.outputs .output{position:relative!important;left:auto!important;right:auto!important;top:auto!important;margin:0!important}.collapsed-group-content{display:flex;align-items:center;gap:10px;padding:12px 14px;background:linear-gradient(135deg,#02514a0d,#02514a05);border-radius:8px}.collapsed-group-icon{font-size:24px;line-height:1}.collapsed-group-info{flex:1;min-width:0}.collapsed-group-label{font-size:14px;font-weight:600;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collapsed-group-count{font-size:11px;color:var(--text-medium);margin-top:2px}.collapsed-group-expand{background:#02514a;border:none;color:#fff;font-size:18px;font-weight:700;cursor:pointer;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s;flex-shrink:0}.collapsed-group-expand:hover{background:#013d38;transform:scale(1.1)}.theme-dark .collapsed-group-content{background:linear-gradient(135deg,#02514a1a,#02514a0d)}.search-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px 16px;text-align:center;color:var(--text-light)}.search-empty-icon{font-size:32px;margin-bottom:8px;opacity:.4}.search-empty p{margin:0;font-size:13px}.sidebar-header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.btn-create-node{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--primary);color:#fff;border:none;border-radius:4px;font-size:18px;font-weight:500;cursor:pointer;transition:background .15s;line-height:1}.btn-create-node:hover{background:var(--primary-hover)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;visibility:hidden;transition:all .2s ease}.modal-overlay.visible{opacity:1;visibility:visible}.modal{background:var(--bg-white);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:90%;max-width:420px;max-height:90vh;overflow:hidden;transform:scale(.9) translateY(20px);transition:transform .2s ease}.modal-overlay.visible .modal{transform:scale(1) translateY(0)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-dark)}.modal-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;font-size:24px;color:var(--text-light);cursor:pointer;border-radius:4px}.modal-close:hover{background:var(--bg-body);color:var(--text-dark)}.modal-body{padding:20px;max-height:60vh;overflow-y:auto}.modal-field{margin-bottom:16px}.modal-field:last-child{margin-bottom:0}.modal-field label{display:block;font-size:12px;font-weight:500;color:var(--text-medium);margin-bottom:6px}.modal-field input,.modal-field textarea{width:100%;padding:10px 12px;font-size:14px;border:1px solid var(--border);border-radius:6px;background:var(--bg-white);color:var(--text-dark);font-family:inherit}.modal-field input:focus,.modal-field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #02514a1a}.modal-field input[type=number]{width:100%}.modal-field textarea{min-height:80px;resize:vertical}.modal-row{display:flex;gap:12px}.modal-row .modal-field{flex:1}.modal-hint{display:block;font-size:11px;color:var(--text-light);margin-top:4px}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:16px 20px;border-top:1px solid var(--border);background:var(--bg-body)}#confirm-dialog,#generic-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;z-index:9999}#confirm-dialog>.modal-overlay,#generic-modal>.modal-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080}#confirm-dialog>.modal-content,#generic-modal>.modal-content{position:relative;background:var(--bg-white);border-radius:12px;box-shadow:0 20px 60px #0000004d;width:90%;max-height:90vh;overflow:hidden;animation:modalIn .2s ease-out}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.node-error-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:#fef2f2;border:1px solid #FCA5A5;border-radius:8px;padding:12px 16px;display:flex;align-items:flex-start;gap:10px;min-width:220px;max-width:320px;box-shadow:0 4px 12px #ef444433;z-index:1000;animation:errorTooltipIn .2s ease-out}@keyframes errorTooltipIn{0%{opacity:0;transform:translate(-50%) translateY(4px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.node-error-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:8px solid transparent;border-top-color:#fca5a5}.node-error-tooltip .error-icon{font-size:18px;line-height:1;flex-shrink:0}.node-error-tooltip .error-content{flex:1;min-width:0}.node-error-tooltip .error-title{font-weight:600;font-size:13px;color:#dc2626;margin-bottom:4px}.node-error-tooltip .error-message{font-size:12px;color:#991b1b;word-break:break-word;line-height:1.4}.node-error-tooltip .error-close{background:none;border:none;font-size:18px;line-height:1;color:#dc2626;cursor:pointer;padding:0;margin:-4px -4px 0 0;opacity:.6;transition:opacity .15s}.node-error-tooltip .error-close:hover{opacity:1}.drawflow-node.node-error .workflow-node{border-color:#ef4444!important;box-shadow:0 0 0 2px #ef44444d!important}.workflow-builder.mode-view{--header-height: 48px}.workflow-builder.mode-view .view-header{padding:0 16px;background:var(--bg-white);border-bottom:1px solid var(--border)}.workflow-builder.mode-view .view-header h1{font-size:14px;font-weight:500;color:var(--text-medium)}.workflow-builder.mode-view .view-header .workflow-actions{gap:4px}.workflow-builder.mode-view .view-header .btn{padding:6px 10px;font-size:12px;min-width:32px}.workflow-builder.mode-view .view-main{display:flex}.workflow-builder.mode-view .view-canvas-container{flex:1;display:flex;flex-direction:column}.workflow-builder.mode-view .workflow-canvas{flex:1}.workflow-builder.mode-view .drawflow-delete{display:none!important}.workflow-builder.mode-view .drawflow-node .input,.workflow-builder.mode-view .drawflow-node .output{pointer-events:none}.workflow-builder.mode-view .node-field input,.workflow-builder.mode-view .node-field select,.workflow-builder.mode-view .node-field textarea{pointer-events:none;background:var(--bg-body);cursor:default}.workflow-builder.mode-view .workflow-node{box-shadow:0 1px 2px #0000000d}.workflow-builder.mode-view .drawflow-node.selected .workflow-node{border-color:var(--border);box-shadow:0 1px 2px #0000000d}.workflow-builder.mode-view .workflow-footer{background:var(--bg-body);border-top:1px solid var(--border)}.workflow-builder.mode-view .workflow-footer .status-message{color:var(--primary);font-weight:500}.validation-modal{max-width:480px}.validation-summary{display:flex;align-items:center;gap:12px;padding:16px;border-radius:8px;margin-bottom:16px}.validation-summary.valid{background:#ecfdf5;border:1px solid #A7F3D0}.validation-summary.warning{background:#fffbeb;border:1px solid #FDE68A}.validation-summary.error{background:#fef2f2;border:1px solid #FECACA}.validation-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-size:16px}.validation-summary.valid .validation-icon{background:#10b981;color:#fff}.validation-summary.warning .validation-icon{background:#f59e0b;color:#fff}.validation-summary.error .validation-icon{background:#ef4444;color:#fff}.validation-title{font-size:16px;font-weight:600;color:var(--text-dark)}.validation-issues{max-height:300px;overflow-y:auto}.validation-item{display:flex;align-items:flex-start;gap:8px;padding:10px 12px;border-radius:6px;margin-bottom:6px;font-size:13px;color:var(--text-dark)}.validation-item.error{background:#fef2f2}.validation-item.warning{background:#fffbeb}.validation-item.success{background:#ecfdf5}.validation-item .v-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:11px;font-weight:700}.validation-item.error .v-icon{background:#ef4444;color:#fff}.validation-item.warning .v-icon{background:#f59e0b;color:#fff}.validation-item.success .v-icon{background:#10b981;color:#fff}.workflow-node.validation-highlight{animation:validation-pulse .5s ease-in-out 3;border-color:#ef4444!important;box-shadow:0 0 0 3px #ef44444d!important}@keyframes validation-pulse{0%,to{box-shadow:0 0 0 3px #ef44444d}50%{box-shadow:0 0 0 6px #ef444433}}.workflow-builder.bg-dots .workflow-canvas{background-image:radial-gradient(circle,var(--border) 1px,transparent 1px);background-size:20px 20px}.workflow-builder.bg-lines .workflow-canvas{background-image:linear-gradient(to right,var(--border) 1px,transparent 1px);background-size:40px 40px}.workflow-builder.bg-grid .workflow-canvas{background-image:linear-gradient(to right,var(--border) 1px,transparent 1px),linear-gradient(to bottom,var(--border) 1px,transparent 1px);background-size:20px 20px}.workflow-builder.bg-none .workflow-canvas{background-image:none}.workflow-builder.theme-dark.bg-dots .workflow-canvas{background-image:radial-gradient(circle,#334155 1px,transparent 1px)}.workflow-builder.theme-dark.bg-lines .workflow-canvas{background-image:linear-gradient(to right,#334155 1px,transparent 1px)}.workflow-builder.theme-dark.bg-grid .workflow-canvas{background-image:linear-gradient(to right,#334155 1px,transparent 1px),linear-gradient(to bottom,#334155 1px,transparent 1px)}.workflow-minimap{position:absolute;bottom:16px;right:16px;width:180px;height:120px;background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 12px #00000026;overflow:hidden;z-index:100;opacity:.9;transition:opacity .2s}.workflow-minimap:hover{opacity:1}.minimap-content{width:100%;height:100%;position:relative;transform-origin:top left;pointer-events:none}.minimap-content .drawflow-node{position:absolute;background:var(--primary);border-radius:2px;opacity:.7}.minimap-viewport{position:absolute;border:2px solid var(--primary);background:#02514a1a;border-radius:2px;cursor:move;z-index:10}.workflow-minimap.hidden{display:none}.workflow-builder .drawflow .connection.step-edge .main-path{stroke-dasharray:none}.workflow-builder .drawflow .connection.animated .main-path{stroke-dasharray:5;animation:dash-animation .5s linear infinite}@keyframes dash-animation{to{stroke-dashoffset:-10}}.workflow-node.copied{animation:copy-flash .3s ease-out}@keyframes copy-flash{0%{box-shadow:0 0 #02514ab3}70%{box-shadow:0 0 0 10px #02514a00}to{box-shadow:0 0 #02514a00}}.workflow-node.pasted{animation:paste-appear .3s ease-out}@keyframes paste-appear{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}.toggle-controls{display:flex;gap:4px;margin-left:12px;padding-left:12px;border-left:1px solid var(--border)}.toolbar-btn.toggle-btn{position:relative}.toolbar-btn.toggle-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.toolbar-btn.toggle-btn.active:hover{background:var(--primary-hover)}[data-tooltip]{position:relative}[data-tooltip]:before,[data-tooltip]:after{position:absolute;opacity:0;visibility:hidden;pointer-events:none;transition:all .15s ease-out;z-index:99999}[data-tooltip]:before{content:attr(data-tooltip);top:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-4px);padding:6px 10px;border-radius:4px;background:#1e1e2e;color:#fff;font-size:12px;font-weight:500;white-space:nowrap;box-shadow:0 4px 12px #00000040}[data-tooltip]:after{content:"";top:calc(100% + 4px);left:50%;transform:translate(-50%) translateY(-4px);border:5px solid transparent;border-bottom-color:#1e1e2e}[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}.workflow-canvas-container{position:relative}.selection-box{position:absolute;border:2px dashed var(--primary);background:#02514a26;pointer-events:none;z-index:9999;display:none;border-radius:4px}.selection-box.active{display:block}.workflow-node.multi-selected{box-shadow:0 0 0 3px var(--primary)!important;z-index:10}.workflow-node.multi-selected .workflow-node{border-color:var(--primary)!important}#drawflow-canvas.animated-edges .connection .main-path{stroke-dasharray:8 4;animation:flow-animation 1s linear infinite}@keyframes flow-animation{0%{stroke-dashoffset:24}to{stroke-dashoffset:0}}.drawflow .connection .main-path{marker-end:url(#arrowhead)}.drawflow .connection:hover .main-path{marker-end:url(#arrowhead-hover)}.minimap-header{display:flex;justify-content:space-between;align-items:center;padding:4px 8px;background:var(--bg-sidebar);border-bottom:1px solid var(--border);font-size:11px;font-weight:600;color:var(--text-medium)}.minimap-close{background:none;border:none;cursor:pointer;font-size:14px;color:var(--text-light);padding:0 4px;line-height:1}.minimap-close:hover{color:var(--text-dark)}.workflow-minimap{padding-top:0}.workflow-minimap .minimap-content{height:calc(100% - 24px)}.workflow-builder.snap-enabled .workflow-canvas{background-image:linear-gradient(to right,rgba(2,81,74,.1) 1px,transparent 1px),linear-gradient(to bottom,rgba(2,81,74,.1) 1px,transparent 1px);background-size:20px 20px}.edge-label{position:absolute;background:#fff;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500;color:var(--text-medium);border:1px solid var(--border);pointer-events:none;z-index:5;transform:translate(-50%,-50%)}.edge-label.yes{color:#22c55e;border-color:#22c55e}.edge-label.no{color:#ef4444;border-color:#ef4444}.execution-controls{display:flex;gap:4px;margin-left:12px;padding-left:12px;border-left:1px solid var(--border)}.exec-btn span{font-size:14px}.exec-btn[data-action=exec-run]:not(:disabled):hover{background:#22c55e33;color:#22c55e}.exec-btn[data-action=exec-stop]:not(:disabled):hover{background:#ef444433;color:#ef4444}.drawflow-node.exec-pending{opacity:.6}.drawflow-node.exec-running{border-color:#02514a!important;box-shadow:0 0 0 3px #02514a4d,0 4px 12px #02514a33!important}.drawflow-node.exec-success{border-color:#22c55e!important;box-shadow:0 0 0 2px #22c55e33!important}.drawflow-node.exec-success:after{content:"✓";position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#22c55e;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.drawflow-node.exec-failed{border-color:#ef4444!important;box-shadow:0 0 0 2px #ef444433!important}.drawflow-node.exec-failed:after{content:"✗";position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#ef4444;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.drawflow-node.exec-skipped{opacity:.4;border-style:dashed!important}.drawflow-node.exec-paused{border-color:#f59e0b!important;box-shadow:0 0 0 3px #f59e0b4d!important}.drawflow-node.exec-pulse{animation:exec-pulse 1.5s ease-in-out infinite}@keyframes exec-pulse{0%,to{box-shadow:0 0 0 3px #02514a4d,0 4px 12px #02514a33}50%{box-shadow:0 0 0 6px #02514a1a,0 4px 20px #02514a4d}}.config-panel-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:9999;opacity:0;visibility:hidden;transition:all .2s ease}.config-panel-backdrop.visible{opacity:1;visibility:visible}.node-config-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%) scale(.9);width:550px;max-width:90vw;max-height:85vh;background:var(--bg-white);border-radius:12px;box-shadow:0 20px 60px #0000004d;z-index:10000;opacity:0;visibility:hidden;transition:all .2s ease;display:flex;flex-direction:column}.node-config-panel.visible{opacity:1;visibility:visible;transform:translate(-50%,-50%) scale(1)}.config-panel-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.config-panel-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-dark)}.config-panel-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--text-light);padding:0;line-height:1}.config-panel-close:hover{color:var(--text-dark)}.config-panel-body{flex:1;padding:20px;overflow-y:auto}.config-panel-footer{display:flex;justify-content:flex-end;gap:10px;padding:16px 20px;border-top:1px solid var(--border)}.config-field{margin-bottom:16px}.config-field:last-child{margin-bottom:0}.config-field label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text-dark)}.config-field-hint{display:block;margin-top:4px;font-size:11px;color:var(--text-light)}.config-field input[type=text],.config-field input[type=number],.config-field select,.config-field textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;background:var(--bg-white);color:var(--text-dark);transition:border-color .15s,box-shadow .15s}.config-field input:focus,.config-field select:focus,.config-field textarea:focus{outline:none;border-color:#02514a;box-shadow:0 0 0 3px #02514a1a}.config-field input[type=checkbox]{width:auto;margin-right:8px}.config-field textarea.config-code{font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:13px;line-height:1.5;-moz-tab-size:2;tab-size:2;resize:vertical;min-height:120px;background:#1e1e1e;color:#d4d4d4}.config-field textarea.config-json{font-family:SF Mono,Monaco,Inconsolata,Fira Code,monospace;font-size:13px;resize:vertical;min-height:80px}.config-custom-fields{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.config-custom-fields h4{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-medium)}.custom-field-row{display:flex;gap:8px;margin-bottom:8px}.custom-field-row input{flex:1;padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:13px}.custom-field-row input:first-child{max-width:120px}.custom-field-row button{padding:8px 12px;background:none;border:1px solid var(--border);border-radius:6px;cursor:pointer;color:#ef4444;font-size:16px;line-height:1}.custom-field-row button:hover{background:#fef2f2}.custom-field-row .btn-add-field{color:var(--primary);background:#02514a1a;border-color:var(--primary)}.custom-field-row .btn-add-field:hover{background:#02514a33}.btn-add-field{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--bg-body);border:1px dashed var(--border);border-radius:6px;font-size:12px;color:var(--text-medium);cursor:pointer;width:100%;justify-content:center}.btn-add-field:hover{background:var(--bg-white);border-color:var(--primary);color:var(--primary)}.config-empty{text-align:center;padding:40px 20px;color:var(--text-light)}.node-config-tooltip{position:absolute;z-index:8000;min-width:200px;max-width:280px;background:var(--bg-white);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #00000026;padding:0;opacity:0;visibility:hidden;transform:translateY(-5px);transition:all .15s ease;pointer-events:none;overflow:hidden}.node-config-tooltip.visible{opacity:1;visibility:visible;transform:translateY(0)}.tooltip-header{padding:10px 12px;background:var(--bg-sidebar);border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--text-dark);text-transform:capitalize}.tooltip-empty{padding:16px 12px;text-align:center;color:var(--text-light);font-size:12px}.tooltip-empty small{display:block;margin-top:4px;opacity:.7}.tooltip-config{padding:10px 12px}.tooltip-row{display:flex;gap:6px;margin-bottom:6px;font-size:12px;line-height:1.4}.tooltip-row:last-child{margin-bottom:0}.tooltip-key{color:var(--text-medium);font-weight:500;flex-shrink:0}.tooltip-value{color:var(--text-dark);word-break:break-word}.tooltip-more{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);font-size:11px;color:var(--text-light);text-align:center}.theme-dark .node-config-tooltip{background:#1e293b;border-color:#334155}.theme-dark .tooltip-header{background:#0f172a;border-color:#334155}.execution-log-panel{position:fixed;bottom:20px;right:20px;width:500px;max-height:70vh;min-height:200px;background:var(--bg-white);border-radius:12px;box-shadow:0 8px 32px #00000040;z-index:9000;opacity:0;visibility:hidden;transform:translateY(20px);transition:all .3s ease;display:flex;flex-direction:column;resize:both;overflow:hidden}.execution-log-panel.visible{opacity:1;visibility:visible;transform:translateY(0)}.log-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--bg-sidebar);border-radius:12px 12px 0 0}.log-panel-header h3{margin:0;font-size:14px;font-weight:600}.log-panel-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--text-light)}.log-panel-body{flex:1;padding:12px;overflow-y:auto;font-size:12px}.log-empty{text-align:center;color:var(--text-light);padding:30px}.log-entry{margin-bottom:4px;border-radius:6px;background:var(--bg-sidebar);overflow:hidden}.log-entry-header{display:flex;align-items:center;gap:8px;padding:8px 10px;cursor:pointer}.log-entry-header:hover{background:#00000008}.log-entry.log-success{border-left:3px solid #22C55E}.log-entry.log-failed{border-left:3px solid #EF4444}.log-num{font-weight:600;color:var(--text-light);min-width:24px}.log-node{flex:1;font-weight:500;color:var(--text-dark)}.log-status{font-size:11px;padding:2px 6px;border-radius:4px;text-transform:uppercase;font-weight:600}.log-entry.log-success .log-status{background:#22c55e26;color:#22c55e}.log-entry.log-failed .log-status{background:#ef444426;color:#ef4444}.log-time{font-size:11px;color:var(--text-light)}.log-expand{font-size:10px;color:var(--text-light);transition:transform .2s}.log-entry.expanded .log-expand{transform:rotate(180deg)}.log-entry-details{display:none;padding:8px 12px 12px;border-top:1px solid var(--border);background:#fafbfc;max-height:400px;overflow-y:auto}.log-entry.expanded .log-entry-details{display:block}.log-section{margin-bottom:12px}.log-section-header{font-size:11px;font-weight:600;color:var(--text-medium);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}.log-collapsible .log-section-header{cursor:pointer;-webkit-user-select:none;user-select:none}.log-collapsible .log-section-header:hover{color:var(--primary)}.log-collapsible.collapsed .log-code{display:none}.log-collapsible.collapsed .log-section-header:after{content:" (click to expand)";font-weight:400;font-size:10px;color:var(--text-light)}.log-code{background:#1e293b;color:#e2e8f0;padding:10px;border-radius:6px;font-size:11px;font-family:Monaco,Consolas,Courier New,monospace;white-space:pre-wrap;word-break:break-all;margin:0;max-height:200px;overflow-y:auto}.log-error-box{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;padding:10px;color:#dc2626;font-size:12px;margin-bottom:10px}.log-http-badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:11px;font-weight:600;margin-bottom:8px}.log-http-badge.success{background:#22c55e26;color:#16a34a}.log-http-badge.error{background:#ef444426;color:#dc2626}.log-fields{font-size:11px;color:var(--text-medium)}.log-fields div{padding:3px 0}.log-fields strong{color:var(--text-dark)}.log-timestamp{font-size:10px;color:var(--text-light);margin-top:10px;padding-top:8px;border-top:1px dashed var(--border)}.theme-dark .node-config-panel,.theme-dark .execution-log-panel{box-shadow:0 20px 60px #00000080}.theme-dark .log-entry-details{background:#1a1a2e}.theme-dark .log-code{background:#0f172a}.workflow-builder.direction-vertical .drawflow .drawflow-node .inputs{position:absolute;top:-12px!important;left:50%!important;transform:translate(-50%);display:flex;flex-direction:row!important;gap:8px}.workflow-builder.direction-vertical .drawflow .drawflow-node .outputs{position:absolute;bottom:-12px!important;left:50%!important;transform:translate(-50%);top:auto!important;display:flex;flex-direction:row!important;gap:8px}.workflow-builder.direction-vertical .drawflow .drawflow-node .input{position:relative!important;left:auto!important;top:auto!important}.workflow-builder.direction-vertical .drawflow .drawflow-node .output{position:relative!important;right:auto!important;top:auto!important}.workflow-node .node-data-preview{margin-top:8px;padding:8px;background:var(--bg-sidebar);border-radius:4px;font-size:11px;max-height:100px;overflow:auto;border:1px solid var(--border)}.workflow-node .node-data-preview pre{margin:0;white-space:pre-wrap;word-break:break-all;font-family:Monaco,Menlo,monospace;font-size:10px;color:var(--text-medium)}.workflow-node .node-data-preview .data-empty{color:var(--text-light);font-style:italic}.workflow-node.wide{min-width:200px}.workflow-node .node-image{width:100%;max-height:80px;object-fit:cover;border-radius:4px;margin-bottom:8px}.workflow-node .node-progress{height:4px;background:var(--border);border-radius:2px;overflow:hidden;margin-top:8px}.workflow-node .node-progress-bar{height:100%;background:var(--primary);transition:width .3s ease}.workflow-node .node-status{display:inline-flex;align-items:center;gap:4px;font-size:10px;padding:2px 6px;border-radius:10px;margin-top:6px}.workflow-node .node-status.success{background:#22c55e26;color:#16a34a}.workflow-node .node-status.error{background:#ef444426;color:#dc2626}.workflow-node .node-status.pending{background:#f59e0b26;color:#d97706}.workflow-node .node-body{padding:8px 0;font-size:12px;color:var(--text-medium)}.workflow-node.api-data-node .node-header{border-bottom:1px solid var(--border);padding-bottom:8px;margin-bottom:8px}.workflow-node.api-data-node .api-status{display:flex;align-items:center;gap:6px;font-size:11px;margin-top:6px}.workflow-node.api-data-node .api-status-dot{width:8px;height:8px;border-radius:50%;background:#94a3b8}.workflow-node.api-data-node .api-status-dot.loaded{background:#22c55e}.workflow-node.api-data-node .api-status-dot.error{background:#ef4444}.workflow-node.api-data-node .api-status-dot.loading{background:#f59e0b;animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}
