@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700&display=swap";.flow-viz-container{background:var(--monitor-bg);height:100vh;color:var(--monitor-text);-webkit-user-select:none;user-select:none;font-family:Outfit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;overflow:hidden}.flow-viz-sidebar{background-color:var(--monitor-sidebar-bg);border-right:1px solid var(--monitor-border);z-index:10;flex-direction:column;align-items:center;gap:25px;width:70px;padding:20px 0;display:flex}.sidebar-logo{color:#00f2fe;text-shadow:0 0 10px #00f2fe80;margin-bottom:20px;font-size:20px;font-weight:700}.sidebar-item{color:#718096;cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:44px;height:44px;font-size:10px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.sidebar-item svg{stroke:currentColor;width:20px;height:20px;transition:stroke .3s}.sidebar-item.active,.sidebar-item:hover{color:#00f2fe;background-color:#1890ff26;box-shadow:inset 0 0 8px #00f2fe33}.sidebar-item-label{font-size:8px;transform:scale(.9)}.flow-viz-workspace{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.flow-viz-header{background-color:var(--monitor-header-bg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--monitor-border);z-index:9;justify-content:space-between;align-items:center;height:60px;padding:0 30px;display:flex}.header-left{align-items:center;gap:15px;display:flex}.user-profile{background:#ffffff08;border:1px solid #ffffff0d;border-radius:20px;align-items:center;gap:10px;padding:4px 12px;display:flex}.user-avatar{color:#000;background:linear-gradient(135deg,#00f2fe 0%,#4facfe 100%);border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:flex}.user-info{flex-direction:column;display:flex}.user-name{color:#f7fafc;font-size:12px;font-weight:600}.user-role{color:#a0aec0;font-size:9px}.header-nav{gap:30px;display:flex}.header-nav-item{color:#a0aec0;cursor:pointer;font-size:13px;font-weight:500;text-decoration:none;transition:color .2s}.header-nav-item:hover,.header-nav-item.active{color:#00f2fe}.header-right{align-items:center;gap:15px;display:flex}.header-btn{color:#a0aec0;cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.header-btn:hover{color:#fff;background:#ffffff0d}.header-btn svg{stroke:currentColor;width:18px;height:18px}.flow-viz-content{flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.center-viewport{outline:none;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.canvas-wrapper{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.canvas-3d{cursor:grab;width:100%;height:100%;position:absolute;top:0;left:0}.canvas-3d:active{cursor:grabbing}.right-panels-container{background:var(--monitor-card-bg);-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-left:1px solid var(--monitor-border);z-index:5;width:480px;height:100%;display:flex}.info-panel{border-right:1px solid var(--monitor-border);flex-direction:column;flex:1;padding:20px;display:flex;overflow-y:auto}.panel-title{color:var(--monitor-panel-title);letter-spacing:.5px;margin-bottom:20px;font-size:15px;font-weight:600}.stats-grid{gap:15px;margin-bottom:25px;display:flex}.stat-box{background:var(--monitor-stat-bg);border:1px solid var(--monitor-border);text-align:center;border-radius:12px;flex:1;padding:12px 16px;transition:border-color .2s}.stat-box:hover{border-color:#00f2fe4d}.stat-label{color:#718096;text-transform:uppercase;margin-bottom:4px;font-size:11px}.stat-val{color:#00f2fe;text-shadow:0 0 10px #00f2fe33;font-size:24px;font-weight:700}.stat-box.running-box .stat-val{color:#00f2fe}.stat-box.total-box .stat-val{color:#a78bfa}.active-nodes-list{flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.active-node-item{background:var(--monitor-stat-bg);border:1px solid var(--monitor-border);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 14px;transition:all .2s;display:flex}.active-node-item:hover{background:#ffffff08;border-color:#ffffff14}.active-node-item.running{background:#00f2fe05;border-left:3px solid #00f2fe}.active-node-name{color:var(--monitor-text);font-size:12px;font-weight:500}.active-node-status{border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.active-node-status.status-running{color:#00f2fe;background:#00f2fe1a;border:1px solid #00f2fe33;animation:1.5s infinite pulse-border}.active-node-status.status-idle{color:#4a5568}.fields-panel{flex-direction:column;flex:1;padding:20px;display:flex;overflow-y:auto}.search-box-container{margin-bottom:20px}.search-input{background:var(--monitor-stat-bg);border:1px solid var(--monitor-border);width:100%;color:var(--monitor-text);border-radius:8px;outline:none;padding:8px 12px;font-size:12px;transition:all .2s}.search-input:focus{border-color:#00f2fe;box-shadow:0 0 8px #00f2fe33}.fields-list{flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.field-item{cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:8px 12px;transition:all .2s;display:flex}.field-item:hover{background:var(--color-gray-100)}.field-item.active{background:var(--color-primary-bg);border:1px solid var(--color-primary-border)}.field-dot{border-radius:50%;width:6px;height:6px;box-shadow:0 0 6px}.field-name{color:var(--monitor-text);opacity:.8;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.field-item.active .field-name{color:var(--color-primary);font-weight:600}.queue-bottom-bar{background:var(--monitor-header-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--monitor-border);z-index:8;flex-shrink:0;justify-content:center;align-items:stretch;height:180px;padding:12px 20px 14px;display:flex}.bottom-queue-container{background:var(--monitor-card-bg);border:1px solid var(--monitor-border);width:100%;max-width:960px;box-shadow:var(--shadow-sm);border-radius:10px;flex-direction:column;min-height:0;padding:10px 16px 12px;display:flex;overflow:hidden}.queue-header{color:#718096;text-transform:uppercase;letter-spacing:.8px;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:10px;display:flex}.queue-flow{flex-wrap:nowrap;flex:1;align-items:center;gap:6px;min-height:0;padding-bottom:2px;display:flex;overflow-x:auto}.queue-item{background:var(--bg-surface);border:1px solid var(--border-color);white-space:nowrap;color:var(--color-gray-600);text-overflow:ellipsis;border-radius:6px;align-items:center;gap:5px;max-width:240px;padding:5px 12px;font-size:11.5px;display:flex;overflow:hidden}.queue-item.active{color:#00f2fe;background:#00f2fe14;border-color:#00f2fe4d;font-weight:600;animation:2s infinite pulse-bg;box-shadow:0 0 10px #00f2fe1a}.queue-arrow{color:#4a5568;flex-shrink:0;font-size:11px}.queue-item.active .queue-item-icon{background:#00f2fe;box-shadow:0 0 8px #00f2fe}.queue-item-icon{background:#718096;border-radius:50%;width:6px;height:6px}.bottom-controls{z-index:8;gap:8px;display:flex;position:absolute;bottom:20px;left:16px}.control-btn{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#cbd5e0;cursor:pointer;background:#080c18cc;border:1px solid #ffffff0f;border-radius:20px;align-items:center;gap:6px;padding:8px 18px;font-size:12px;font-weight:500;transition:all .2s;display:flex;box-shadow:0 4px 15px #0000004d}.control-btn:hover{color:#fff;background:#ffffff0d;border-color:#ffffff26}.control-btn.active{color:#00f2fe;border-color:#00f2fe4d;box-shadow:0 0 12px #00f2fe26}.node-tooltip{color:#fff;pointer-events:none;z-index:100;background:#080c18f2;border:1px solid #00f2fe4d;border-radius:8px;flex-direction:column;gap:4px;min-width:140px;margin-top:-15px;padding:10px 14px;font-size:12px;display:flex;position:absolute;transform:translate(-50%,-100%);box-shadow:0 0 15px #00f2fe33}.tooltip-title{color:#00f2fe;font-weight:600}.tooltip-status{color:#a0aec0;font-size:10px}@keyframes pulse-border{0%{border-color:#00f2fe33}50%{border-color:#00f2feb3}to{border-color:#00f2fe33}}@keyframes pulse-bg{0%{background:#00f2fe0d}50%{background:#00f2fe26}to{background:#00f2fe0d}}.active-nodes-list::-webkit-scrollbar{width:4px;height:4px}.fields-list::-webkit-scrollbar{width:4px;height:4px}.info-panel::-webkit-scrollbar{width:4px;height:4px}.fields-panel::-webkit-scrollbar{width:4px;height:4px}.queue-flow::-webkit-scrollbar{width:4px;height:4px}.active-nodes-list::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}.fields-list::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}.info-panel::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}.fields-panel::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}.queue-flow::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}.active-nodes-list::-webkit-scrollbar-track{background:0 0}.fields-list::-webkit-scrollbar-track{background:0 0}.info-panel::-webkit-scrollbar-track{background:0 0}.fields-panel::-webkit-scrollbar-track{background:0 0}.queue-flow::-webkit-scrollbar-track{background:0 0}.left-log-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:5;background:#080c16cc;border-right:1px solid #ffffff0f;flex-direction:column;flex-shrink:0;align-self:stretch;width:240px;min-width:240px;max-width:240px;min-height:0;display:flex;overflow:hidden}.log-panel-header{border-bottom:1px solid #ffffff0d;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 16px 10px;display:flex}.log-panel-title{color:#e2e8f0;letter-spacing:.3px;align-items:center;font-size:13px;font-weight:600;display:flex}.log-panel-count{color:#00f2fe;background:#00f2fe1a;border:1px solid #00f2fe40;border-radius:10px;padding:1px 7px;font-size:10px;font-weight:600}.log-filter-bar{border-bottom:1px solid #ffffff0a;flex-wrap:wrap;flex-shrink:0;gap:6px;padding:8px 10px;display:flex}.log-filter-chip{color:#718096;cursor:pointer;white-space:nowrap;background:#ffffff08;border:1px solid #ffffff12;border-radius:12px;align-items:center;gap:4px;padding:3px 8px;font-family:Outfit,sans-serif;font-size:10px;transition:all .2s;display:flex}.log-filter-chip:hover{color:#a0aec0;background:#ffffff12}.log-filter-chip.active{color:#00f2fe;background:#00f2fe1a;border-color:#00f2fe4d}.log-chip-dot{border-radius:50%;flex-shrink:0;width:5px;height:5px}.log-entries{flex-direction:column;flex:1;gap:4px;min-height:0;padding:6px 8px;display:flex;overflow-y:auto}.log-entries::-webkit-scrollbar{width:3px}.log-entries::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:10px}.log-entries::-webkit-scrollbar-track{background:0 0}.log-empty{color:#4a5568;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:100%;padding:20px;font-size:11px;display:flex}.log-entry{background:#ffffff05;border:1px solid #ffffff0a;border-radius:7px;flex-shrink:0;padding:7px 10px;transition:background .15s}.log-entry:hover{background:#ffffff0a}.log-entry-info{border-left:2px solid #60a5fa66}.log-entry-success{border-left:2px solid #34d39980}.log-entry-error{background:#f8717108;border-left:2px solid #f8717180}.log-entry-top{align-items:baseline;gap:5px;margin-bottom:4px;display:flex}.log-entry-sym{flex-shrink:0;font-size:11px;font-weight:700;line-height:1}.log-entry-node{color:#94a3b8;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.log-entry-node strong{color:#e2e8f0;font-weight:600}.log-entry-time{color:#334155;flex-shrink:0;font-family:monospace;font-size:9px}.log-entry-steps{flex-wrap:wrap;gap:3px;margin-top:2px;display:flex}.log-step-chip{color:#64748b;white-space:nowrap;background:#ffffff08;border:1px solid #ffffff0f;border-radius:4px;padding:1px 5px;font-size:9.5px}.log-step-ms{color:#475569;margin-left:2px}.log-total-dur{color:#34d399;white-space:nowrap;border:1px solid #34d39933;border-radius:4px;padding:1px 5px;font-size:9.5px;font-weight:600}.log-clear-btn{color:#4a5568;cursor:pointer;background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;flex-shrink:0;width:calc(100% - 20px);margin:6px 10px 10px;padding:6px;font-family:Outfit,sans-serif;font-size:10px;transition:all .2s}.log-clear-btn:hover{color:#f87171;background:#f8717114;border-color:#f8717133}.logs-page-container{background-color:var(--bg-page);height:100%;color:var(--color-gray-800);box-sizing:border-box;flex-direction:column;padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;display:flex;overflow:hidden}.logs-header-panel{background:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:16px 24px;display:flex}.logs-title-area h1{color:var(--color-gray-900);letter-spacing:-.5px;margin:0 0 4px;font-size:20px;font-weight:700}.logs-title-area p{color:var(--color-gray-500);margin:0;font-size:13px}.logs-actions-area{align-items:center;gap:12px;display:flex}.logs-search-input{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--color-gray-800);border-radius:8px;width:220px;padding:8px 14px;font-size:13px;transition:all .25s}.logs-search-input:focus{border-color:#00f2fe;outline:none;box-shadow:0 0 10px #00f2fe33}.logs-btn{background:var(--bg-surface);border:1px solid var(--border-color);color:var(--color-gray-700);cursor:pointer;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s}.logs-btn:hover{background:var(--color-gray-100);border-color:var(--color-gray-300);color:var(--color-gray-900)}.logs-btn.paused{color:#10b981;background:#10b98126;border-color:#10b981}.clear-btn:hover{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.download-btn{color:#060913;background:linear-gradient(135deg,#00f2fe 0%,#4facfe 100%);border:none;font-weight:600}.download-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00f2fe4d}.terminal-window{background:var(--terminal-bg);border:1px solid var(--terminal-border);box-shadow:var(--shadow-xl);border-radius:12px;flex-direction:column;flex:1;display:flex;overflow:hidden}.terminal-header-bar{background:var(--terminal-header-bg);border-bottom:1px solid var(--terminal-border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.mock-window-dots{gap:6px;display:flex}.dot{border-radius:50%;width:10px;height:10px;display:inline-block}.dot.red{background-color:#ff5f56}.dot.yellow{background-color:#ffbd2e}.dot.green{background-color:#27c93f}.terminal-window-title{color:var(--terminal-title-text);letter-spacing:.5px;font-family:monospace;font-size:11px}.terminal-status-indicator{letter-spacing:1px;align-items:center;gap:6px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:10px;font-weight:700;display:flex}.status-dot{border-radius:50%;width:6px;height:6px}.status-dot.live{background-color:#10b981;box-shadow:0 0 8px #10b981}.status-dot.paused{background-color:#f59e0b;box-shadow:0 0 8px #f59e0b}.terminal-screen{background:var(--terminal-bg);color:var(--terminal-text);scroll-behavior:smooth;flex:1;padding:18px;font-family:Fira Code,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;overflow-y:auto}.terminal-screen::-webkit-scrollbar{width:8px}.terminal-screen::-webkit-scrollbar-track{background:#ffffff03}.terminal-screen::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.terminal-screen::-webkit-scrollbar-thumb:hover{background:#fff3}.terminal-welcome-text{color:#475569;white-space:pre-wrap;margin-bottom:16px}.terminal-logs-list{flex-direction:column;display:flex}.terminal-log-line{white-space:pre-wrap;word-break:break-all;gap:8px;padding:3px 0;display:flex}.terminal-timestamp{color:#64748b;flex-shrink:0}.terminal-type{color:#475569;flex-shrink:0;width:75px;font-weight:600}.terminal-message{flex:1}.terminal-empty-text{color:#475569;padding:12px 0;font-style:italic}.resources-page-container{background-color:var(--bg-page);height:100%;color:var(--color-gray-800);box-sizing:border-box;flex-direction:column;padding:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;display:flex;overflow-y:auto}.resources-title-panel{background:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:12px;margin-bottom:24px;padding:16px 24px}.resources-title-panel h1{color:var(--color-gray-900);letter-spacing:-.5px;margin:0 0 4px;font-size:20px;font-weight:700}.resources-title-panel p{color:var(--color-gray-500);margin:0;font-size:13px}.resources-grid{flex:1;grid-template-columns:repeat(2,1fr);gap:20px;display:grid}.resource-card{background:var(--bg-surface);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);border-radius:12px;flex-direction:column;padding:20px;display:flex}.card-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;display:flex}.card-header h3{color:var(--color-gray-900);margin:0;font-size:15px;font-weight:600}.live-badge{color:#00f2fe;letter-spacing:.5px;background:#00f2fe26;border:1px solid #00f2fe;border-radius:4px;padding:2px 6px;font-size:9px;font-weight:700}.metric-display{flex:1;align-items:center;gap:30px;display:flex}.circular-gauge{flex-shrink:0;width:110px;height:110px;position:relative}.circular-gauge svg{width:100%;height:100%;transform:rotate(-90deg)}.gauge-bg{fill:none;stroke:var(--color-gray-100);stroke-width:8px}.gauge-val{fill:none;stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset .8s cubic-bezier(.4,0,.2,1)}.cpu-stroke{stroke:#00f2fe;filter:drop-shadow(0 0 6px #00f2fe99)}.mem-stroke{stroke:#10b981;filter:drop-shadow(0 0 6px #10b98199)}.gauge-text{flex-direction:row;justify-content:center;align-items:baseline;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.percent-num{color:var(--color-gray-900);font-family:ui-monospace,SFMono-Regular,monospace;font-size:20px;font-weight:700}.percent-sign{color:var(--color-gray-400);margin-left:1px;font-size:10px}.history-line-chart{flex-direction:column;flex:1;display:flex}.chart-title{color:#64748b;margin-bottom:8px;font-size:11px;font-weight:600}.bar-chart-container{border-bottom:1px solid var(--border-color);align-items:flex-end;gap:2px;height:75px;padding-bottom:2px;display:flex}.chart-bar-wrapper{flex:1;align-items:flex-end;height:100%;display:flex}.chart-bar{border-radius:2px 2px 0 0;width:100%;transition:height .4s}.cpu-bar{background:linear-gradient(#00f2fe,#00f2fe33)}.mem-bar{background:linear-gradient(#10b981,#10b98133)}.mem-details{flex-direction:column;flex:1;justify-content:center;display:flex}.detail-row{border-bottom:1px solid var(--border-color);justify-content:space-between;padding:4px 0;font-size:13px;display:flex}.detail-row span:first-child{color:var(--color-gray-500)}.val-highlight{color:var(--color-gray-900);font-family:ui-monospace,SFMono-Regular,monospace;font-weight:600}.network-dashboard{flex:1;justify-content:space-around;align-items:center;display:flex}.speed-column{flex-direction:column;flex:1;align-items:center;padding:10px;display:flex}.speed-title{color:var(--color-gray-500);margin-bottom:8px;font-size:12px;font-weight:500}.speed-value{margin-bottom:8px;font-family:ui-monospace,SFMono-Regular,monospace;font-size:32px;font-weight:700}.download-text{color:#00f2fe;text-shadow:0 0 10px #00f2fe33}.upload-text{color:#a855f7;text-shadow:0 0 10px #a855f733}.speed-unit{font-size:14px;font-weight:500}.total-accumulated{color:#64748b;font-size:12px}.speed-divider{background:var(--border-color);width:1px;height:100px}.storage-details{flex-direction:column;flex:1;gap:20px;display:flex}.logs-db-metric{background:var(--color-gray-50);border:1px solid var(--border-color);border-radius:8px;padding:12px 16px}.metric-label{color:var(--color-gray-500);margin-bottom:4px;font-size:12px;font-weight:600}.db-size-num{color:var(--color-gray-900);font-family:ui-monospace,SFMono-Regular,monospace;font-size:26px;font-weight:700}.db-desc{color:var(--color-gray-400);margin-top:4px;font-size:11px}.disk-partition-metric{flex-direction:column;display:flex}.disk-progress-bar-container{background:var(--color-gray-100);border:1px solid var(--border-color);border-radius:3px;height:6px;margin-top:8px;overflow:hidden}.disk-progress-fill{background:linear-gradient(90deg,#10b981,#00f2fe);border-radius:3px;height:100%;transition:width .8s}.resources-loading-container{background-color:var(--bg-page);height:100%;color:var(--color-gray-500);flex-direction:column;justify-content:center;align-items:center;display:flex}.resources-spinner{border:3px solid #00f2fe1a;border-top-color:#00f2fe;border-radius:50%;width:40px;height:40px;margin-bottom:16px;animation:1s linear infinite spin;box-shadow:0 0 10px #00f2fe33}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.react-flow{direction:ltr}.react-flow__container{width:100%;height:100%;position:absolute;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:1px;fill:none}.react-flow__edge{pointer-events:visibleStroke;cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge: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;user-select:none}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__connectionline{z-index:1001}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__node.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:-webkit-grab;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background:#1a192b;border:1px solid #fff;border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-top{top:-4px;left:50%;transform:translate(-50%)}.react-flow__handle-left{top:50%;left:-4px;transform:translateY(-50%)}.react-flow__handle-right{top:50%;right:-4px;transform:translateY(-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.center{left:50%;transform:translate(-50%)}.react-flow__attribution{background:#ffffff80;margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute}.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{color:#222;text-align:center;background-color:#fff;border:1px solid #1a192b;border-radius:3px;width:150px;padding:10px;font-size:12px}.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 #0059dccc}.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{box-sizing:content-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:#fefefe;border:none;border-bottom:1px solid #eee;justify-content:center;align-items:center;width:16px;height:16px;padding:5px;display:flex}.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{background-color:#3367d9;border:1px solid #fff;border-radius:1px;width:4px;height:4px;transform:translate(-50%,-50%)}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border:0 solid #3367d9}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}:root{--color-primary:#2563eb;--color-primary-light:#3b82f6;--color-primary-dark:#1d4ed8;--color-primary-bg:#eff6ff;--color-primary-border:#bfdbfe;--color-success:#16a34a;--color-success-bg:#f0fdf4;--color-success-border:#bbf7d0;--color-warning:#d97706;--color-warning-bg:#fffbeb;--color-warning-border:#fde68a;--color-error:#dc2626;--color-error-bg:#fef2f2;--color-error-border:#fecaca;--color-info:#0284c7;--color-gray-50:#f8fafc;--color-gray-100:#f1f5f9;--color-gray-200:#e2e8f0;--color-gray-300:#cbd5e1;--color-gray-400:#94a3b8;--color-gray-500:#64748b;--color-gray-600:#475569;--color-gray-700:#334155;--color-gray-800:#1e293b;--color-gray-900:#0f172a;--bg-page:#f8fafc;--bg-surface:#fff;--bg-elevated:#fff;--bg-canvas:#f1f5f9;--color-node-start:#ef4444;--color-node-start-bg:#fee2e2;--color-node-step:#0891b2;--color-node-step-bg:#cffafe;--color-node-border:#e2e8f0;--border-color:#e2e8f0;--border-radius-sm:6px;--border-radius-md:8px;--border-radius-lg:12px;--border-radius-xl:16px;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000d;--shadow-xl:0 20px 25px -5px #00000014, 0 8px 10px -6px #0000000a;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Source Code Pro", Menlo, Monaco, Consolas, "Courier New", "Microsoft YaHei", monospace;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--monitor-bg:radial-gradient(circle at center, #f8fafc 0%, #e2e8f0 100%);--monitor-text:var(--color-gray-800);--monitor-border:var(--border-color);--monitor-sidebar-bg:#fffffff2;--monitor-header-bg:#ffffffd9;--monitor-card-bg:#ffffffd9;--monitor-panel-title:var(--color-gray-700);--monitor-stat-bg:var(--color-gray-50);--terminal-bg:#fff;--terminal-header-bg:#f1f5f9;--terminal-text:#1e293b;--terminal-border:var(--border-color);--terminal-title-text:#64748b}[data-theme=dark]{--color-primary:#3b82f6;--color-primary-light:#60a5fa;--color-primary-dark:#2563eb;--color-primary-bg:#2563eb26;--color-primary-border:#2563eb59;--color-success:#10b981;--color-success-bg:#10b98126;--color-success-border:#10b9814d;--color-warning:#f59e0b;--color-warning-bg:#f59e0b26;--color-warning-border:#f59e0b4d;--color-error:#ef4444;--color-error-bg:#ef444426;--color-error-border:#ef44444d;--color-gray-50:#0f172a;--color-gray-100:#1e293b;--color-gray-200:#334155;--color-gray-300:#475569;--color-gray-400:#64748b;--color-gray-500:#94a3b8;--color-gray-600:#cbd5e1;--color-gray-700:#e2e8f0;--color-gray-800:#f1f5f9;--color-gray-900:#f8fafc;--bg-page:#0b0f19;--bg-surface:#111827;--bg-elevated:#1e293b;--bg-canvas:#090d16;--border-color:#1e293b;--color-node-border:#334155;--monitor-bg:radial-gradient(circle at center, #0f1422 0%, #070911 100%);--monitor-text:#e2e8f0;--monitor-border:#ffffff0d;--monitor-sidebar-bg:#06080ff2;--monitor-header-bg:#0a0e1acc;--monitor-card-bg:#0a0e1ab3;--monitor-panel-title:#fff;--monitor-stat-bg:#ffffff05;--terminal-bg:#070913;--terminal-header-bg:#0f1322;--terminal-text:#e2e8f0;--terminal-border:#ffffff0d;--terminal-title-text:#94a3b8}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}body{font-family:var(--font-sans);color:var(--color-gray-800);background-color:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px;line-height:1.6}code{font-family:var(--font-mono);background-color:var(--color-gray-100);color:var(--color-gray-800);border:1px solid var(--border-color);font-size:.9em;line-height:inherit;word-break:break-word;border-radius:4px;padding:.1em .45em}.nav-bar{background:var(--bg-surface);border-bottom:1px solid var(--border-color);height:56px;padding:0 var(--spacing-lg);align-items:center;gap:var(--spacing-lg);z-index:100;box-shadow:var(--shadow-sm);display:flex;position:sticky;top:0}.nav-logo{align-items:center;gap:var(--spacing-sm);color:var(--color-primary);letter-spacing:-.5px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.nav-logo-icon{background:linear-gradient(135deg, var(--color-primary), var(--color-primary-light));border-radius:var(--border-radius-sm);color:#fff;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;font-weight:800;display:flex}.nav-links{align-items:center;gap:var(--spacing-xs);flex:1;display:flex}.nav-link{border-radius:var(--border-radius-sm);color:var(--color-gray-600);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:14px;font-weight:500;text-decoration:none}.nav-link:hover{background:var(--color-gray-100);color:var(--color-gray-800)}.nav-link.active{background:var(--color-primary-bg);color:var(--color-primary)}.nav-actions{align-items:center;gap:var(--spacing-sm);display:flex}.btn{border-radius:var(--border-radius-sm);font-size:14px;font-weight:500;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:7px 14px;line-height:1;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);transform:translateY(-1px);box-shadow:0 4px 12px #2563eb4d}.btn-secondary{background:var(--bg-surface);color:var(--color-gray-700);border-color:var(--border-color)}.btn-secondary:hover:not(:disabled){background:var(--color-gray-50);border-color:var(--color-gray-300)}.btn-danger{background:var(--bg-surface);color:var(--color-error);border-color:var(--color-error-border)}.btn-danger:hover:not(:disabled){background:var(--color-error-bg)}.btn-ghost{color:var(--color-gray-600);background:0 0;border-color:#0000}.btn-ghost:hover:not(:disabled){background:var(--color-gray-100);color:var(--color-gray-800)}.btn-sm{padding:4px 10px;font-size:12px}.btn-lg{padding:10px 20px;font-size:15px}.btn-icon{border-radius:var(--border-radius-sm);width:32px;height:32px;padding:0}.card{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md)}.card-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.card-body{padding:var(--spacing-lg)}.input,.textarea{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);width:100%;font-size:14px;font-family:var(--font-sans);color:var(--color-gray-800);background:var(--bg-surface);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);outline:none;padding:8px 12px}.input:focus,.textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.select{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);width:100%;font-size:14px;font-family:var(--font-sans);color:var(--color-gray-800);background-color:var(--bg-surface);appearance:none;cursor:pointer;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:14px;outline:none;padding:8px 32px 8px 12px}.select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.textarea{resize:vertical;min-height:80px}.form-label{color:var(--color-gray-700);margin-bottom:4px;font-size:13px;font-weight:500;display:block}.form-group{margin-bottom:var(--spacing-md)}.badge{border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.badge-draft{background:var(--color-gray-100);color:var(--color-gray-600)}.badge-active{background:var(--color-success-bg);color:var(--color-success)}.badge-disabled{background:var(--color-error-bg);color:var(--color-error)}.badge-running{color:#d97706;background:#fef3c7}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-failed{background:var(--color-error-bg);color:var(--color-error)}.badge-clickable{cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #0000;align-items:center;gap:4px;display:inline-flex;transition:all var(--transition-fast)!important}.badge-clickable:hover{box-shadow:var(--shadow-sm);filter:brightness(.95);transform:translateY(-1px)scale(1.02)}.badge-clickable:active{transform:translateY(0)scale(.98)}.badge-clickable .cycle-icon{opacity:.6;transition:transform var(--transition-normal);flex-shrink:0}.badge-clickable:hover .cycle-icon{opacity:1;transform:rotate(180deg)}.status-dot{border-radius:50%;width:6px;height:6px;display:inline-block}.status-dot.running{background:#f59e0b;animation:1.5s infinite pulse}.status-dot.success{background:var(--color-success)}.status-dot.failed{background:var(--color-error)}.status-dot.idle{background:var(--color-gray-400)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn var(--transition-fast);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-surface);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;animation:slideUp var(--transition-normal);flex-direction:column;display:flex;overflow:hidden}.modal-lg{max-width:800px}.modal-xl{width:95vw;max-width:1100px;height:85vh}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal-title{color:var(--color-gray-900);font-size:16px;font-weight:600}.modal-body{padding:var(--spacing-lg);flex:1;overflow-y:auto}.modal-footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-color);justify-content:flex-end;gap:var(--spacing-sm);flex-shrink:0;display:flex}.context-menu{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);z-index:500;min-width:180px;animation:fadeIn var(--transition-fast);padding:4px;position:fixed}.context-menu-item{align-items:center;gap:var(--spacing-sm);border-radius:var(--border-radius-sm);color:var(--color-gray-700);cursor:pointer;transition:background var(--transition-fast);-webkit-user-select:none;user-select:none;padding:7px 12px;font-size:13px;display:flex}.context-menu-item:hover{background:var(--color-gray-100);color:var(--color-gray-900)}.context-menu-item.danger{color:var(--color-error)}.context-menu-item.danger:hover{background:var(--color-error-bg)}.context-menu-divider{background:var(--border-color);height:1px;margin:4px 0}.log-panel{background:var(--bg-surface);border-left:1px solid var(--border-color);flex-direction:column;height:100%;display:flex;overflow:hidden}.log-tabs{border-bottom:1px solid var(--border-color);padding:0 var(--spacing-md);background:var(--bg-surface);flex-shrink:0;display:flex}.log-tab{color:var(--color-gray-500);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border-bottom:2px solid #0000;padding:10px 14px;font-size:13px;font-weight:500}.log-tab:hover{color:var(--color-gray-800)}.log-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.log-content{padding:var(--spacing-md);font-family:var(--font-mono);flex:1;font-size:12px;line-height:1.7;overflow-y:auto}.log-entry{margin-bottom:2px}.log-entry.system{color:var(--color-gray-600)}.log-entry.step{color:var(--color-primary)}.log-entry.stdout{color:var(--color-gray-800)}.log-entry.error{color:var(--color-error)}.log-entry.success{color:var(--color-success)}.exec-bar{background:var(--bg-surface);border-top:1px solid var(--border-color);height:56px;padding:0 var(--spacing-md);align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.exec-status{color:var(--color-gray-600);align-items:center;gap:6px;min-width:90px;font-size:12px;font-weight:500;display:flex}.exec-input{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);min-width:0;font-size:13px;font-family:var(--font-mono);color:var(--color-gray-800);background:var(--color-gray-50);transition:border-color var(--transition-fast);outline:none;flex:1;padding:7px 12px}.exec-input:focus{border-color:var(--color-primary);background:var(--bg-surface);box-shadow:0 0 0 3px #2563eb1a}[data-tooltip]{position:relative}[data-tooltip]:after{content:attr(data-tooltip);background:var(--color-gray-900);color:#fff;border-radius:var(--border-radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:1000;padding:4px 8px;font-size:12px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}[data-tooltip]:hover:after{opacity:1}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-gray-300);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-gray-400)}.react-flow__node{cursor:pointer}.react-flow__edges,.react-flow__edge-labels,.react-flow__edge-labelcontainer{z-index:9999!important}.react-flow__nodes{z-index:3!important}.react-flow__edge-path{stroke:var(--color-gray-400);stroke-width:2px}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--color-primary)}.react-flow__controls{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);overflow:hidden}.react-flow__controls-button{border:none;border-bottom:1px solid var(--border-color);background:var(--bg-surface);color:var(--color-gray-600);transition:background var(--transition-fast)}.react-flow__controls-button:hover{background:var(--color-gray-100)}.react-flow__minimap{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.flex-1{flex:1}.text-sm{font-size:12px}.text-muted{color:var(--color-gray-500)}.font-mono{font-family:var(--font-mono)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.w-full{width:100%}.animate-spin{animation:1s linear infinite spin}.exec-nested-container:focus-within{box-shadow:0 0 0 3px #2563eb1a;border-color:var(--color-primary)!important;background:var(--bg-surface)!important}@media (width<=768px){.nav-bar{padding:0 var(--spacing-sm)!important;gap:var(--spacing-sm)!important}.nav-actions{display:none!important}.log-panel{border-left:none!important}}.node-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;display:grid}@media (width<=1200px){.node-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=992px){.node-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=768px){.node-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=576px){.node-grid{grid-template-columns:repeat(1,minmax(0,1fr))}}.home-header-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.filters-wrapper{justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.filters-inner{flex-wrap:wrap;flex:1;align-items:center;gap:12px;display:flex}@media (width<=768px){.home-header-row{flex-direction:column;gap:12px;align-items:stretch!important}.home-header-row button{width:100%}.filters-wrapper{flex-direction:column;gap:16px;align-items:stretch!important}.filters-inner{width:100%}.filters-inner input,.filters-inner .ant-select{flex:calc(50% - 6px)!important;width:auto!important;max-width:none!important}.filters-inner button{flex:100%!important}}.log-detail-container{max-width:900px;margin:0 auto;padding:32px 24px}.exec-overview-grid{grid-template-columns:repeat(4,1fr);gap:16px;display:grid}.exec-io-grid{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;display:grid}@media (width<=768px){.log-detail-container{padding:16px 12px!important}.exec-overview-grid{grid-template-columns:repeat(2,1fr)!important}.exec-io-grid{grid-template-columns:1fr!important}}@media (width<=480px){.exec-overview-grid{grid-template-columns:1fr!important}}.editor-page-container{width:100%;height:100%;display:flex;position:relative;overflow:hidden}.editor-mobile-tabs{background:var(--bg-surface);border-bottom:1px solid var(--border-color);z-index:100;flex-shrink:0;height:42px;display:none}.editor-canvas-section{background:var(--bg-canvas);flex:1;height:100%;position:relative;overflow:hidden}.editor-drag-divider{cursor:col-resize;background:var(--border-color);flex-shrink:0;width:4px;transition:background .15s}.editor-logs-section{flex-direction:column;flex-shrink:0;height:100%;display:flex;overflow:hidden}.editor-back-btn{z-index:10;border-radius:var(--border-radius-md);width:38px;height:38px;box-shadow:var(--shadow-md);background:var(--bg-surface);border:1px solid var(--border-color);cursor:pointer;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:12px;left:12px}.editor-title-panel{z-index:10;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-md);align-items:center;gap:12px;height:38px;padding:6px 16px;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.editor-tools-panel{z-index:10;align-items:center;gap:8px;display:flex;position:absolute;top:12px;right:12px}@media (width<=768px){.editor-page-container{flex-direction:column!important}.editor-mobile-tabs{width:100%;display:flex!important}.editor-mobile-tab-btn{color:var(--color-gray-500);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.editor-mobile-tab-btn.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:var(--color-primary-bg)}.editor-drag-divider{display:none!important}.editor-canvas-section,.editor-logs-section{width:100%!important;height:calc(100% - 42px)!important}.mobile-hidden{display:none!important}.mobile-visible{flex-direction:column;display:flex!important}.editor-back-btn{width:32px!important;height:32px!important;top:8px!important;left:8px!important}.editor-title-panel{max-width:140px;overflow:hidden;gap:6px!important;height:32px!important;padding:4px 8px!important;font-size:11px!important;top:8px!important;left:48px!important;transform:none!important}.editor-title-panel>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:12px!important}.editor-tools-panel{gap:6px!important;top:8px!important;right:8px!important}.editor-tools-panel button{height:32px!important;padding:0 8px!important;font-size:12px!important}}@media (width<=480px){.editor-title-panel,.editor-tools-panel button span{display:none!important}}.code-editor-modal-wrap .ant-modal{width:85vw!important;max-width:100vw!important;top:5vh!important}@media (width<=768px){.code-editor-modal-wrap .ant-modal{width:96vw!important;top:2vh!important}}[data-theme=dark] .ant-select-selector{background-color:var(--bg-surface)!important;border-color:var(--border-color)!important;color:var(--color-gray-800)!important}[data-theme=dark] .ant-select-arrow{color:var(--color-gray-400)!important}[data-theme=dark] .ant-select-dropdown{background-color:var(--bg-surface)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-md)!important}[data-theme=dark] .ant-select-item-option-content{color:var(--color-gray-800)!important}[data-theme=dark] .ant-select-item-option-selected{background-color:var(--color-primary-bg)!important}[data-theme=dark] .ant-select-item-option-active{background-color:var(--color-gray-100)!important}[data-theme=dark] .ant-pagination-item{background-color:var(--bg-surface)!important;border-color:var(--border-color)!important}[data-theme=dark] .ant-pagination-item a{color:var(--color-gray-700)!important}[data-theme=dark] .ant-pagination-item-active{border-color:var(--color-primary)!important;background-color:var(--color-primary-bg)!important}[data-theme=dark] .ant-pagination-item-active a{color:var(--color-primary)!important}[data-theme=dark] .ant-pagination-prev .ant-pagination-item-link,[data-theme=dark] .ant-pagination-next .ant-pagination-item-link{background-color:var(--bg-surface)!important;border-color:var(--border-color)!important;color:var(--color-gray-600)!important}[data-theme=dark] .ant-pagination-options-size-changer .ant-select-selector{background-color:var(--bg-surface)!important;border-color:var(--border-color)!important}[data-theme=dark] .ant-modal-content{background-color:var(--bg-surface)!important;color:var(--color-gray-800)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-xl)!important}[data-theme=dark] .ant-modal-header{background-color:var(--bg-surface)!important;border-bottom:1px solid var(--border-color)!important}[data-theme=dark] .ant-modal-title{color:var(--color-gray-900)!important}[data-theme=dark] .ant-modal-close{color:var(--color-gray-500)!important}[data-theme=dark] .ant-modal-close:hover{color:var(--color-gray-800)!important}[data-theme=dark] .ant-modal-mask{-webkit-backdrop-filter:blur(4px);background-color:#000000b8!important}[data-theme=dark] .code-editor-modal-wrap .ant-modal-content{background-color:var(--bg-elevated)!important;border-color:var(--color-gray-200)!important}[data-theme=dark] .ant-form-item-label>label{color:var(--color-gray-700)!important}[data-theme=dark] .ant-input{background-color:var(--bg-page)!important;border-color:var(--border-color)!important;color:var(--color-gray-800)!important}[data-theme=dark] .ant-input::placeholder,[data-theme=dark] .ant-select-item-empty{color:var(--color-gray-400)!important}.react-flow__attribution{display:none!important}[data-theme=dark] .react-flow__controls{box-shadow:var(--shadow-sm)!important}[data-theme=dark] .react-flow__controls-button{background-color:var(--bg-surface)!important;border-bottom:1px solid var(--border-color)!important;color:var(--color-gray-800)!important;fill:currentColor!important}[data-theme=dark] .react-flow__controls-button:hover{background-color:var(--color-gray-100)!important}[data-theme=dark] .react-flow__controls-button svg{fill:var(--color-gray-800)!important}
