.CodeMirror{font-family:monospace;height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor .CodeMirror-line::selection,.cm-fat-cursor .CodeMirror-line>span::selection,.cm-fat-cursor .CodeMirror-line>span>span::selection{background:transparent}.cm-fat-cursor .CodeMirror-line::-moz-selection,.cm-fat-cursor .CodeMirror-line>span::-moz-selection,.cm-fat-cursor .CodeMirror-line>span>span::-moz-selection{background:transparent}.cm-fat-cursor{caret-color:transparent}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;inset:-50px 0 0;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error,.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:#ff96004d}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-50px;margin-right:-50px;padding-bottom:50px;height:100%;outline:none;position:relative;z-index:0}.CodeMirror-sizer{position:relative;border-right:50px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none;outline:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-50px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre.CodeMirror-line,.CodeMirror pre.CodeMirror-line-like{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre.CodeMirror-line,.CodeMirror-wrap pre.CodeMirror-line-like{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;inset:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors,.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:#ff06}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:""}span.CodeMirror-selectedtext{background:none}.CodeMirror-hints{position:absolute;z-index:10;overflow:hidden;list-style:none;margin:0;padding:2px;-webkit-box-shadow:2px 3px 5px rgba(0,0,0,.2);-moz-box-shadow:2px 3px 5px rgba(0,0,0,.2);box-shadow:2px 3px 5px #0003;border-radius:3px;border:1px solid silver;background:#fff;font-size:90%;font-family:monospace;max-height:20em;overflow-y:auto;box-sizing:border-box}.CodeMirror-hint{margin:0;padding:0 4px;border-radius:2px;white-space:pre;color:#000;cursor:pointer}li.CodeMirror-hint-active{background:#08f;color:#fff}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#0f1117;color:#e0e0e0;height:100vh;overflow:hidden;-webkit-user-select:none;user-select:none}.header{height:48px;background:#161822;border-bottom:1px solid #2a2d3e;display:flex;align-items:center;padding:0 16px;gap:10px}.header-logo{display:flex;align-items:center;gap:9px;text-decoration:none;flex-shrink:0}.header-logo .logo-icon{width:26px;height:26px;border-radius:7px;background:linear-gradient(135deg,#9b6dff,#6d4aff);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px #9b6dff4d}.header-logo h1{font-size:16px;font-weight:800;color:#eaeaf0;letter-spacing:-.02em}.header-tagline{margin-left:4px;padding-left:14px;border-left:1px solid #2a2d3e;font-size:12px;color:#5a6190;letter-spacing:.2px;white-space:nowrap}@media(max-width:900px){.header-tagline{display:none}}.header-spacer{flex:1}.header-btn{display:flex;align-items:center;gap:6px;padding:6px 14px;background:#1e2136;border:1px solid #2a2d3e;color:#7880b0;font-family:inherit;font-size:12px;border-radius:999px;cursor:pointer;transition:all .15s}.header-btn:hover{background:#22264a;color:#c0c6e0;border-color:#3a3f6e}.header-btn svg{flex-shrink:0}.header-btn.primary{background:linear-gradient(135deg,#9b6dff,#6d4aff);border-color:transparent;color:#fff;font-weight:600;box-shadow:0 2px 10px #6d4aff59}.header-btn.primary:hover{background:linear-gradient(135deg,#a87fff,#7c5cff);border-color:transparent;color:#fff;box-shadow:0 3px 16px #6d4aff80}.export-wrapper{position:relative}.export-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;background:#1a1d2e;border:1px solid #2a2d3e;border-radius:8px;padding:4px;min-width:160px;box-shadow:0 8px 24px #0006;z-index:100}.export-menu.open{display:block}.export-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:none;border:none;color:#c0c6e0;font-family:inherit;font-size:12px;border-radius:5px;cursor:pointer;transition:background .12s}.export-menu button:hover{background:#7c5cbf26}.export-menu button svg{flex-shrink:0;color:#7880b0}.main{display:flex;height:calc(100vh - 48px)}.resizer{width:5px;cursor:col-resize;background:transparent;transition:background .15s}.resizer:hover,.resizer.active{background:#7c5cbf80}.editor-pane{width:380px;min-width:260px;max-width:600px;background:#1a1d2e;border-right:1px solid #2a2d3e;display:flex;flex-direction:column}.editor-toolbar{padding:10px 16px;background:#1e2136;border-bottom:1px solid #2a2d3e;font-size:11px;color:#5a6190;text-transform:uppercase;letter-spacing:.8px;display:flex;align-items:center;gap:8px}.status{font-size:11px;text-transform:none;letter-spacing:0}.status.ok{color:#4ade80}.status.error{color:#f87171}.status.empty{color:#5a6190}.status.error{cursor:pointer;text-decoration:underline dotted}.autotype-btn{width:24px;height:24px;background:none;border:1px solid transparent;color:#5a6190;font-size:13px;cursor:pointer;border-radius:5px;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.autotype-btn:hover{background:#222640;color:#c0c6e0;border-color:#2a2d3e}.autotype-btn.running{color:#9b6dff;animation:autotype-pulse 1s ease-in-out infinite}@keyframes autotype-pulse{0%,to{opacity:1}50%{opacity:.4}}#editor{flex:1 1 0;background:#1a1d2e;border:none;outline:none;resize:none;color:#c0c6e0;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.75;padding:4px 8px 4px 34px}#editor::placeholder{color:#555b80}.editor-pane .CodeMirror{flex:1 1 0;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.75;-webkit-user-select:text;user-select:text}.cm-s-purple-night.CodeMirror{background:#1a1d2e;color:#c0c6e0}.cm-s-purple-night .CodeMirror-gutters{background:#161822;border-right:1px solid #2a2d3e}.cm-s-purple-night .CodeMirror-linenumber{color:#3a3f65;padding:0 8px}.cm-s-purple-night .CodeMirror-cursor{border-left:2px solid #9b6dff}.cm-s-purple-night div.CodeMirror-selected{background:#7c5cbf40}.cm-s-purple-night .CodeMirror-focused div.CodeMirror-selected{background:#7c5cbf59}.cm-s-purple-night .CodeMirror-activeline-background{background:#7c5cbf0f}.cm-s-purple-night .cm-comment{color:#555b80;font-style:italic}.cm-s-purple-night .cm-operator{color:#b07dff;font-weight:700}.cm-s-purple-night .cm-keyword{color:#c78dff}.cm-s-purple-night .cm-variable{color:#7ec8e3}.cm-s-purple-night .cm-punctuation{color:#8060c0}.CodeMirror .cm-errorline-bg{background:#f8717112}.CodeMirror .cm-nodeline-bg{background:#7c5cbf1a}.cm-s-purple-day.CodeMirror{background:#fff;color:#3a3e50}.cm-s-purple-day .CodeMirror-gutters{background:#f5f6fa;border-right:1px solid #e0e2ea}.cm-s-purple-day .CodeMirror-linenumber{color:#b8bccc;padding:0 8px}.cm-s-purple-day .CodeMirror-cursor{border-left:2px solid #7c5cbf}.cm-s-purple-day div.CodeMirror-selected{background:#7c5cbf1f}.cm-s-purple-day .CodeMirror-focused div.CodeMirror-selected{background:#7c5cbf2e}.cm-s-purple-day .CodeMirror-activeline-background{background:#7c5cbf0d}.cm-s-purple-day .cm-comment{color:#9aa0b8;font-style:italic}.cm-s-purple-day .cm-operator{color:#7c3aed;font-weight:700}.cm-s-purple-day .cm-keyword{color:#8b5cf6}.cm-s-purple-day .cm-variable{color:#0e7490}.cm-s-purple-day .cm-punctuation{color:#7c5cbf}.cm-s-purple-day .CodeMirror-scrollbar-filler,.cm-s-purple-day .CodeMirror-gutter-filler{background:#fff}.cm-s-purple-night .CodeMirror-scrollbar-filler,.cm-s-purple-night .CodeMirror-gutter-filler{background:#1a1d2e}.editor-pane .CodeMirror-vscrollbar::-webkit-scrollbar,.editor-pane .CodeMirror-hscrollbar::-webkit-scrollbar{width:8px;height:8px}.editor-pane .CodeMirror-vscrollbar::-webkit-scrollbar-track,.editor-pane .CodeMirror-hscrollbar::-webkit-scrollbar-track{background:#1a1d2e}.editor-pane .CodeMirror-vscrollbar::-webkit-scrollbar-thumb,.editor-pane .CodeMirror-hscrollbar::-webkit-scrollbar-thumb{background:#2a2d4e;border-radius:4px}.editor-pane .CodeMirror-vscrollbar::-webkit-scrollbar-thumb:hover,.editor-pane .CodeMirror-hscrollbar::-webkit-scrollbar-thumb:hover{background:#3a3f6e}.CodeMirror-hints{background:#1a1d2e;border:1px solid #2a2d3e;border-radius:6px;padding:4px 0;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,monospace;font-size:12px;box-shadow:0 6px 20px #00000080;z-index:100}.CodeMirror-hint{color:#c0c6e0;padding:4px 12px;border-radius:3px;margin:0 4px;cursor:pointer}.CodeMirror-hint-active{background:#7c5cbf4d;color:#e0d4ff}.help{padding:6px 12px;background:#161822;border-top:1px solid #2a2d3e;font-size:10px;color:#3e4470;line-height:1.5}.help code{color:#7080c0;background:#1e2136;padding:0 4px;border-radius:3px;font-family:inherit}.help .types{display:flex;flex-wrap:wrap;gap:3px;margin-top:3px}.help .badge{background:#222640;color:#7880b0;padding:1px 6px;border-radius:8px;font-size:9px}.help .keys{margin-top:3px}.help kbd{background:#1e2136;border:1px solid #2a2d3e;border-bottom-width:2px;border-radius:3px;padding:0 4px;font-family:inherit;font-size:9px;color:#7080c0}.ad-slot{padding:12px 14px 14px;min-height:96px;background:#12141d;border-top:1px solid #2a2d3e;font-family:Arial,Segoe UI,system-ui,sans-serif;cursor:pointer;display:flex;flex-direction:column;justify-content:center}.ad-slot .ad-top{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ad-slot .ad-chip{border:1px solid #4a4f7a;color:#9aa0c8;font-size:10px;font-weight:700;line-height:1;padding:2px 4px;border-radius:2px}.ad-slot .ad-url{color:#81c995;font-size:12px}.ad-slot .ad-info{margin-left:auto;color:#4a4f7a;font-size:13px}.ad-slot .ad-title{color:#8ab4f8;font-size:15px;line-height:1.35}.ad-slot:hover .ad-title{text-decoration:underline}.ad-slot-live{padding:0;min-height:0;cursor:default}.ad-slot .ad-desc{color:#7880b0;font-size:12px;line-height:1.45;margin-top:3px}.canvas-pane{flex:1;position:relative;background:#12141f;overflow:hidden}#canvas{display:block;cursor:crosshair}#canvas:active{cursor:grabbing}.canvas-info{position:absolute;top:12px;right:16px;font-size:11px;color:#3e4470;pointer-events:none}.controls{position:absolute;bottom:16px;right:16px;display:flex;gap:3px}.controls button{width:34px;height:34px;background:#1a1d30;border:1px solid #2a2d3e;color:#7880b0;font-size:15px;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.controls button:hover{background:#22264a;color:#c0c6e0;border-color:#3a3f6e}.controls .zoom-pct{width:auto;min-width:48px;padding:0 8px;font-size:11px;font-variant-numeric:tabular-nums}.toolbar-container{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;gap:10px;z-index:10}.toolbar{display:flex;gap:2px;background:#14172a;border:1px solid #2a2d3e;border-radius:9px;padding:3px}.toolbar button{width:34px;height:34px;background:transparent;border:1px solid transparent;color:#7880b0;font-size:16px;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.toolbar button:hover{background:#22264a;color:#c0c6e0}.toolbar button.active{background:#7c5cbf26;border-color:#7c5cbf;color:#c0c6e0;box-shadow:0 0 8px #7c5cbf33}.toolbar button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.empty-state{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:#2a2f50;font-size:14px;pointer-events:none;line-height:2}.empty-state .arrow{font-size:28px;margin-bottom:4px}.empty-state .hint{font-size:12px}.empty-state .templates{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;pointer-events:auto}.tpl-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 16px;background:#161a2c;border:1px solid #2a2d3e;border-radius:8px;cursor:pointer;color:#7880b0;font-size:11.5px;line-height:1.4;transition:all .15s}.tpl-card:hover{background:#1e2240;border-color:#3a3f6e;color:#c0c6e0}.tpl-card .tpl-icons{display:flex;gap:3px}.tpl-card .tpl-icons img{width:28px;height:28px;object-fit:contain}.canvas-pane.droptarget:after{content:"Drop to import";position:absolute;inset:8px;border:2px dashed #7c5cbf;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#9b6dff;background:#7c5cbf0f;pointer-events:none;z-index:40}.toast{position:absolute;bottom:64px;left:50%;transform:translate(-50%) translateY(8px);background:#1a1d30;border:1px solid #2a2d3e;color:#c0c6e0;font-size:12px;padding:8px 14px;border-radius:8px;box-shadow:0 8px 24px #0006;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:30}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.error{border-color:#f8717166;color:#f87171}.node-drawer{position:absolute;top:0;right:0;bottom:0;width:280px;background:#1a1d2e;border-left:1px solid #2a2d3e;transform:translate(100%);transition:transform .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;z-index:20;-webkit-user-select:none;user-select:none}.node-drawer.open{transform:translate(0)}.drawer-header{padding:14px 16px;background:#1e2136;border-bottom:1px solid #2a2d3e;display:flex;align-items:center;gap:10px}.drawer-header .drawer-icon{width:32px;height:32px;object-fit:contain}.drawer-header h2{flex:1;font-size:13px;font-weight:600;color:#c0c6e0;letter-spacing:.2px}.drawer-close{width:28px;height:28px;background:none;border:1px solid transparent;color:#5a6190;font-size:16px;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.drawer-close:hover{background:#222640;color:#c0c6e0;border-color:#2a2d3e}.drawer-body{flex:1;padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.drawer-field label{display:block;font-size:10.5px;color:#5a6190;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.drawer-field input,.drawer-field select{width:100%;background:#12141f;border:1px solid #2a2d3e;color:#c0c6e0;font-family:JetBrains Mono,Fira Code,monospace;font-size:13px;padding:8px 10px;border-radius:6px;outline:none;transition:border-color .15s;-webkit-user-select:text;user-select:text}.drawer-field input:focus,.drawer-field select:focus{border-color:#7c5cbf}.type-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.type-grid-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;background:#12141f;border:1px solid #2a2d3e;border-radius:6px;cursor:pointer;transition:all .15s}.type-grid-item:hover{background:#1e2240;border-color:#3a3f6e}.type-grid-item.active{background:#7c5cbf26;border-color:#7c5cbf;box-shadow:0 0 8px #7c5cbf33}.type-grid-item img{width:36px;height:36px;object-fit:contain}.type-grid-item span{font-size:9.5px;color:#5a6190;letter-spacing:.3px}.type-grid-item.active span{color:#c0c6e0}.drawer-conns{display:flex;flex-wrap:wrap;gap:6px}.conn-badge{background:#222640;color:#7880b0;padding:4px 10px;border-radius:10px;font-size:11px;cursor:pointer;border:1px solid transparent;transition:all .15s}.conn-badge:hover{background:#2a2f55;color:#b8bede;border-color:#3a3f6e}.drawer-footer{padding:12px 16px;border-top:1px solid #2a2d3e}.btn-delete{width:100%;padding:8px;background:#f8717114;border:1px solid rgba(248,113,113,.2);color:#f87171;font-size:12px;font-family:inherit;border-radius:6px;cursor:pointer;transition:all .15s}.btn-delete:hover{background:#f8717126;border-color:#f8717166}.btn-reset{width:100%;padding:8px;background:#1e2136;border:1px solid #2a2d3e;color:#7880b0;font-size:12px;font-family:inherit;border-radius:6px;cursor:pointer;transition:all .15s}.btn-reset:hover{background:#22264a;color:#c0c6e0;border-color:#3a3f6e}.drawer-footer .btn-reset{margin-bottom:8px}.drawer-field .setting-toggle{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:12px;color:#c0c6e0;text-transform:none;letter-spacing:0;margin-bottom:4px;margin-top:2px}.setting-toggle span{line-height:18px}.setting-toggle input[type=checkbox]{appearance:none;width:32px;height:18px;background:#2a2d3e;border-radius:9px;position:relative;cursor:pointer;transition:background .15s;flex-shrink:0}.setting-toggle input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#5a6190;border-radius:50%;transition:all .15s}.setting-toggle input[type=checkbox]:checked{background:#7c5cbf59}.setting-toggle input[type=checkbox]:checked:after{left:16px;background:#9b6dff}.modal-overlay{position:fixed;inset:0;background:#08090e8c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:none;align-items:center;justify-content:center;z-index:100}.modal-overlay.open{display:flex}.modal{width:560px;max-width:calc(100vw - 48px);max-height:calc(100vh - 80px);background:#1a1d2e;border:1px solid #2a2d3e;border-radius:12px;box-shadow:0 24px 64px #00000080;display:flex;flex-direction:column;overflow:hidden}.modal-wide{width:680px}.modal-header{padding:14px 16px;background:#1e2136;border-bottom:1px solid #2a2d3e;display:flex;align-items:center;gap:10px;flex-shrink:0}.modal-header svg{width:18px;height:18px;fill:none;stroke:#7880b0;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.modal-header h2{flex:1;font-size:13px;font-weight:600;color:#c0c6e0;letter-spacing:.2px}.modal-close{width:28px;height:28px;background:none;border:1px solid transparent;color:#5a6190;font-size:16px;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.modal-close:hover{background:#222640;color:#c0c6e0;border-color:#2a2d3e}.modal-body{padding:16px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.modal-footer{padding:12px 16px;border-top:1px solid #2a2d3e;display:flex;justify-content:flex-end;gap:8px;flex-shrink:0}.modal-hint{font-size:12px;color:#7880b0;line-height:1.5}.modal-field-label{font-size:10.5px;color:#5a6190;text-transform:uppercase;letter-spacing:.8px}.modal-btn{padding:7px 16px;background:#1e2136;border:1px solid #2a2d3e;color:#7880b0;font-family:inherit;font-size:12px;border-radius:6px;cursor:pointer;transition:all .15s}.modal-btn:hover{background:#22264a;color:#c0c6e0;border-color:#3a3f6e}.modal-btn.primary{background:linear-gradient(135deg,#9b6dff,#6d4aff);border-color:transparent;color:#fff;font-weight:600}.modal-btn.primary:hover{background:linear-gradient(135deg,#a87fff,#7c5cff);color:#fff}.modal-btn.primary:disabled{background:#1e2136;color:#4a5080;cursor:not-allowed;font-weight:400}.modal-tpl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.modal-tpl-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px;background:#12141f;border:1px solid #2a2d3e;border-radius:8px;cursor:pointer;font-family:inherit;text-align:left;transition:all .15s}.modal-tpl-card:hover{background:#1e2240;border-color:#7c5cbf;box-shadow:0 0 10px #7c5cbf26}.modal-tpl-card .tpl-icons{display:flex;gap:4px}.modal-tpl-card .tpl-icons img{width:30px;height:30px;object-fit:contain}.modal-tpl-card .tpl-name{font-size:12.5px;font-weight:600;color:#c0c6e0}.modal-tpl-card .tpl-stats{font-size:11px;color:#5a6190}.import-dropzone{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 16px;background:#12141f;border:1.5px dashed #2a2d3e;border-radius:8px;font-size:12px;color:#7880b0;text-align:center;transition:all .15s}.import-dropzone.dragging{border-color:#9b6dff;background:#7c5cbf14}.import-dropzone .filename{color:#c0c6e0;font-family:JetBrains Mono,Fira Code,monospace;font-size:12px;word-break:break-all}.import-formats{display:flex;flex-direction:column;gap:6px}.import-format{display:flex;flex-direction:column;gap:2px;padding:9px 12px;background:#12141f;border:1px solid #2a2d3e;border-radius:8px;cursor:pointer;font-family:inherit;text-align:left;transition:all .15s}.import-format:hover{background:#1e2240;border-color:#3a3f6e}.import-format.selected{background:#7c5cbf1f;border-color:#7c5cbf;box-shadow:0 0 8px #7c5cbf33}.import-format .fmt-label{font-size:12.5px;font-weight:600;color:#a8aed0}.import-format.selected .fmt-label{color:#e6dcff}.import-format .fmt-desc{font-size:11px;color:#5a6190;line-height:1.4}.import-format .fmt-desc code{font-family:JetBrains Mono,Fira Code,monospace;font-size:10.5px;color:#8a7fc0}.import-status{min-height:18px;font-size:12px;line-height:1.4}.import-status.ok{color:#4ade80}.import-status.error{color:#f87171}.import-status.idle{color:#5a6190}.help-body{gap:18px}.help-body section{display:flex;flex-direction:column;gap:8px}.help-body h3{font-size:10.5px;color:#5a6190;text-transform:uppercase;letter-spacing:.8px;font-weight:600}.help-body p,.help-body li{font-size:12.5px;color:#a8aed0;line-height:1.55}.help-body ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.help-body li::marker{color:#5a6190}.help-body strong{color:#c0c6e0;font-weight:600}.help-body code{font-family:JetBrains Mono,Fira Code,monospace;font-size:11px;color:#b48cff;background:#12141f;padding:1px 5px;border-radius:4px}.help-code{font-family:JetBrains Mono,Fira Code,monospace;font-size:11.5px;line-height:1.6;color:#b8bede;background:#12141f;border:1px solid #2a2d3e;border-radius:8px;padding:10px 12px;overflow-x:auto;white-space:pre}.help-types{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.help-type{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;background:#12141f;border:1px solid #2a2d3e;border-radius:8px}.help-type img{width:34px;height:34px;object-fit:contain}.help-type span{font-family:JetBrains Mono,Fira Code,monospace;font-size:10px;color:#7880b0}.help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px}.help-grid div{font-size:12px;color:#a8aed0;line-height:1.5}.help-body kbd{display:inline-block;min-width:16px;padding:1px 5px;background:#12141f;border:1px solid #2a2d3e;border-bottom-width:2px;border-radius:4px;font-family:inherit;font-size:10.5px;color:#b8bede;text-align:center}body.light{background:#eef0f5;color:#3a3e50}body.light .header{background:#fff;border-bottom-color:#e0e2ea}body.light .header h1{color:#5a5e78}body.light .header-btn{background:#f5f6fa;border-color:#e0e2ea;color:#6a6e88}body.light .header-btn:hover{background:#ebedf5;color:#2a2e40;border-color:#d0d2da}body.light .header-logo h1{color:#24283a}body.light .header-tagline{color:#8a8ea0;border-left-color:#e0e2ea}body.light .header-btn.primary,body.light .header-btn.primary:hover{border-color:transparent;color:#fff}body.light .header-btn.primary{background:linear-gradient(135deg,#9b6dff,#6d4aff);box-shadow:0 2px 10px #6d4aff4d}body.light .header-btn.primary:hover{background:linear-gradient(135deg,#a87fff,#7c5cff);box-shadow:0 3px 16px #6d4aff73}body.light .export-menu{background:#fff;border-color:#e0e2ea;box-shadow:0 8px 24px #1e1e3c1f}body.light .export-menu button{color:#3a3e50}body.light .export-menu button:hover{background:#7c5cbf14}body.light .export-menu button svg{color:#8a8ea0}body.light .resizer:hover,body.light .resizer.active{background:#7c5cbf66}body.light .editor-pane{background:#fff;border-right-color:#e0e2ea}body.light .editor-toolbar{background:#f5f6fa;border-bottom-color:#e0e2ea;color:#8a8ea0}body.light .status.empty{color:#9aa0b8}body.light .status.ok{color:#16a34a}body.light .status.error{color:#dc2626}body.light .autotype-btn{color:#8a8ea0}body.light .autotype-btn:hover{background:#ebedf5;color:#3a3e50;border-color:#e0e2ea}body.light #editor{background:#fff;color:#3a3e50}body.light #editor::placeholder{color:#9aa0b8}body.light .help{background:#f5f6fa;border-top-color:#e0e2ea;color:#9aa0b8}body.light .help code{color:#5a5e90;background:#ebedf5}body.light .help .badge{background:#ebedf5;color:#6a6e88}body.light .help kbd{background:#fff;border-color:#d8dae4;color:#5a5e90}body.light .ad-slot{background:#fbfbfd;border-top-color:#e0e2ea}body.light .ad-slot .ad-chip{border-color:#c8cad8;color:#8a8ea0}body.light .ad-slot .ad-url{color:#006621}body.light .ad-slot .ad-info{color:#b8bccc}body.light .ad-slot .ad-title{color:#1a0dab}body.light .ad-slot .ad-desc{color:#545454}body.light .editor-pane .CodeMirror-vscrollbar::-webkit-scrollbar-track,body.light .editor-pane .CodeMirror-hscrollbar::-webkit-scrollbar-track{background:#fff}body.light .editor-pane .CodeMirror-vscrollbar::-webkit-scrollbar-thumb,body.light .editor-pane .CodeMirror-hscrollbar::-webkit-scrollbar-thumb{background:#d8dae4}body.light .CodeMirror-hints{background:#fff;border-color:#e0e2ea;box-shadow:0 6px 20px #1e1e3c26}body.light .CodeMirror-hint{color:#3a3e50}body.light .CodeMirror-hint-active{background:#7c5cbf26;color:#3a2e60}body.light .CodeMirror .cm-errorline-bg{background:#dc262612}body.light .CodeMirror .cm-nodeline-bg{background:#7c5cbf17}body.light .tpl-card{background:#fff;border-color:#e0e2ea;color:#6a6e88}body.light .tpl-card:hover{background:#ebedf5;border-color:#d0d2da;color:#2a2e40}body.light .btn-reset{background:#f5f6fa;border-color:#e0e2ea;color:#6a6e88}body.light .btn-reset:hover{background:#ebedf5;color:#2a2e40;border-color:#d0d2da}.canvas-pane.light{background:#f0f1f5}.canvas-pane.light .canvas-info{color:#a0a4b8}.canvas-pane.light .controls button{background:#fff;border-color:#e0e2ea;color:#8a8ea0}.canvas-pane.light .controls button:hover{background:#ebedf5;color:#3a3e50;border-color:#d0d2da}.canvas-pane.light .toolbar{background:#fff;border-color:#e0e2ea}.canvas-pane.light .toolbar button{color:#8a8ea0}.canvas-pane.light .toolbar button:hover{background:#ebedf5;color:#3a3e50}.canvas-pane.light .toolbar button.active{background:#7c5cbf1a;color:#5a3e90}.canvas-pane.light .empty-state{color:#c0c4d0}.canvas-pane.light .node-drawer{background:#fff;border-left-color:#e0e2ea}.canvas-pane.light .drawer-header{background:#f5f6fa;border-bottom-color:#e0e2ea}.canvas-pane.light .drawer-header h2{color:#3a3e50}.canvas-pane.light .drawer-close{color:#8a8ea0}.canvas-pane.light .drawer-close:hover{background:#ebedf5;color:#3a3e50;border-color:#e0e2ea}.canvas-pane.light .drawer-field label{color:#8a8ea0}.canvas-pane.light .drawer-field input,.canvas-pane.light .drawer-field select{background:#f5f6fa;border-color:#e0e2ea;color:#3a3e50}.canvas-pane.light .type-grid-item{background:#f5f6fa;border-color:#e0e2ea}.canvas-pane.light .type-grid-item:hover{background:#ebedf5;border-color:#d0d2da}.canvas-pane.light .type-grid-item.active{background:#7c5cbf14}.canvas-pane.light .type-grid-item span{color:#8a8ea0}.canvas-pane.light .type-grid-item.active span{color:#3a3e50}.canvas-pane.light .conn-badge{background:#ebedf5;color:#6070a0}.canvas-pane.light .conn-badge:hover{background:#dfe1ea;color:#3a3e50;border-color:#d0d2da}.canvas-pane.light .drawer-footer{border-top-color:#e0e2ea}.canvas-pane.light .drawer-field .setting-toggle{color:#3a3e50}.canvas-pane.light .setting-toggle input[type=checkbox]{background:#e0e2ea}.canvas-pane.light .setting-toggle input[type=checkbox]:after{background:#a0a4b8}.canvas-pane.light .setting-toggle input[type=checkbox]:checked{background:#7c5cbf40}.canvas-pane.light .setting-toggle input[type=checkbox]:checked:after{background:#7c5cbf}.canvas-pane.light .toast{background:#fff;border-color:#e0e2ea;color:#3a3e50}body.light .modal-overlay{background:#282c4659}body.light .modal{background:#fff;border-color:#e0e2ea;box-shadow:0 24px 64px #1e1e3c40}body.light .modal-header{background:#f5f6fa;border-bottom-color:#e0e2ea}body.light .modal-header h2{color:#3a3e50}body.light .modal-header svg{stroke:#8a8ea0}body.light .modal-close{color:#8a8ea0}body.light .modal-close:hover{background:#ebedf5;color:#3a3e50;border-color:#e0e2ea}body.light .modal-footer{border-top-color:#e0e2ea}body.light .modal-hint,body.light .modal-field-label{color:#8a8ea0}body.light .modal-btn{background:#f5f6fa;border-color:#e0e2ea;color:#6a6e88}body.light .modal-btn:hover{background:#ebedf5;color:#2a2e40;border-color:#d0d2da}body.light .modal-btn.primary{background:linear-gradient(135deg,#9b6dff,#6d4aff);border-color:transparent;color:#fff}body.light .modal-btn.primary:hover{background:linear-gradient(135deg,#a87fff,#7c5cff);color:#fff}body.light .modal-btn.primary:disabled{background:#f5f6fa;color:#b8bccc}body.light .modal-tpl-card{background:#f9fafc;border-color:#e0e2ea}body.light .modal-tpl-card:hover{background:#f3f0fc;border-color:#b8a0e8}body.light .modal-tpl-card .tpl-name{color:#3a3e50}body.light .modal-tpl-card .tpl-stats{color:#8a8ea0}body.light .import-dropzone{background:#f9fafc;border-color:#d8dae4;color:#8a8ea0}body.light .import-dropzone.dragging{border-color:#7c5cbf;background:#7c5cbf0f}body.light .import-dropzone .filename{color:#3a3e50}body.light .import-format{background:#f9fafc;border-color:#e0e2ea}body.light .import-format:hover{background:#f3f4f9;border-color:#d0d2da}body.light .import-format.selected{background:#7c5cbf14;border-color:#7c5cbf}body.light .import-format .fmt-label{color:#5a5e78}body.light .import-format.selected .fmt-label{color:#452a85}body.light .import-format .fmt-desc{color:#8a8ea0}body.light .import-format .fmt-desc code{color:#6d4fc0}body.light .import-status.ok{color:#16a34a}body.light .import-status.error{color:#dc2626}body.light .import-status.idle{color:#9aa0b8}body.light .help-body h3{color:#8a8ea0}body.light .help-body p,body.light .help-body li,body.light .help-grid div{color:#4a4e64}body.light .help-body strong{color:#24283a}body.light .help-body code{color:#6d4fc0;background:#f3f0fc}body.light .help-code{color:#3a3e50;background:#f9fafc;border-color:#e0e2ea}body.light .help-type{background:#f9fafc;border-color:#e0e2ea}body.light .help-type span{color:#8a8ea0}body.light .help-body kbd{background:#fff;border-color:#d8dae4;color:#5a5e90}
