:root{--accent: #4f6ef7;--accent-light: rgba(79, 110, 247, .12);--bg: #1a1a1a;--bg2: #242424;--bg3: #2c2c2c;--border: rgba(255, 255, 255, .1);--text: #ececec;--text2: #aaa;--text3: #666;--danger: #e06060;--success: #3dba72;--node-running: #4f6ef7;--node-done: #3dba72;--node-error: #e06060;--type-any: #6d91ff;--type-default: #8a8f9c;--type-image: #b06cff;--type-number: #f0b45a;--type-string: #57c68c}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;flex-direction:column;height:100vh;overflow:hidden}#top-tabs{display:flex;align-items:center;gap:8px;height:38px;padding:5px 8px 0 10px;background:var(--bg2);border-bottom:1px solid var(--border);flex-shrink:0;position:relative;z-index:10}.app-title{font-weight:600;font-size:14px;margin-right:6px;color:var(--text);white-space:nowrap}.tab-menu-button{width:28px;height:28px;margin-bottom:4px;border:1px solid var(--border);border-radius:7px;background:var(--bg3);color:var(--text);font-size:14px;line-height:1;cursor:pointer;flex-shrink:0}.tab-menu-button:hover,.tab-menu-button--active{border-color:var(--accent);background:var(--accent-light)}.tab-strip{display:flex;align-items:flex-end;gap:4px;flex:1;min-width:0;height:100%;overflow:hidden}.workflow-tabs{display:flex;align-items:flex-end;gap:4px;min-width:0;max-width:calc(100% - 32px);overflow-x:hidden;overflow-y:hidden;flex:0 1 auto;height:100%;scrollbar-width:none}.workflow-tabs::-webkit-scrollbar{display:none}.workflow-tab{display:inline-flex;align-items:center;gap:6px;max-width:180px;min-width:86px;height:29px;padding:0 8px 0 10px;border:1px solid var(--border);border-bottom:0;border-radius:7px 7px 0 0;background:#ffffff09;color:var(--text);font-size:12px;cursor:pointer}.workflow-tab:hover{background:var(--bg3)}.workflow-tab--active{background:var(--bg);border-color:#ffffff29;color:#fff}.workflow-tab__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.workflow-tab__close{width:16px;height:16px;border:0;border-radius:4px;background:transparent;color:var(--text2);line-height:14px;cursor:pointer}.workflow-tab__close:hover{background:#ffffff1a;color:var(--text)}.tab-add{width:28px;height:28px;margin-bottom:4px;border:1px solid var(--border);border-radius:7px;background:var(--bg3);color:var(--text);font-size:18px;line-height:1;cursor:pointer;flex-shrink:0}.tab-add:hover{border-color:var(--accent);background:var(--accent-light)}.tab-menu{position:absolute;top:36px;left:86px;width:220px;max-height:min(420px,calc(100vh - 52px));padding:6px;border:1px solid var(--border);border-radius:8px;background:#1c1c1cfa;box-shadow:0 16px 36px #00000052;overflow:auto;z-index:50}.tab-menu.hidden{display:none}.tab-menu__item{width:100%;display:flex;align-items:center;gap:8px;min-height:30px;padding:6px 8px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--text);font-size:12px;text-align:left;cursor:pointer}.tab-menu__item:hover,.tab-menu__item--active{border-color:var(--accent);background:var(--accent-light)}.tab-menu__mark{width:8px;color:var(--accent);flex-shrink:0}.tab-menu__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.run-error-toast{position:fixed;top:44px;right:10px;z-index:60;max-width:min(560px,calc(100vw - 96px));height:30px;padding:0 12px;border:1px solid rgba(79,110,247,.45);border-radius:7px;background:#192241f5;color:#d9e1ff;font-size:12px;line-height:28px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;box-shadow:0 10px 28px #00000047}.run-error-toast:hover{border-color:var(--accent);background:#1f2a4efa}.run-error-toast--error{border-color:#e0606073;background:#361c1cf5;color:#ffd6d6}.run-error-toast--error:hover{border-color:var(--danger);background:#441f1ffa}.run-error-toast--success{border-color:#3dba7273;background:#173222f5;color:#d5ffe6}.run-error-toast--success:hover{border-color:var(--success);background:#1c3e2afa}.run-error-toast.hidden,.run-error-modal.hidden{display:none}.run-error-modal{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000094}.run-error-dialog{width:min(760px,100%);max-height:min(640px,calc(100vh - 48px));display:flex;flex-direction:column;border:1px solid var(--border);border-radius:10px;background:var(--bg2);box-shadow:0 18px 48px #0000006b}.run-error-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--border)}.run-error-dialog__head strong{color:var(--danger);font-size:13px}.run-error-dialog__actions{display:flex;gap:8px}.run-error-dialog__actions button{padding:6px 10px;border:1px solid var(--border);border-radius:6px;background:var(--bg3);color:var(--text);font-size:12px;cursor:pointer}.run-error-dialog__actions button:hover{border-color:var(--accent);background:var(--accent-light)}.run-error-detail{min-height:180px;margin:0;padding:14px;overflow:auto;color:var(--text);font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,Liberation Mono,monospace;white-space:pre-wrap;word-break:break-word}#app-main{display:flex;flex:1;min-height:0}#sidebar{display:flex;flex-direction:column;align-items:stretch;width:76px;padding:8px;background:var(--bg2);border-right:1px solid var(--border);flex-shrink:0;position:relative;z-index:9}.sidebar-actions{display:flex;flex-direction:column;gap:8px}#sidebar button{min-height:34px;padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--bg3);color:var(--text);font-size:12px;cursor:pointer}#sidebar button:hover{border-color:var(--accent);background:var(--accent-light)}.sidebar-settings{margin-top:auto}#canvas-wrap{flex:1;min-width:0;position:relative;overflow:hidden}#canvas{position:absolute;inset:0;width:100%!important;height:100%!important}.node-search-menu{position:absolute;min-width:320px;max-width:min(420px,calc(100% - 16px));max-height:420px;padding:8px;border:1px solid var(--border);border-radius:10px;background:#181818fa;box-shadow:0 16px 40px #00000059;backdrop-filter:blur(8px);z-index:40}.node-search-menu__input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg3);color:var(--text);font-size:13px;outline:none}.node-search-menu__input:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-light)}.node-search-menu__list{display:flex;flex-direction:column;gap:4px;margin-top:8px;max-height:348px;overflow:auto}.node-search-menu__item{width:100%;display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.node-search-menu__item:hover,.node-search-menu__item--active{border-color:var(--accent);background:var(--accent-light)}.node-search-menu__item-label{font-size:13px;font-weight:600}.node-search-menu__item-meta,.node-search-menu__empty{color:var(--text2);font-size:11px}.node-search-menu__empty{padding:8px 10px}.widget-context-menu{position:absolute;min-width:240px;max-width:min(320px,calc(100% - 16px));padding:8px;border:1px solid var(--border);border-radius:10px;background:#181818fa;box-shadow:0 16px 40px #00000059;backdrop-filter:blur(8px);z-index:45}.widget-context-menu__title{font-size:13px;font-weight:600;color:var(--text)}.widget-context-menu__meta{margin-top:4px;color:var(--text2);font-size:11px}.widget-context-menu__action{width:100%;margin-top:8px;padding:8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--text);font-size:12px;text-align:left;cursor:pointer}.widget-context-menu__action:hover{border-color:var(--accent);background:var(--accent-light)}.image-lightbox{position:fixed;inset:0;overflow:hidden;background:#000000eb;z-index:1100}.image-lightbox__close{position:absolute;top:16px;right:16px;z-index:2;width:36px;height:36px;border:0;border-radius:999px;background:#ffffff24;color:var(--text);font-size:24px;line-height:1;cursor:pointer}.image-lightbox__close:hover{background:#ffffff3d}.image-lightbox__image{position:absolute;top:50%;left:50%;max-width:96vw;max-height:96vh;object-fit:contain;user-select:none;cursor:grab;transform:translate(-50%,-50%) scale(1);touch-action:none}.image-lightbox__image:active{cursor:grabbing}.image-lightbox__counter{position:absolute;left:50%;bottom:18px;transform:translate(-50%);min-height:22px;padding:3px 10px;border-radius:999px;background:#0000006b;color:#ffffffd1;font-size:12px}.image-lightbox__nav{position:absolute;top:0;bottom:0;width:22vw;border:0;background:transparent;color:#ffffffb8;font-size:64px;cursor:pointer}.image-lightbox__nav:hover{background:#ffffff0f;color:#fff}.image-lightbox__nav--left{left:0;text-align:left;padding-left:28px}.image-lightbox__nav--right{right:0;text-align:right;padding-right:28px}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-overlay.hidden{display:none}.lgraphcanvas{user-select:none;-moz-user-select:none;-webkit-user-select:none;outline:none;font-family:Tahoma,sans-serif}.lgraphcanvas *{box-sizing:border-box}.litegraph.litecontextmenu{font-family:Tahoma,sans-serif;position:fixed;top:100px;left:100px;min-width:100px;color:#aaf;padding:0;box-shadow:0 0 10px #000!important;background-color:#2e2e2e!important;z-index:10}.litegraph.litecontextmenu.dark{background-color:#000!important}.litegraph.litecontextmenu .litemenu-title img{margin-top:2px;margin-left:2px;margin-right:4px}.litegraph.litecontextmenu .litemenu-entry{margin:2px;padding:2px}.litegraph.litecontextmenu .litemenu-entry.submenu{background-color:#2e2e2e!important}.litegraph.litecontextmenu.dark .litemenu-entry.submenu{background-color:#000!important}.litegraph .litemenubar ul{font-family:Tahoma,sans-serif;margin:0;padding:0}.litegraph .litemenubar li{font-size:14px;color:#999;display:inline-block;min-width:50px;padding-left:10px;padding-right:10px;user-select:none;-moz-user-select:none;-webkit-user-select:none;cursor:pointer}.litegraph .litemenubar li:hover{background-color:#777;color:#eee}.litegraph .litegraph .litemenubar-panel{position:absolute;top:5px;left:5px;min-width:100px;background-color:#444;box-shadow:0 0 3px #000;padding:4px;border-bottom:2px solid #aaf;z-index:10}.litegraph .litemenu-entry,.litemenu-title{font-size:12px;color:#aaa;margin:2px;padding:0 0 0 2px;-moz-user-select:none;-webkit-user-select:none;user-select:none;cursor:pointer}.litegraph .litemenu-entry .icon{display:inline-block;width:12px;height:12px;margin:2px;vertical-align:top}.litegraph .litemenu-entry.checked .icon{background-color:#aaf}.litegraph .litemenu-entry .more{float:right;padding-right:5px}.litegraph .litemenu-entry.disabled{opacity:.5;cursor:default}.litegraph .litemenu-entry.separator{display:block;border-top:1px solid #333;border-bottom:1px solid #666;width:100%;height:0px;margin:3px 0 2px;background-color:transparent;padding:0!important;cursor:default!important}.litegraph .litemenu-entry.has_submenu{border-right:2px solid cyan}.litegraph .litemenu-title{color:#dde;background-color:#111;margin:0;padding:2px;cursor:default}.litegraph .litemenu-entry:hover:not(.disabled):not(.separator){background-color:#444!important;color:#eee;transition:all .2s}.litegraph .litemenu-entry .property_name{display:inline-block;text-align:left;min-width:80px;min-height:1.2em}.litegraph .litemenu-entry .property_value{display:inline-block;background-color:#00000080;text-align:right;min-width:80px;min-height:1.2em;vertical-align:middle;padding-right:10px}.litegraph.litesearchbox{font-family:Tahoma,sans-serif;position:absolute;background-color:#00000080;padding-top:4px}.litegraph.litesearchbox input,.litegraph.litesearchbox select{margin-top:3px;min-width:60px;min-height:1.5em;background-color:#000;border:0;color:#fff;padding-left:10px;margin-right:5px}.litegraph.litesearchbox .name{display:inline-block;min-width:60px;min-height:1.5em;padding-left:10px}.litegraph.litesearchbox .helper{overflow:auto;max-height:200px;margin-top:2px}.litegraph.lite-search-item{font-family:Tahoma,sans-serif;background-color:#00000080;color:#fff;padding-top:2px}.litegraph.lite-search-item.not_in_filter{color:#b99;font-style:italic}.litegraph.lite-search-item.generic_type{color:#999;font-style:italic}.litegraph.lite-search-item:hover,.litegraph.lite-search-item.selected{cursor:pointer;background-color:#fff;color:#000}.litegraph .dialog{position:absolute;top:50%;left:50%;margin-top:-150px;margin-left:-200px;background-color:#2a2a2a;min-width:400px;min-height:200px;box-shadow:0 0 4px #111;border-radius:6px}.litegraph .dialog.settings{left:10px;top:10px;height:calc(100% - 20px);margin:auto;max-width:50%}.litegraph .dialog.centered{top:50px;left:50%;position:absolute;transform:translate(-50%);min-width:600px;min-height:300px;height:calc(100% - 100px);margin:auto}.litegraph .dialog .close{float:right;margin:4px 10px 4px 4px;cursor:pointer;font-size:1.4em}.litegraph .dialog .close:hover{color:#fff}.litegraph .dialog .dialog-header{color:#aaa;border-bottom:1px solid #161616}.litegraph .dialog .dialog-header{height:40px}.litegraph .dialog .dialog-footer{height:50px;padding:10px;border-top:1px solid #1a1a1a}.litegraph .dialog .dialog-header .dialog-title{font:20px Arial;margin:4px;padding:4px 10px;display:inline-block}.litegraph .dialog .dialog-content,.litegraph .dialog .dialog-alt-content{height:calc(100% - 90px);width:100%;min-height:100px;display:inline-block;color:#aaa;overflow:auto}.litegraph .dialog .dialog-content h3{margin:10px}.litegraph .dialog .dialog-content .connections{flex-direction:row}.litegraph .dialog .dialog-content .connections .connections_side{width:calc(50% - 5px);min-height:100px;background-color:#000;display:flex}.litegraph .dialog .node_type{font-size:1.2em;display:block;margin:10px}.litegraph .dialog .node_desc{opacity:.5;display:block;margin:10px}.litegraph .dialog .separator{display:block;width:calc(100% - 4px);height:1px;border-top:1px solid #000;border-bottom:1px solid #333;margin:10px 2px;padding:0}.litegraph .dialog .property{margin-bottom:2px;padding:4px}.litegraph .dialog .property:hover{background:#545454}.litegraph .dialog .property_name{color:#737373;display:inline-block;text-align:left;vertical-align:top;width:160px;padding-left:4px;overflow:hidden;margin-right:6px}.litegraph .dialog .property:hover .property_name{color:#fff}.litegraph .dialog .property_value{display:inline-block;text-align:right;color:#aaa;background-color:#1a1a1a;max-width:calc(100% - 162px);min-width:200px;max-height:300px;min-height:20px;padding:4px 12px 4px 4px;overflow:hidden;cursor:pointer;border-radius:3px}.litegraph .dialog .property_value:hover{color:#fff}.litegraph .dialog .property.boolean .property_value{padding-right:30px;color:#a88}.litegraph .dialog .property.boolean.bool-on .property_name,.litegraph .dialog .property.boolean.bool-on .property_value{color:#8a8}.litegraph .dialog .btn{border:0;border-radius:4px;padding:4px 20px;margin-left:0;background-color:#060606;color:#8e8e8e}.litegraph .dialog .btn:hover{background-color:#111;color:#fff}.litegraph .dialog .btn.delete:hover{background-color:#f33;color:#000}.litegraph .subgraph_property{padding:4px}.litegraph .subgraph_property:hover{background-color:#333}.litegraph .subgraph_property.extra{margin-top:8px}.litegraph .subgraph_property span.name{font-size:1.3em;padding-left:4px}.litegraph .subgraph_property span.type{opacity:.5;margin-right:20px;padding-left:4px}.litegraph .subgraph_property span.label{display:inline-block;width:60px;padding:0 10px}.litegraph .subgraph_property input{width:140px;color:#999;background-color:#1a1a1a;border-radius:4px;border:0;margin-right:10px;padding:4px 4px 4px 10px}.litegraph .subgraph_property button{background-color:#1c1c1c;color:#aaa;border:0;border-radius:2px;padding:4px 10px;cursor:pointer}.litegraph .subgraph_property.extra{color:#ccc}.litegraph .subgraph_property.extra input{background-color:#111}.litegraph .bullet_icon{margin-left:10px;border-radius:10px;width:12px;height:12px;background-color:#666;display:inline-block;margin-top:2px;margin-right:4px;transition:background-color .1s ease 0s;-moz-transition:background-color .1s ease 0s}.litegraph .bullet_icon:hover{background-color:#698;cursor:pointer}.graphcontextmenu{padding:4px;min-width:100px}.graphcontextmenu-title{color:#dde;background-color:#222;margin:0;padding:2px;cursor:default}.graphmenu-entry{box-sizing:border-box;margin:2px;padding-left:20px;user-select:none;-moz-user-select:none;-webkit-user-select:none;transition:all linear .3s}.graphmenu-entry.event,.litemenu-entry.event{border-left:8px solid orange;padding-left:12px}.graphmenu-entry.disabled{opacity:.3}.graphmenu-entry.submenu{border-right:2px solid #eee}.graphmenu-entry:hover{background-color:#555}.graphmenu-entry.separator{background-color:#111;border-bottom:1px solid #666;height:1px;width:calc(100% - 20px);-moz-width:calc(100% - 20px);-webkit-width:calc(100% - 20px)}.graphmenu-entry .property_name{display:inline-block;text-align:left;min-width:80px;min-height:1.2em}.graphmenu-entry .property_value,.litemenu-entry .property_value{display:inline-block;background-color:#00000080;text-align:right;min-width:80px;min-height:1.2em;vertical-align:middle;padding-right:10px}.graphdialog{position:absolute;top:10px;left:10px;min-height:2em;background-color:#333;font-size:1.2em;box-shadow:0 0 10px #000!important;z-index:10}.graphdialog.rounded{border-radius:12px;padding-right:2px}.graphdialog .name{display:inline-block;min-width:60px;min-height:1.5em;padding-left:10px}.graphdialog input,.graphdialog textarea,.graphdialog select{margin:3px;min-width:60px;min-height:1.5em;background-color:#000;border:0;color:#fff;padding-left:10px;outline:none}.graphdialog textarea{min-height:150px}.graphdialog button{margin-top:3px;vertical-align:top;background-color:#999;border:0}.graphdialog button.rounded,.graphdialog input.rounded{border-radius:0 12px 12px 0}.graphdialog .helper{overflow:auto;max-height:200px}.graphdialog .help-item{padding-left:10px}.graphdialog .help-item:hover,.graphdialog .help-item.selected{cursor:pointer;background-color:#fff;color:#000}.litegraph .dialog{min-height:0}.litegraph .dialog .dialog-content{display:block}.litegraph .dialog .dialog-content .subgraph_property{padding:5px}.litegraph .dialog .dialog-footer{margin:0}.litegraph .dialog .dialog-footer .subgraph_property{margin-top:0;display:flex;align-items:center;padding:5px}.litegraph .dialog .dialog-footer .subgraph_property .name{flex:1}.litegraph .graphdialog{display:flex;align-items:center;border-radius:20px;padding:4px 10px;position:fixed}.litegraph .graphdialog .name{padding:0;min-height:0;font-size:16px;vertical-align:middle}.litegraph .graphdialog .value{font-size:16px;min-height:0;margin:0 10px;padding:2px 5px}.litegraph .graphdialog input[type=checkbox]{width:16px;height:16px}.litegraph .graphdialog button{padding:4px 18px;border-radius:20px;cursor:pointer}
