*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root,body.theme-dark{--bg-primary:#0c0c14;--bg-secondary:#13131e;--bg-tertiary:#1c1c2a;--bg-hover:#222235;--text-primary:#eeeef8;--text-secondary:#88a;--text-disabled:#4a4a66;--accent:#7c6ff7;--accent-hover:#6457e8;--accent-subtle:#7c6ff71f;--success:#22c55e;--success-subtle:#22c55e1f;--error:#ef4444;--error-subtle:#ef44441f;--warning:#f59e0b;--warning-subtle:#f59e0b1f;--border:#2a2a3e;--border-strong:#3e3e58;--canvas-bg:#09090f;--canvas-dot:#232336;--edge-default:#5a5a8a;--node-bg:#1c1c2a;--node-selected:#252540;--node-running:#0f2540;--node-completed:#0e2a18;--node-failed:#2a0e0e;--node-skipped:#1a1a1a;--node-cancelled:#2a2a10;--port-input:#38bdf8;--port-output:#fb923c;--font-ui:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", "Consolas", monospace;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 32px #0009}body.theme-light{--bg-primary:#f5f5fb;--bg-secondary:#fff;--bg-tertiary:#ececf8;--bg-hover:#e4e4f4;--text-primary:#0e0e1c;--text-secondary:#5e5e80;--text-disabled:#ababc8;--accent:#5548d9;--accent-hover:#4439c0;--accent-subtle:#5548d91a;--success:#16a34a;--success-subtle:#16a34a1a;--error:#dc2626;--error-subtle:#dc26261a;--warning:#d97706;--warning-subtle:#d977061a;--border:#dcdcf0;--border-strong:#c0c0de;--canvas-bg:#ededf8;--canvas-dot:#c4c4dc;--edge-default:#8888c0;--node-bg:#fff;--node-selected:#ededf8;--node-running:#def;--node-completed:#ddf4e8;--node-failed:#fce8e8;--node-skipped:#f0f0f0;--node-cancelled:#fafae0;--port-input:#0284c7;--port-output:#c2410c;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001f;--shadow-lg:0 8px 32px #0000002e}:root{--f-xs:clamp(9px, .52vw, 40px);--f-sm:clamp(11px, .57vw, 44px);--f-base:clamp(12px, .68vw, 52px);--f-md:clamp(13px, .73vw, 56px);--f-lg:clamp(16px, .94vw, 72px);--f-logo:clamp(15px, 1.25vw, 96px);--sp-1:clamp(2px, .15vw, 10px);--sp-2:clamp(4px, .21vw, 16px);--sp-3:clamp(6px, .35vw, 26px);--sp-4:clamp(8px, .42vw, 32px);--sp-5:clamp(12px, .62vw, 48px);--sp-6:clamp(16px, .83vw, 64px);--r-sm:clamp(3px, .18vw, 12px);--r-md:clamp(5px, .26vw, 20px);--r-lg:clamp(8px, .42vw, 32px);--r-xl:clamp(12px, .62vw, 48px);--toolbar-h:clamp(40px, 4.07vh, 160px);--sidebar-w:clamp(160px, 12.5vw, 800px);--props-w:clamp(200px, 16.7vw, 1100px);--log-h:clamp(120px, 14vh, 520px);--btn-h:clamp(28px, 2.6vh, 40px);--btn-pv:clamp(4px, .37vh, 8px);--btn-ph:clamp(10px, .52vw, 20px);--inp-pv:clamp(4px, .37vh, 8px);--inp-ph:clamp(8px, .42vw, 16px);--ctrl-sz:clamp(24px, 2vh, 48px);--minimap-w:clamp(120px, 8.3vw, 480px);--minimap-h:clamp(72px, 9.3vh, 280px);--modal-min-w:clamp(360px, 33vw, 2000px);--modal-min-h:clamp(240px, 30vh, 1600px);--label-w:clamp(130px, 9vw, 600px);--sb-w:clamp(5px, .4vw, 12px)}html{height:100%}body{font-family:var(--font-ui);font-size:var(--f-base);background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;overflow:hidden}code,kbd,samp,pre{font-family:var(--font-mono);font-size:var(--f-sm);background:var(--bg-tertiary);border-radius:var(--r-sm);padding:1px 5px}button{cursor:pointer;justify-content:center;align-items:center;gap:var(--sp-2);height:var(--btn-h);padding:var(--btn-pv) var(--btn-ph);font-family:var(--font-ui);font-size:var(--f-sm);white-space:nowrap;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--bg-tertiary);color:var(--text-primary);outline:none;font-weight:500;line-height:1;transition:background .12s,border-color .12s,color .12s;display:inline-flex}button:hover{background:var(--bg-hover);border-color:var(--border-strong)}button:active{background:var(--bg-tertiary)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=text],input[type=number],input[type=password],input[type=email],select,textarea{font-family:var(--font-ui);font-size:var(--f-sm);padding:var(--inp-pv) var(--inp-ph);background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--r-sm);outline:none;transition:border-color .12s,box-shadow .12s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}input::placeholder{color:var(--text-disabled)}select option{background:var(--bg-secondary);color:var(--text-primary)}#root{flex-direction:column;height:100vh;display:flex;overflow:hidden}#app{flex-direction:column;height:100vh;display:flex}::-webkit-scrollbar{width:var(--sb-w);height:var(--sb-w)}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:100px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}#toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:0 var(--sp-6);justify-content:space-between;align-items:center;gap:var(--sp-3);min-height:var(--toolbar-h);flex-shrink:0;display:flex}.toolbar-left,.toolbar-right{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}.toolbar-center{flex:1;justify-content:center;display:flex}.logo{font-size:var(--f-logo);letter-spacing:-.02em;color:var(--text-primary);margin-right:var(--sp-4);white-space:nowrap;font-weight:700}#wf-name{font-size:var(--f-md);text-align:center;width:clamp(160px,14.6vw,800px);color:var(--text-primary);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);background:0 0;border:1px solid #0000;font-weight:600;transition:border-color .12s,background .12s}#wf-name:hover{border-color:var(--border)}#wf-name:focus{border-color:var(--accent);background:var(--bg-tertiary);box-shadow:0 0 0 3px var(--accent-subtle)}.btn-execute{background:var(--success);border-color:var(--success);color:#fff}.btn-execute:hover{color:#fff;background:#16a34a;border-color:#16a34a}.btn-cancel{background:var(--error);border-color:var(--error);color:#fff}.btn-cancel:hover{color:#fff;background:#c01b1b;border-color:#c01b1b}.btn-validate{background:var(--accent);border-color:var(--accent);color:#fff}.btn-validate:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-small{height:clamp(22px,2vh,34px)!important;font-size:var(--f-xs)!important;padding:var(--sp-1) var(--sp-3)!important}.badge{padding:var(--sp-1) var(--sp-3);border-radius:var(--r-xl);font-size:var(--f-xs);letter-spacing:.04em;text-transform:uppercase;background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);align-items:center;font-weight:700;display:inline-flex}.badge.running{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.badge.completed{background:var(--success-subtle);border-color:var(--success);color:var(--success)}.badge.failed{background:var(--error-subtle);border-color:var(--error);color:var(--error)}#main-area{flex:1;display:flex;overflow:hidden}#sidebar{width:var(--sidebar-w);background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;min-width:clamp(120px,8vw,320px);max-width:600px;display:flex;overflow:hidden}.plugin-sidebar{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.plugin-sidebar-toolbar{gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;display:flex}.plugin-sidebar-toolbar input{flex:1;min-width:0}.plugin-list{padding:var(--sp-2);flex:1;min-height:0;overflow-y:auto}.sidebar-header{padding:var(--sp-3);border-bottom:1px solid var(--border)}.sidebar-header h3{font-size:var(--f-md);margin-bottom:var(--sp-2);font-weight:600}.sidebar-header input{width:100%}.plugin-category{margin-bottom:var(--sp-3)}.plugin-category-label{font-size:var(--f-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);padding:var(--sp-1) var(--sp-3);font-weight:700;display:block}.plugin-item{padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);cursor:grab;font-size:var(--f-sm);-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;margin:1px 0;transition:background .1s,border-color .1s;display:flex}.plugin-item:hover{background:var(--bg-tertiary);border-color:var(--border)}.plugin-item:active{cursor:grabbing}.pi-name{color:var(--text-primary);font-weight:500}.pi-version{font-size:var(--f-xs);color:var(--text-secondary)}.sidebar-footer{padding:var(--sp-3);border-top:1px solid var(--border);gap:var(--sp-2);flex-wrap:wrap;flex-shrink:0;justify-content:center;display:flex}.special-nodes-section{border-top:1px solid var(--border);padding:var(--sp-2) 0;flex-shrink:0}.special-nodes-section .section-label{font-size:var(--f-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);padding:var(--sp-1) var(--sp-3);margin-bottom:var(--sp-1);font-weight:700;display:block}.special-node-item{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);cursor:grab;border-radius:var(--r-sm);font-size:var(--f-sm);-webkit-user-select:none;user-select:none;font-weight:500;transition:background .1s;display:flex}.special-node-item:hover{background:var(--bg-tertiary)}.special-node-item:active{cursor:grabbing}.special-node-icon{border-radius:var(--r-sm);width:clamp(18px,1.25vw,40px);height:clamp(18px,1.25vw,40px);font-size:var(--f-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.sni-subworkflow{color:#ce93d8;background:#9c27b026;border:1px solid #9c27b059}.sni-condition{color:#fcd34d;background:#f59e0b26;border:1px solid #f59e0b59}.sni-ai_agent{color:#67e8f9;background:#06b6d426;border:1px solid #06b6d459}.sni-pause{color:#fdba74;background:#f9731626;border:1px solid #f9731659}.sni-loop{color:#86efac;background:#22c55e26;border:1px solid #22c55e59}.panel-resizer-v{background:var(--border);cursor:ew-resize;z-index:10;flex-shrink:0;width:clamp(4px,.26vw,8px);transition:background .15s;position:relative}.panel-resizer-v:hover{background:var(--accent)}.panel-collapse-btn{background:var(--bg-tertiary);border:1px solid var(--border);width:20px;height:32px;color:var(--text-secondary);cursor:pointer;z-index:20;border-radius:4px;justify-content:center;align-items:center;margin-left:-10px;padding:0;font-size:9px;line-height:1;transition:background .15s,color .15s;display:flex;position:absolute;top:50%;left:50%;transform:translateY(-50%)}.panel-collapse-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}#sidebar,#properties-panel{transition:width .2s,min-width .2s}#log-resizer{background:var(--border);cursor:ns-resize;z-index:10;flex-shrink:0;height:clamp(4px,.37vh,8px);transition:background .15s}#log-resizer:hover{background:var(--accent)}#canvas-container{background:var(--canvas-bg);flex:1;position:relative;overflow:hidden}.react-flow{background:var(--canvas-bg)!important}.react-flow__renderer,.react-flow__zoompane,.react-flow__pane{background:0 0!important}.react-flow__controls{overflow:hidden;background:var(--bg-secondary)!important;border:1px solid var(--border)!important;border-radius:var(--r-md)!important;box-shadow:var(--shadow-md)!important}.react-flow__controls-button{background:var(--bg-secondary)!important;border:none!important;border-bottom:1px solid var(--border)!important;color:var(--text-primary)!important;fill:var(--text-primary)!important;width:var(--ctrl-sz)!important;height:var(--ctrl-sz)!important;justify-content:center!important;align-items:center!important;transition:background .1s!important;display:flex!important}.react-flow__controls-button:hover{background:var(--bg-tertiary)!important}.react-flow__controls-button svg{fill:var(--text-primary)!important;width:clamp(10px,.8vw,18px)!important;height:clamp(10px,.8vw,18px)!important}.react-flow__controls-button:disabled{opacity:.35!important;cursor:not-allowed!important}.react-flow__minimap{overflow:hidden;background:var(--bg-secondary)!important;border:1px solid var(--border)!important;border-radius:var(--r-md)!important;width:var(--minimap-w)!important;height:var(--minimap-h)!important}.react-flow__minimap-svg{background:var(--bg-secondary)!important}.react-flow__panel{box-shadow:none!important;background:0 0!important}.react-flow__attribution{background:0 0!important;margin:2px 2px 0 0!important;padding:0!important}.react-flow__attribution a{background:var(--bg-secondary)!important;border:1px solid var(--border)!important;border-radius:var(--r-sm)!important;color:var(--text-secondary)!important;padding:2px 7px!important;font-size:10px!important;line-height:1.5!important;text-decoration:none!important;transition:color .12s,border-color .12s!important;display:inline-block!important}.react-flow__attribution a:hover{color:var(--accent)!important;border-color:var(--accent)!important}.react-flow__edge-path{stroke:var(--edge-default,#5a5a8a);stroke-width:2px}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge:hover .react-flow__edge-path{stroke-width:2.5px;stroke:var(--accent)!important}.react-flow__arrowhead path{fill:var(--edge-default,#5a5a8a)}.react-flow__edge.selected .react-flow__arrowhead path,.react-flow__edge:hover .react-flow__arrowhead path{fill:var(--accent)!important}.react-flow__selection,.react-flow__nodesselection-rect{background:var(--accent-subtle)!important;border:1px dashed var(--accent)!important}.seqnode-card{transition:box-shadow .12s,border-color .12s}.seqnode-card:hover{box-shadow:0 0 0 2px var(--accent-subtle), var(--shadow-md)}.react-flow__node.selected .seqnode-card,.react-flow__node-seqNode.selected .seqnode-card{box-shadow:0 0 0 2px var(--accent), var(--shadow-md)}@keyframes node-pulse{0%,to{opacity:1}50%{opacity:.65}}.node-running-pulse{animation:1.6s ease-in-out infinite node-pulse}#properties-panel{width:var(--props-w);background:var(--bg-secondary);border-left:1px solid var(--border);min-width:clamp(180px,10vw,400px);max-width:800px;padding:var(--sp-4);flex-shrink:0;overflow-y:auto}#properties-panel h3{font-size:var(--f-md);margin-bottom:var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);font-weight:600}.prop-group{margin-bottom:var(--sp-3)}.prop-label{font-size:var(--f-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);margin-bottom:var(--sp-1);font-weight:600;display:block}.prop-input{width:100%}.prop-desc{font-size:var(--f-xs);color:var(--text-secondary);margin-top:var(--sp-1);line-height:1.4}.prop-category-label{text-transform:uppercase;letter-spacing:.05em;font-size:var(--f-xs)}.hint{color:var(--text-secondary);font-size:var(--f-base);text-align:center;margin-top:clamp(24px,4vh,80px);line-height:1.6}.file-path-group{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin-bottom:var(--sp-2)}.file-path-group .fp-label{font-size:var(--f-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px;font-weight:600}.file-path-group .fp-path{font-family:var(--font-mono);font-size:var(--f-xs);color:var(--port-output);word-break:break-all}.file-path-group input.fp-edit{width:100%;font-family:var(--font-mono);font-size:var(--f-xs);margin-top:2px}.file-path-group.fp-warning{border-color:var(--warning);border-left:3px solid var(--warning)}.file-path-group.fp-linked{border-color:var(--success);border-left:3px solid var(--success)}.multi-file-select{border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2);margin-top:var(--sp-1);background:var(--bg-primary)}.multi-file-select label{align-items:center;gap:var(--sp-2);font-size:var(--f-xs);cursor:pointer;color:var(--text-primary);min-width:auto;padding:2px 0;display:flex}.btn-browse{flex-shrink:0;padding:var(--sp-1) var(--sp-2)!important;font-size:var(--f-md)!important;height:auto!important}.btn-browse-file{text-align:center;flex-shrink:0;min-width:30px;padding:var(--sp-1) var(--sp-2)!important;font-size:var(--f-md)!important;height:auto!important}.fp-input-row{gap:var(--sp-1);align-items:center;margin-top:2px;display:flex}.fp-input-row .prop-input{flex:1;min-width:0}.edge-header-info{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);padding:var(--sp-3);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--r-md);display:flex}.edge-node-badge{font-size:var(--f-sm);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);white-space:nowrap;text-overflow:ellipsis;text-align:center;max-width:clamp(80px,6vw,200px);font-weight:600;overflow:hidden}.edge-node-src{background:var(--accent-subtle);color:var(--accent);border:1px solid var(--accent)}.edge-node-tgt{background:var(--success-subtle);color:var(--success);border:1px solid var(--success)}.edge-arrow{font-size:var(--f-lg);color:var(--text-secondary);flex-shrink:0}.edge-ids{font-size:var(--f-xs);color:var(--text-secondary);margin-bottom:var(--sp-5);gap:var(--sp-5);padding:0 var(--sp-1);flex-wrap:wrap;display:flex}.edge-ids code{font-size:var(--f-xs);color:var(--accent)}.edge-port-card{padding:var(--sp-3);margin-bottom:var(--sp-3);border-radius:var(--r-md);background:var(--bg-primary);border:1px solid var(--border);transition:border-color .15s}.edge-port-card:hover{border-color:var(--accent)}.edge-port-linked{border-color:var(--success);background:var(--success-subtle)}.edge-port-dot{width:8px;height:8px;margin-right:var(--sp-2);vertical-align:middle;border-radius:50%;display:inline-block}.edge-port-dot-out{background:var(--port-output)}.edge-port-dot-in{background:var(--port-input)}.edge-port-ref{font-family:var(--font-mono);font-size:var(--f-xs);color:var(--text-secondary);margin-left:var(--sp-2);background:var(--bg-tertiary);padding:1px var(--sp-2);border-radius:var(--r-sm)}.edge-mapping-select{margin-bottom:var(--sp-3);font-size:var(--f-sm);padding:var(--sp-2);width:100%}.edge-mapping-select optgroup{font-weight:600}.edge-summary{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);margin-bottom:var(--sp-5);margin-top:var(--sp-3)}.edge-summary-row{font-size:var(--f-sm);padding:var(--sp-1) 0;justify-content:space-between;align-items:center;display:flex}.edge-summary-val{color:var(--text-primary);font-weight:600}.edge-summary-warn{color:var(--warning);margin-top:var(--sp-1);padding-top:var(--sp-1);border-top:1px dashed var(--border)}.edge-summary-warn .edge-summary-val{color:var(--warning)}.edge-actions{gap:var(--sp-3);margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.edge-actions button{font-size:var(--f-sm);flex:1;min-width:100px;font-weight:500}#log-panel{background:var(--bg-primary);border-top:1px solid var(--border);height:var(--log-h);flex-direction:column;flex-shrink:0;min-height:32px;display:flex}body.theme-dark #log-panel{background:#07070f}#log-panel.log-collapsed{height:32px!important}#log-panel.log-expanded-full{height:60vh!important}.log-header{padding:var(--sp-1) var(--sp-5);background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;min-height:32px;display:flex}.log-header span{font-size:var(--f-sm);font-weight:600}.log-header-buttons{gap:var(--sp-1);align-items:center;display:flex}.log-mode-active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}#log-content{padding:var(--sp-2) var(--sp-5);font-family:var(--font-mono);font-size:var(--f-sm);flex:1;line-height:1.55;overflow-y:auto}.log-line{white-space:pre-wrap;word-break:break-all}.log-line.error{color:var(--error)}.log-line.warn{color:var(--warning)}.log-line.info{color:var(--text-secondary)}#modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000a6;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}#modal-overlay.modal-hidden{display:none!important}#modal-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);min-width:var(--modal-min-w);min-height:var(--modal-min-h);max-width:92vw;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:absolute;overflow:hidden}#modal-box.modal-maximized{border-radius:0}#modal-header{padding:var(--sp-3) var(--sp-6);border-bottom:1px solid var(--border);font-weight:600;font-size:var(--f-md);cursor:move;-webkit-user-select:none;user-select:none;flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal-header-controls{gap:var(--sp-1);align-items:center;display:flex}.modal-header-controls button{color:var(--text-secondary);font-size:var(--f-md);width:var(--ctrl-sz);height:var(--ctrl-sz);border-radius:var(--r-sm);background:0 0;border:none;justify-content:center;align-items:center;padding:0;transition:background .1s,color .1s;display:flex}.modal-header-controls button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-header-controls button:last-child:hover{background:var(--error-subtle);color:var(--error)}#modal-body{padding:var(--sp-6);flex:1;min-height:0;overflow-y:auto}#modal-footer{padding:var(--sp-3) var(--sp-6);border-top:1px solid var(--border);justify-content:flex-end;gap:var(--sp-3);flex-shrink:0;display:flex}#modal-resizer{cursor:nwse-resize;z-index:10;width:16px;height:16px;position:absolute;bottom:0;right:0}#modal-resizer:after{content:"";border-right:2px solid var(--text-disabled);border-bottom:2px solid var(--text-disabled);width:8px;height:8px;position:absolute;bottom:3px;right:3px}#modal-resizer:hover:after{border-color:var(--accent)}.workflow-list-item{padding:var(--sp-3);border-bottom:1px solid var(--border);cursor:pointer;transition:background .1s}.workflow-list-item:hover{background:var(--bg-tertiary)}.settings-modal-inner{flex-direction:column;height:100%;min-height:0;display:flex;overflow:hidden}.settings-tabs{border-bottom:2px solid var(--border);margin-bottom:var(--sp-5);flex-wrap:wrap;flex-shrink:0;gap:0;display:flex}.settings-tab{padding:var(--sp-2) var(--sp-4);cursor:pointer;color:var(--text-secondary);font-size:var(--f-xs);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;height:auto;margin-bottom:-2px;font-weight:500;transition:color .12s,border-color .12s}.settings-tab:hover{color:var(--text-primary);border-color:var(--border-strong);background:0 0}.settings-tab.active{color:var(--accent);border-bottom-color:var(--accent);background:0 0}.settings-section{display:none}.settings-section.active{display:block}.settings-group-title{font-size:var(--f-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);margin-top:var(--sp-5);margin-bottom:var(--sp-3);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);font-weight:700}.settings-group-title:first-child{margin-top:0}.settings-desc{font-size:var(--f-xs);color:var(--text-secondary);margin-bottom:var(--sp-4);line-height:1.5}.settings-row{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-3);display:flex}.settings-row label{min-width:var(--label-w);font-size:var(--f-sm);color:var(--text-secondary);flex-shrink:0}.settings-row input,.settings-row select{flex:1;min-width:0}.settings-row-check{justify-content:flex-start}.settings-row-check label{min-width:var(--label-w);flex-shrink:0}.settings-row-check input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent);flex:none;margin-left:0;margin-right:auto}.settings-body{min-height:0;padding:var(--sp-1) 2px;flex:1;overflow-y:auto}.settings-footer{gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--border);background:var(--bg-secondary);flex-direction:column;flex-shrink:0;display:flex}#dir-browser-overlay,#file-browser-overlay,#gf-file-browser-overlay{z-index:2000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000a6;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#dir-browser-box,#file-browser-box,#gf-file-browser-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-lg);width:clamp(360px,30vw,1200px);max-width:94vw;max-height:80vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex}#dir-browser-header,.gf-fb-header,#file-browser-box .dir-browser-header{padding:var(--sp-3) var(--sp-5);border-bottom:1px solid var(--border);font-weight:600;font-size:var(--f-md);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}#dir-browser-header button,.gf-fb-close,#file-browser-box .dir-browser-header button{font-size:var(--f-lg);color:var(--text-secondary);cursor:pointer;padding:var(--sp-1) var(--sp-2);border-radius:var(--r-sm);background:0 0!important;border:none!important;height:auto!important}#dir-browser-header button:hover,.gf-fb-close:hover,#file-browser-box .dir-browser-header button:hover{color:var(--error);background:var(--error-subtle)!important}#dir-browser-path,.gf-fb-path,#file-browser-box .dir-browser-path{padding:var(--sp-2) var(--sp-5);font-family:var(--font-mono);font-size:var(--f-xs);color:var(--accent);background:var(--bg-primary);border-bottom:1px solid var(--border);word-break:break-all;flex-shrink:0}#dir-browser-list,.gf-fb-list,#file-browser-box .dir-browser-list{min-height:160px;max-height:360px;padding:var(--sp-1) 0;flex:1;overflow-y:auto}.dir-entry,.gf-fb-entry,#file-browser-box .dir-browser-list .dir-entry{padding:var(--sp-2) var(--sp-5);cursor:pointer;font-size:var(--f-sm);font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;border-bottom:1px solid #0000;transition:background 80ms;overflow:hidden}.dir-entry:hover,.gf-fb-entry:hover{background:var(--bg-tertiary)}.dir-up,.gf-fb-up{color:var(--accent);font-style:italic}.gf-fb-dir{color:var(--text-primary)}.gf-fb-file,#file-browser-box .dir-browser-list .file-entry{color:var(--port-output)}.gf-fb-size{color:var(--text-secondary);font-size:var(--f-xs)}.gf-fb-empty{padding:var(--sp-6);text-align:center;color:var(--text-secondary);font-size:var(--f-sm)}#dir-browser-footer,.gf-fb-footer,#file-browser-box .dir-browser-footer{gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-top:1px solid var(--border);flex-shrink:0;align-items:center;display:flex}#dir-browser-footer input,#gf-fb-input,#file-browser-box .dir-browser-footer input{font-family:var(--font-mono);font-size:var(--f-sm);flex:1}#dir-browser-ok,.gf-fb-ok-btn{background:var(--success)!important;border-color:var(--success)!important;color:#fff!important}#plugin-yaml-editor{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);padding:var(--sp-3);border-radius:var(--r-sm);resize:vertical;tab-size:2;font-family:var(--font-mono);font-size:var(--f-sm);white-space:pre;outline:none}#plugin-yaml-editor:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.plugin-editor-toolbar{gap:var(--sp-3);margin-bottom:var(--sp-3);flex-wrap:wrap;align-items:center;display:flex}.verify-ok{color:var(--success);font-size:var(--f-xs);font-weight:700}.verify-fail{color:var(--error);font-size:var(--f-xs);font-weight:700}.install-details{border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-primary);margin-top:var(--sp-5);overflow:hidden}.install-summary{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4);font-size:var(--f-sm);cursor:pointer;background:var(--bg-secondary);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;color:var(--text-primary);font-weight:600;list-style:none;display:flex}.install-summary::-webkit-details-marker{display:none}.install-details[open] .install-summary:before{content:"▼";font-size:var(--f-xs);color:var(--text-secondary)}.install-details:not([open]) .install-summary:before{content:"▶";font-size:var(--f-xs);color:var(--text-secondary)}.install-body{padding:var(--sp-4)}.install-no-info{font-size:var(--f-xs);color:var(--text-secondary);padding:var(--sp-1) 0}.install-status-row{margin-bottom:var(--sp-3);line-height:1.6}.inst-badge{align-items:center;gap:var(--sp-1);font-size:var(--f-xs);padding:2px var(--sp-3);border-radius:var(--r-xl);font-weight:700;display:inline-flex}.inst-badge-ok{background:var(--success-subtle);color:var(--success);border:1px solid #22c55e4d}.inst-badge-missing{background:var(--error-subtle);color:var(--error);border:1px solid #ef44444d}.inst-badge-checking{color:#38bdf8;background:#38bdf81a;border:1px solid #38bdf84d}.inst-badge-running{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b4d}.inst-badge-unknown{color:var(--text-secondary);background:#a1a1aa1a;border:1px solid #a1a1aa4d}.inst-version{font-size:var(--f-xs);color:var(--text-secondary);font-family:var(--font-mono);margin-top:2px}.inst-bin-path{font-size:var(--f-xs);color:var(--text-secondary);margin-top:2px}.inst-bin-path code{color:var(--accent)}.inst-refs-ok{font-size:var(--f-xs);color:var(--success);margin-top:3px}.inst-refs-missing{font-size:var(--f-xs);color:var(--warning);margin-top:3px}.install-meta{margin-bottom:var(--sp-3)}.inst-meta-row{gap:var(--sp-2);font-size:var(--f-xs);border-bottom:1px solid var(--border);align-items:baseline;padding:2px 0;display:flex}.inst-lbl{color:var(--text-secondary);min-width:64px;font-size:var(--f-xs);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;font-weight:600}.inst-code{font-family:var(--font-mono);font-size:var(--f-xs);color:var(--accent)}.inst-link{color:var(--accent);font-size:var(--f-xs);text-decoration:none}.inst-link:hover{text-decoration:underline}.install-notes{font-size:var(--f-xs);color:var(--text-secondary);background:var(--bg-tertiary);border-left:3px solid var(--accent);padding:var(--sp-2) var(--sp-3);margin:var(--sp-3) 0;border-radius:0 var(--r-sm) var(--r-sm) 0;white-space:pre-wrap;line-height:1.55}.install-default-paths{background:var(--accent-subtle);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);margin:var(--sp-2) 0;font-size:var(--f-xs);border:1px solid #7c6ff733}.install-refs{margin:var(--sp-2) 0}.inst-ref-row{font-size:var(--f-xs);align-items:center;gap:var(--sp-1);padding:2px 0;display:flex}.inst-ref-label{color:var(--text-primary)}.inst-ref-size{color:var(--text-secondary);font-size:var(--f-xs)}.install-log{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);max-height:200px;font-family:var(--font-mono);font-size:var(--f-xs);color:var(--text-primary);margin:var(--sp-3) 0;word-break:break-all;line-height:1.5;overflow-y:auto}body.theme-dark .install-log{color:#c8d8e8;background:#060610}.ilog-line{border-bottom:1px solid var(--border)}.ilog-error{color:var(--error)}.ilog-info{color:var(--accent)}.ilog-ok{color:var(--success)}.install-actions{gap:var(--sp-2);margin-top:var(--sp-3);flex-wrap:wrap;display:flex}.btn-install{min-width:100px;font-size:var(--f-sm);background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;flex:1;font-weight:600;transition:opacity .12s}.btn-install:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.btn-install-update{background:var(--bg-tertiary);border-color:var(--border-strong);color:var(--text-primary)}.btn-install-update:hover{background:var(--bg-hover);color:var(--text-primary)}.cmd-terminal-section{margin-top:var(--sp-4);border:1px solid var(--accent);border-radius:var(--r-md);background:var(--bg-primary);overflow:hidden}body.theme-dark .cmd-terminal-section{background:#07070e}.cmd-terminal-header{padding:var(--sp-2) var(--sp-3);background:var(--accent-subtle);border-bottom:1px solid #7c6ff733;justify-content:space-between;align-items:center;display:flex}.cmd-terminal-title{font-size:var(--f-sm);color:var(--accent);font-weight:600}.cmd-terminal-actions{gap:var(--sp-1);display:flex}.cmd-save-btn{background:var(--success)!important;border-color:var(--success)!important;color:#fff!important}.cmd-terminal-body{padding:var(--sp-3) var(--sp-4);align-items:flex-start;gap:var(--sp-2);display:flex}.cmd-terminal-prompt{color:var(--success);font-family:var(--font-mono);font-size:var(--f-base);-webkit-user-select:none;user-select:none;flex-shrink:0;font-weight:700;line-height:1.6}.cmd-terminal-textarea{color:var(--text-primary);font-family:var(--font-mono);font-size:var(--f-sm);resize:vertical;background:0 0;border:none;outline:none;flex:1;min-height:40px;max-height:200px;padding:0;line-height:1.6}.cmd-terminal-textarea:focus{color:var(--text-primary)}body.theme-dark .cmd-terminal-textarea{color:#d8e8f8}body.theme-dark .cmd-terminal-textarea:focus{color:#f0f8ff}.cmd-terminal-status{font-size:var(--f-xs);padding:var(--sp-1) var(--sp-4) var(--sp-2);border-top:1px solid var(--border)}.cmd-status-auto{color:var(--text-secondary)}.cmd-status-editing{color:var(--warning)}.cmd-status-saved{color:var(--success)}.cmd-preview-section{border-top:1px solid var(--border);padding-top:var(--sp-3)}.cmd-preview-textarea{width:100%;min-height:80px;max-height:300px;font-family:var(--font-mono);font-size:var(--f-sm);background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-3);resize:vertical;white-space:pre-wrap;word-break:break-all;outline:none;line-height:1.5}body.theme-dark .cmd-preview-textarea{color:#c8d8e8;background:#07070e}.cmd-preview-textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.refs-grid{gap:var(--sp-4);margin-bottom:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(clamp(200px,14vw,360px),1fr));display:grid}.ref-card{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);transition:border-color .12s;position:relative}.ref-card.ref-installed{border-color:var(--success)}.ref-card-title{font-size:var(--f-base);margin-bottom:var(--sp-1);font-weight:600}.ref-card-build{font-size:var(--f-xs);color:var(--text-secondary);margin-bottom:var(--sp-1)}.ref-card-path{font-size:var(--f-xs);font-family:var(--font-mono);color:var(--text-secondary);margin-bottom:var(--sp-2);word-break:break-all}.ref-status{font-size:var(--f-xs);margin-bottom:var(--sp-1);font-weight:700}.ref-status.installed{color:var(--success)}.ref-status.missing{color:var(--text-secondary)}.ref-status.downloading{color:var(--warning)}.ref-status.error{color:var(--error)}.ref-status.warn{color:var(--warning)}.ref-progress-bar{background:var(--bg-tertiary);height:3px;margin-bottom:var(--sp-1);border-radius:2px;overflow:hidden}.ref-progress-bar div{background:var(--accent);height:100%;transition:width .4s}.ref-card-actions{gap:var(--sp-1);margin-top:var(--sp-1);display:flex}.ref-dl-msg{font-size:var(--f-xs);color:var(--text-secondary);font-family:var(--font-mono);margin-top:var(--sp-1);word-break:break-all;max-height:40px;overflow:hidden}.depcheck-modal{gap:var(--sp-3);padding:var(--sp-1);flex-direction:column;max-height:68vh;display:flex;overflow-y:auto}.depcheck-summary-bar{gap:var(--sp-3);padding-bottom:var(--sp-4);border-bottom:1px solid var(--border);flex-wrap:wrap;display:flex}.depcheck-chip{padding:var(--sp-3) var(--sp-5);border-radius:var(--r-md);border:1px solid var(--border);background:var(--bg-tertiary);flex-direction:column;align-items:center;min-width:72px;display:flex}.depcheck-chip-count{font-size:var(--f-lg);font-weight:700;line-height:1}.depcheck-chip-label{font-size:var(--f-xs);color:var(--text-secondary);margin-top:var(--sp-1);white-space:nowrap}.depcheck-chip-ok{border-color:var(--success);color:var(--success)}.depcheck-chip-partial{border-color:var(--warning);color:var(--warning)}.depcheck-chip-missing{border-color:var(--error);color:var(--error)}.depcheck-chip-total{border-color:var(--accent);color:var(--accent)}.depcheck-sys-info{font-size:var(--f-xs);color:var(--text-secondary);padding:var(--sp-2) 0;border-bottom:1px solid var(--border)}.depcheck-card{border:1px solid var(--border);border-radius:var(--r-md);transition:border-color .12s;overflow:hidden}.depcheck-card-ok{border-left:3px solid var(--success)}.depcheck-card-partial{border-left:3px solid var(--warning)}.depcheck-card-missing{border-left:3px solid var(--error)}.depcheck-card-unknown_plugin{border-left:3px solid var(--text-secondary)}.depcheck-card-header{align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);cursor:pointer;background:var(--bg-tertiary);-webkit-user-select:none;user-select:none;transition:background .1s;display:flex}.depcheck-card-header:hover{background:var(--bg-hover)}.depcheck-card-status{font-size:var(--f-lg);flex-shrink:0}.depcheck-card-name{font-size:var(--f-base);flex:1}.depcheck-card-expand{color:var(--text-secondary);font-size:var(--f-sm);flex-shrink:0}.depcheck-card-statuslabel{font-size:var(--f-xs);padding:1px var(--sp-3);border-radius:var(--r-xl);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;font-weight:700}.depcheck-status-ok{background:var(--success-subtle);color:var(--success)}.depcheck-status-partial{background:var(--warning-subtle);color:var(--warning)}.depcheck-status-missing{background:var(--error-subtle);color:var(--error)}.depcheck-status-unknown_plugin{background:var(--bg-tertiary);color:var(--text-secondary)}.depcheck-card-body{padding:var(--sp-3) var(--sp-4);background:var(--bg-primary);gap:var(--sp-2);flex-direction:column;display:flex}.depcheck-row{align-items:flex-start;gap:var(--sp-3);font-size:var(--f-sm);flex-wrap:wrap;display:flex}.depcheck-row-sub{padding-left:var(--sp-3)}.depcheck-row-label{color:var(--text-secondary);font-size:var(--f-xs);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;min-width:90px;padding-top:2px;font-weight:600}.depcheck-row-val{align-items:center;gap:var(--sp-2);flex-wrap:wrap;flex:1;display:flex}.depcheck-mode-badge{font-size:var(--f-xs);padding:1px var(--sp-3);border-radius:var(--r-xl);background:var(--bg-tertiary);border:1px solid var(--border);color:var(--accent);font-weight:700}.depcheck-pkg-tag{font-size:var(--f-xs);padding:1px var(--sp-3);border-radius:var(--r-xl);font-family:var(--font-mono)}.pkg-ok{background:var(--success-subtle);color:var(--success);border:1px solid #22c55e4d}.pkg-missing{background:var(--error-subtle);color:var(--error);border:1px solid #ef44444d}.depcheck-issues{margin-top:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--error-subtle);border-radius:var(--r-sm);font-size:var(--f-sm);border:1px solid #ef444440}.depcheck-issues-title{color:var(--warning);margin-bottom:var(--sp-1);font-weight:700;display:block}.depcheck-issues ul{color:var(--text-secondary);margin:0;padding:0 0 0 18px}.depcheck-issues li{margin-bottom:2px}.depcheck-path-editor{margin-top:var(--sp-3);border-top:1px solid var(--border);padding-top:var(--sp-3)}.depcheck-path-form{gap:var(--sp-3);background:var(--bg-tertiary);padding:var(--sp-3);border-radius:var(--r-sm);flex-direction:column;display:flex}.depcheck-path-row{align-items:center;gap:var(--sp-3);display:flex}.depcheck-card-actions{gap:var(--sp-3);margin-top:var(--sp-4);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.btn-install-one{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.btn-install-one:hover{background:var(--accent-hover)!important;color:#fff!important}.btn-install-fallback,.btn-recheck{background:var(--bg-tertiary)!important}.btn-save-paths{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.depcheck-actions{gap:var(--sp-3);padding-top:var(--sp-3);border-top:1px solid var(--border);flex-wrap:wrap;justify-content:flex-end;display:flex}.btn-install-all{font-weight:700;background:var(--success)!important;border-color:var(--success)!important;color:#fff!important}.btn-install-all:hover{color:#fff!important;background:#16a34a!important}.btn-secondary{background:var(--bg-tertiary)!important}.btn-cancel-job{background:var(--error-subtle)!important;border-color:var(--error)!important;color:var(--error)!important}.depcheck-install-log-wrap{flex-direction:column;height:100%;display:flex}.depcheck-install-header{padding:var(--sp-3) 0;font-size:var(--f-md);border-bottom:1px solid var(--border);margin-bottom:var(--sp-3)}.depcheck-install-log{background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-mono);font-size:var(--f-xs);padding:var(--sp-4);border-radius:var(--r-sm);white-space:pre-wrap;word-break:break-all;border:1px solid var(--border);flex:1;max-height:50vh;overflow-y:auto}body.theme-dark .depcheck-install-log{color:#b8d8b8;background:#060610}.depcheck-phase-header{align-items:center;gap:var(--sp-3);padding:var(--sp-3) 0;font-size:var(--f-md);border-bottom:1px solid var(--border);font-weight:600;display:flex}.depcheck-phase-icon{font-size:var(--f-lg)}.depcheck-loading-grid{gap:var(--sp-3);padding:var(--sp-4) 0;flex-direction:column;display:flex}.depcheck-loading-row{align-items:center;gap:var(--sp-3);font-size:var(--f-sm);color:var(--text-secondary);display:flex}.depcheck-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:14px;height:14px;animation:.65s linear infinite dc-spin;display:inline-block}@keyframes dc-spin{to{transform:rotate(360deg)}}.depcheck-empty{text-align:center;padding:var(--sp-6) var(--sp-5);color:var(--text-secondary);font-size:var(--f-md)}.depcheck-empty p{margin-bottom:var(--sp-2)}.depcheck-error{padding:var(--sp-5);background:var(--error-subtle);border:1px solid var(--error);border-radius:var(--r-sm);color:var(--error);font-size:var(--f-sm)}.pause-approval-info{background:var(--bg-tertiary);border:1px solid var(--warning);border-radius:var(--r-md);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-4);font-size:var(--f-base);line-height:1.55}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}details[open]>summary+*{animation:.15s ease-out fadeIn}#btn-depcheck{white-space:nowrap;transition:all .15s}.toolbar-hamburger{display:none!important}.toolbar-nav-items{align-items:center;gap:var(--sp-2);flex-shrink:0;display:flex}@media (width<=767px){.toolbar-hamburger{display:flex!important}#toolbar{flex-wrap:nowrap;padding:4px 8px;position:relative}.toolbar-left,.toolbar-right{gap:var(--sp-1);flex-shrink:0}.toolbar-left .toolbar-nav-items,.toolbar-right .toolbar-nav-items,.toolbar-right .btn-user,.toolbar-right .btn-small:not(.btn-logout){display:none}.toolbar-right #status-badge{font-size:10px}#toolbar.mobile-open .toolbar-left .toolbar-nav-items,#toolbar.mobile-open .toolbar-right .toolbar-nav-items{background:var(--bg-secondary);border-bottom:2px solid var(--accent);z-index:1200;flex-direction:column;gap:6px;max-height:70vh;padding:10px 14px;display:flex;position:fixed;left:0;right:0;overflow-y:auto;box-shadow:0 12px 32px #00000080}#toolbar.mobile-open .toolbar-left .toolbar-nav-items{top:var(--toolbar-h,44px)}#toolbar.mobile-open .toolbar-right .toolbar-nav-items{top:calc(var(--toolbar-h,44px) + 200px);border-top:1px solid var(--border)}#toolbar.mobile-open .toolbar-nav-items button,#toolbar.mobile-open .toolbar-nav-items a{text-align:left;background:var(--bg-tertiary);border-radius:7px;width:100%;padding:10px 14px;font-size:14px}#toolbar.mobile-open .toolbar-nav-items button:hover{background:var(--accent-subtle);color:var(--accent)}}@media (width<=899px){:root{--sidebar-w:clamp(120px, 20vw, 180px);--props-w:clamp(160px, 24vw, 220px);--toolbar-h:clamp(40px, 7vh, 72px);--log-h:clamp(80px, 16vh, 140px);--modal-min-w:clamp(300px, 88vw, 600px)}.logo{font-size:clamp(13px,2.2vw,18px)}#wf-name{width:clamp(100px,18vw,180px)}.settings-tabs{flex-wrap:wrap}}@media (width>=600px) and (width<=799px){:root{--sidebar-w:140px;--props-w:160px;--toolbar-h:42px;--log-h:80px;--modal-min-w:clamp(280px, 92vw, 540px)}.logo{display:none}#wf-name{width:clamp(90px,22vw,160px);font-size:12px}#toolbar button{padding:3px 6px;font-size:11px}.btn-validate,.btn-execute,.btn-cancel{padding:3px 7px;font-size:11px}.plugin-list-item{padding:3px 6px;font-size:11px}.settings-tabs{flex-wrap:wrap}#modal-box{min-width:clamp(260px,90vw,500px)}}@media (width<=599px){:root{--sidebar-w:0px;--props-w:0px;--toolbar-h:48px;--log-h:72px;--modal-min-w:94vw}#sidebar{border-right:none;overflow:hidden;width:0!important;min-width:0!important}#properties-panel{border-left:none;overflow:hidden;width:0!important;min-width:0!important}#toolbar{flex-wrap:wrap;gap:4px;height:auto;padding:4px 6px}.toolbar-left,.toolbar-center,.toolbar-right{flex:auto;justify-content:center}.logo{display:none}#wf-name{width:clamp(80px,40vw,200px);font-size:13px}#toolbar button{padding:4px 7px;font-size:12px}.btn-validate,.btn-execute,.btn-cancel{padding:4px 8px;font-size:12px}.panel-collapse-btn{width:26px;height:40px;font-size:11px}#log-panel{font-size:11px}.log-header{padding:3px 6px;font-size:11px}#modal-box{min-width:92vw;max-width:98vw;max-height:94vh}.settings-tabs{flex-wrap:wrap;gap:2px}.settings-tab{padding:4px 8px;font-size:11px}}@media (width>=900px) and (width<=1279px){:root{--sidebar-w:clamp(160px, 16vw, 220px);--props-w:clamp(190px, 20vw, 270px);--log-h:clamp(110px, 13vh, 180px)}#wf-name{width:clamp(140px,14vw,220px)}.settings-tabs{flex-wrap:wrap}}@media (width>=2560px) and (width<=3839px){:root{--sidebar-w:clamp(320px, 12.5vw, 500px);--props-w:clamp(420px, 16.7vw, 640px);--toolbar-h:clamp(58px, 4.07vh, 96px);--log-h:clamp(200px, 14vh, 360px);--modal-min-w:clamp(700px, 33vw, 1400px)}#canvas-container{background-size:clamp(28px,1.04vw,40px) clamp(28px,1.04vw,40px)}}@media (width>=3840px) and (width<=5119px){:root{--sidebar-w:clamp(480px, 12.5vw, 700px);--props-w:clamp(640px, 16.7vw, 920px);--toolbar-h:clamp(88px, 4.07vh, 136px);--log-h:clamp(340px, 14vh, 540px);--modal-min-w:clamp(1100px, 33vw, 2200px)}#canvas-container{background-size:clamp(36px,1.04vw,56px) clamp(36px,1.04vw,56px)}}@media (width>=5120px){:root{--sidebar-w:clamp(640px, 12.5vw, 1060px);--props-w:clamp(860px, 16.7vw, 1360px);--toolbar-h:clamp(120px, 4.07vh, 210px);--log-h:clamp(460px, 14vh, 780px);--modal-min-w:clamp(1600px, 33vw, 3400px)}#canvas-container{background-size:clamp(52px,1.04vw,80px) clamp(52px,1.04vw,80px)}#modal-resizer:after{border-width:3px;width:12px;height:12px}}.logout-widget{z-index:9999;position:fixed;bottom:16px;right:16px}.logout-trigger{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:1.1rem;transition:border-color .15s,background .15s;display:flex;box-shadow:0 2px 12px #0006}.logout-trigger:hover{background:var(--bg-tertiary);border-color:var(--accent)}.logout-menu{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;min-width:200px;animation:.15s fadeIn;position:absolute;bottom:44px;right:0;overflow:hidden;box-shadow:0 8px 32px #00000080}.logout-menu-user{padding:.85rem 1rem}.logout-menu-name{color:var(--text-primary);font-size:.9rem;font-weight:700;display:block}.logout-menu-email{color:var(--text-secondary);margin-top:2px;font-size:.78rem;display:block}.logout-menu-divider{background:var(--border);height:1px;margin:0}.logout-menu-item{text-align:left;width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:.65rem 1rem;font-size:.875rem;transition:background .12s,color .12s;display:block}.logout-menu-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.logout-menu-signout:hover{background:#ef44441a;color:var(--error,#ef4444)!important}.plugin-hub-panel{min-height:0;padding:var(--sp-3);gap:var(--sp-3);flex-direction:column;flex:1;display:flex;overflow:hidden}.hub-header{flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.hub-header h4{font-size:var(--f-md);color:var(--text-primary);margin:0;font-weight:700}.btn-refresh{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--f-md);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:background .12s,color .12s;display:flex}.btn-refresh:hover{background:var(--bg-hover);color:var(--text-primary)}.hub-search{width:100%;font-size:var(--f-sm);padding:var(--sp-2) var(--sp-3);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-primary);outline:none;flex-shrink:0;transition:border-color .12s}.hub-search:focus{border-color:var(--accent)}.hub-search::placeholder{color:var(--text-disabled)}.hub-tags{gap:var(--sp-1) var(--sp-2);flex-wrap:wrap;flex-shrink:0;display:flex}.tag-chip{font-size:var(--f-xs);border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:99px;padding:3px 10px;font-weight:600;transition:background .12s,color .12s,border-color .12s}.tag-chip:hover{border-color:var(--accent);color:var(--accent)}.tag-chip.active{background:var(--accent-subtle);border-color:var(--accent);color:var(--accent)}.hub-loading{font-size:var(--f-sm);color:var(--text-secondary);text-align:center;padding:var(--sp-4) 0;flex-shrink:0}.hub-error{font-size:var(--f-sm);color:var(--error);background:var(--error-subtle);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);border:1px solid #ef444440;flex-shrink:0}.hub-success{font-size:var(--f-sm);color:var(--success);background:var(--success-subtle);border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);border:1px solid #22c55e40;flex-shrink:0}.hub-empty{font-size:var(--f-sm);color:var(--text-secondary);text-align:center;padding:var(--sp-5) 0}.hub-plugin-list{gap:var(--sp-2);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.hub-plugin-card{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--sp-3);gap:var(--sp-2);flex-direction:column;transition:border-color .12s;display:flex}.hub-plugin-card:hover{border-color:var(--border-strong)}.hub-plugin-card.installed{background:#22c55e0a;border-color:#22c55e59}.hub-plugin-header{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.hub-plugin-header strong{font-size:var(--f-sm);color:var(--text-primary);font-weight:700}.badge-verified{color:var(--accent);background:#7c6ff726;border:1px solid #7c6ff74d;border-radius:99px;padding:1px 7px;font-size:10px;font-weight:600}.badge-installed{background:var(--success-subtle);color:var(--success);border:1px solid #22c55e4d;border-radius:99px;padding:1px 7px;font-size:10px;font-weight:600}.hub-plugin-meta{font-size:var(--f-xs);color:var(--text-secondary)}.hub-plugin-desc{font-size:var(--f-xs);color:var(--text-secondary);line-height:1.5}.hub-plugin-tags{flex-wrap:wrap;gap:4px;display:flex}.tag-small{background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-secondary);border-radius:99px;padding:1px 6px;font-size:10px}.btn-install{font-size:var(--f-xs);border-radius:var(--r-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;align-self:flex-start;padding:5px 14px;font-weight:600;transition:background .12s,opacity .12s}.btn-install:hover{background:var(--accent-hover)}.btn-install:disabled{opacity:.55;cursor:not-allowed}.aib-panel{background:var(--bg-secondary);height:100%;font-family:var(--font-ui);color:var(--text-primary);flex-direction:column;display:flex;overflow:hidden}.aib-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);background:var(--bg-tertiary);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.aib-header-left{align-items:center;gap:var(--sp-2);min-width:0;display:flex}.aib-title{font-size:var(--f-md);color:var(--text-primary);white-space:nowrap;font-weight:700}.aib-back-btn{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--f-md);flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;transition:background .12s;display:flex}.aib-back-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.aib-close-btn{color:var(--text-secondary);cursor:pointer;border-radius:var(--r-sm);background:0 0;border:none;flex-shrink:0;padding:2px 4px;font-size:20px;line-height:1;transition:color .12s}.aib-close-btn:hover{color:var(--text-primary)}.aib-provider-bar{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-5);background:var(--bg-tertiary);border-bottom:1px solid var(--border);font-size:var(--f-xs);flex-shrink:0;display:flex}.aib-provider-label{color:var(--text-secondary)}.aib-provider-value{color:var(--accent);font-weight:700}.aib-provider-sep{color:var(--text-disabled)}.aib-provider-model{color:var(--text-secondary);font-family:var(--font-mono)}.aib-provider-config{color:var(--accent);font-size:var(--f-xs);cursor:pointer;opacity:.8;margin-left:auto;text-decoration:none;transition:opacity .12s}.aib-provider-config:hover{opacity:1;text-decoration:underline}.aib-body{padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.aib-field{gap:var(--sp-2);flex-direction:column;display:flex}.aib-label{font-size:var(--f-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:var(--sp-2);font-weight:600;display:flex}.aib-label-hint{text-transform:none;letter-spacing:0;color:var(--text-disabled);font-weight:400}.aib-textarea{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-sm);width:100%;color:var(--text-primary);font-family:var(--font-ui);font-size:var(--f-sm);padding:var(--sp-3);resize:vertical;outline:none;line-height:1.6;transition:border-color .12s}.aib-textarea:focus{border-color:var(--accent)}.aib-textarea:disabled{opacity:.55;cursor:not-allowed}.aib-textarea::placeholder{color:var(--text-disabled)}.aib-textarea--large{min-height:100px}.aib-textarea--small{min-height:56px}.aib-btn{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-sm);font-size:var(--f-sm);cursor:pointer;white-space:nowrap;border:none;font-weight:600;transition:background .12s,opacity .12s;display:inline-flex}.aib-btn:disabled{opacity:.45;cursor:not-allowed}.aib-btn--full{width:100%}.aib-btn--primary{background:var(--accent);color:#fff}.aib-btn--primary:not(:disabled):hover{background:var(--accent-hover)}.aib-btn--secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.aib-btn--secondary:not(:disabled):hover{background:var(--bg-hover)}.aib-btn--success{background:var(--success);color:#fff}.aib-btn--success:not(:disabled):hover{background:#16a34a}.aib-actions{gap:var(--sp-2);display:flex}.aib-actions--col{flex-direction:column}.aib-actions--row{flex-direction:row}.aib-spinner{animation:1s linear infinite aib-spin;display:inline-block}@keyframes aib-spin{to{transform:rotate(360deg)}}.aib-error-box{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3);background:var(--error-subtle);border-radius:var(--r-sm);font-size:var(--f-sm);color:var(--error);border:1px solid #ef44444d;line-height:1.5;display:flex}.aib-error-icon{flex-shrink:0}.aib-status-banner{align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);font-size:var(--f-sm);flex-wrap:wrap;flex-shrink:0;font-weight:600;display:flex}.aib-status-banner--ok{background:var(--success-subtle);color:var(--success);border:1px solid #22c55e4d}.aib-status-banner--warn{background:var(--warning-subtle);color:var(--warning);border:1px solid #f59e0b4d}.aib-status-text{flex:1}.aib-status-meta{font-size:var(--f-xs);opacity:.75;white-space:nowrap;font-weight:400}.aib-validation-errors{background:var(--error-subtle);border-radius:var(--r-sm);padding:var(--sp-3);border:1px solid #ef444433}.aib-validation-title{font-size:var(--f-xs);color:var(--error);margin-bottom:var(--sp-2);text-transform:uppercase;letter-spacing:.05em;font-weight:700}.aib-validation-item{font-size:var(--f-xs);color:var(--error);line-height:1.6}.aib-summary-card{background:var(--bg-tertiary);border:1px solid var(--border-strong);border-radius:var(--r-md);padding:var(--sp-4);gap:var(--sp-3);flex-direction:column;display:flex}.aib-summary-name{font-size:var(--f-md);color:var(--text-primary);font-weight:700}.aib-summary-stats{align-items:center;gap:var(--sp-2);font-size:var(--f-xs);flex-wrap:wrap;display:flex}.aib-stat{color:var(--text-secondary)}.aib-stat strong{color:var(--text-primary)}.aib-stat-sep{color:var(--text-disabled)}.aib-stat--desc{color:var(--text-secondary);font-style:italic}.aib-node-preview{gap:var(--sp-1) var(--sp-2);flex-wrap:wrap;display:flex}.aib-node-chip{align-items:center;gap:var(--sp-1);background:var(--bg-secondary);border:1px solid var(--border);font-size:var(--f-xs);border-radius:99px;padding:3px 10px 3px 4px;display:flex}.aib-node-chip-num{background:var(--accent-subtle);color:var(--accent);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:700;display:flex}.aib-node-chip-name{color:var(--text-primary);font-weight:500}.aib-hint-box{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-3) var(--sp-4);font-size:var(--f-xs);color:var(--text-secondary);line-height:1.6}.aib-hint-box strong{color:var(--text-primary);margin-bottom:var(--sp-1);display:block}.aib-hint-box ul{margin:0;padding-left:16px}.aib-hint-box li{margin-bottom:2px}.aib-history-badge{background:var(--accent-subtle);color:var(--accent);white-space:nowrap;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:600}.aib-back-btn:disabled{opacity:.3;cursor:default}.aib-btn--accent{background:var(--accent);color:#fff}.aib-btn--accent:not(:disabled):hover{filter:brightness(1.15)}.aib-btn--muted{background:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border)}.aib-btn--muted:not(:disabled):hover{background:var(--bg-hover);color:var(--text-primary)}.aib-btn--xs{border-radius:var(--r-sm);min-width:0;height:auto;padding:3px 8px;font-size:11px}.aib-resolve-header{margin-bottom:var(--sp-3);flex-direction:column;gap:2px;display:flex}.aib-resolve-title{font-size:var(--f-sm);color:var(--text-primary);font-weight:600}.aib-resolve-sub{font-size:var(--f-xs);color:var(--text-secondary)}.aib-resolve-list{gap:var(--sp-2);flex-direction:column;display:flex}.aib-resolve-item{align-items:flex-start;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:1px solid var(--border);font-size:var(--f-xs);flex-wrap:wrap;display:flex}.aib-resolve-item--found{background:#22c55e0f;border-color:#22c55e40}.aib-resolve-item--shell{background:#fbbf240f;border-color:#fbbf2440}.aib-resolve-item--missing{background:#ef44440f;border-color:#ef444440}.aib-resolve-icon{flex-shrink:0;font-size:13px;line-height:1.6}.aib-resolve-info{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.aib-resolve-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.aib-resolve-id{color:var(--text-secondary);font-family:monospace;font-size:10px}.aib-resolve-hint{color:var(--text-secondary);align-self:center;margin-left:auto;font-size:11px}.aib-resolve-actions{gap:var(--sp-1);flex-shrink:0;align-items:center;display:flex}.aib-resolve-spinner{color:var(--text-secondary);font-size:11px}.aib-resolve-ok{color:var(--success);font-size:11px;font-weight:600}.aib-resolve-error{width:100%;color:var(--error);margin-top:2px;padding-left:20px;font-size:11px}.aib-resolve-undo{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:2px 4px;font-size:13px}.aib-resolve-undo:hover{color:var(--text-primary)}.aib-resolve-hint-box{font-size:var(--f-xs);color:var(--text-secondary);text-align:center;padding-top:var(--sp-1)}.aib-progress-log{margin-top:var(--sp-4);padding:var(--sp-3);border-radius:var(--r-md);font-size:var(--f-xs);background:#0000002e;border:1px solid #ffffff12;max-height:160px;overflow-y:auto}.aib-progress-log-title{color:var(--text-secondary);margin-bottom:var(--sp-1);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.aib-progress-entry{gap:var(--sp-2);color:var(--text-secondary);padding:2px 0;line-height:1.4;display:flex}.aib-progress-ts{min-width:32px;color:var(--accent-light,#a78bfa);font-variant-numeric:tabular-nums;flex-shrink:0}.aib-progress-msg{flex:1}.ai-builder-launch-box{margin-top:var(--sp-5);padding:var(--sp-4);background:var(--accent-subtle);border-radius:var(--r-md);gap:var(--sp-3);border:1px solid #7c6ff74d;flex-direction:column;display:flex}.ai-builder-launch-desc{gap:var(--sp-3);align-items:flex-start;display:flex}.ai-builder-launch-icon{flex-shrink:0;font-size:1.6rem;line-height:1}.ai-builder-launch-desc strong{font-size:var(--f-sm);color:var(--text-primary);margin-bottom:var(--sp-1);font-weight:700;display:block}.ai-builder-launch-desc p{font-size:var(--f-xs);color:var(--text-secondary);margin:0;line-height:1.5}.ai-builder-launch-btn{padding:var(--sp-3) var(--sp-5);background:var(--accent);color:#fff;border-radius:var(--r-sm);font-size:var(--f-sm);cursor:pointer;border:none;align-self:flex-start;font-weight:700;transition:background .12s}.ai-builder-launch-btn:hover{background:var(--accent-hover)}.btn-icon-eye{background:var(--surface-2,#ffffff14);border:1px solid var(--border,#ffffff26);border-radius:var(--r-sm,6px);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;font-size:14px;line-height:1;transition:background .12s,border-color .12s;display:inline-flex}.btn-icon-eye:hover{background:var(--surface-3,#ffffff24);border-color:var(--accent,#7c6ff7)}.btn-test-conn{background:var(--surface-2,#ffffff14);border:1px solid var(--accent,#7c6ff7);color:var(--accent,#7c6ff7);font-weight:600}.btn-test-conn:hover{background:#7c6ff726}.btn-test-conn:disabled{opacity:.5;cursor:not-allowed}.landing-root{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);font-family:var(--font-ui);overflow-x:hidden}.landing-nav{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#0a0e1aeb;position:sticky;top:0}body.theme-light .landing-nav{background:#f5f5fbeb}.landing-nav-inner{justify-content:space-between;align-items:center;max-width:1280px;height:60px;margin:0 auto;padding:0 2rem;display:flex}.landing-logo{letter-spacing:.02em;color:var(--text-primary);font-size:1.25rem;font-weight:700}.landing-nav-links{align-items:center;gap:1rem;display:flex}.landing-nav-links a{color:var(--text-secondary);font-size:.875rem;text-decoration:none;transition:color .15s}.landing-nav-links a:hover{color:var(--accent)}.landing-btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:6px;padding:.45rem 1.1rem;font-size:.875rem;font-weight:600;transition:background .15s,transform .1s}.landing-btn-primary:hover{background:var(--accent-hover,#6c5fef);transform:translateY(-1px)}.landing-btn-outline{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:.45rem 1.1rem;font-size:.875rem;transition:border-color .15s,color .15s}.landing-btn-outline:hover{border-color:var(--accent);color:var(--accent)}.landing-hero{align-items:center;gap:4rem;max-width:1280px;margin:0 auto;padding:5rem 2rem 4rem;display:flex}.landing-hero-inner{flex:1}.landing-hero-badge{color:var(--accent);letter-spacing:.05em;background:#7c6ff726;border:1px solid #7c6ff759;border-radius:999px;margin-bottom:1.25rem;padding:.25rem .9rem;font-size:.8rem;font-weight:600;display:inline-block}.landing-hero-title{color:var(--text-primary);margin:0 0 1.25rem;font-size:clamp(2rem,4vw,3.25rem);font-weight:800;line-height:1.15}.landing-accent{color:var(--accent)}.landing-hero-sub{color:var(--text-secondary);max-width:540px;margin-bottom:2rem;font-size:1.05rem;line-height:1.7}.landing-hero-actions{flex-wrap:wrap;gap:1rem;margin-bottom:2.5rem;display:flex}.landing-hero-stats{align-items:center;gap:1.5rem;display:flex}.landing-stat{text-align:center}.landing-stat-val{color:var(--accent);font-size:1.5rem;font-weight:800;display:block}.landing-stat-lbl{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem}.landing-stat-div{background:var(--border);width:1px;height:36px}.landing-hero-visual{flex:none;justify-content:center;align-items:center;display:flex}.landing-canvas-mock{background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;grid-template-rows:auto auto auto;grid-template-columns:auto auto auto;align-items:center;gap:.5rem .25rem;min-width:340px;padding:2rem;display:grid;box-shadow:0 8px 40px #0006}.lcm-node{background:var(--bg-tertiary);border:1px solid var(--border);white-space:nowrap;color:var(--text-primary);text-align:center;border-radius:8px;padding:.55rem .8rem;font-size:.78rem}.lcm-node.lcm-done{border-color:var(--success);color:var(--success);background:#22c55e14}.lcm-arrow{color:var(--text-secondary);text-align:center;font-size:1rem}.lcm-n1{border-color:var(--accent);grid-area:1/1}.lcm-a1{grid-area:1/2}.lcm-n2{grid-area:1/3}.lcm-a2{text-align:right;grid-area:2/1}.lcm-n3{grid-area:3/1}.lcm-a3{grid-area:2/2}.lcm-n4{grid-area:3/2}.lcm-a4{grid-area:2/3}.lcm-n5{grid-area:3/3}.lcm-a5{display:none}.lcm-n6{grid-area:4/1/auto/4;margin-top:.25rem}.landing-section{padding:5rem 0}.landing-section-alt{background:var(--bg-secondary)}.landing-section-inner{max-width:1280px;margin:0 auto;padding:0 2rem}.landing-section-header{text-align:center;margin-bottom:3.5rem}.landing-section-tag{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.75rem;font-size:.8rem;font-weight:600;display:inline-block}.landing-section-header h2{color:var(--text-primary);margin:.5rem 0 1rem;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:800}.landing-section-header p{color:var(--text-secondary);max-width:560px;margin:0 auto;font-size:1.05rem}.landing-features-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.landing-feature-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:1.5rem;transition:border-color .2s,transform .15s}.landing-feature-card:hover{border-color:var(--accent);transform:translateY(-2px)}.landing-feature-icon{margin-bottom:.75rem;font-size:1.75rem;display:block}.landing-feature-card h3{color:var(--text-primary);margin:0 0 .5rem;font-size:1rem;font-weight:700}.landing-feature-card p{color:var(--text-secondary);margin:0;font-size:.875rem;line-height:1.6}.landing-tools-grid{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:1rem;display:flex}.landing-tool-badge{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);border-radius:6px;padding:.4rem .9rem;font-size:.85rem;font-weight:600;transition:border-color .15s,color .15s}.landing-tool-badge:hover{border-color:var(--accent);color:var(--accent)}.landing-tools-note{text-align:center;color:var(--text-secondary);font-size:.85rem;font-style:italic}.landing-steps{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:2rem;display:grid}.landing-step{align-items:flex-start;gap:1.25rem;display:flex}.landing-step-num{color:var(--accent);opacity:.5;flex-shrink:0;font-size:2rem;font-weight:900;line-height:1}.landing-step-body h3{color:var(--text-primary);margin:0 0 .5rem;font-size:1.05rem;font-weight:700}.landing-step-body p{color:var(--text-secondary);margin:0;font-size:.9rem;line-height:1.65}.landing-cta{border-top:1px solid var(--border);background:linear-gradient(135deg,#7c6ff714 0%,#0a0e1a00 60%);padding:5rem 0}.landing-cta h2{margin:0 0 1rem;font-size:clamp(1.75rem,3vw,2.5rem);font-weight:800}.landing-cta p{color:var(--text-secondary);font-size:1.05rem}.landing-footer{background:var(--bg-secondary);border-top:1px solid var(--border);padding:2rem 0}.landing-footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem;display:flex}.landing-footer-links{gap:1rem;display:flex}.landing-footer-links button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.875rem;text-decoration:underline}.landing-footer-links button:hover{color:var(--accent)}.landing-footer-copy{color:var(--text-secondary);font-size:.8rem}.landing-hero-badges{flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;display:flex}.landing-tech-badge{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);letter-spacing:.02em;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .7rem;font-size:.75rem;font-weight:600;display:inline-flex}.landing-arch-diagram{border:1px solid var(--border);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:stretch;gap:0;margin:2.5rem 0;display:grid;overflow:hidden}.landing-arch-tier{border-right:1px solid var(--border);background:var(--bg-secondary);padding:1.5rem 1.25rem;position:relative}.landing-arch-tier:last-child{border-right:none}.landing-arch-tier:nth-child(2n){background:var(--bg-tertiary)}.landing-arch-tier-label{text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:.75rem;font-size:.7rem;font-weight:700}.landing-arch-item{color:var(--text-secondary);align-items:center;gap:.4rem;padding:.2rem 0;font-size:.8rem;line-height:1.4;display:flex}.landing-arch-item strong{color:var(--text-primary);font-weight:600}.landing-pipeline-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:1.25rem;display:grid}.landing-pipeline-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem;transition:border-color .2s,transform .15s}.landing-pipeline-card:hover{border-color:var(--accent);transform:translateY(-2px)}.landing-pipeline-header{align-items:center;gap:.75rem;margin-bottom:.6rem;display:flex}.landing-pipeline-icon{font-size:1.5rem}.landing-pipeline-card h3{color:var(--text-primary);margin:0;font-size:.95rem;font-weight:700}.landing-pipeline-card p{color:var(--text-secondary);margin:0 0 .75rem;font-size:.84rem;line-height:1.6}.landing-pipeline-tools{flex-wrap:wrap;gap:.35rem;display:flex}.landing-pipeline-tool{background:var(--accent-subtle);color:var(--accent);border:1px solid #7c6ff733;border-radius:4px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.landing-footer-tagline{color:var(--text-disabled);text-align:center;width:100%;margin-top:.25rem;font-size:.78rem}@media (width<=900px){.landing-hero{flex-direction:column;gap:2.5rem;padding:3rem 1.5rem 2rem}.landing-hero-visual{width:100%}.landing-canvas-mock{min-width:unset;width:100%}.landing-arch-diagram{grid-template-columns:1fr 1fr}.landing-arch-tier{border-right:none;border-bottom:1px solid var(--border)}.landing-arch-tier:last-child{border-bottom:none}}@media (width<=599px){.landing-nav-inner{padding:0 1rem}.landing-nav-links a{display:none}.landing-section-inner{padding:0 1rem}.landing-hero-actions{flex-direction:column}.landing-btn-lg{text-align:center;width:100%}.landing-arch-diagram{grid-template-columns:1fr}}.login-root{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-card{z-index:2;background:var(--bg-secondary);border:1px solid var(--border);border-radius:14px;width:100%;max-width:400px;padding:2.5rem 2rem;position:relative;box-shadow:0 20px 60px #00000080}.login-logo{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.login-logo-icon{font-size:2rem}.login-logo-text{color:var(--text-primary);font-size:1.5rem;font-weight:800}.login-subtitle{text-align:center;color:var(--text-secondary);margin:0 0 2rem;font-size:.85rem}.login-form{flex-direction:column;gap:1.1rem;display:flex}.login-field{flex-direction:column;gap:.4rem;display:flex}.login-field label{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;font-size:.8rem;font-weight:600}.login-field input{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);box-sizing:border-box;width:100%;font-size:.95rem;font-family:var(--font-ui);border-radius:6px;padding:.6rem .85rem;transition:border-color .15s}.login-field input:focus{border-color:var(--accent);outline:none}.login-field input:disabled{opacity:.6}.login-pwd-wrap{position:relative}.login-pwd-wrap input{padding-right:2.5rem}.login-pwd-toggle{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:.25rem;font-size:1rem;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.login-pwd-toggle:hover{color:var(--accent)}.login-error{color:var(--error);background:#ef44441f;border:1px solid #ef444459;border-radius:6px;padding:.6rem .85rem;font-size:.875rem;animation:.2s fadeIn}.login-submit{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:7px;width:100%;margin-top:.5rem;padding:.75rem;font-size:1rem;font-weight:700;transition:background .15s,transform .1s}.login-submit:hover:not(:disabled){background:var(--accent-hover,#6c5fef);transform:translateY(-1px)}.login-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}.login-links{justify-content:space-between;margin-top:1.5rem;display:flex}.login-link{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;text-decoration:underline}.login-link:hover{color:var(--accent)}.login-bg-deco{z-index:1;opacity:.03;font-size:2.5rem;font-family:var(--font-mono);color:var(--accent);pointer-events:none;-webkit-user-select:none;user-select:none;letter-spacing:.2em;flex-wrap:wrap;gap:3rem;padding:2rem;font-weight:900;display:flex;position:absolute;inset:0}@media (width<=460px){.login-card{border-left:none;border-right:none;border-radius:0;max-width:100%}.login-root{align-items:flex-start;padding-top:2rem}}.help-root{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);font-family:var(--font-ui);flex-direction:column;display:flex}.help-layout{box-sizing:border-box;flex:1;gap:2.5rem;width:100%;max-width:1280px;margin:0 auto;padding:2rem 1.5rem;display:flex}.help-sidebar{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;flex:0 0 220px;align-self:flex-start;height:fit-content;padding:1.25rem 0;position:sticky;top:76px}.help-sidebar-title{color:var(--text-secondary);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--border);margin-bottom:.5rem;padding:0 1.25rem .75rem;font-size:.75rem;font-weight:700}.help-sidebar-nav{flex-direction:column;display:flex}.help-sidebar-item{text-align:left;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;padding:.5rem 1.25rem;font-size:.875rem;transition:background .12s,color .12s}.help-sidebar-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.help-sidebar-active{font-weight:600;color:var(--accent)!important;border-left:3px solid var(--accent)!important;background:#7c6ff712!important}.help-menu-toggle{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:5px;padding:.35rem .6rem;font-size:1rem;display:none}.help-main{flex:1;min-width:0}.help-content{flex-direction:column;gap:0;display:flex}.help-section{border-bottom:1px solid var(--border);padding:2.5rem 0}.help-section:last-child{border-bottom:none}.help-section h2{color:var(--text-primary);margin:0 0 1.25rem;font-size:1.6rem;font-weight:800}.help-section h3{color:var(--text-primary);margin:1.5rem 0 .75rem;font-size:1.05rem;font-weight:700}.help-section p{color:var(--text-secondary);margin:0 0 .75rem;line-height:1.7}.help-section ul,.help-section ol{color:var(--text-secondary);padding-left:1.5rem;line-height:1.8}.help-section li{margin-bottom:.35rem}.help-section li strong{color:var(--text-primary)}.help-section code{background:var(--bg-tertiary);border:1px solid var(--border);font-family:var(--font-mono);color:var(--accent);border-radius:4px;padding:.1em .4em;font-size:.875em}.help-info-box,.help-warning-box{border-radius:8px;margin:1rem 0;padding:1rem 1.25rem}.help-info-box{background:#7c6ff714;border:1px solid #7c6ff74d}.help-info-box strong{color:var(--accent);margin-bottom:.5rem;display:block}.help-warning-box{background:#fbbf2414;border:1px solid #fbbf2459}.help-warning-box strong{color:#fbbf24;margin-bottom:.5rem;display:block}.help-info-box p,.help-warning-box p{margin:0;font-size:.9rem}.help-code{background:var(--bg-secondary);border:1px solid var(--border);font-family:var(--font-mono);color:var(--text-primary);white-space:pre;border-radius:8px;margin:.75rem 0;padding:1rem 1.25rem;font-size:.825rem;line-height:1.65;overflow-x:auto}.help-table{border-collapse:collapse;width:100%;margin:.75rem 0;font-size:.875rem}.help-table th{background:var(--bg-tertiary);color:var(--text-secondary);text-align:left;border:1px solid var(--border);text-transform:uppercase;letter-spacing:.04em;padding:.6rem .85rem;font-size:.8rem;font-weight:600}.help-table td{border:1px solid var(--border);color:var(--text-secondary);vertical-align:top;padding:.6rem .85rem}.help-table tr:hover td{background:var(--bg-secondary)}.help-kbd{background:var(--bg-tertiary);border:1px solid var(--border);border-bottom:2px solid var(--border);font-family:var(--font-mono);color:var(--text-primary);white-space:nowrap;border-radius:5px;padding:.15em .5em;font-size:.825em}.help-nodes-grid{flex-direction:column;gap:.75rem;display:flex}.help-node-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;align-items:flex-start;gap:1rem;padding:1rem 1.25rem;display:flex}.help-node-icon{flex-shrink:0;font-size:1.5rem}.help-node-card strong{color:var(--text-primary);margin-bottom:.25rem;font-size:.95rem;display:block}.help-node-card p{color:var(--text-secondary);margin:0;font-size:.875rem}@media (width<=768px){.help-layout{flex-direction:column;gap:1.5rem;padding:1rem}.help-sidebar{flex:none;width:100%;display:none;position:static}.help-sidebar.help-sidebar-open{display:block}.help-menu-toggle{display:inline-block}}@media (width<=599px){.help-section h2{font-size:1.25rem}.help-table{font-size:.8rem}.help-code{font-size:.75rem}}.login-info{color:var(--success,#22c55e);background:#22c55e1a;border:1px solid #22c55e59;border-radius:6px;margin-bottom:.5rem;padding:.6rem .85rem;font-size:.875rem}.pwd-strength{text-transform:uppercase;margin-left:.5rem;font-size:.75rem;font-weight:700}.pwd-weak{color:#ef4444}.pwd-fair{color:#f97316}.pwd-good{color:#eab308}.pwd-strong{color:var(--success,#22c55e)}.pwd-bar-wrap{gap:3px;margin-top:4px;display:flex}.pwd-bar{background:var(--border);border-radius:2px;flex:1;height:4px;transition:background .2s}.pwd-bar.pwd-weak{background:#ef4444}.pwd-bar.pwd-fair{background:#f97316}.pwd-bar.pwd-good{background:#eab308}.pwd-bar.pwd-strong{background:var(--success,#22c55e)}.premium-layout{width:100vw;overflow-x:hidden}.landing-root-premium{background:var(--bg-primary);min-height:100vh;color:var(--text-primary);font-family:var(--font-ui);overflow-x:hidden}.landing-nav-premium{z-index:1000;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);background:#0c0c14d9;transition:background .3s;position:sticky;top:0}body.theme-light .landing-nav-premium{background:#f5f5fbd9}.landing-nav-inner-wide,.landing-section-inner-wide,.landing-footer-inner-wide{width:100%;max-width:1800px;margin:0 auto;padding:0 4vw}.landing-nav-inner-wide{justify-content:space-between;align-items:center;height:70px;display:flex}.landing-logo-premium{letter-spacing:.03em;color:var(--text-primary);cursor:pointer;font-size:1.4rem;font-weight:800}.landing-nav-links-premium{align-items:center;gap:1.5rem;display:flex}.theme-toggler{color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:.45rem .8rem;font-size:.85rem;transition:border-color .15s,color .15s;display:flex}.theme-toggler:hover{border-color:var(--accent);color:var(--accent)}.landing-btn-primary-premium{background:var(--accent);color:#fff;cursor:pointer;box-shadow:0 4px 15px var(--accent-subtle);border:none;border-radius:8px;padding:.5rem 1.4rem;font-size:.9rem;font-weight:600;transition:all .2s}.landing-btn-primary-premium:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:0 6px 20px #7c6ff766}.landing-btn-outline-premium{color:var(--text-secondary);border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:8px;padding:.5rem 1.4rem;font-size:.9rem;font-weight:500;transition:all .2s}.landing-btn-outline-premium:hover{border-color:var(--accent);color:var(--accent)}.landing-btn-lg{padding:.85rem 2rem;font-size:1.05rem}.landing-hero-premium{justify-content:space-between;align-items:center;gap:4rem;width:100%;max-width:1800px;min-height:85vh;margin:0 auto;padding:8rem 4vw 6rem;display:flex}.landing-hero-content{z-index:10;flex:1;max-width:800px}.landing-hero-badge-premium{background:var(--accent-subtle);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;border:1px solid #7c6ff766;border-radius:999px;margin-bottom:1.5rem;padding:.35rem 1.2rem;font-size:.85rem;font-weight:700;display:inline-block}.landing-hero-title-premium{color:var(--text-primary);letter-spacing:-.02em;margin:0 0 1.5rem;font-size:clamp(2.5rem,5vw,4.5rem);font-weight:900;line-height:1.1}.landing-accent-premium{background:linear-gradient(135deg, var(--accent) 0%, #38bdf8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.landing-hero-sub-premium{color:var(--text-secondary);max-width:700px;margin-bottom:3rem;font-size:1.15rem;line-height:1.8}.landing-hero-actions-premium{flex-wrap:wrap;gap:1.5rem;display:flex}.landing-hero-visual-premium{z-index:5;background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:16px;flex:1;position:relative;overflow:hidden}.landing-section-premium{padding:8rem 0}.landing-section-alt-premium{background:var(--bg-secondary);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.landing-section-header-premium{text-align:center;max-width:900px;margin-bottom:5rem;margin-left:auto;margin-right:auto}.landing-section-tag-premium{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem;font-size:.9rem;font-weight:700;display:inline-block}.landing-section-header-premium h2{color:var(--text-primary);margin:0 0 1.5rem;font-size:clamp(2rem,4vw,3rem);font-weight:800}.landing-section-header-premium p{color:var(--text-secondary);font-size:1.15rem;line-height:1.8}.landing-features-grid-premium{grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:2.5rem;display:grid}.landing-feature-card-premium{background:var(--bg-primary);border:1px solid var(--border);border-radius:12px;padding:2.5rem;transition:all .3s}.landing-feature-card-premium:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-5px)}.landing-feature-icon-premium{margin-bottom:1.5rem;font-size:2.5rem;display:block}.landing-feature-card-premium h3{color:var(--text-primary);margin:0 0 1rem;font-size:1.25rem;font-weight:700}.landing-feature-card-premium p{color:var(--text-secondary);margin:0;font-size:1rem;line-height:1.7}.landing-cta-premium{background:linear-gradient(135deg, var(--accent-subtle) 0%, #0a0e1a00 100%);border-top:1px solid var(--border);padding:8rem 0}.landing-cta-premium h2{margin:0 0 1.5rem;font-size:clamp(2rem,4vw,3.5rem);font-weight:900}.landing-cta-premium p{color:var(--text-secondary);font-size:1.25rem}.landing-footer-premium{background:var(--bg-secondary);border-top:1px solid var(--border);padding:3rem 0}.landing-footer-inner-wide{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;display:flex}.landing-footer-links-premium{gap:2rem;display:flex}.landing-footer-links-premium button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.95rem;text-decoration:none;transition:color .2s}.landing-footer-links-premium button:hover{color:var(--accent)}.landing-footer-copy-premium{color:var(--text-disabled);font-size:.9rem}.diagram-container-large{background:var(--bg-secondary);border:1px solid var(--border);cursor:grab;border-radius:16px;width:100%;position:relative;overflow:hidden;box-shadow:inset 0 0 50px #0003}.diagram-container-large:active{cursor:grabbing}.diagram-viewport{position:relative;overflow:hidden}.diagram-canvas{background-image:radial-gradient(var(--canvas-dot) 1px, transparent 1px);background-size:30px 30px;width:3000px;height:1000px;position:absolute;top:0;left:0}.diagram-svg-layer{pointer-events:none;z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.diagram-edge-path{transition:stroke .3s}.diagram-node{background:var(--bg-primary);border:1px solid var(--border-strong);width:220px;box-shadow:var(--shadow-sm);z-index:2;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.diagram-node-core{border:2px solid var(--accent)}.diagram-node-header{background:var(--bg-tertiary);border-bottom:2px solid var(--border);align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.diagram-node-icon{font-size:1.2rem}.diagram-node-title{color:var(--text-primary);font-size:.9rem;font-weight:700}.diagram-node-body{color:var(--text-secondary);background:var(--bg-primary);padding:1rem;font-size:.8rem;line-height:1.5}@media (width<=1024px){.landing-hero-premium{flex-direction:column;padding-top:6rem}.landing-hero-visual-premium{width:100%}}@media (width<=599px){.theme-toggler span{display:none}.theme-toggler{padding:.45rem .6rem}}.react-flow{--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#ffffff80;--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:#f0f0f099;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #00000014;--xy-node-boxshadow-selected-default:0 0 0 .5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:#0059dc14;--xy-selection-border-default:1px dotted #0059dccc;--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9;direction:ltr}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:#96969640;--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:#3c3c3c99;--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:#f0f0f040;--xy-node-boxshadow-hover-default:0 1px 4px 1px #ffffff14;--xy-node-boxshadow-selected-default:0 0 0 .5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:#c8c8dc14;--xy-selection-border-default:1px dotted #c8c8dccc;--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px #00000014;--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__pane{z-index:1}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{pointer-events:none;position:absolute;overflow:visible}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:.5s linear infinite dashdraw}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:.5s linear infinite dashdraw}svg.react-flow__connectionline{z-index:1001;position:absolute;overflow:visible}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{-webkit-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default;position:absolute}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:0 0;pointer-events:none}.react-flow__nodesselection-rect{pointer-events:all;cursor:grab;position:absolute}.react-flow__handle{pointer-events:none;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%;width:6px;min-width:5px;height:6px;min-height:5px;position:absolute}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;bottom:0;left:50%;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{z-index:5;margin:15px;position:absolute}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px)translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px)translateY(-50%)}.react-flow__attribution{background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));margin:0;padding:2px 3px;font-size:10px}.react-flow__attribution a{color:#999;text-decoration:none}@keyframes dashdraw{0%{stroke-dashoffset:10px}}.react-flow__edgelabel-renderer{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__viewport-portal{-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;top:0;left:0}.react-flow__minimap{background:var(--xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default)))}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(--xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default)));stroke:var(--xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default)));stroke-width:var(--xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default)))}.react-flow__minimap-node{fill:var(--xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default)));stroke:var(--xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default)));stroke-width:var(--xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default)))}.react-flow__background-pattern.dots{fill:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default)))}.react-flow__background-pattern.lines{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default)))}.react-flow__background-pattern.cross{stroke:var(--xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default)))}.react-flow__controls{box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default));flex-direction:column;display:flex}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border:none;border-bottom:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)));width:26px;height:26px;color:var(--xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default)));cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:4px;display:flex}.react-flow__controls-button svg{fill:currentColor;width:100%;max-width:12px;max-height:12px}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default));padding:10px;font-size:12px}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(--xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default)));color:var(--xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default)))}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(--xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default)))}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border:1px solid #fff;border-radius:1px;width:5px;height:5px;translate:-50% -50%}.react-flow__resize-control.handle.left{top:50%;left:0}.react-flow__resize-control.handle.right{top:50%;left:100%}.react-flow__resize-control.handle.top{top:0;left:50%}.react-flow__resize-control.handle.bottom{top:100%;left:50%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-style:solid;border-width:0}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;height:100%;top:0;transform:translate(-50%)}.react-flow__resize-control.line.left{border-left-width:1px;left:0}.react-flow__resize-control.line.right{border-right-width:1px;left:100%}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{width:100%;height:1px;left:0;transform:translateY(-50%)}.react-flow__resize-control.line.top{border-top-width:1px;top:0}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}
