:root{--wb-bg:#111114;--wb-panel:#16161a;--wb-panel-2:#1c1c21;--wb-viewport-bg:#17171a;--wb-field:#101013;--wb-line:var(--hairline-strong,#ffffff17);--wb-line-soft:var(--hairline,#ffffff0e);--wb-ink:var(--ink,#e8e8e8);--wb-ink-dim:var(--ink-dim,#888);--wb-ink-faint:#5d5d68;--wb-accent:#7c3aed;--wb-accent-hi:#8b5cf6;--wb-accent-ink:var(--accent-violet,#c4b5fd);--wb-accent-soft:#8b5cf629;--wb-io-in:#38bdf8;--wb-io-out:var(--accent-violet,#c4b5fd);--wb-ok:var(--success,#4ade80);--wb-err:var(--danger,#f87171);--wb-warn:var(--warn,#fbbf24);--wb-rail:48px;--wb-side:276px;--wb-bar:36px;--wb-radius:var(--radius-sm,6px);--wb-ease:cubic-bezier(.2, .8, .2, 1)}:root[data-theme=light]{--wb-bg:#f3f3f6;--wb-panel:#fbfbfd;--wb-panel-2:#fff;--wb-viewport-bg:#e9e9ee;--wb-field:#fff;--wb-line:#0000001a;--wb-line-soft:#0000000f;--wb-ink:#17171c;--wb-ink-dim:#5f5f6b;--wb-ink-faint:#9a9aa6;--wb-accent-ink:#6d28d9;--wb-accent-soft:#7c3aed1f;--wb-io-in:#0284c7;--wb-io-out:#7c3aed}*{box-sizing:border-box}html,body{background:var(--wb-bg);height:100%;color:var(--wb-ink);font-family:var(--font-body,Inter, system-ui, sans-serif);font-size:var(--text-md,13px);margin:0;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--wb-accent-hi);outline-offset:2px}.wb-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.wb-app{grid-template-columns:var(--wb-rail) var(--wb-side) 1fr;grid-template-rows:var(--wb-bar) 1fr;height:100dvh;display:grid}.wb-top{border-bottom:1px solid var(--wb-line);background:var(--wb-bg);grid-column:1/-1;align-items:center;gap:10px;min-width:0;padding:0 12px 0 14px;display:flex}.wb-brand{font-weight:var(--weight-semibold,600);color:var(--wb-ink);border-radius:var(--wb-radius);align-items:center;gap:8px;padding:2px 4px;text-decoration:none;display:inline-flex}.wb-brand svg{width:20px;height:20px}.wb-brand small{color:var(--wb-ink-dim);font-weight:500}.wb-brand:hover small{color:var(--wb-ink)}.wb-top-spacer{flex:1}.wb-meter{font-family:var(--font-mono,ui-monospace, monospace);color:var(--wb-ink-dim);white-space:nowrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.wb-meter-bar{background:var(--wb-line);border-radius:2px;width:54px;height:4px;overflow:hidden}.wb-meter-bar i{background:var(--wb-accent-hi);width:0;height:100%;transition:width var(--duration-slow) var(--wb-ease);display:block}.wb-top-link{color:var(--wb-ink-dim);border-radius:var(--wb-radius);transition:color var(--duration-fast), background var(--duration-fast);padding:4px 8px;font-size:12px;text-decoration:none}.wb-top-link:hover{color:var(--wb-ink);background:var(--wb-panel-2)}.wb-rail{border-right:1px solid var(--wb-line);background:var(--wb-bg);flex-direction:column;align-items:center;gap:2px;padding:8px 0;display:flex}.wb-rail-btn{width:42px;color:var(--wb-ink-dim);transition:color var(--duration-fast), background var(--duration-fast), transform var(--duration-instant);background:0 0;border:0;border-radius:8px;flex-direction:column;align-items:center;gap:3px;padding:7px 0 5px;font-size:9.5px;display:flex}.wb-rail-btn svg{width:18px;height:18px}.wb-rail-btn:hover{color:var(--wb-ink);background:var(--wb-panel-2)}.wb-rail-btn:active{transform:scale(.96)}.wb-rail-btn[aria-current=page]{color:var(--wb-accent-ink);background:var(--wb-accent-soft)}.wb-side{border-right:1px solid var(--wb-line);background:var(--wb-panel);flex-direction:column;min-height:0;display:flex}.wb-side-scroll{scrollbar-width:thin;flex:1;padding:14px 14px 18px;overflow-y:auto}.wb-label{letter-spacing:.09em;text-transform:uppercase;color:var(--wb-ink-dim);margin:0 0 8px;font-size:10.5px;font-weight:600}.wb-row{align-items:center;gap:6px;display:flex}.wb-select,.wb-input{border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-field);width:100%;min-width:0;height:30px;color:var(--wb-ink);transition:border-color var(--duration-fast), background var(--duration-fast);padding:0 8px;font-size:12px}.wb-select:hover,.wb-input:hover{border-color:var(--wb-ink-faint)}.wb-select:focus,.wb-input:focus{border-color:var(--wb-accent-hi);box-shadow:0 0 0 2px var(--wb-accent-soft);outline:none}textarea.wb-input{resize:vertical;height:auto;min-height:64px;padding:7px 8px;line-height:1.45}.wb-icon-btn{border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-field);width:30px;height:30px;color:var(--wb-ink-dim);transition:color var(--duration-fast), border-color var(--duration-fast), background var(--duration-fast);flex:none;place-items:center;display:inline-grid}.wb-icon-btn svg{width:14px;height:14px}.wb-icon-btn:hover{color:var(--wb-ink);border-color:var(--wb-ink-faint)}.wb-icon-btn:active{background:var(--wb-panel-2)}.wb-node{border-top:1px solid var(--wb-line-soft);padding:14px 0}.wb-node:first-of-type{border-top:0}.wb-node-head{align-items:flex-start;gap:8px;display:flex}.wb-node-title{flex:1;min-width:0}.wb-node-title strong{font-size:12.5px;font-weight:600;display:block}.wb-io{align-items:center;gap:4px;margin-top:2px;font-size:10px;display:inline-flex}.wb-io .in{color:var(--wb-io-in)}.wb-io .out{color:var(--wb-io-out)}.wb-io .arrow{color:var(--wb-ink-faint)}.wb-node-body{gap:7px;margin-top:10px;display:grid}.wb-node[data-off=true] .wb-node-body{opacity:.4;pointer-events:none}.wb-node[data-collapsed=true] .wb-node-body{display:none}.wb-param{grid-template-columns:76px 1fr;align-items:center;gap:8px;display:grid}.wb-param>span{color:var(--wb-ink-dim);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.wb-hint{color:var(--wb-ink-dim);margin:0;font-size:11px;line-height:1.45}.wb-hint a{color:var(--wb-accent-ink)}.wb-chev{width:20px;height:20px;color:var(--wb-ink-faint);transition:transform var(--duration-base) var(--wb-ease), color var(--duration-fast), background var(--duration-fast);background:0 0;border:0;border-radius:4px;place-items:center;display:inline-grid}.wb-chev:hover{color:var(--wb-ink);background:var(--wb-panel-2)}.wb-node[data-collapsed=true] .wb-chev{transform:rotate(180deg)}.wb-chev svg{width:12px;height:12px}.wb-switch{flex:none;width:26px;height:15px;margin-top:2px;position:relative}.wb-switch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.wb-switch span{background:var(--wb-line);transition:background var(--duration-base);pointer-events:none;border-radius:999px;position:absolute;inset:0}.wb-switch span:after{content:"";width:11px;height:11px;transition:transform var(--duration-base) var(--wb-ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.wb-switch input:checked+span{background:var(--wb-accent-hi)}.wb-switch input:checked+span:after{transform:translate(11px)}.wb-switch input:focus-visible+span{outline:2px solid var(--wb-accent-hi);outline-offset:2px}.wb-drop{aspect-ratio:1;border:1px solid var(--wb-line);background:var(--wb-field);color:var(--wb-ink-dim);text-align:center;transition:border-color var(--duration-fast), background var(--duration-fast);border-radius:8px;place-items:center;display:grid;position:relative;overflow:hidden}.wb-drop:hover,.wb-drop.is-over{border-color:var(--wb-accent-hi);background:var(--wb-accent-soft)}.wb-drop img{object-fit:contain;width:100%;height:100%;padding:8px;position:absolute;inset:0}.wb-drop-empty{pointer-events:none;justify-items:center;gap:6px;padding:16px;font-size:11.5px;display:grid}.wb-drop-empty svg{width:22px;height:22px;color:var(--wb-ink-faint)}.wb-drop input{opacity:0;cursor:pointer;position:absolute;inset:0}.wb-drop-status{color:#fff;text-align:left;pointer-events:none;background:#000000a8;border-radius:4px;padding:4px 7px;font-size:10.5px;position:absolute;bottom:6px;left:6px;right:6px}.wb-drop-status[data-tone=err]{background:#7f1d1de6}.wb-drop-clear{z-index:2;width:24px;height:24px;position:absolute;top:6px;right:6px}.wb-side-foot{border-top:1px solid var(--wb-line-soft);padding:12px 14px 14px}.wb-primary{background:var(--wb-accent);color:#fff;width:100%;height:38px;transition:background var(--duration-fast), transform var(--duration-instant), opacity var(--duration-fast);border:0;border-radius:8px;font-size:13px;font-weight:600;position:relative;overflow:hidden}.wb-primary:hover{background:var(--wb-accent-hi)}.wb-primary:active{transform:translateY(1px)}.wb-primary:disabled{opacity:.5;cursor:not-allowed}.wb-primary[data-busy=true]{background:var(--wb-panel-2);color:var(--wb-ink)}.wb-primary .wb-progress{background:var(--wb-accent-hi);width:0;height:2px;transition:width var(--duration-slow) var(--wb-ease);position:absolute;bottom:0;left:0}.wb-run-log{color:var(--wb-ink-dim);gap:4px;margin:8px 0 0;padding:0;font-size:11px;list-style:none;display:grid}.wb-run-log li{align-items:center;gap:6px;display:flex}.wb-run-log li:before{content:"";background:var(--wb-ink-faint);border-radius:50%;flex:none;width:6px;height:6px}.wb-run-log li[data-state=active]:before{background:var(--wb-accent-hi);animation:1.1s ease-in-out infinite wb-pulse}.wb-run-log li[data-state=done]:before{background:var(--wb-ok)}.wb-run-log li[data-state=error]:before{background:var(--wb-err)}.wb-run-log li[data-state=error]{color:var(--wb-err)}@keyframes wb-pulse{50%{opacity:.35}}.wb-main{background:var(--wb-viewport-bg);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative}.wb-toolbar{border-bottom:1px solid var(--wb-line-soft);background:var(--wb-viewport-bg);z-index:3;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;display:flex}.wb-sep{background:var(--wb-line);width:1px;height:18px;margin:0 2px}.wb-tool{border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-panel);height:28px;color:var(--wb-ink);white-space:nowrap;transition:border-color var(--duration-fast), background var(--duration-fast), color var(--duration-fast), transform var(--duration-instant);align-items:center;gap:6px;padding:0 10px;font-size:11.5px;display:inline-flex}.wb-tool svg{width:13px;height:13px;color:var(--wb-ink-dim)}.wb-tool:hover:not(:disabled){border-color:var(--wb-ink-faint);background:var(--wb-panel-2)}.wb-tool:active:not(:disabled){transform:translateY(1px)}.wb-tool:disabled{opacity:.4;cursor:not-allowed}.wb-tool.is-square{justify-content:center;width:28px;padding:0}.wb-tool[aria-pressed=true]{border-color:var(--wb-accent-hi);color:var(--wb-accent-ink);background:var(--wb-accent-soft)}.wb-tool .caret{width:10px;height:10px;margin-left:-2px}.wb-menu-wrap{position:relative}.wb-menu{z-index:20;border:1px solid var(--wb-line);background:var(--wb-panel-2);opacity:0;pointer-events:none;min-width:200px;transition:opacity var(--duration-fast), transform var(--duration-fast) var(--wb-ease);border-radius:8px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;transform:translateY(-4px);box-shadow:0 12px 32px #0006}.wb-menu[data-open=true]{opacity:1;pointer-events:auto;transform:none}.wb-menu button{text-align:left;background:0 0;border:0;border-radius:5px;justify-content:space-between;gap:12px;width:100%;padding:7px 9px;font-size:12px;display:flex}.wb-menu button:hover,.wb-menu button:focus-visible{background:var(--wb-accent-soft);outline:none}.wb-menu button small{color:var(--wb-ink-dim);font-size:10.5px}.wb-popover{z-index:20;border:1px solid var(--wb-line);background:var(--wb-panel-2);opacity:0;pointer-events:none;width:250px;transition:opacity var(--duration-fast), transform var(--duration-fast) var(--wb-ease);border-radius:8px;gap:10px;padding:12px;display:grid;position:absolute;top:calc(100% + 4px);left:0;transform:translateY(-4px);box-shadow:0 12px 32px #0006}.wb-popover[data-open=true]{opacity:1;pointer-events:auto;transform:none}.wb-popover input[type=range]{width:100%;accent-color:var(--wb-accent-hi)}.wb-popover .wb-row{justify-content:space-between;font-size:11.5px}.wb-popover output{font-family:var(--font-mono,monospace);color:var(--wb-ink-dim);font-size:11px}.wb-popover .wb-tool{justify-content:center}.wb-stage{flex:1;min-height:0;position:relative}.wb-canvas{position:absolute;inset:0}.wb-canvas canvas{touch-action:none;width:100%;height:100%;display:block}.wb-strip{z-index:2;border:1px solid var(--wb-line);background:color-mix(in srgb, var(--wb-panel) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:9px;flex-direction:column;gap:3px;padding:4px;display:flex;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.wb-strip hr{border:0;border-top:1px solid var(--wb-line);width:70%;margin:3px auto}.wb-strip-btn{width:28px;height:28px;color:var(--wb-ink-dim);transition:color var(--duration-fast), background var(--duration-fast);background:0 0;border:0;border-radius:6px;place-items:center;display:grid;position:relative}.wb-strip-btn svg{width:15px;height:15px}.wb-strip-btn:hover{color:var(--wb-ink);background:var(--wb-panel-2)}.wb-strip-btn[aria-pressed=true]{background:var(--wb-accent);color:#fff}.wb-strip-btn[data-tip]:hover:after,.wb-strip-btn[data-tip]:focus-visible:after{content:attr(data-tip);color:#fff;white-space:nowrap;pointer-events:none;background:#000;border-radius:4px;padding:4px 7px;font-size:11px;position:absolute;top:50%;left:calc(100% + 8px);transform:translateY(-50%)}.wb-stats{z-index:2;font-family:var(--font-mono,monospace);color:var(--wb-ink-dim);pointer-events:none;font-size:11px;position:absolute;bottom:10px;left:14px}.wb-hint-corner{white-space:nowrap;z-index:2;color:var(--wb-ink-faint);pointer-events:none;font-size:11px;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.wb-empty{z-index:1;pointer-events:none;transition:opacity var(--duration-base);place-items:center;display:grid;position:absolute;inset:0}.wb-empty[hidden]{display:none}.wb-empty-card{text-align:center;max-width:340px;color:var(--wb-ink-dim);padding:0 20px}.wb-empty-card svg{width:44px;height:44px;color:var(--wb-ink-faint);margin-bottom:10px}.wb-empty-card h2{color:var(--wb-ink);margin:0 0 6px;font-size:15px;font-weight:600}.wb-empty-card p{margin:0;font-size:12.5px;line-height:1.55}.wb-empty-card kbd{font-family:var(--font-mono,monospace);border:1px solid var(--wb-line);background:var(--wb-panel);border-radius:4px;padding:1px 5px;font-size:10.5px}.wb-busy{z-index:2;pointer-events:none;place-items:center;display:grid;position:absolute;inset:0}.wb-busy[hidden]{display:none}.wb-busy-card{border:1px solid var(--wb-line);background:color-mix(in srgb, var(--wb-panel) 92%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;border-radius:12px;justify-items:center;gap:10px;min-width:240px;padding:18px 22px;display:grid}.wb-busy-card strong{font-size:13px}.wb-busy-card span{color:var(--wb-ink-dim);font-size:11.5px}.wb-busy-card img{object-fit:contain;background:var(--wb-field);border-radius:6px;width:72px;height:72px}.wb-spinner{border:2px solid var(--wb-line);border-top-color:var(--wb-accent-hi);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite wb-spin}@keyframes wb-spin{to{transform:rotate(360deg)}}.wb-dropveil{z-index:5;border:2px dashed var(--wb-accent-hi);background:var(--wb-accent-soft);color:var(--wb-ink);pointer-events:none;opacity:0;transition:opacity var(--duration-fast);border-radius:12px;place-items:center;font-weight:600;display:grid;position:absolute;inset:10px}.wb-dropveil[data-on=true]{opacity:1}.wb-history{z-index:4;border:1px solid var(--wb-line);background:var(--wb-panel-2);opacity:0;pointer-events:none;width:260px;max-height:min(460px,80%);transition:opacity var(--duration-fast), transform var(--duration-fast) var(--wb-ease);border-radius:10px;flex-direction:column;display:flex;position:absolute;top:50%;left:56px;transform:translate(-6px,-50%);box-shadow:0 16px 40px #00000073}.wb-history[data-open=true]{opacity:1;pointer-events:auto;transform:translateY(-50%)}.wb-history header{border-bottom:1px solid var(--wb-line-soft);justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.wb-history header strong{font-size:12px}.wb-history ul{gap:4px;margin:0;padding:6px;list-style:none;display:grid;overflow-y:auto}.wb-history li button{text-align:left;width:100%;transition:background var(--duration-fast);background:0 0;border:0;border-radius:6px;grid-template-columns:40px 1fr;align-items:center;gap:9px;padding:6px;display:grid}.wb-history li button:hover,.wb-history li button:focus-visible{background:var(--wb-accent-soft);outline:none}.wb-history li img{object-fit:cover;background:var(--wb-field);border-radius:5px;width:40px;height:40px}.wb-history li span{gap:2px;min-width:0;font-size:11.5px;display:grid}.wb-history li small{color:var(--wb-ink-dim);text-overflow:ellipsis;white-space:nowrap;font-size:10.5px;overflow:hidden}.wb-history-empty{color:var(--wb-ink-dim);padding:18px 14px;font-size:11.5px;line-height:1.5}.wb-batch{width:300px}.wb-batch-hint{color:var(--wb-ink-dim);margin:0;padding:8px 12px 0;font-size:10.5px;line-height:1.4}.wb-batch textarea#wb-batch-prompts{resize:vertical;border:1px solid var(--wb-line-soft);background:var(--wb-field);min-height:64px;max-height:160px;color:inherit;font:inherit;border-radius:6px;margin:8px 12px;padding:7px 9px;font-size:11.5px}.wb-batch textarea#wb-batch-prompts:focus-visible{outline:2px solid var(--wb-accent);outline-offset:-1px}.wb-batch ul#wb-batch-list{gap:4px;margin:0;padding:0 6px 6px;list-style:none;display:grid;overflow-y:auto}.wb-batch-item{background:var(--wb-field);border-radius:6px;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:6px 8px;font-size:11.5px;display:grid}.wb-batch-item span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.wb-batch-item small{color:var(--wb-ink-dim);font-size:10px;display:block}.wb-batch-item[data-state=failed] small{color:var(--wb-err)}.wb-batch-item[data-state=done] small{color:var(--wb-ok)}.wb-batch-item button{flex-shrink:0}.wb-toasts{z-index:50;gap:8px;max-width:min(360px,100vw - 32px);display:grid;position:fixed;bottom:16px;right:16px}.wb-toast{border:1px solid var(--wb-line);border-left:3px solid var(--wb-accent-hi);background:var(--wb-panel-2);animation:wb-in .2s var(--wb-ease);border-radius:8px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:12px;line-height:1.45;display:flex;box-shadow:0 10px 30px #0006}.wb-toast[data-tone=err]{border-left-color:var(--wb-err)}.wb-toast[data-tone=ok]{border-left-color:var(--wb-ok)}.wb-toast[data-tone=warn]{border-left-color:var(--wb-warn)}.wb-toast p{flex:1;margin:0}.wb-toast button{color:var(--wb-accent-ink);white-space:nowrap;background:0 0;border:0;padding:0;font-weight:600}.wb-toast button:hover{text-decoration:underline}@keyframes wb-in{0%{opacity:0;transform:translateY(6px)}}.wb-view{background:var(--wb-panel);grid-column:2/-1;min-width:0;min-height:0;display:none}.wb-app[data-view=workflows] .wb-view[data-view=workflows],.wb-app[data-view=extensions] .wb-view[data-view=extensions],.wb-app[data-view=settings] .wb-view[data-view=settings]{display:flex}.wb-app:not([data-view=generate]) .wb-side,.wb-app:not([data-view=generate]) .wb-main{display:none}.wb-page{flex:1;padding:28px clamp(16px,4vw,48px) 48px;overflow-y:auto}.wb-page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.wb-page-head h1{font-size:20px;font-weight:600;font-family:var(--font-display,inherit);margin:0 0 4px}.wb-page-head p{color:var(--wb-ink-dim);max-width:640px;margin:0;line-height:1.55}.wb-btn{border:1px solid var(--wb-line);border-radius:var(--wb-radius);background:var(--wb-panel-2);height:32px;color:var(--wb-ink);transition:border-color var(--duration-fast), background var(--duration-fast), transform var(--duration-instant);align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:500;text-decoration:none;display:inline-flex}.wb-btn:hover{border-color:var(--wb-ink-faint)}.wb-btn:active{transform:translateY(1px)}.wb-btn.is-accent{background:var(--wb-accent);color:#fff;border-color:#0000}.wb-btn.is-accent:hover{background:var(--wb-accent-hi)}.wb-btn.is-danger:hover{border-color:var(--wb-err);color:var(--wb-err)}.wb-btn svg{width:14px;height:14px}.wb-flows{flex:1;grid-template-columns:240px 1fr;min-height:0;display:grid}.wb-flow-list{border-right:1px solid var(--wb-line);align-content:start;gap:4px;padding:14px;display:grid;overflow-y:auto}.wb-flow-item{text-align:left;transition:background var(--duration-fast), border-color var(--duration-fast);background:0 0;border:1px solid #0000;border-radius:7px;gap:2px;padding:9px 10px;display:grid}.wb-flow-item:hover{background:var(--wb-panel-2)}.wb-flow-item[aria-current=true]{border-color:var(--wb-accent-hi);background:var(--wb-accent-soft)}.wb-flow-item strong{font-size:12.5px;font-weight:600}.wb-flow-item small{color:var(--wb-ink-dim);font-size:11px}.wb-flow-editor{flex-direction:column;min-width:0;min-height:0;display:flex}.wb-flow-bar{border-bottom:1px solid var(--wb-line);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 14px;display:flex}.wb-flow-bar .wb-input{width:220px}.wb-flow-status{color:var(--wb-ink-dim);margin-left:auto;font-size:11.5px}.wb-flow-status[data-tone=err]{color:var(--wb-err)}.wb-flow-status[data-tone=ok]{color:var(--wb-ok)}.wb-graph{background-color:var(--wb-viewport-bg);background-image:radial-gradient(var(--wb-line) 1px, transparent 1px);touch-action:none;background-size:20px 20px;flex:1;min-height:360px;position:relative;overflow:hidden}.wb-graph svg.wires{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.wb-graph svg.wires path{fill:none;stroke:var(--wb-io-out);stroke-width:2px;opacity:.8}.wb-graph svg.wires path.pending{stroke-dasharray:5 4;opacity:.6}.wb-gnode{border:1px solid var(--wb-line);background:var(--wb-panel-2);-webkit-user-select:none;user-select:none;width:196px;transition:border-color var(--duration-fast), box-shadow var(--duration-fast);border-radius:9px;position:absolute;box-shadow:0 6px 18px #0000004d}.wb-gnode:hover{border-color:var(--wb-ink-faint)}.wb-gnode[data-selected=true]{border-color:var(--wb-accent-hi);box-shadow:0 0 0 3px var(--wb-accent-soft), 0 6px 18px #0000004d}.wb-gnode[data-invalid=true]{border-color:var(--wb-err)}.wb-gnode header{border-bottom:1px solid var(--wb-line-soft);cursor:grab;align-items:center;gap:6px;padding:8px 10px;font-size:12px;font-weight:600;display:flex}.wb-gnode header:active{cursor:grabbing}.wb-gnode header i{background:var(--wb-accent-hi);border-radius:2px;flex:none;width:8px;height:8px}.wb-gnode header button{width:20px;height:20px;color:var(--wb-ink-faint);background:0 0;border:0;border-radius:4px;place-items:center;margin-left:auto;display:grid}.wb-gnode header button:hover{color:var(--wb-err);background:var(--wb-panel)}.wb-gnode header button svg{width:11px;height:11px}.wb-gnode .ports{color:var(--wb-ink-dim);justify-content:space-between;padding:8px 0;font-size:10.5px;display:flex}.wb-gnode .port{align-items:center;gap:6px;padding:2px 10px;display:flex;position:relative}.wb-gnode .port.out{justify-content:flex-end}.wb-gnode .port .dot{border:2px solid var(--wb-panel-2);cursor:crosshair;width:12px;height:12px;transition:transform var(--duration-fast);border-radius:50%;margin-top:-6px;position:absolute;top:50%}.wb-gnode .port.in .dot{background:var(--wb-io-in);left:-7px}.wb-gnode .port.out .dot{background:var(--wb-io-out);right:-7px}.wb-gnode .port .dot:hover{transform:scale(1.3)}.wb-gnode .sub{color:var(--wb-ink-dim);padding:0 10px 9px;font-size:10.5px}.wb-palette{border-top:1px solid var(--wb-line);background:var(--wb-panel);flex-wrap:wrap;gap:6px;padding:10px 14px;display:flex}.wb-palette span{color:var(--wb-ink-dim);align-self:center;margin-right:4px;font-size:11px}.wb-ext-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.wb-ext{border:1px solid var(--wb-line);background:var(--wb-panel-2);transition:border-color var(--duration-fast), transform var(--duration-fast) var(--wb-ease);border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex}.wb-ext:hover{border-color:var(--wb-ink-faint);transform:translateY(-1px)}.wb-ext header{align-items:flex-start;gap:10px;display:flex}.wb-ext header div{flex:1;min-width:0}.wb-ext h3{margin:0;font-size:13.5px}.wb-ext header small{color:var(--wb-ink-dim);font-size:11px}.wb-ext p{color:var(--wb-ink-dim);margin:0;font-size:12px;line-height:1.5}.wb-tags{flex-wrap:wrap;gap:5px;display:flex}.wb-tag{border:1px solid var(--wb-line);color:var(--wb-ink-dim);border-radius:999px;padding:2px 7px;font-size:10.5px}.wb-tag[data-tone=ok]{color:var(--wb-ok);border-color:color-mix(in srgb, var(--wb-ok) 40%, transparent)}.wb-tag[data-tone=err]{color:var(--wb-err);border-color:color-mix(in srgb, var(--wb-err) 40%, transparent)}.wb-tag[data-tone=warn]{color:var(--wb-warn);border-color:color-mix(in srgb, var(--wb-warn) 40%, transparent)}.wb-tag[data-tone=accent]{color:var(--wb-accent-ink);border-color:color-mix(in srgb, var(--wb-accent-hi) 50%, transparent)}.wb-ext footer{color:var(--wb-ink-dim);align-items:center;gap:8px;margin-top:auto;font-size:11px;display:flex}.wb-ext footer label{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.wb-skel{background:linear-gradient(90deg, var(--wb-panel-2), var(--wb-panel) 50%, var(--wb-panel-2));background-size:200% 100%;border-radius:10px;height:150px;animation:1.3s linear infinite wb-shimmer}@keyframes wb-shimmer{to{background-position:-200% 0}}.wb-settings{gap:16px;max-width:760px;display:grid}.wb-card{border:1px solid var(--wb-line);background:var(--wb-panel-2);border-radius:10px;gap:12px;padding:16px;display:grid}.wb-card h2{margin:0;font-size:14px}.wb-card .wb-param{grid-template-columns:180px 1fr}.wb-card .wb-param>span{white-space:normal;font-size:12px}.wb-code{border:1px solid var(--wb-line);background:var(--wb-field);font-family:var(--font-mono,monospace);white-space:pre;border-radius:8px;margin:0;padding:12px 14px;font-size:11.5px;line-height:1.6;position:relative;overflow-x:auto}.wb-code+.wb-btn{justify-self:start}[hidden]{display:none!important}.wb-range{align-items:center;gap:8px;min-width:0;display:flex}.wb-range input{min-width:0;accent-color:var(--wb-accent-hi);flex:1}.wb-range output{text-align:right;min-width:34px;font-family:var(--font-mono,ui-monospace, monospace);color:var(--wb-ink-dim);font-size:11px}.wb-row .wb-icon-btn{flex:none}.wb-prompt{width:100%;min-height:54px}.wb-prompt:disabled{opacity:.45;cursor:not-allowed}.wb-flow-warning{border:1px solid color-mix(in srgb, var(--wb-err) 45%, transparent);background:color-mix(in srgb, var(--wb-err) 10%, transparent);border-radius:8px;justify-items:start;gap:6px;margin:6px 0 4px;padding:10px 12px;font-size:11.5px;display:grid}.wb-flow-warning p{color:var(--wb-ink-dim);margin:0;line-height:1.45}.wb-run-log li[data-state=pending]{opacity:.6}.wb-run-log li[data-state=skipped]{opacity:.45;text-decoration:line-through}.wb-toast[data-leaving=true]{opacity:0;transition:opacity var(--duration-base), transform var(--duration-base);transform:translateY(6px)}.wb-toast .wb-toast-x{width:18px;height:18px;color:var(--wb-ink-faint);border-radius:4px;place-items:center;display:inline-grid}.wb-toast .wb-toast-x:hover{color:var(--wb-ink);background:var(--wb-line-soft);text-decoration:none}.wb-toast .wb-toast-x svg{width:11px;height:11px}.wb-graph{cursor:grab;overflow:hidden}.wb-graph.is-panning{cursor:grabbing}.wb-graph.is-wiring,.wb-graph.is-wiring *{cursor:crosshair}.wb-graph-layer{will-change:transform;position:absolute;inset:0}.wb-palette .wb-btn{align-items:center;gap:5px;display:inline-flex}.wb-palette .wb-btn svg{width:12px;height:12px}.wb-ext footer a{color:var(--wb-accent-ink);margin-left:auto;font-weight:600;text-decoration:none}.wb-ext footer a:hover{text-decoration:underline}.wb-ext footer>span:last-child:not(:first-child){margin-left:auto}.wb-ext-error{border:1px dashed var(--wb-line);border-radius:10px;grid-column:1/-1;justify-items:start;gap:8px;padding:20px;display:grid}.wb-ext-error p{color:var(--wb-ink-dim);margin:0}.wb-primary:focus-visible{outline:2px solid var(--wb-accent-hi);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (width<=900px){:root{--wb-side:248px}.wb-meter{display:none}}@media (width<=720px){html,body{overflow:auto}.wb-app{grid-template-columns:1fr;grid-template-rows:var(--wb-bar) auto minmax(58vh, 1fr) auto;height:auto;min-height:100dvh}.wb-rail{z-index:10;border-right:0;border-top:1px solid var(--wb-line);padding:4px 8px calc(4px + env(safe-area-inset-bottom));flex-direction:row;grid-row:4;justify-content:space-around;position:sticky;bottom:0}.wb-main{grid-row:2;min-height:58vh}.wb-side{border-right:0;border-top:1px solid var(--wb-line);grid-row:3}.wb-view{grid-area:2/1/4}.wb-flows{grid-template-columns:1fr}.wb-flow-list{border-right:0;border-bottom:1px solid var(--wb-line);grid-auto-columns:max-content;grid-auto-flow:column;overflow-x:auto}.wb-card .wb-param{grid-template-columns:1fr}.wb-top-link.hide-sm,.wb-hint-corner{display:none}}
